From 45e4c1012336a0b5149aa4b34763cbe0d344ba15 Mon Sep 17 00:00:00 2001 From: Brad Pitcher Date: Sun, 5 Feb 2012 05:14:35 +0800 Subject: Fix linux releases diff --git a/scripts/chrpath_linux.c b/scripts/chrpath_linux.c index 685913c..28e3a5e 100644 --- a/scripts/chrpath_linux.c +++ b/scripts/chrpath_linux.c @@ -107,9 +107,6 @@ /* Define to the version of this package. */ #define PACKAGE_VERSION ""0.13"" -/* The size of a `void *', as computed by sizeof. */ -#define SIZEOF_VOID_P 4 - /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 diff --git a/scripts/installer-linux.sh b/scripts/installer-linux.sh new file mode 100755 index 0000000..8b3fc6d --- /dev/null +++ b/scripts/installer-linux.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# change to the install source directory +cd "$( dirname "$( type -p $0 )" )" + +if ! [ -f bin/openscad -a -d lib/openscad -a -d examples -a -d libraries ]; then + echo "Error: Can't change to install source directory!" >&2 + exit 1 +fi + +echo "This will install openscad. Please enter the install prefix" +echo "or press Ctrl-C to abort the install process:" +read -p "[/usr/local]: " prefix + +if [ "$prefix" = "" ]; then + prefix="/usr/local" +fi + +if [ ! -d "$prefix" ]; then + echo; echo "Install prefix \`$prefix' does not exist. Press ENTER to continue" + echo "or press Ctrl-C to abort the install process:" + read -p "press enter to continue> " +fi + +mkdir -p "$prefix"/{bin,lib/openscad,share/openscad/examples,share/openscad/libraries} + +if ! [ -w "$prefix"/bin/ -a -w "$prefix"/lib/openscad -a -w "$prefix"/share/openscad ]; then + echo "You does not seam to have write permissions for prefix \`$prefix'!" >&2 + echo "Maybe you should have run this install script using \`sudo'?" >&2 + exit 1 +fi + +echo "Copying application wrappers..." +cp -rv bin/. "$prefix"/bin/ + +echo "Copying application..." +cp -rv lib/. "$prefix"/lib/ + +echo "Copying examples..." +cp -rv examples/. "$prefix"/share/openscad/examples/ + +echo "Copying libraries..." +cp -rv libraries/. "$prefix"/share/openscad/libraries/ + +echo "Installation finished. Have a nice day." diff --git a/scripts/openscad-linux b/scripts/openscad-linux new file mode 100755 index 0000000..1246199 --- /dev/null +++ b/scripts/openscad-linux @@ -0,0 +1,8 @@ +#!/bin/bash + +cd "$( dirname "$( type -p $0 )" )" +libdir=$PWD/../lib/openscad/ +cd "$OLDPWD" + +export LD_LIBRARY_PATH="$libdir${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" +exec $libdir/openscad "$@" diff --git a/scripts/release-common.sh b/scripts/release-common.sh index 72ae29c..80c9795 100755 --- a/scripts/release-common.sh +++ b/scripts/release-common.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # # This script creates a binary release of OpenSCAD. # This should work under Mac OS X, Windows (msys), and Linux cross-compiling @@ -24,10 +24,20 @@ printUsage() echo " Example: $0 -v 2010.01 } -if [[ $OSTYPE =~ "darwin" ]]; then +if [[ "$OSTYPE" =~ "darwin" ]]; then OS=MACOSX elif [[ $OSTYPE == "msys" ]]; then OS=WIN +elif [[ $OSTYPE == "linux-gnu" ]]; then + OS=LINUX + if [[ `uname -m` == "x86_64" ]]; then + ARCH=64 + else + ARCH=32 + fi + echo "Detected ARCH: $ARCH" +elif [[ $OSTYPE == "mingw-cross-env" ]]; then + OS=LINXWIN fi echo "Detected OS: $OS" @@ -47,7 +57,7 @@ fi echo "Building openscad-$VERSION $CONFIGURATION..." case $OS in - MACOSX) + LINUX|MACOSX) CONFIG=deploy TARGET= ;; @@ -83,7 +93,7 @@ case $OS in rm -rf OpenSCAD.app ;; WIN) - #if the following files are missing their tried removal stops the build process on msys + #if the following files are missing their tried removal stops the build process on msys touch -t 200012121010 parser_yacc.h parser_yacc.cpp lexer_lex.cpp ;; esac @@ -158,4 +168,24 @@ case $OS in echo "Binary created: OpenSCAD-$VERSION.zip" echo "Installer created: OpenSCAD-$VERSION-Installer.exe" ;; + LINUX) + # Do stuff from release-linux.sh + mkdir openscad-$VERSION/bin + mkdir -p openscad-$VERSION/lib/openscad + cp scripts/openscad-linux openscad-$VERSION/bin/openscad + cp openscad openscad-$VERSION/lib/openscad/ + if [[ $ARCH == 64 ]]; then + gcc -o chrpath_linux -DSIZEOF_VOID_P=8 scripts/chrpath_linux.c + else + gcc -o chrpath_linux -DSIZEOF_VOID_P=4 scripts/chrpath_linux.c + fi + ./chrpath_linux -d openscad-$VERSION/lib/openscad/openscad + ldd openscad | sed -re 's,.* => ,,; s,[\t ].*,,;' -e '/Qt|boost/ { p; d; };' \ + -e '/lib(icu.*|stdc.*|audio|CGAL|GLEW|opencsg|png|gmp|gmpxx|mpfr)\.so/ { p; d; };' \ + -e 'd;' | xargs cp -vt openscad-$VERSION/lib/openscad/ + strip openscad-$VERSION/lib/openscad/* + cp scripts/installer-linux.sh openscad-$VERSION/install.sh + chmod 755 -R openscad-$VERSION/ + tar cz openscad-$VERSION > openscad-$VERSION.x86-64.tar.gz + ;; esac diff --git a/scripts/release-linux.sh b/scripts/release-linux.sh deleted file mode 100755 index e1eb001..0000000 --- a/scripts/release-linux.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/bash -# WARNING: This script might only work with the authors setup... - -VERSION=`date "+%Y.%m.%d"` -#VERSION=2011.12 - -set -ex - -# svnclean - -qmake-qt4 VERSION=$VERSION QMAKE_CXXFLAGS_RELEASE="-O3 -march=pentium" -make - -rm -rf release -mkdir -p release/{bin,lib/openscad,examples,libraries} - -cat > release/bin/openscad << "EOT" -#!/bin/bash - -cd "$( dirname "$( type -p $0 )" )" -libdir=$PWD/../lib/openscad/ -cd "$OLDPWD" - -export LD_LIBRARY_PATH="$libdir${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" -exec $libdir/openscad "$@" -EOT - -cp openscad release/lib/openscad/ -gcc -o chrpath_linux scripts/chrpath_linux.c -./chrpath_linux -d release/lib/openscad/openscad - -ldd openscad | sed -re 's,.* => ,,; s,[\t ].*,,;' -e '/Qt|boost/ { p; d; };' \ - -e '/lib(audio|CGAL|GLEW|opencsg|png|gmp|gmpxx|mpfr)\.so/ { p; d; };' \ - -e 'd;' | xargs cp -vt release/lib/openscad/ -strip release/lib/openscad/* - -cat > release/install.sh << "EOT" -#!/bin/bash - -# change to the install source directory -cd "$( dirname "$( type -p $0 )" )" - -if ! [ -f bin/openscad -a -d lib/openscad -a -d examples -a -d libraries ]; then - echo "Error: Can't change to install source directory!" >&2 - exit 1 -fi - -echo "This will install openscad. Please enter the install prefix" -echo "or press Ctrl-C to abort the install process:" -read -p "[/usr/local]: " prefix - -if [ "$prefix" = "" ]; then - prefix="/usr/local" -fi - -if [ ! -d "$prefix" ]; then - echo; echo "Install prefix \`$prefix' does not exist. Press ENTER to continue" - echo "or press Ctrl-C to abort the install process:" - read -p "press enter to continue> " -fi - -mkdir -p "$prefix"/{bin,lib/openscad,share/openscad/examples,share/openscad/libraries} - -if ! [ -w "$prefix"/bin/ -a -w "$prefix"/lib/openscad -a -w "$prefix"/share/openscad ]; then - echo "You does not seam to have write permissions for prefix \`$prefix'!" >&2 - echo "Maybe you should have run this install script using \`sudo'?" >&2 - exit 1 -fi - -echo "Copying application wrappers..." -cp -rv bin/. "$prefix"/bin/ - -echo "Copying application..." -cp -rv lib/. "$prefix"/lib/ - -echo "Copying examples..." -cp -rv examples/. "$prefix"/share/openscad/examples/ - -echo "Copying libraries..." -cp -rv libraries/. "$prefix"/share/openscad/libraries/ - -echo "Installation finished. Have a nice day." -EOT - -chmod 755 -R release/ - -cp examples/* release/examples/ -chmod 644 -R release/examples/* - -cp -R libraries/* release/libraries/ -chmod -R u=rwx,go=r,+X release/libraries/* -rm -rf `find release/libraries -name ".git"` -- cgit v0.10.1 From 99633dd0da51d5797599101343c1513647b890cc Mon Sep 17 00:00:00 2001 From: Andrew Plumb Date: Wed, 8 Feb 2012 15:07:55 -0500 Subject: Conditionally download bundles if they don't exist. Saves having to re-download the bundles every time, assuming downloaded successfully the (N-1)th time. diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh index 4bcafd3..34f9215 100755 --- a/scripts/macosx-build-dependencies.sh +++ b/scripts/macosx-build-dependencies.sh @@ -30,8 +30,10 @@ build_gmp() version=$1 echo "Building gmp" $version "..." cd $BASEDIR/src - rm -rf gmp* - curl -O ftp://ftp.gmplib.org/pub/gmp-$version/gmp-$version.tar.bz2 + rm -rf gmp-$version + if [ ! -f gmp-$version.tar.bz2 ]; then + curl -O ftp://ftp.gmplib.org/pub/gmp-$version/gmp-$version.tar.bz2 + fi tar xjf gmp-$version.tar.bz2 cd gmp-$version # 32-bit version @@ -101,8 +103,10 @@ build_mpfr() version=$1 echo "Building mpfr" $version "..." cd $BASEDIR/src - rm -rf mpfr* - curl -O http://www.mpfr.org/mpfr-current/mpfr-$version.tar.bz2 + rm -rf mpfr-$version + if [ ! -f mpfr-$version.tar.bz2 ]; then + curl -O http://www.mpfr.org/mpfr-current/mpfr-$version.tar.bz2 + fi tar xjf mpfr-$version.tar.bz2 cd mpfr-$version @@ -135,8 +139,10 @@ build_boost() bversion=`echo $version | tr "." "_"` echo "Building boost" $version "..." cd $BASEDIR/src - rm -rf boost* - curl -LO http://downloads.sourceforge.net/project/boost/boost/$version/boost_$bversion.tar.bz2 + rm -rf boost_$bversion + if [ ! -f boost_$bversion.tar.bz2 ]; then + curl -LO http://downloads.sourceforge.net/project/boost/boost/$version/boost_$bversion.tar.bz2 + fi tar xjf boost_$bversion.tar.bz2 cd boost_$bversion # We only need the thread and program_options libraries @@ -158,10 +164,12 @@ build_cgal() version=$1 echo "Building CGAL" $version "..." cd $BASEDIR/src - rm -rf CGAL* - curl -O https://gforge.inria.fr/frs/download.php/29125/CGAL-$version.tar.gz -# curl -O https://gforge.inria.fr/frs/download.php/28500/CGAL-$version.tar.gz -# curl -O https://gforge.inria.fr/frs/download.php/27641/CGAL-$version.tar.gz + rm -rf CGAL-$version + if [ ! -f CGAL-$version.tar.gz ]; then + curl -O https://gforge.inria.fr/frs/download.php/29125/CGAL-$version.tar.gz + # curl -O https://gforge.inria.fr/frs/download.php/28500/CGAL-$version.tar.gz + # curl -O https://gforge.inria.fr/frs/download.php/27641/CGAL-$version.tar.gz + fi tar xzf CGAL-$version.tar.gz cd CGAL-$version # We build a static lib. Not really necessary, but it's well tested. @@ -175,8 +183,10 @@ build_glew() version=$1 echo "Building GLEW" $version "..." cd $BASEDIR/src - rm -r glew-* - curl -LO http://downloads.sourceforge.net/project/glew/glew/$version/glew-$version.tgz + rm -rf glew-$version + if [ ! -f glew-$version.tgz ]; then + curl -LO http://downloads.sourceforge.net/project/glew/glew/$version/glew-$version.tgz + fi tar xzf glew-$version.tgz cd glew-$version mkdir -p $DEPLOYDIR/lib/pkgconfig @@ -191,7 +201,9 @@ build_opencsg() echo "Building OpenCSG" $version "..." cd $BASEDIR/src rm -rf OpenCSG-$version - curl -O http://www.opencsg.org/OpenCSG-$version.tar.gz + if [ ! -f OpenCSG-$version.tar.gz ]; then + curl -O http://www.opencsg.org/OpenCSG-$version.tar.gz + fi tar xzf OpenCSG-$version.tar.gz cd OpenCSG-$version patch -p1 < $OPENSCADDIR/patches/OpenCSG-$version-MacOSX-port.patch @@ -199,6 +211,11 @@ build_opencsg() make install } +if [ ! -f $OPENSCADDIR/openscad.pro ]; then + echo "Must be run from the OpenSCAD source root directory" + exit 0 +fi + echo "Using basedir:" $BASEDIR mkdir -p $SRCDIR $DEPLOYDIR build_gmp 5.0.3 -- cgit v0.10.1 From fa5a012c7c66bec74d3903ee4462107c37407f33 Mon Sep 17 00:00:00 2001 From: Andrew Plumb Date: Thu, 9 Feb 2012 10:40:10 -0500 Subject: Adding CCACHE_BASEDIR & PATH update. Explicitly added CC_CACHE_BASEDIR and prepended /opt/local/libexec/ccache to PATH as per setenv_mjau.sh settings. diff --git a/openscad.pro.user b/openscad.pro.user index 4bce49a..c96e00a 100644 --- a/openscad.pro.user +++ b/openscad.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget @@ -150,6 +150,8 @@ false OPENSCAD_LIBRARIES=$$PWD/../libraries/install + CCACHE_BASEDIR=$$PWD/.. + PATH=/opt/local/libexec/ccache:/usr/bin:/Users/clothbot/QtSDK/Desktop/Qt/474/gcc/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin Desktop Qt 4.7.4 for GCC (Qt SDK) Debug -- cgit v0.10.1 From c653a961dd8c19cd4ed4c0ebbb5a1df59693f332 Mon Sep 17 00:00:00 2001 From: Andrew Plumb Date: Thu, 9 Feb 2012 21:19:27 -0500 Subject: Parametrized version-min and added eigen2. - Made "macosx-version-min" set via MAC_OSX_VERSION_MIN variable. - Added build-deps for eigen2 - Added EIGEN2DIR to openscad.pro.user - Unchecked "Use Shadow Build" to build OpenSCAD.app in project directory. diff --git a/openscad.pro.user b/openscad.pro.user index c96e00a..e53f571 100644 --- a/openscad.pro.user +++ b/openscad.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget @@ -152,14 +152,15 @@ OPENSCAD_LIBRARIES=$$PWD/../libraries/install CCACHE_BASEDIR=$$PWD/.. PATH=/opt/local/libexec/ccache:/usr/bin:/Users/clothbot/QtSDK/Desktop/Qt/474/gcc/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin + EIGEN2DIR=$$PWD/../libraries/install/include/eigen2 Desktop Qt 4.7.4 for GCC (Qt SDK) Debug Qt4ProjectManager.Qt4BuildConfiguration 2 - /Users/clothbot/Projects/github/clothbot/openscad-build-desktop + /Users/clothbot/Projects/github/clothbot/openscad 3 - true + false INVALID diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh index 34f9215..385d603 100755 --- a/scripts/macosx-build-dependencies.sh +++ b/scripts/macosx-build-dependencies.sh @@ -21,6 +21,7 @@ BASEDIR=$PWD/../libraries OPENSCADDIR=$PWD SRCDIR=$BASEDIR/src DEPLOYDIR=$BASEDIR/install +MAC_OSX_VERSION_MIN=10.7 # Hack warning: gmplib is built separately in 32-bit and 64-bit mode # and then merged afterwards. gmplib's header files are dependant on @@ -39,13 +40,13 @@ build_gmp() # 32-bit version mkdir build-i386 cd build-i386 - ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=10.5 -arch i386" LDFLAGS="-mmacosx-version-min=10.5 -arch i386" ABI=32 --enable-cxx + ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" ABI=32 --enable-cxx make install cd .. # 64-bit version mkdir build-x86_64 cd build-x86_64 - ../configure --prefix=$DEPLOYDIR/x86_64 "CFLAGS=-mmacosx-version-min=10.5 -arch x86_64" LDFLAGS="-mmacosx-version-min=10.5 -arch x86_64" ABI=64 --enable-cxx + ../configure --prefix=$DEPLOYDIR/x86_64 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" ABI=64 --enable-cxx make install # merge @@ -113,14 +114,14 @@ build_mpfr() # 32-bit version mkdir build-i386 cd build-i386 - ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=10.5 -arch i386" LDFLAGS="-mmacosx-version-min=10.5 -arch i386" + ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" make install cd .. # 64-bit version mkdir build-x86_64 cd build-x86_64 - ../configure --prefix=$DEPLOYDIR/x86_64 --with-gmp=$DEPLOYDIR/x86_64 CFLAGS="-mmacosx-version-min=10.5 -arch x86_64" LDFLAGS="-mmacosx-version-min=10.5 -arch x86_64" + ../configure --prefix=$DEPLOYDIR/x86_64 --with-gmp=$DEPLOYDIR/x86_64 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" make install # merge @@ -147,7 +148,7 @@ build_boost() cd boost_$bversion # We only need the thread and program_options libraries ./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex - ./bjam cflags="-mmacosx-version-min=10.5 -arch i386 -arch x86_64" linkflags="-mmacosx-version-min=10.5 -arch i386 -arch x86_64" + ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" ./bjam install install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib install_name_tool -id $DEPLOYDIR/lib/libboost_program_options.dylib $DEPLOYDIR/lib/libboost_program_options.dylib @@ -173,7 +174,7 @@ build_cgal() tar xzf CGAL-$version.tar.gz cd CGAL-$version # We build a static lib. Not really necessary, but it's well tested. - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="10.5" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DBOOST_ROOT=$DEPLOYDIR + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DBOOST_ROOT=$DEPLOYDIR make -j4 make install } @@ -192,7 +193,7 @@ build_glew() mkdir -p $DEPLOYDIR/lib/pkgconfig # To avoid running strip on a fat archive as this is not supported by strip sed -i bak -e "s/\$(STRIP) -x lib\/\$(LIB.STATIC)//" Makefile - make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=10.5 -arch i386 -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=10.5 -arch i386 -arch x86_64" install + make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" install } build_opencsg() @@ -211,13 +212,36 @@ build_opencsg() make install } +build_eigen() +{ + version=$1 + echo "Building eigen" $version "..." + cd $BASEDIR/src + rm -rf eigen-$version + ## Directory name for v2.0.17 + rm -rf eigen-eigen-b23437e61a07 + if [ ! -f eigen-$version.tar.bz2 ]; then + curl -LO http://bitbucket.org/eigen/eigen/get/$version.tar.bz2 + mv $version.tar.bz2 eigen-$version.tar.bz2 + fi + tar xjf eigen-$version.tar.bz2 + ## File name for v2.0.17 + ln -s eigen-eigen-b23437e61a07 eigen-$version + cd eigen-$version + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" + make -j4 + make install +} + if [ ! -f $OPENSCADDIR/openscad.pro ]; then echo "Must be run from the OpenSCAD source root directory" exit 0 fi echo "Using basedir:" $BASEDIR +rm -rf $DEPLOYDIR mkdir -p $SRCDIR $DEPLOYDIR +build_eigen 2.0.17 build_gmp 5.0.3 build_mpfr 3.1.0 build_boost 1.47.0 -- cgit v0.10.1 From e1134e06f43a090589d70f272293c518d89888a8 Mon Sep 17 00:00:00 2001 From: Andrew Plumb Date: Sun, 12 Feb 2012 12:55:30 -0500 Subject: Build Deps for 64-bit only mac osx To work with QtSDK 4.7.4 and more current versions of Mac OS X. diff --git a/scripts/macosx-build-dependencies-64bit.sh b/scripts/macosx-build-dependencies-64bit.sh new file mode 100755 index 0000000..7d411de --- /dev/null +++ b/scripts/macosx-build-dependencies-64bit.sh @@ -0,0 +1,251 @@ +#!/bin/sh -e +# +# This script builds all library dependencies of OpenSCAD for Mac OS X. +# The libraries will be build in 64-bit mode and backwards compatible with +# 10.6 +# +# Usage: +# - Edit the BASEDIR variable. This is where libraries will be built and installed +# - Edit the OPENSCADDIR variable. This is where patches are fetched from +# +# Prerequisites: +# - MacPorts: curl eigen +# - Qt4 +# +# FIXME: +# o Verbose option +# o Port to other platforms? +# + +BASEDIR=$PWD/../libraries +OPENSCADDIR=$PWD +SRCDIR=$BASEDIR/src +DEPLOYDIR=$BASEDIR/install +MAC_OSX_VERSION_MIN=10.6 + +# Hack warning: gmplib is built separately in 32-bit and 64-bit mode +# and then merged afterwards. gmplib's header files are dependant on +# the CPU architecture on which configure was run and will be patched accordingly. +build_gmp() +{ + version=$1 + echo "Building gmp" $version "..." + cd $BASEDIR/src + rm -rf gmp-$version + if [ ! -f gmp-$version.tar.bz2 ]; then + curl -O ftp://ftp.gmplib.org/pub/gmp-$version/gmp-$version.tar.bz2 + fi + tar xjf gmp-$version.tar.bz2 + cd gmp-$version + # 32-bit version + mkdir build-i386 + cd build-i386 + ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" ABI=32 --enable-cxx + make install + cd .. + # 64-bit version + mkdir build-x86_64 + cd build-x86_64 + ../configure --prefix=$DEPLOYDIR/x86_64 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" ABI=64 --enable-cxx + make install + + # merge + cd $DEPLOYDIR + mkdir -p lib + lipo -create i386/lib/libgmp.dylib x86_64/lib/libgmp.dylib -output lib/libgmp.dylib + install_name_tool -id $DEPLOYDIR/lib/libgmp.dylib lib/libgmp.dylib + cp lib/libgmp.dylib i386/lib/ + cp lib/libgmp.dylib x86_64/lib/ + mkdir -p include + cp x86_64/include/gmp.h include/ + cp x86_64/include/gmpxx.h include/ + + patch -p0 include/gmp.h << EOF +--- gmp.h.orig 2011-11-08 01:03:41.000000000 +0100 ++++ gmp.h 2011-11-08 01:06:21.000000000 +0100 +@@ -26,12 +26,28 @@ + #endif + + +-/* Instantiated by configure. */ +-#if ! defined (__GMP_WITHIN_CONFIGURE) ++#if defined(__i386__) ++#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 ++#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 ++#define GMP_LIMB_BITS 32 ++#define GMP_NAIL_BITS 0 ++#elif defined(__x86_64__) + #define __GMP_HAVE_HOST_CPU_FAMILY_power 0 + #define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 + #define GMP_LIMB_BITS 64 + #define GMP_NAIL_BITS 0 ++#elif defined(__ppc__) ++#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 ++#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 ++#define GMP_LIMB_BITS 32 ++#define GMP_NAIL_BITS 0 ++#elif defined(__powerpc64__) ++#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 ++#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 ++#define GMP_LIMB_BITS 64 ++#define GMP_NAIL_BITS 0 ++#else ++#error Unsupported architecture + #endif + #define GMP_NUMB_BITS (GMP_LIMB_BITS - GMP_NAIL_BITS) + #define GMP_NUMB_MASK ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS) +EOF +} + +# As with gmplib, mpfr is built separately in 32-bit and 64-bit mode and then merged +# afterwards. +build_mpfr() +{ + version=$1 + echo "Building mpfr" $version "..." + cd $BASEDIR/src + rm -rf mpfr-$version + if [ ! -f mpfr-$version.tar.bz2 ]; then + curl -O http://www.mpfr.org/mpfr-current/mpfr-$version.tar.bz2 + fi + tar xjf mpfr-$version.tar.bz2 + cd mpfr-$version + + # 32-bit version + mkdir build-i386 + cd build-i386 + ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" + make install + cd .. + + # 64-bit version + mkdir build-x86_64 + cd build-x86_64 + ../configure --prefix=$DEPLOYDIR/x86_64 --with-gmp=$DEPLOYDIR/x86_64 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" + make install + + # merge + cd $DEPLOYDIR + lipo -create i386/lib/libmpfr.dylib x86_64/lib/libmpfr.dylib -output lib/libmpfr.dylib + install_name_tool -id $DEPLOYDIR/lib/libmpfr.dylib lib/libmpfr.dylib + mkdir -p include + cp x86_64/include/mpfr.h include/ + cp x86_64/include/mpf2mpfr.h include/ +} + + +build_boost() +{ + version=$1 + bversion=`echo $version | tr "." "_"` + echo "Building boost" $version "..." + cd $BASEDIR/src + rm -rf boost_$bversion + if [ ! -f boost_$bversion.tar.bz2 ]; then + curl -LO http://downloads.sourceforge.net/project/boost/boost/$version/boost_$bversion.tar.bz2 + fi + tar xjf boost_$bversion.tar.bz2 + cd boost_$bversion + # We only need the thread and program_options libraries + ./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex + ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" + ./bjam install + install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib + install_name_tool -id $DEPLOYDIR/lib/libboost_program_options.dylib $DEPLOYDIR/lib/libboost_program_options.dylib + install_name_tool -id $DEPLOYDIR/lib/libboost_filesystem.dylib $DEPLOYDIR/lib/libboost_filesystem.dylib + install_name_tool -change libboost_system.dylib $DEPLOYDIR/lib/libboost_system.dylib $DEPLOYDIR/lib/libboost_filesystem.dylib + install_name_tool -id $DEPLOYDIR/lib/libboost_system.dylib $DEPLOYDIR/lib/libboost_system.dylib + install_name_tool -id $DEPLOYDIR/lib/libboost_regex.dylib $DEPLOYDIR/lib/libboost_regex.dylib + + +} + +build_cgal() +{ + version=$1 + echo "Building CGAL" $version "..." + cd $BASEDIR/src + rm -rf CGAL-$version + if [ ! -f CGAL-$version.tar.gz ]; then + curl -O https://gforge.inria.fr/frs/download.php/29125/CGAL-$version.tar.gz + # curl -O https://gforge.inria.fr/frs/download.php/28500/CGAL-$version.tar.gz + # curl -O https://gforge.inria.fr/frs/download.php/27641/CGAL-$version.tar.gz + fi + tar xzf CGAL-$version.tar.gz + cd CGAL-$version + # We build a static lib. Not really necessary, but it's well tested. + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DBOOST_ROOT=$DEPLOYDIR + make -j4 + make install +} + +build_glew() +{ + version=$1 + echo "Building GLEW" $version "..." + cd $BASEDIR/src + rm -rf glew-$version + if [ ! -f glew-$version.tgz ]; then + curl -LO http://downloads.sourceforge.net/project/glew/glew/$version/glew-$version.tgz + fi + tar xzf glew-$version.tgz + cd glew-$version + mkdir -p $DEPLOYDIR/lib/pkgconfig + # To avoid running strip on a fat archive as this is not supported by strip + sed -i bak -e "s/\$(STRIP) -x lib\/\$(LIB.STATIC)//" Makefile + make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" install +} + +build_opencsg() +{ + version=$1 + echo "Building OpenCSG" $version "..." + cd $BASEDIR/src + rm -rf OpenCSG-$version + if [ ! -f OpenCSG-$version.tar.gz ]; then + curl -O http://www.opencsg.org/OpenCSG-$version.tar.gz + fi + tar xzf OpenCSG-$version.tar.gz + cd OpenCSG-$version + patch -p1 < $OPENSCADDIR/patches/OpenCSG-$version-MacOSX-port.patch + OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86 x86_64" + make install +} + +build_eigen() +{ + version=$1 + echo "Building eigen" $version "..." + cd $BASEDIR/src + rm -rf eigen-$version + ## Directory name for v2.0.17 + rm -rf eigen-eigen-b23437e61a07 + if [ ! -f eigen-$version.tar.bz2 ]; then + curl -LO http://bitbucket.org/eigen/eigen/get/$version.tar.bz2 + mv $version.tar.bz2 eigen-$version.tar.bz2 + fi + tar xjf eigen-$version.tar.bz2 + ## File name for v2.0.17 + ln -s eigen-eigen-b23437e61a07 eigen-$version + cd eigen-$version + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" + make -j4 + make install +} + +if [ ! -f $OPENSCADDIR/openscad.pro ]; then + echo "Must be run from the OpenSCAD source root directory" + exit 0 +fi + +echo "Using basedir:" $BASEDIR +rm -rf $DEPLOYDIR +mkdir -p $SRCDIR $DEPLOYDIR +build_eigen 2.0.17 +build_gmp 5.0.3 +build_mpfr 3.1.0 +build_boost 1.47.0 +# NB! For CGAL, also update the actual download URL in the function +build_cgal 3.9 +build_glew 1.7.0 +build_opencsg 1.3.2 -- cgit v0.10.1 From b633845e55c1733ecd9fa4a01606fd7bdafacc48 Mon Sep 17 00:00:00 2001 From: Andrew Plumb Date: Mon, 13 Feb 2012 11:22:06 -0500 Subject: EIGEN2DIR and MAC_OSX_VERSION_MIN Defining EIGEN2DIR in setenv. Set MAC_OSX_VERSION_MIN=10.5. diff --git a/scripts/macosx-build-dependencies-64bit.sh b/scripts/macosx-build-dependencies-64bit.sh index 7d411de..e40c5ab 100755 --- a/scripts/macosx-build-dependencies-64bit.sh +++ b/scripts/macosx-build-dependencies-64bit.sh @@ -148,7 +148,7 @@ build_boost() cd boost_$bversion # We only need the thread and program_options libraries ./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex - ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" + ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" ./bjam install install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib install_name_tool -id $DEPLOYDIR/lib/libboost_program_options.dylib $DEPLOYDIR/lib/libboost_program_options.dylib @@ -174,7 +174,7 @@ build_cgal() tar xzf CGAL-$version.tar.gz cd CGAL-$version # We build a static lib. Not really necessary, but it's well tested. - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DBOOST_ROOT=$DEPLOYDIR + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DBOOST_ROOT=$DEPLOYDIR make -j4 make install } @@ -193,7 +193,7 @@ build_glew() mkdir -p $DEPLOYDIR/lib/pkgconfig # To avoid running strip on a fat archive as this is not supported by strip sed -i bak -e "s/\$(STRIP) -x lib\/\$(LIB.STATIC)//" Makefile - make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" install + make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" install } build_opencsg() @@ -208,7 +208,7 @@ build_opencsg() tar xzf OpenCSG-$version.tar.gz cd OpenCSG-$version patch -p1 < $OPENSCADDIR/patches/OpenCSG-$version-MacOSX-port.patch - OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86 x86_64" + OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86_64" make install } @@ -228,7 +228,7 @@ build_eigen() ## File name for v2.0.17 ln -s eigen-eigen-b23437e61a07 eigen-$version cd eigen-$version - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64" make -j4 make install } diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh index 385d603..a52f1fe 100755 --- a/scripts/macosx-build-dependencies.sh +++ b/scripts/macosx-build-dependencies.sh @@ -21,7 +21,7 @@ BASEDIR=$PWD/../libraries OPENSCADDIR=$PWD SRCDIR=$BASEDIR/src DEPLOYDIR=$BASEDIR/install -MAC_OSX_VERSION_MIN=10.7 +MAC_OSX_VERSION_MIN=10.5 # Hack warning: gmplib is built separately in 32-bit and 64-bit mode # and then merged afterwards. gmplib's header files are dependant on diff --git a/setenv_mjau.sh b/setenv_mjau.sh index 3b9fd92..c96f79d 100644 --- a/setenv_mjau.sh +++ b/setenv_mjau.sh @@ -5,6 +5,7 @@ export DYLD_LIBRARY_PATH=$OPENSCAD_LIBRARIES/lib #export CGALDIR=$PWD/../install/CGAL-3.6 #export QCODEEDITDIR=$PWD/../qcodeedit-2.2.3/install #export DYLD_LIBRARY_PATH=$OPENCSGDIR/lib:$QCODEEDITDIR/lib +export EIGEN2DIR=$OPENSCAD_LIBRARIES # ccache: export PATH=/opt/local/libexec/ccache:$PATH -- cgit v0.10.1 From d4efb54284f0781aee40cb660712fa15256676df Mon Sep 17 00:00:00 2001 From: Andrew Plumb Date: Mon, 13 Feb 2012 11:23:18 -0500 Subject: Cleaned up unsigned int compiler warnings diff --git a/src/PolySetCGALEvaluator.cc b/src/PolySetCGALEvaluator.cc index c1bdea4..7afb359 100644 --- a/src/PolySetCGALEvaluator.cc +++ b/src/PolySetCGALEvaluator.cc @@ -116,7 +116,7 @@ PolySet *PolySetCGALEvaluator::evaluatePolySet(const ProjectionNode &node) double z = ps3->polygons[i][j][2]; if (z != 0) goto next_ps3_polygon_cut_mode; - if (conversion_grid.align(x, y) == i+1) + if ((unsigned) conversion_grid.align(x, y) == i+1) goto next_ps3_polygon_cut_mode; conversion_grid.data(x, y) = i+1; } diff --git a/src/dxfdata.cc b/src/dxfdata.cc index 52493ac..65996d9 100644 --- a/src/dxfdata.cc +++ b/src/dxfdata.cc @@ -526,9 +526,9 @@ void DxfData::fixup_path_direction() } } // rotate points if the path is in non-standard rotation - int b = min_x_point; - int a = b == 0 ? this->paths[i].indices.size() - 2 : b - 1; - int c = b == this->paths[i].indices.size() - 1 ? 1 : b + 1; + unsigned int b = min_x_point; + unsigned int a = b == 0 ? this->paths[i].indices.size() - 2 : b - 1; + unsigned int c = b == this->paths[i].indices.size() - 1 ? 1 : b + 1; double ax = this->points[this->paths[i].indices[a]][0] - this->points[this->paths[i].indices[b]][0]; double ay = this->points[this->paths[i].indices[a]][1] - this->points[this->paths[i].indices[b]][1]; double cx = this->points[this->paths[i].indices[c]][0] - this->points[this->paths[i].indices[b]][0]; diff --git a/src/expr.cc b/src/expr.cc index 66a0d11..671553c 100644 --- a/src/expr.cc +++ b/src/expr.cc @@ -86,8 +86,8 @@ Value Expression::evaluate(const Context *context) const return *v1.vec[i]; } if (v1.type == Value::STRING && v2.type == Value::NUMBER) { - int i = int(v2.num); - if (i >= 0 && i < v1.text.size()) + unsigned int i = int(v2.num); + if (i < v1.text.size()) return Value(v1.text.substr(i, 1)); } return Value(); diff --git a/src/primitives.cc b/src/primitives.cc index feaa1a4..ce52550 100644 --- a/src/primitives.cc +++ b/src/primitives.cc @@ -530,7 +530,7 @@ sphere_next_r2: { dd.paths.push_back(DxfData::Path()); for (size_t j=0; jpaths.vec[i]->vec.size(); j++) { - int idx = this->paths.vec[i]->vec[j]->num; + unsigned int idx = this->paths.vec[i]->vec[j]->num; if (idx < dd.points.size()) { dd.paths.back().indices.push_back(idx); } -- cgit v0.10.1 From a2109992e16246b4d72b316416b9e4bf0d75a288 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Wed, 15 Feb 2012 00:12:31 +0100 Subject: EIGEN2DIR not needed - build system uses OPENSCAD_LIBRARIES directly diff --git a/setenv_mjau.sh b/setenv_mjau.sh index c96f79d..3b9fd92 100644 --- a/setenv_mjau.sh +++ b/setenv_mjau.sh @@ -5,7 +5,6 @@ export DYLD_LIBRARY_PATH=$OPENSCAD_LIBRARIES/lib #export CGALDIR=$PWD/../install/CGAL-3.6 #export QCODEEDITDIR=$PWD/../qcodeedit-2.2.3/install #export DYLD_LIBRARY_PATH=$OPENCSGDIR/lib:$QCODEEDITDIR/lib -export EIGEN2DIR=$OPENSCAD_LIBRARIES # ccache: export PATH=/opt/local/libexec/ccache:$PATH -- cgit v0.10.1 From 8a5f6a4abde265bf7d9316d5aa5437b4eca24866 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Wed, 15 Feb 2012 00:13:07 +0100 Subject: Minor unsigned fixes diff --git a/src/PolySetCGALEvaluator.cc b/src/PolySetCGALEvaluator.cc index 7afb359..81ae31e 100644 --- a/src/PolySetCGALEvaluator.cc +++ b/src/PolySetCGALEvaluator.cc @@ -108,7 +108,7 @@ PolySet *PolySetCGALEvaluator::evaluatePolySet(const ProjectionNode &node) // in the XY plane, causing the resulting 2D polygon to be self-intersection // and cause a crash in CGALEvaluator::PolyReducer. The right solution is to // filter these polygons here. kintel 20120203. - Grid2d conversion_grid(GRID_COARSE); + Grid2d conversion_grid(GRID_COARSE); for (size_t i = 0; i < ps3->polygons.size(); i++) { for (size_t j = 0; j < ps3->polygons[i].size(); j++) { double x = ps3->polygons[i][j][0]; @@ -116,7 +116,7 @@ PolySet *PolySetCGALEvaluator::evaluatePolySet(const ProjectionNode &node) double z = ps3->polygons[i][j][2]; if (z != 0) goto next_ps3_polygon_cut_mode; - if ((unsigned) conversion_grid.align(x, y) == i+1) + if (conversion_grid.align(x, y) == i+1) goto next_ps3_polygon_cut_mode; conversion_grid.data(x, y) = i+1; } diff --git a/src/dxfdata.cc b/src/dxfdata.cc index 65996d9..2b84f7e 100644 --- a/src/dxfdata.cc +++ b/src/dxfdata.cc @@ -518,7 +518,7 @@ void DxfData::fixup_path_direction() break; this->paths[i].is_inner = true; double min_x = this->points[this->paths[i].indices[0]][0]; - int min_x_point = 0; + size_t min_x_point = 0; for (size_t j = 1; j < this->paths[i].indices.size(); j++) { if (this->points[this->paths[i].indices[j]][0] < min_x) { min_x = this->points[this->paths[i].indices[j]][0]; @@ -526,9 +526,9 @@ void DxfData::fixup_path_direction() } } // rotate points if the path is in non-standard rotation - unsigned int b = min_x_point; - unsigned int a = b == 0 ? this->paths[i].indices.size() - 2 : b - 1; - unsigned int c = b == this->paths[i].indices.size() - 1 ? 1 : b + 1; + size_t b = min_x_point; + size_t a = b == 0 ? this->paths[i].indices.size() - 2 : b - 1; + size_t c = b == this->paths[i].indices.size() - 1 ? 1 : b + 1; double ax = this->points[this->paths[i].indices[a]][0] - this->points[this->paths[i].indices[b]][0]; double ay = this->points[this->paths[i].indices[a]][1] - this->points[this->paths[i].indices[b]][1]; double cx = this->points[this->paths[i].indices[c]][0] - this->points[this->paths[i].indices[b]][0]; -- cgit v0.10.1 From a9e79409436d9037227dd73571b026c7ff0d4f62 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Wed, 15 Feb 2012 00:14:27 +0100 Subject: Merged the 64-bit only script back into the main script. Use the -6 option for 64-bit only diff --git a/scripts/macosx-build-dependencies-64bit.sh b/scripts/macosx-build-dependencies-64bit.sh deleted file mode 100755 index e40c5ab..0000000 --- a/scripts/macosx-build-dependencies-64bit.sh +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -e -# -# This script builds all library dependencies of OpenSCAD for Mac OS X. -# The libraries will be build in 64-bit mode and backwards compatible with -# 10.6 -# -# Usage: -# - Edit the BASEDIR variable. This is where libraries will be built and installed -# - Edit the OPENSCADDIR variable. This is where patches are fetched from -# -# Prerequisites: -# - MacPorts: curl eigen -# - Qt4 -# -# FIXME: -# o Verbose option -# o Port to other platforms? -# - -BASEDIR=$PWD/../libraries -OPENSCADDIR=$PWD -SRCDIR=$BASEDIR/src -DEPLOYDIR=$BASEDIR/install -MAC_OSX_VERSION_MIN=10.6 - -# Hack warning: gmplib is built separately in 32-bit and 64-bit mode -# and then merged afterwards. gmplib's header files are dependant on -# the CPU architecture on which configure was run and will be patched accordingly. -build_gmp() -{ - version=$1 - echo "Building gmp" $version "..." - cd $BASEDIR/src - rm -rf gmp-$version - if [ ! -f gmp-$version.tar.bz2 ]; then - curl -O ftp://ftp.gmplib.org/pub/gmp-$version/gmp-$version.tar.bz2 - fi - tar xjf gmp-$version.tar.bz2 - cd gmp-$version - # 32-bit version - mkdir build-i386 - cd build-i386 - ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" ABI=32 --enable-cxx - make install - cd .. - # 64-bit version - mkdir build-x86_64 - cd build-x86_64 - ../configure --prefix=$DEPLOYDIR/x86_64 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" ABI=64 --enable-cxx - make install - - # merge - cd $DEPLOYDIR - mkdir -p lib - lipo -create i386/lib/libgmp.dylib x86_64/lib/libgmp.dylib -output lib/libgmp.dylib - install_name_tool -id $DEPLOYDIR/lib/libgmp.dylib lib/libgmp.dylib - cp lib/libgmp.dylib i386/lib/ - cp lib/libgmp.dylib x86_64/lib/ - mkdir -p include - cp x86_64/include/gmp.h include/ - cp x86_64/include/gmpxx.h include/ - - patch -p0 include/gmp.h << EOF ---- gmp.h.orig 2011-11-08 01:03:41.000000000 +0100 -+++ gmp.h 2011-11-08 01:06:21.000000000 +0100 -@@ -26,12 +26,28 @@ - #endif - - --/* Instantiated by configure. */ --#if ! defined (__GMP_WITHIN_CONFIGURE) -+#if defined(__i386__) -+#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 -+#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 -+#define GMP_LIMB_BITS 32 -+#define GMP_NAIL_BITS 0 -+#elif defined(__x86_64__) - #define __GMP_HAVE_HOST_CPU_FAMILY_power 0 - #define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 - #define GMP_LIMB_BITS 64 - #define GMP_NAIL_BITS 0 -+#elif defined(__ppc__) -+#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 -+#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 -+#define GMP_LIMB_BITS 32 -+#define GMP_NAIL_BITS 0 -+#elif defined(__powerpc64__) -+#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 -+#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 1 -+#define GMP_LIMB_BITS 64 -+#define GMP_NAIL_BITS 0 -+#else -+#error Unsupported architecture - #endif - #define GMP_NUMB_BITS (GMP_LIMB_BITS - GMP_NAIL_BITS) - #define GMP_NUMB_MASK ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS) -EOF -} - -# As with gmplib, mpfr is built separately in 32-bit and 64-bit mode and then merged -# afterwards. -build_mpfr() -{ - version=$1 - echo "Building mpfr" $version "..." - cd $BASEDIR/src - rm -rf mpfr-$version - if [ ! -f mpfr-$version.tar.bz2 ]; then - curl -O http://www.mpfr.org/mpfr-current/mpfr-$version.tar.bz2 - fi - tar xjf mpfr-$version.tar.bz2 - cd mpfr-$version - - # 32-bit version - mkdir build-i386 - cd build-i386 - ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" - make install - cd .. - - # 64-bit version - mkdir build-x86_64 - cd build-x86_64 - ../configure --prefix=$DEPLOYDIR/x86_64 --with-gmp=$DEPLOYDIR/x86_64 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" - make install - - # merge - cd $DEPLOYDIR - lipo -create i386/lib/libmpfr.dylib x86_64/lib/libmpfr.dylib -output lib/libmpfr.dylib - install_name_tool -id $DEPLOYDIR/lib/libmpfr.dylib lib/libmpfr.dylib - mkdir -p include - cp x86_64/include/mpfr.h include/ - cp x86_64/include/mpf2mpfr.h include/ -} - - -build_boost() -{ - version=$1 - bversion=`echo $version | tr "." "_"` - echo "Building boost" $version "..." - cd $BASEDIR/src - rm -rf boost_$bversion - if [ ! -f boost_$bversion.tar.bz2 ]; then - curl -LO http://downloads.sourceforge.net/project/boost/boost/$version/boost_$bversion.tar.bz2 - fi - tar xjf boost_$bversion.tar.bz2 - cd boost_$bversion - # We only need the thread and program_options libraries - ./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex - ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" - ./bjam install - install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib - install_name_tool -id $DEPLOYDIR/lib/libboost_program_options.dylib $DEPLOYDIR/lib/libboost_program_options.dylib - install_name_tool -id $DEPLOYDIR/lib/libboost_filesystem.dylib $DEPLOYDIR/lib/libboost_filesystem.dylib - install_name_tool -change libboost_system.dylib $DEPLOYDIR/lib/libboost_system.dylib $DEPLOYDIR/lib/libboost_filesystem.dylib - install_name_tool -id $DEPLOYDIR/lib/libboost_system.dylib $DEPLOYDIR/lib/libboost_system.dylib - install_name_tool -id $DEPLOYDIR/lib/libboost_regex.dylib $DEPLOYDIR/lib/libboost_regex.dylib - - -} - -build_cgal() -{ - version=$1 - echo "Building CGAL" $version "..." - cd $BASEDIR/src - rm -rf CGAL-$version - if [ ! -f CGAL-$version.tar.gz ]; then - curl -O https://gforge.inria.fr/frs/download.php/29125/CGAL-$version.tar.gz - # curl -O https://gforge.inria.fr/frs/download.php/28500/CGAL-$version.tar.gz - # curl -O https://gforge.inria.fr/frs/download.php/27641/CGAL-$version.tar.gz - fi - tar xzf CGAL-$version.tar.gz - cd CGAL-$version - # We build a static lib. Not really necessary, but it's well tested. - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DBOOST_ROOT=$DEPLOYDIR - make -j4 - make install -} - -build_glew() -{ - version=$1 - echo "Building GLEW" $version "..." - cd $BASEDIR/src - rm -rf glew-$version - if [ ! -f glew-$version.tgz ]; then - curl -LO http://downloads.sourceforge.net/project/glew/glew/$version/glew-$version.tgz - fi - tar xzf glew-$version.tgz - cd glew-$version - mkdir -p $DEPLOYDIR/lib/pkgconfig - # To avoid running strip on a fat archive as this is not supported by strip - sed -i bak -e "s/\$(STRIP) -x lib\/\$(LIB.STATIC)//" Makefile - make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64" install -} - -build_opencsg() -{ - version=$1 - echo "Building OpenCSG" $version "..." - cd $BASEDIR/src - rm -rf OpenCSG-$version - if [ ! -f OpenCSG-$version.tar.gz ]; then - curl -O http://www.opencsg.org/OpenCSG-$version.tar.gz - fi - tar xzf OpenCSG-$version.tar.gz - cd OpenCSG-$version - patch -p1 < $OPENSCADDIR/patches/OpenCSG-$version-MacOSX-port.patch - OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86_64" - make install -} - -build_eigen() -{ - version=$1 - echo "Building eigen" $version "..." - cd $BASEDIR/src - rm -rf eigen-$version - ## Directory name for v2.0.17 - rm -rf eigen-eigen-b23437e61a07 - if [ ! -f eigen-$version.tar.bz2 ]; then - curl -LO http://bitbucket.org/eigen/eigen/get/$version.tar.bz2 - mv $version.tar.bz2 eigen-$version.tar.bz2 - fi - tar xjf eigen-$version.tar.bz2 - ## File name for v2.0.17 - ln -s eigen-eigen-b23437e61a07 eigen-$version - cd eigen-$version - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64" - make -j4 - make install -} - -if [ ! -f $OPENSCADDIR/openscad.pro ]; then - echo "Must be run from the OpenSCAD source root directory" - exit 0 -fi - -echo "Using basedir:" $BASEDIR -rm -rf $DEPLOYDIR -mkdir -p $SRCDIR $DEPLOYDIR -build_eigen 2.0.17 -build_gmp 5.0.3 -build_mpfr 3.1.0 -build_boost 1.47.0 -# NB! For CGAL, also update the actual download URL in the function -build_cgal 3.9 -build_glew 1.7.0 -build_opencsg 1.3.2 diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh index a52f1fe..fada8c4 100755 --- a/scripts/macosx-build-dependencies.sh +++ b/scripts/macosx-build-dependencies.sh @@ -1,15 +1,16 @@ #!/bin/sh -e # # This script builds all library dependencies of OpenSCAD for Mac OS X. -# The libraries will be build in 32- and 64-bit mode and backwards compatible with -# 10.5 "Leopard". +# The libraries will be build in 64-bit (and optionally 32-bit mode) mode +# and backwards compatible with 10.5 "Leopard". # -# Usage: -# - Edit the BASEDIR variable. This is where libraries will be built and installed -# - Edit the OPENSCADDIR variable. This is where patches are fetched from +# This script must be run from the OpenSCAD source root directory +# +# Usage: macosx-build-dependencies.sh [-6] +# -6 Build only 64-bit binaries # # Prerequisites: -# - MacPorts: curl eigen +# - MacPorts: curl # - Qt4 # # FIXME: @@ -22,9 +23,17 @@ OPENSCADDIR=$PWD SRCDIR=$BASEDIR/src DEPLOYDIR=$BASEDIR/install MAC_OSX_VERSION_MIN=10.5 +OPTION_32BIT=true + +printUsage() +{ + echo "Usage: $0 [-6]" + echo + echo " -6 Build only 64-bit binaries" +} # Hack warning: gmplib is built separately in 32-bit and 64-bit mode -# and then merged afterwards. gmplib's header files are dependant on +# and then merged afterwards. gmplib's header files are dependent on # the CPU architecture on which configure was run and will be patched accordingly. build_gmp() { @@ -37,12 +46,14 @@ build_gmp() fi tar xjf gmp-$version.tar.bz2 cd gmp-$version - # 32-bit version - mkdir build-i386 - cd build-i386 - ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" ABI=32 --enable-cxx - make install - cd .. + if $OPTION_32BIT; then + mkdir build-i386 + cd build-i386 + ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" ABI=32 --enable-cxx + make install + cd .. + fi + # 64-bit version mkdir build-x86_64 cd build-x86_64 @@ -52,10 +63,16 @@ build_gmp() # merge cd $DEPLOYDIR mkdir -p lib - lipo -create i386/lib/libgmp.dylib x86_64/lib/libgmp.dylib -output lib/libgmp.dylib + if $OPTION_32BIT; then + lipo -create i386/lib/libgmp.dylib x86_64/lib/libgmp.dylib -output lib/libgmp.dylib + else + cp x86_64/lib/libgmp.dylib lib/libgmp.dylib + fi install_name_tool -id $DEPLOYDIR/lib/libgmp.dylib lib/libgmp.dylib - cp lib/libgmp.dylib i386/lib/ - cp lib/libgmp.dylib x86_64/lib/ + if $OPTION_32BIT; then + cp lib/libgmp.dylib i386/lib/ + cp lib/libgmp.dylib x86_64/lib/ + fi mkdir -p include cp x86_64/include/gmp.h include/ cp x86_64/include/gmpxx.h include/ @@ -111,12 +128,13 @@ build_mpfr() tar xjf mpfr-$version.tar.bz2 cd mpfr-$version - # 32-bit version - mkdir build-i386 - cd build-i386 - ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" - make install - cd .. + if $OPTION_32BIT; then + mkdir build-i386 + cd build-i386 + ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" + make install + cd .. + fi # 64-bit version mkdir build-x86_64 @@ -126,7 +144,11 @@ build_mpfr() # merge cd $DEPLOYDIR - lipo -create i386/lib/libmpfr.dylib x86_64/lib/libmpfr.dylib -output lib/libmpfr.dylib + if $OPTION_32BIT; then + lipo -create i386/lib/libmpfr.dylib x86_64/lib/libmpfr.dylib -output lib/libmpfr.dylib + else + cp x86_64/lib/libmpfr.dylib lib/libmpfr.dylib + fi install_name_tool -id $DEPLOYDIR/lib/libmpfr.dylib lib/libmpfr.dylib mkdir -p include cp x86_64/include/mpfr.h include/ @@ -148,7 +170,10 @@ build_boost() cd boost_$bversion # We only need the thread and program_options libraries ./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex - ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" + if $OPTION_32BIT; then + BOOST_EXTRA_FLAGS="-arch i386" + fi + ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS" ./bjam install install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib install_name_tool -id $DEPLOYDIR/lib/libboost_program_options.dylib $DEPLOYDIR/lib/libboost_program_options.dylib @@ -173,8 +198,11 @@ build_cgal() fi tar xzf CGAL-$version.tar.gz cd CGAL-$version + if $OPTION_32BIT; then + CGAL_EXTRA_FLAGS=";i386" + fi # We build a static lib. Not really necessary, but it's well tested. - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DBOOST_ROOT=$DEPLOYDIR + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64$CGAL_EXTRA_FLAGS" -DBOOST_ROOT=$DEPLOYDIR make -j4 make install } @@ -193,7 +221,10 @@ build_glew() mkdir -p $DEPLOYDIR/lib/pkgconfig # To avoid running strip on a fat archive as this is not supported by strip sed -i bak -e "s/\$(STRIP) -x lib\/\$(LIB.STATIC)//" Makefile - make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" install + if $OPTION_32BIT; then + GLEW_EXTRA_FLAGS="-arch i386" + fi + make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN $GLEW_EXTRA_FLAGS -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN $GLEW_EXTRA_FLAGS -arch x86_64" install } build_opencsg() @@ -208,7 +239,10 @@ build_opencsg() tar xzf OpenCSG-$version.tar.gz cd OpenCSG-$version patch -p1 < $OPENSCADDIR/patches/OpenCSG-$version-MacOSX-port.patch - OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86 x86_64" + if $OPTION_32BIT; then + OPENCSG_EXTRA_FLAGS="x86" + fi + OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86_64 $OPENCSG_EXTRA_FLAGS" make install } @@ -228,7 +262,10 @@ build_eigen() ## File name for v2.0.17 ln -s eigen-eigen-b23437e61a07 eigen-$version cd eigen-$version - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" + if $OPTION_32BIT; then + EIGEN_EXTRA_FLAGS=";i386" + fi + cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64$EIGEN_EXTRA_FLAGS" make -j4 make install } @@ -238,11 +275,17 @@ if [ ! -f $OPENSCADDIR/openscad.pro ]; then exit 0 fi +while getopts '6' c +do + case $c in + 6) OPTION_32BIT=false + esac +done + echo "Using basedir:" $BASEDIR -rm -rf $DEPLOYDIR mkdir -p $SRCDIR $DEPLOYDIR build_eigen 2.0.17 -build_gmp 5.0.3 +build_gmp 5.0.4 build_mpfr 3.1.0 build_boost 1.47.0 # NB! For CGAL, also update the actual download URL in the function -- cgit v0.10.1