diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/publish-macosx.sh | 12 | ||||
| -rwxr-xr-x | scripts/release-common.sh | 129 | ||||
| -rwxr-xr-x | scripts/release-linux.sh | 82 | ||||
| -rwxr-xr-x | scripts/release-macosx.sh | 65 | ||||
| -rw-r--r-- | scripts/release-win32.sh | 96 | 
5 files changed, 384 insertions, 0 deletions
| diff --git a/scripts/publish-macosx.sh b/scripts/publish-macosx.sh new file mode 100755 index 0000000..b616d64 --- /dev/null +++ b/scripts/publish-macosx.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +VERSION=`date "+%Y.%m.%d"` +#VERSION=2010.02 + +export OPENCSGDIR=$PWD/../OpenCSG-1.2.0 + +./release-common.sh -v $VERSION +cp OpenSCAD-$VERSION.dmg ~/Documents/Dropbox/Public +ln -sf OpenSCAD-$VERSION.dmg ~/Documents/Dropbox/Public/OpenSCAD-latest.dmg + +echo "Upload in progress..." diff --git a/scripts/release-common.sh b/scripts/release-common.sh new file mode 100755 index 0000000..9624035 --- /dev/null +++ b/scripts/release-common.sh @@ -0,0 +1,129 @@ +#!/bin/sh +# +# This script creates a binary release of OpenSCAD. +# This should work under Mac OS X and Windows (msys). Linux support pending. +# The script will create a file called openscad-<versionstring>.zip +# in the current directory. +#  +# Usage: release-common.sh [-v <versionstring>] +#  -v   Version string (e.g. -v 2010.01) +# +# If no version string is given, todays date will be used (YYYY-MM-DD) +# If no make target is given, release will be used on Windows, none one Mac OS X +# + +printUsage() +{ +  echo "Usage: $0 -v <versionstring> +  echo +  echo "  Example: $0 -v 2010.01 +} + +if [[ $OSTYPE =~ "darwin" ]]; then +  OS=MACOSX +elif [[ $OSTYPE == "msys" ]]; then +  OS=WIN +fi + +echo "Detected OS: $OS" + +while getopts 'v:' c +do +  case $c in +    v) VERSION=$OPTARG;; +  esac +done + +if test -z "$VERSION"; then +    VERSION=`date "+%Y.%m.%d"` +fi + +echo "Building openscad-$VERSION $CONFIGURATION..." + +case $OS in +    MACOSX)  +        CONFIG=mdi +        TARGET= +        ;; +    WIN)  +        unset CONFIG +        export QTDIR=/c/devmingw/qt2009.03 +        export QTMAKESPEC=win32-g++ +        export PATH=$PATH:/c/devmingw/qt2009.03/bin:/c/devmingw/qt2009.03/qt/bin +        ZIP="/c/Program Files/7-Zip/7z.exe" +        ZIPARGS="a -tzip" +        TARGET=release +        ;; +esac + +qmake VERSION=$VERSION CONFIG+=$CONFIG CONFIG-=debug openscad.pro +make -s clean +case $OS in +    MACOSX)  +        rm -rf OpenSCAD.app +        ;; +    WIN) +            #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 + +make -j2 $TARGET + +echo "Creating directory structure..." +rm -rf openscad-$VERSION +mkdir openscad-$VERSION +EXAMPLESDIR=openscad-$VERSION/examples/ + +case $OS in +    MACOSX) +        OPENCSGDIR=`cd "$OPENCSGDIR" && pwd` +        mkdir OpenSCAD.app/Contents/Frameworks +        cp $OPENCSGDIR/lib/libopencsg.dylib OpenSCAD.app/Contents/Frameworks +        cp /opt/local/lib/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks +        cp /Library/Frameworks/QtOpenGL.framework/Versions/4/QtOpenGL OpenSCAD.app/Contents/Frameworks +        cp /Library/Frameworks/QtGui.framework/Versions/4/QtGui OpenSCAD.app/Contents/Frameworks +        cp /Library/Frameworks/QtCore.framework/Versions/4/QtCore OpenSCAD.app/Contents/Frameworks +        install_name_tool -change $OPENCSGDIR/lib/libopencsg.1.dylib @executable_path/../Frameworks/libopencsg.dylib OpenSCAD.app/Contents/MacOS/openscad +        install_name_tool -change QtOpenGL.framework/Versions/4/QtOpenGL @executable_path/../Frameworks/QtOpenGL OpenSCAD.app/Contents/MacOS/openscad +        install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/MacOS/openscad +        install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/MacOS/openscad +        install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/QtOpenGL  +        install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtOpenGL  +        install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtGui +        install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/MacOS/openscad +        install_name_tool -id libopencsg.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +        install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +        install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +        install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +        install_name_tool -id libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libGLEW.1.5.1.dylib +        mv OpenSCAD.app openscad-$VERSION +        EXAMPLESDIR=openscad-$VERSION/OpenSCAD.app/Contents/Resources/examples +    ;; +    WIN) +        #package +        cp win32deps/* openscad-$VERSION +        cp $TARGET/openscad.exe openscad-$VERSION +        ;; +esac + +mkdir -p $EXAMPLESDIR +cp examples/* $EXAMPLESDIR +chmod -R 644 $EXAMPLESDIR/* + +echo "Creating archive.." +case $OS in +    MACOSX) +        hdiutil create -quiet -ov -srcfolder openscad-$VERSION/OpenSCAD.app OpenSCAD-$VERSION.dmg +        hdiutil internet-enable -yes -quiet OpenSCAD-$VERSION.dmg +        echo "Binary created: OpenSCAD-$VERSION.dmg" +        ;; +    *) +        rm -f openscad-$VERSION.zip +        "$ZIP" $ZIPARGS openscad-$VERSION.zip openscad-$VERSION +        echo "Binary created: openscad-$VERSION.zip" +        ;; +esac + +rm -rf openscad-$VERSION + diff --git a/scripts/release-linux.sh b/scripts/release-linux.sh new file mode 100755 index 0000000..41a7aa3 --- /dev/null +++ b/scripts/release-linux.sh @@ -0,0 +1,82 @@ +#!/bin/bash +# WARNING: This script might only work with the authors setup... + +VERSION=2010.01 + +set -ex + +# svnclean + +qmake-qt4 VERSION=$VERSION +make + +rm -rf release +mkdir -p release/{bin,lib/openscad,examples} + +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 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)\.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 ]; 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} + +if ! [ -w "$prefix"/bin/ -a -w "$prefix"/lib/ ]; 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 and libraries..." +cp -rv lib/. "$prefix"/lib/ + +echo "Installation finished. Have a nice day." +EOT + +chmod 755 -R release/ + +cp examples/* release/examples/ +chmod 644 -R release/examples/* + diff --git a/scripts/release-macosx.sh b/scripts/release-macosx.sh new file mode 100755 index 0000000..8ac5dc0 --- /dev/null +++ b/scripts/release-macosx.sh @@ -0,0 +1,65 @@ +#!/bin/sh +# +# This script creates a binary release of OpenSCAD for Mac OS X. +# The script will create a file called openscad-<versionstring>.zip +# in the current directory. +#  +# Usage: makedmg.sh [-v <versionstring>] +#  -v   Version string (e.g. -v 2010.01) +# +# If no version string is given, todays date will be used (YYYY-MM-DD) +# +printUsage() +{ +  echo "Usage: $0 -v <versionstring>" +  echo +  echo "  Example: $0 -v 2010.01" +} + +while getopts 'v:' c +do +  case $c in +    v) VERSION=$OPTARG;; +  esac +done + +if test -z "$VERSION"; then +  VERSION=`date "+%Y.%m.%d"` +fi + +echo "Building openscad-$VERSION..." +export OPENCSGDIR=$PWD/../OpenCSG-1.2.0 +qmake VERSION=$VERSION CONFIG+=mdi openscad.pro +make clean +make -j2 +echo "Preparing executable.." +mkdir OpenSCAD.app/Contents/Frameworks +cp $OPENCSGDIR/lib/libopencsg.dylib OpenSCAD.app/Contents/Frameworks +cp /opt/local/lib/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks +cp /Library/Frameworks/QtOpenGL.framework/Versions/4/QtOpenGL OpenSCAD.app/Contents/Frameworks +cp /Library/Frameworks/QtGui.framework/Versions/4/QtGui OpenSCAD.app/Contents/Frameworks +cp /Library/Frameworks/QtCore.framework/Versions/4/QtCore OpenSCAD.app/Contents/Frameworks +install_name_tool -change libopencsg.1.dylib @executable_path/../Frameworks/libopencsg.dylib OpenSCAD.app/Contents/MacOS/openscad +install_name_tool -change QtOpenGL.framework/Versions/4/QtOpenGL @executable_path/../Frameworks/QtOpenGL OpenSCAD.app/Contents/MacOS/openscad +install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/MacOS/openscad +install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/MacOS/openscad +install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/QtOpenGL  +install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtOpenGL  +install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtGui +install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/MacOS/openscad +install_name_tool -id libopencsg.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/libopencsg.dylib +install_name_tool -id libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libGLEW.1.5.1.dylib + +echo "Creating directory structure.." +rm -rf openscad-$VERSION +mkdir -p openscad-$VERSION/examples +cp examples/* openscad-$VERSION/examples/ +chmod -R 644 openscad-$VERSION/examples/* +mv OpenSCAD.app openscad-$VERSION + +echo "Creating archive.." +zip -qr openscad-$VERSION.zip openscad-$VERSION +echo "Mac OS X binary created: openscad-$VERSION.zip" diff --git a/scripts/release-win32.sh b/scripts/release-win32.sh new file mode 100644 index 0000000..540eab9 --- /dev/null +++ b/scripts/release-win32.sh @@ -0,0 +1,96 @@ +#!/bin/sh
 +#
 +# This script creates a binary release of OpenSCAD for Mac OS X.
 +# The script will create a file called openscad-<versionstring>.zip
 +# in the current directory.
 +# 
 +# Usage: release-win32.sh [-v <versionstring>]
 +#  -v   Version string (e.g. -v 2010.01)
 +#
 +# If no version string is given, todays date will be used (YYYY-MM-DD)
 +#
 +
 +#used for windows
 +ZIP="/c/Program Files/7-Zip/7z.exe"
 +ZIPARGS="a -tzip"
 +
 +printUsage()
 +{
 +  echo "Usage: $0 -v <versionstring> -t <buildtarget>"
 +  echo
 +  echo "  Example: $0 -v 2010.01 -t release"
 +}
 +
 +OS=OSX
 +if test "`uname -o`" == "Msys"; then
 +    OS=WIN
 +fi
 +
 +echo "detected OS= $OS"
 +
 +while getopts 'v:' c
 +do
 +  case $c in
 +    v) VERSION=$OPTARG;;
 +    b) TARGET=$OPTARG;;
 +  esac
 +done
 +
 +if test -z "$VERSION"; then
 +    VERSION=`date "+%Y.%m.%d"`
 +fi
 +
 +if test -z "$TARGET"; then
 +    TARGET=release
 +fi
 +
 +echo "Building openscad-$VERSION $CONFIGURATION..."
 +
 +case $OS in
 +    OSX) 
 +        CONFIG = mdi;;
 +    WIN) 
 +        unset CONFIG
 +        export QTDIR=/c/devmingw/qt2009.03
 +        export QTMAKESPEC=win32-g++
 +        export PATH=$PATH:/c/devmingw/qt2009.03/bin:/c/devmingw/qt2009.03/qt/bin
 +        ;;
 +esac
 +
 +qmake VERSION=$VERSION CONFIG+=$CONFIG
 +make clean
 +if test $OS == WIN; then
 +    #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
 +fi
 +
 +make -j2 $TARGET
 +
 +echo "Preparing executable..."
 +
 +echo "Creating directory structure..."
 +rm -rf openscad-$VERSION
 +rm -f openscad-$VERSION.zip
 +mkdir -p openscad-$VERSION/examples
 +cp examples/* openscad-$VERSION/examples/
 +
 +case $OS in
 +    OSX) ;;
 +    WIN)
 +        #package
 +        cp win32deps/* openscad-$VERSION
 +        cp $TARGET/openscad.exe openscad-$VERSION
 +        ;;
 +esac
 +
 +echo "Creating directory structure..."
 +case $OS in
 +    OSX) ;;
 +    WIN)
 +        "$ZIP" $ZIPARGS openscad-$VERSION.zip openscad-$VERSION
 +        ;;
 +esac
 +
 +rm -rf openscad-$VERSION
 +
 +echo "binary created: openscad-$VERSION.zip"
 | 
