Revision: 70235 http://trac.macports.org/changeset/70235 Author: michaelld@macports.org Date: 2010-08-02 21:49:01 -0700 (Mon, 02 Aug 2010) Log Message: ----------- Corrects compilation on 10.6, and selection of "universal" arch'es internally to 'configure'. Adds explicit arch selection to avoid default internal "universal" building. Addresses ticket #25907. Modified Paths: -------------- trunk/dports/multimedia/libvpx/Portfile Added Paths: ----------- trunk/dports/multimedia/libvpx/files/patch-build-make-configure.sh.diff trunk/dports/multimedia/libvpx/files/patch-configure.diff Removed Paths: ------------- trunk/dports/multimedia/libvpx/files/patch-configure.sh.diff Modified: trunk/dports/multimedia/libvpx/Portfile =================================================================== --- trunk/dports/multimedia/libvpx/Portfile 2010-08-03 01:36:36 UTC (rev 70234) +++ trunk/dports/multimedia/libvpx/Portfile 2010-08-03 04:49:01 UTC (rev 70235) @@ -1,3 +1,4 @@ +# -*- coding: utf-8; mode: tcl; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; truncate-lines: t -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 @@ -4,6 +5,7 @@ name libvpx version 0.9.1 +revision 1 categories multimedia maintainers nomaintainer platforms darwin @@ -20,22 +22,55 @@ checksums sha1 a18acb7a1a2fd62268e63aab860b43ff04669b9e \ rmd160 365b16848979727689da5e4416978c0a275e1af3 -depends_lib port:yasm +depends_build port:yasm # gcc-4.2: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags universal_variant no -patchfiles patch-configure.sh.diff +# patches for: 10.6; correct "universal" arch default selection; 'sed' scripts. +patchfiles patch-build-make-configure.sh.diff \ + patch-configure.diff +# As of 0.9.1: doesn't handle shared libraries or debug properly on darwin; +# doesn't install docs or examples correctly, so disable them. configure.args --enable-vp8 \ --enable-psnr \ --enable-postproc \ --enable-multithread \ - --enable-runtime-cpu-detect + --enable-runtime-cpu-detect \ + --disable-install-docs \ + --disable-debug-libs \ + --disable-examples + configure.env LD="${configure.cc}" -# FIXME: Building docs would require php5 and doxygen as dependency -configure.args-append --disable-install-docs +# add in when docs are installed correctly +#variant docs description {Build documentation} { +# depends_build-append port:php5 port:doxygen +# configure.args-delete --disable-install-docs +# configure.args-append --enable-install-docs +#} build.target build.args verbose=1 + +# set configure parameters depending on if universal or not +if {![variant_isset universal]} { + # specify only the single target, otherwise 'configure' will try + # for a 'universal' install. + set tgt_isa "${build_arch}" + if {${build_arch} == "i386"} { + set tgt_isa "x86" + } elseif {${build_arch} == "ppc"} { + set tgt_isa "ppc32" + } + configure.args-append --target=${tgt_isa}-${os.platform}${os.major}-gcc +} else { + # clear universal flags; configure will determine them. + configure.universal_cppflags + configure.universal_cflags + configure.universal_cxxflags + configure.universal_ldflags + # tell configure the target; probably not necessary + configure.args-append --target=universal-${os.platform}${os.major}-gcc +} Added: trunk/dports/multimedia/libvpx/files/patch-build-make-configure.sh.diff =================================================================== --- trunk/dports/multimedia/libvpx/files/patch-build-make-configure.sh.diff (rev 0) +++ trunk/dports/multimedia/libvpx/files/patch-build-make-configure.sh.diff 2010-08-03 04:49:01 UTC (rev 70235) @@ -0,0 +1,39 @@ +--- build/make/configure.sh.orig 2010-08-02 23:34:10.000000000 -0400 ++++ build/make/configure.sh 2010-08-02 23:34:50.000000000 -0400 +@@ -375,10 +375,10 @@ + EOF + + if enabled rvct; then cat >> $1 << EOF +-fmt_deps = sed -e 's;^__image.axf;\$(dir \$@)\$(notdir \$<).o \$@;' #hide ++fmt_deps = sed -e 's;^__image.axf\$\$;\$(dir \$@)\$(notdir \$<).o \$@;' #hide + EOF + else cat >> $1 << EOF +-fmt_deps = sed -e 's;^\(.*\)\.o;\$(dir \$@)\1\$(suffix \$<).o \$@;' #hide ++fmt_deps = sed -e 's;^\(.*\)\.o\$\$;\$(dir \$@)\1\$(suffix \$<).o \$@;' #hide + EOF + fi + +@@ -519,6 +519,10 @@ + tgt_isa=universal + tgt_os=darwin9 + ;; ++ *darwin10*) ++ tgt_isa=universal ++ tgt_os=darwin10 ++ ;; + *mingw32*|*cygwin*) + tgt_os=win32 + ;; +@@ -571,6 +575,12 @@ + add_ldflags "-isysroot /Developer/SDKs/MacOSX10.5.sdk" + add_ldflags "-mmacosx-version-min=10.5" + ;; ++ *-darwin10-gcc) ++ add_cflags "-isysroot /Developer/SDKs/MacOSX10.6.sdk" ++ add_cflags "-mmacosx-version-min=10.6" ++ add_ldflags "-isysroot /Developer/SDKs/MacOSX10.6.sdk" ++ add_ldflags "-mmacosx-version-min=10.6" ++ ;; + esac + + # Process ARM architecture variants Added: trunk/dports/multimedia/libvpx/files/patch-configure.diff =================================================================== --- trunk/dports/multimedia/libvpx/files/patch-configure.diff (rev 0) +++ trunk/dports/multimedia/libvpx/files/patch-configure.diff 2010-08-03 04:49:01 UTC (rev 70235) @@ -0,0 +1,54 @@ +--- configure.orig 2010-08-02 23:37:31.000000000 -0400 ++++ configure 2010-08-02 23:41:49.000000000 -0400 +@@ -101,6 +101,8 @@ + all_platforms="${all_platforms} x86-darwin8-icc" + all_platforms="${all_platforms} x86-darwin9-gcc" + all_platforms="${all_platforms} x86-darwin9-icc" ++all_platforms="${all_platforms} x86-darwin10-gcc" ++all_platforms="${all_platforms} x86-darwin10-icc" + all_platforms="${all_platforms} x86-linux-gcc" + all_platforms="${all_platforms} x86-linux-icc" + all_platforms="${all_platforms} x86-solaris-gcc" +@@ -108,11 +110,13 @@ + all_platforms="${all_platforms} x86-win32-vs7" + all_platforms="${all_platforms} x86-win32-vs8" + all_platforms="${all_platforms} x86_64-darwin9-gcc" ++all_platforms="${all_platforms} x86_64-darwin10-gcc" + all_platforms="${all_platforms} x86_64-linux-gcc" + all_platforms="${all_platforms} x86_64-solaris-gcc" + all_platforms="${all_platforms} x86_64-win64-vs8" + all_platforms="${all_platforms} universal-darwin8-gcc" + all_platforms="${all_platforms} universal-darwin9-gcc" ++all_platforms="${all_platforms} universal-darwin10-gcc" + all_platforms="${all_platforms} generic-gnu" + + # all_targets is a list of all targets that can be configured +@@ -455,13 +459,21 @@ + case $toolchain in + universal-darwin*) + local darwin_ver=${tgt_os##darwin} +- fat_bin_archs="$fat_bin_archs ppc32-${tgt_os}-gcc" +- +- # Intel +- fat_bin_archs="$fat_bin_archs x86-${tgt_os}-${tgt_cc}" +- if [ $darwin_ver -gt 8 ]; then +- fat_bin_archs="$fat_bin_archs x86_64-${tgt_os}-${tgt_cc}" +- fi ++ if [ $darwin_ver -eq 8 ]; then ++ # ppc32 and x86 are defaults for universal on 10.4 ++ fat_bin_archs="$fat_bin_archs ppc32-${tgt_os}-${tgt_cc}" ++ fat_bin_archs="$fat_bin_archs x86-${tgt_os}-${tgt_cc}" ++ fi ++ if [ $darwin_ver -eq 9 ]; then ++ # ppc32 and x86 are defaults for universal on 10.5 ++ fat_bin_archs="$fat_bin_archs ppc32-${tgt_os}-${tgt_cc}" ++ fat_bin_archs="$fat_bin_archs x86-${tgt_os}-${tgt_cc}" ++ fi ++ if [ $darwin_ver -eq 10 ]; then ++ # x86 and x86_64 are defaults for universal on 10.6 ++ fat_bin_archs="$fat_bin_archs x86-${tgt_os}-${tgt_cc}" ++ fat_bin_archs="$fat_bin_archs x86_64-${tgt_os}-${tgt_cc}" ++ fi + ;; + esac + Deleted: trunk/dports/multimedia/libvpx/files/patch-configure.sh.diff =================================================================== --- trunk/dports/multimedia/libvpx/files/patch-configure.sh.diff 2010-08-03 01:36:36 UTC (rev 70234) +++ trunk/dports/multimedia/libvpx/files/patch-configure.sh.diff 2010-08-03 04:49:01 UTC (rev 70235) @@ -1,15 +0,0 @@ ---- build/make/configure.sh.orig 2010-08-01 17:29:21.000000000 -0700 -+++ build/make/configure.sh 2010-08-01 17:29:23.000000000 -0700 -@@ -375,10 +375,10 @@ - EOF - - if enabled rvct; then cat >> $1 << EOF --fmt_deps = sed -e 's;^__image.axf;\$(dir \$@)\$(notdir \$<).o \$@;' #hide -+fmt_deps = sed -e 's;^__image.axf\$\$;\$(dir \$@)\$(notdir \$<).o \$@;' #hide - EOF - else cat >> $1 << EOF --fmt_deps = sed -e 's;^\(.*\)\.o;\$(dir \$@)\1\$(suffix \$<).o \$@;' #hide -+fmt_deps = sed -e 's;^\(.*\)\.o\$\$;\$(dir \$@)\1\$(suffix \$<).o \$@;' #hide - EOF - fi -