# -*- 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$ PortSystem 1.0 name zeroc-ice34 version 3.4.2 revision 3 set branch [join [lrange [split ${version} .] 0 1] .] categories devel maintainers blair conflicts zeroc-ice33 zeroc-ice35 license GPL-2 description Fast, object-oriented RPC for C++, Java, Python, Ruby, PHP long_description \ The Internet Communications Engine (Ice) is a modern alternative to \ object middleware such as CORBA or COM/DCOM/COM+, with support for \ C++, C#, Java, PHP, Python, Ruby and Visual Basic. \ Ice consists of the following packages. \ Slice: The Specification Language for Ice. Slice establishes a \ contract between clients and servers, and is also used to describe \ persistent data. \ Slice Compilers: Slice specifications are compiled into various \ programming languages. Ice supports C++, Java, C#, Visual Basic, PHP, \ Python and Ruby. Ice clients and servers work together, regardless \ of the programming language. \ Ice: The Ice core library manages all the communication tasks using a \ highly efficient protocol (including protocol compression and support \ for both TCP and UDP), provides a flexible thread pool for \ multi-threaded servers. \ This Port provides the C++ runtime libraries, the core Slice files \ and slice2cpp. It also includes the slice compilers for all the \ other languages: slice2cs, slice2java, slice2py, slice2rb and slice2vb. homepage http://www.zeroc.com/ master_sites ${homepage}download/Ice/${branch}/ distname Ice-${version} checksums md5 e97672eb4a63c6b8dd202d0773e19dc7 \ sha1 8c84d6e3b227f583d05e08251e07047e6c3a6b42 \ rmd160 7ce680a4eb5fa9d0bb6f8b8910e267dfc2373d75 patchfiles patch-ice.cpp.config.Make.rules.diff \ patch-ice.cpp.config.Make.rules.Darwin.diff \ patch-ice.cpp.allTests.py.diff \ patch-ice.cpp.demo.IceGrid.secure.README.diff \ patch-ice.cpp.demo.IceGrid.secure.application.xml.diff \ patch-ice.cpp.demo.IceGrid.secure.config.admin.diff \ patch-ice.cpp.demo.IceGrid.secure.config.client.diff \ patch-ice.cpp.demo.IceGrid.secure.config.master.diff \ patch-ice.cpp.demo.IceGrid.secure.config.node.diff \ patch-ice.cpp.demo.IceGrid.secure.config.registry.diff \ patch-ice.cpp.demo.IceGrid.secure.config.slave.diff \ patch-ice.cpp.demo.IceGrid.secure.makecerts.py.diff \ patch-ice.cpp.include.Freeze.Map.h.diff \ patch-ice.cpp.include.Ice.Buffer.h.diff \ patch-ice.cpp.include.Ice.ConnectionIF.h.diff \ patch-ice.cpp.include.Ice.IconvStringConverter.h.diff \ patch-ice.cpp.include.Ice.IncomingAsyncF.h.diff \ patch-ice.cpp.include.Ice.LocalObjectF.h.diff \ patch-ice.cpp.include.Ice.ObjectF.h.diff \ patch-ice.cpp.include.Ice.OutgoingAsyncF.h.diff \ patch-ice.cpp.include.Ice.Proxy.h.diff \ patch-ice.cpp.include.Ice.ProxyF.h.diff \ patch-ice.cpp.include.Ice.Stream.h.diff \ patch-ice.cpp.include.Ice.StreamF.h.diff \ patch-ice.cpp.include.IceUtil.Mutex.h.diff \ patch-ice.cpp.src.Freeze.MapDb.cpp.diff \ patch-ice.cpp.src.Freeze.MapI.cpp.diff \ patch-ice.cpp.src.Freeze.SharedDbEnv.cpp.diff \ patch-ice.cpp.src.Glacier2.Blobject.cpp.diff \ patch-ice.cpp.src.Glacier2.Blobject.h.diff \ patch-ice.cpp.src.Glacier2.RequestQueue.cpp.diff \ patch-ice.cpp.src.Glacier2.RequestQueue.h.diff \ patch-ice.cpp.src.Glacier2.RouterI.cpp.diff \ patch-ice.cpp.src.Ice.ConnectionI.cpp.diff \ patch-ice.cpp.src.Ice.DynamicLibrary.cpp.diff \ patch-ice.cpp.src.Ice.IncomingAsync.cpp.diff \ patch-ice.cpp.src.Ice.LocalObject.cpp.diff \ patch-ice.cpp.src.Ice.Network.cpp.diff \ patch-ice.cpp.src.Ice.Object.cpp.diff \ patch-ice.cpp.src.Ice.OutgoingAsync.cpp.diff \ patch-ice.cpp.src.Ice.PropertyNames.cpp.diff \ patch-ice.cpp.src.Ice.ProxyFactory.cpp.diff \ patch-ice.cpp.src.Ice.Service.cpp.diff \ patch-ice.cpp.src.Ice.Stream.cpp.diff \ patch-ice.cpp.src.IceGrid.AdminCallbackRouter.cpp.diff \ patch-ice.cpp.src.IceGrid.DescriptorHelper.cpp.diff \ patch-ice.cpp.src.IceGrid.Internal.ice.diff \ patch-ice.cpp.src.IceGrid.InternalRegistryI.cpp.diff \ patch-ice.cpp.src.IceGrid.InternalRegistryI.h.diff \ patch-ice.cpp.src.IceGrid.NodeSessionManager.cpp.diff \ patch-ice.cpp.src.IceGrid.ReplicaCache.cpp.diff \ patch-ice.cpp.src.IceGrid.ReplicaSessionManager.cpp.diff \ patch-ice.cpp.src.IceGrid.SessionI.h.diff \ patch-ice.cpp.src.IceSSL.Instance.cpp.diff \ patch-ice.cpp.src.IceSSL.InstanceF.h.diff \ patch-ice.cpp.src.IceSSL.TrustManager.cpp.diff \ patch-ice.cpp.src.IceSSL.TrustManagerF.h.diff \ patch-ice.cpp.src.IceSSL.Util.cpp.diff \ patch-ice.cpp.src.IceSSL.UtilF.h.diff \ patch-ice.cpp.src.IceStorm.NodeI.cpp.diff \ patch-ice.cpp.src.IceUtil.Cond.cpp.diff \ patch-ice.cpp.src.IceUtil.CountDownLatch.cpp.diff \ patch-ice.cpp.src.IceUtil.CtrlCHandler.cpp.diff \ patch-ice.cpp.src.IceUtil.FileUtil.cpp.diff \ patch-ice.cpp.src.IceUtil.RecMutex.cpp.diff \ patch-ice.cpp.src.Slice.CPlusPlusUtil.cpp.diff \ patch-ice.cpp.src.Slice.FileTracker.cpp.diff \ patch-ice.cpp.src.slice2cpp.Gen.cpp.diff \ patch-ice.cpp.src.slice2cs.Gen.cpp.diff \ patch-ice.cpp.src.slice2java.Gen.cpp.diff \ patch-ice.cpp.test.Glacier2.ssl.Server.cpp.diff \ patch-ice.cpp.test.Ice.background.EndpointI.h.diff \ patch-ice.cpp.test.Ice.custom.AllTests.cpp.diff \ patch-ice.cpp.test.Ice.info.AllTests.cpp.diff \ patch-ice.cpp.test.Ice.properties.run.py.diff \ patch-ice.cpp.test.IceGrid.admin.run.py.diff \ patch-ice.cpp.test.IceUtil.unicode.Client.cpp.diff \ patch-ice.cpp.test.Slice.keyword.Client.cpp.diff \ patch-ice.cpp.test.include.TestCommon.h.diff \ patch-ice.scripts.TestUtil.py.diff \ patch-add-thrift-support-for-java.diff \ patch-add-thrift-support-for-python.diff patch.pre_args -p1 platforms darwin depends_lib port:db46 \ port:expat \ port:libiconv \ port:mcpp \ path:lib/libssl.dylib:openssl \ port:readline build.dir ${worksrcpath}/cpp post-patch { reinplace "s/-O2/-g -O2/" ${build.dir}/config/Make.rules.Darwin # It appears that the 10.4 and 10.5 installed versions of # ${prefix}/include/iconv.h have different definitions of # the inbuf parameter to iconv(), one is 'const char* * inbuf' # and the other is 'char* * inbuf'. The Ice compile will # fail if the wrong #define is choosen by Ice. set fl [open ${prefix}/include/iconv.h] set data [read $fl] close $fl foreach line [split $data \n] { if {[string match "extern size_t iconv*const*" $line]} { reinplace "s/_LIBICONV_VERSION < 0x010B/1/" \ ${build.dir}/include/Ice/IconvStringConverter.h break } } # Prevent name conflicts between libICE.* from xorg-libice and # libIce.* from this port by renaming libIce.* to libZerocIce.*. # For consistency, rename Ice's other shared libraries. foreach f [exec find ${build.dir} -name Makefile] { # To prevent replacements on slice2freeze's --dict argument, # match exactly on a , or a ) that follows ,Ice\w*, e.g.: # $(SLICE2FREEZE) --ice -I$(slicedir) --dict StringIsbnSeqDict,string,Ice::StringSeq reinplace -E {s/,Ice([[:alnum:]]*[,)])/,ZerocIce\1/} ${f} reinplace -E {s/-lIce([ A-Z]|$)/-lZerocIce\1/g} ${f} } reinplace -E {s/-lIce([ A-Z]|$)/-lZerocIce\1/g} \ ${build.dir}/config/Make.rules \ ${build.dir}/config/Make.rules.Darwin } use_configure no build { set jobsargs "" if {${build.jobs} > 1} { set jobsargs " -j${build.jobs}" } set cmd "cd ${build.dir} && make${jobsargs} prefix='${prefix}' embedded_runpath_prefix='${prefix}' CC='${configure.cc}' CXX='${configure.cxx}' OPTIMIZE='yes' BZIP2_HOME='${prefix}' DB_HOME='${prefix}' EXPAT_HOME='${prefix}' OPENSSL_HOME='${prefix}' READLINE_HOME='${prefix}' USE_READLINE=yes MCPP_HOME='${prefix}' LDPLATFORMFLAGS= all && cd doc && make${jobsargs}" ui_debug ${cmd} system ${cmd} } test.run yes test.target test destroot.target prefix="${destroot}${prefix}" \ embedded_runpath_prefix="${prefix}" \ OPTIMIZE="yes" \ BZIP2_HOME="${prefix}" \ DB_HOME="${prefix}" \ EXPAT_HOME="${prefix}" \ OPENSSL_HOME="${prefix}" \ READLINE_HOME="${prefix}" \ USE_READLINE=yes \ MCPP_HOME="${prefix}" \ install post-destroot { set sharedir ${destroot}${prefix}/share set docdir ${sharedir}/doc/${name} xinstall -m 755 -d ${sharedir}/ice file rename ${destroot}${prefix}/config ${sharedir}/ice file rename ${destroot}${prefix}/slice ${sharedir}/slice xinstall -m 755 -d ${docdir} file rename ${destroot}${prefix}/ICE_LICENSE ${docdir} file rename ${destroot}${prefix}/LICENSE ${docdir} file copy ${build.dir}/doc/reference ${docdir} foreach f {CHANGES RELEASE_NOTES} { file copy ${worksrcpath}/${f} ${docdir} } if {[variant_isset demo_source_code]} { system "cd ${build.dir}/demo && make clean" file copy ${build.dir}/demo $docdir } } variant demo_source_code description {Install demonstration C++ code} { }