From 03771dc21ee84ff2ac681cec7782a478709f0d54 Mon Sep 17 00:00:00 2001 From: Brad Pitcher Date: Sat, 4 Feb 2012 13: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