diff --git a/ShellB3/shallbethree.sh b/ShellB3/shallbethree.sh index 5d1b45ee9f66faa3b5bca635b98caf1dbe7e914c..0f8cde3ba3b8fc64622295f8fa89c1ec65b7087e 100755 --- a/ShellB3/shallbethree.sh +++ b/ShellB3/shallbethree.sh @@ -1249,10 +1249,15 @@ install_macgfortran() { oops "Unknown Mac OS X version: " ${MACOSX_SDK_VERSION} ;; esac + + #clean out libraries we dont need + mkdir libsys + mv lib/lib{mpc,mpfr,gmp,cc1}* lib/gcc libsys + for f in `find * -type f | egrep -v "^(src|build)/" | egrep -v "\.(o|a)\$" ` ; do #bin/* `find lib* -name "*.dylib"` `find lib* -name "*.so"` ; do if [ -z "$(otool -L "$f" 2>/dev/null | grep "not an object" )" ] ; then - for li in `find lib -name "*.dylib"` ; do - echo "-change /usr/local/${li} @rpath/$( echo "${li}" | sed s,/${CPUTYPE}/,/,g )" + for li in `find lib* -name "*.dylib"` ; do + echo "-change /usr/local/$(echo ${li} | sed s,libsys/,lib/,g ) @rpath/$( echo "${li}" | sed s,/${CPUTYPE}/,/,g )" done | xargs install_name_tool -id @rpath/"$(echo $f | sed s,/${CPUTYPE}/,/,g)" \ -add_rpath "@loader_path/$(relative_path $( echo $f | sed s,/${CPUTYPE}/,/,g ) )" \ -change /usr/local/gfortran/lib/libgcc_s.1.dylib @rpath/lib/libgcc_s.1.dylib \ @@ -1382,7 +1387,7 @@ if isDarwin ; then export SB3FFLAGS="--sysroot=${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" export SB3CFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" export SB3CXXFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" - export SB3LDFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -L${SYSROOT}/usr/lib/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -L${BASE}/lib/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -headerpad_max_install_names -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" + export SB3LDFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -L${SYSROOT}/usr/lib/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -L${BASE}/libsys/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -headerpad_max_install_names -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" export SB3CPPFLAGS=" -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" if [ ${NATIVEDARWINVERNUMBER} -gt ${DARWINVERNUMBER} ] ; then export SB3LDFLAGS="${SB3LDFLAGS} -stdlib=libstdc++" #newer build systems will default to libc++. older systems don't even know this parameter @@ -1398,7 +1403,7 @@ if isDarwin ; then export SB3FFLAGS="--sysroot=${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" export SB3CFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" export SB3CXXFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" - export SB3LDFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -L${BASE}/lib/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -lc++ -lc++abi -headerpad_max_install_names -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" + export SB3LDFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -L${BASE}/libsys/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -lc++ -lc++abi -headerpad_max_install_names -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" export SB3CPPFLAGS="-stdlib=libc++ -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" export FORBIDDENLIBS="libstdc++" export USE_SYS_ZLIB=YES @@ -1409,7 +1414,7 @@ if isDarwin ; then export SB3FFLAGS="--sysroot=${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" export SB3CFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" export SB3CXXFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" - export SB3LDFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -L${BASE}/lib/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -lc++ -lc++abi -headerpad_max_install_names -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" + export SB3LDFLAGS="-isysroot ${SYSROOT} ${CPUFLAGS} -L${BASE}/libsys/gcc/${GFORTRANPLATFORM}/${GFORTRANVERSION}/ -lc++ -lc++abi -headerpad_max_install_names -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" export SB3CPPFLAGS="-stdlib=libc++ -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" #--sysroot=$SYSROOT" export FORBIDDENLIBS="libstdc++" ;; @@ -5079,7 +5084,7 @@ bundle_machos() { done ${PYTHON} sbin/thosewhohuntelfs.py . lib Library Applications "$@" \ --migrate=\@executable_path/..,/sw/lib/fontconfig2,/sw/lib/freetype219,/sw/lib/gcc4.6,/sw/lib/gcc4.7,/sw/lib/gcc4.8,/sw,/opt/local,/usr/local \ - --migrateto=@rpath,/usr,/System --exclude='(?:.*?(build|sysbin|libexec)/.*)' || oops "could not make binary bundle relocatable" + --migrateto=@rpath,/usr,/System --exclude='(?:.*?(build|sysbin|libexec|libsys)/.*)' || oops "could not make binary bundle relocatable" } scan_machos() { @@ -5087,7 +5092,7 @@ scan_machos() { SDKR=${SYSROOT} unset SYSROOT fi - ${PYTHON} sbin/thosewhohuntelfs.py . --ldd --exclude='.*?(build|sysbin|libexec)/.*' --forbidden=${FORBIDDENLIBS} || oops "could not make binary bundle relocatable" + ${PYTHON} sbin/thosewhohuntelfs.py . --ldd --exclude='.*?(build|sysbin|libexec|libsys)/.*' --forbidden=${FORBIDDENLIBS} || oops "could not make binary bundle relocatable" if [ "${SDK_ONLY}x" != "YESx" ] ; then export SYSROOT=${SDKR} unset SDKR @@ -5412,7 +5417,8 @@ _make_archive() { pushd .. set -x tar cf - --exclude='ShellB3/build*' \ - --exclude='*.svn*' --exclude='ShellB3/src*' --exclude='ShellB3/sbin*' --exclude='ShellB3/sys*' --exclude='ShellB3/libexec*' --exclude='ShellB3/shallbethree.sh' \ + --exclude='*.svn*' --exclude='ShellB3/src*' --exclude='ShellB3/sbin*' --exclude='ShellB3/sys*' \ + --exclude='ShellB3/libexec*' --exclude='ShellB3/libsys*' --exclude='ShellB3/shallbethree.sh' \ --exclude='*.a' --exclude='*.la' ShellB3 | ${COMPR} > "${COMPRNAME}" RESUL=$? set +x @@ -5473,7 +5479,7 @@ bin_dist() { } clean() { - rm -fr bin build docs include lib libexec etc sysbin lib64 man share requires trim Applications Library examples doc + rm -fr bin build docs include lib libexec libsys etc sysbin lib64 man share requires trim Applications Library examples doc mkdir build }