# $Id: Portfile 39286 2008-08-15 22:43:26Z ryandesign@macports.org $ PortSystem 1.0 name oracle-instantclient version 10.1.0.3 categories databases platforms macosx maintainers ryandesign homepage http://www.oracle.com/technology/software/tech/oci/instantclient/ use_zip yes use_parallel_build no set weird_prefix "" description \ Oracle database connection libraries long_description \ Oracle Instant Client allows you to run your applications without installing the standard Oracle client or having an ORACLE_HOME. platform powerpc { worksrcdir instantclient[join [lrange [split ${version} .] 0 1] _] set weird_prefix /b/729 master_sites \ http://download.oracle.com/otn/mac/instantclient/ distfiles \ instantclient-basic-macosx-${version}${extract.suffix} \ instantclient-sdk-macosx-${version}${extract.suffix} checksums \ instantclient-basic-macosx-${version}${extract.suffix} \ md5 5b38ab0565d6189d2069a4abe0bf2ab2 \ sha1 2f3aa35e99228fd08b686b19eba84ec34db8277b \ rmd160 d1f056f8f1b308c5493f4938b29b55fcb32452cf \ instantclient-sdk-macosx-${version}${extract.suffix} \ md5 79c7cb3f8afaff076fb20bad75b37cc9 \ sha1 486fe1c9a6c5cfc32401e72728ff821a50a22cf9 \ rmd160 c819db7f739b8ca468c8059dfbac31a6a6965938 } platform i386 { pre-fetch { if {${os.major} < 9} { return -code error "${name} on Intel requires Mac OS X 10.5 or greater." } } # This is really awful. Oracle provides different version numbers of the # Instant Client library for PowerPC and Intel. You should not change the # version number of a port conditionally like this. But I don't know how \ # else to handle this here. Hopefully Oracle will release a new version \ # of the libraries with the same version number on both PowerPC and Intel. version 10.2.0.4.0 revision 1 worksrcdir instantclient_[join [lrange [split ${version} .] 0 1] _] set weird_prefix /scratch/plebld/208 master_sites \ http://download.oracle.com/otn/mac/instantclient/10204/ distfiles \ instantclient-basic-macosx-${version}${extract.suffix} \ instantclient-sdk-macosx-${version}${extract.suffix} checksums \ instantclient-basic-macosx-${version}${extract.suffix} \ md5 383826be2873ece610da63b833eff052 \ sha1 91e408a580dc5a415e5906ff71c837d6a8b628c9 \ rmd160 fdd5d8a7d6034ba852a06ce378e1775f13a1519d \ instantclient-sdk-macosx-${version}${extract.suffix} \ md5 8aa52afeb9529d953c494e0233eb7c52 \ sha1 6f32cda591c61112c6f963698fdc829ab6a59e7f \ rmd160 e672eadc6fb0eccbe42cd49663128f011abfe493 } use_configure no universal_variant no set lib_dir ${prefix}/lib/oracle build { # The pre-built libraries use weird prefixes and Oracle recommends setting # DYLD_LIBRARY_PATH to deal with this. I would rather fix the paths in the # libraries at install time. # Annoyingly, I can't do that for the Intel version right now because # install_name_tool says "malformed object (unknown load command 8)" (or 7). # For each dylib in the distribution, change the directory of its own # "soname" to our ${lib_dir}. foreach lib [glob -directory ${worksrcpath} *.dylib*] { system "install_name_tool -id ${lib_dir}/[strsed ${lib} /^.*\\///] ${lib}" # Then for each dependent dylib with a weird path that this dylib # references, fix the reference to use our ${lib_dir}. foreach dep [exec otool -L ${lib}] { if [string match "${weird_prefix}/*" ${dep}] { system "install_name_tool -change ${dep} ${lib_dir}/[strsed ${dep} /^.*\\///] ${lib}" } } } } destroot { xinstall -d ${destroot}${lib_dir} eval xinstall \ [glob -directory ${worksrcpath} *.dylib*] \ [glob -directory ${worksrcpath} *.jar] \ ${destroot}${lib_dir} # php5 +oracle complains without this symlink. ln -s libclntsh.dylib.10.1 ${destroot}${lib_dir}/libclntsh.dylib # You would think the includes should go in ${prefix}/include/oracle, but # the instantclient layout wants it in ${prefix}/lib/oracle/sdk/include xinstall -d ${destroot}${lib_dir}/sdk copy ${worksrcpath}/sdk/include ${destroot}${lib_dir}/sdk } livecheck.check regex livecheck.url ${homepage}htdocs/macsoft.html livecheck.regex instantclient-basic-macosx-(\[0-9.\]+)\\.zip