# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ # MacPorts specification for the TAO CORBA package. # Includes ACE even though the libACE package is available # since TAO can not be built against an installed version of ACE. # Thanks to the boost port maintainers for a great example to follow. # Thomas Lockhart # 2012-02-06 PortSystem 1.0 PortGroup muniversal 1.0 name tao set name_package ACE+TAO version 6.1.1 distname ${name_package}-${version} categories devel platforms darwin license BSD maintainers fourpalms.org:lockhart openmaintainer description The ACE ORB CORBA real-time middleware long_description The ACE Orb (TAO) is a real-time implementation of CORBA built using the \ framework components and patterns provided by ACE. TAO contains the \ network interface, OS, communication protocol, and CORBA middleware \ components and features. TAO is based on the standard OMG CORBA \ reference model, with the enhancements designed to overcome the \ shortcomings of conventional ORBs for high-performance and real-time \ applications. conflicts ace libACE homepage http://www.cs.wustl.edu/~schmidt/TAO.html master_sites http://download.dre.vanderbilt.edu/previous_versions \ ftp://download.dre.vanderbilt.edu/previous_versions use_bzip2 yes worksrcdir ACE_wrappers patch.pre_args -p1 patchfiles patch-ace-config.h.diff \ patch-include-makeinclude-platform_macros.GNU.diff checksums rmd160 a5ea828a92806cc407e1aeb3e3d48a530aa2948d \ sha256 db1b81941fcf665b7b7054db8bfca15c49d57dcb4c144016d5391b2fe6ca8cad set os.name "lion" array set os.names { 7 panther 8 tiger 9 leopard 10 snowleopard 11 lion 12 mountainlion } foreach {key value} [array get os.names] { if {${key} == ${os.major}} { set os.name ${value} } } set libenv DYLD_LIBRARY_PATH=${worksrcpath}/lib set aceenv ACE_ROOT=${worksrcpath} set taoenv TAO_ROOT=${worksrcpath}/TAO set makearg INSTALL_PREFIX=${prefix} set logdir ${prefix}/var/log/tao set taodaemon tao_cosnaming set taouser _tao set subdirs { . TAO } # set subdirs { ace ACEXML ASNMP Kokyu MPC apps docs netsvcs TAO/tao TAO/orbsvcs } # set subdirs { ace ACEXML ASNMP Kokyu apps TAO/TAO_IDL TAO/tao TAO/orbsvcs } add_users ${taouser} group=${taouser} realname=TAO\ Server post-extract { copy ${filespath}/org.macports.${taodaemon}.plist \ ${worksrcpath}/ } post-patch { reinplace "s|@MACOSX@|${os.name}|g" \ ${worksrcpath}/ace/config.h \ ${worksrcpath}/include/makeinclude/platform_macros.GNU reinplace "s|@PREFIX@|${prefix}|g" \ ${worksrcpath}/org.macports.${taodaemon}.plist reinplace "s|@USER@|${taouser}|g" \ ${worksrcpath}/org.macports.${taodaemon}.plist reinplace "s|@DAEMON@|${taodaemon}|g" \ ${worksrcpath}/org.macports.${taodaemon}.plist } depends_lib path:bin/perl:perl5 \ port:tcl \ port:zlib use_configure no use_parallel_build no build.env "${libenv} ${aceenv} ${taoenv}" build.args-append CC=${configure.cc} \ CXX=${configure.cxx} \ CPP=${configure.cpp} build.pre_args ${makearg} all build { foreach {subdir} $subdirs { build.dir ${worksrcpath}/${subdir} command_exec build } } destroot.env "${libenv} ${aceenv} ${taoenv}" destroot.pre_args ${makearg} install destroot.keepdirs ${logdir} destroot { xinstall -d -o ${taouser} -m 0755 ${logdir} foreach {subdir} $subdirs { destroot.dir ${worksrcpath}/${subdir} command_exec destroot } # Files required to build CosEvent classes but not installed copy ${worksrcpath}/TAO/orbsvcs/orbsvcs/ESF ${destroot}/${prefix}/include/orbsvcs/ESF } pre-install { delete ${destroot}${prefix}/etc/LaunchDaemons/org.macports.${taodaemon}/org.macports.${taodaemon}.plist delete ${destroot}${prefix}/etc/LaunchDaemons/org.macports.${taodaemon}/${taodaemon}.wrapper copy ${worksrcpath}/org.macports.${taodaemon}.plist \ ${destroot}${prefix}/etc/LaunchDaemons/org.macports.${taodaemon}/org.macports.${taodaemon}.plist } startupitem.create yes startupitem.name ${taodaemon} livecheck.type regex livecheck.url ${master_sites} livecheck.regex "ACE\\+TAO-(\[0-9.\]+\[0-9\]+)${extract.suffix}"