Updated build script so it works for osx. (Thanks bbum!)

Added osx pronterface start script (Thanks bbum!)
General update to the build script so it's easier to use.
This commit is contained in:
daid 2012-02-13 11:33:38 +01:00
parent 3b0845f87e
commit 559f855ef0
5 changed files with 132 additions and 62 deletions

155
build.sh
View File

@ -1,47 +1,78 @@
#!/bin/sh #!/bin/bash
############################# #############################
# CONFIGURATION # CONFIGURATION
############################# #############################
##Select the build target
BUILD_TARGET=win32
#BUILD_TARGET=linux
#BUILD_TARGET=osx64
##Do we need to create the final archive
ARCHIVE_FOR_DISTRIBUTION=1
##Which version name are we appending to the final archive
BUILD_NAME=Alpha4
TARGET_DIR=${BUILD_TARGET}-SkeinPyPy-${BUILD_NAME}
##Which versions of external programs to use
PYPY_VERSION=1.8 PYPY_VERSION=1.8
WIN_PORTABLE_PY_VERSION=2.7.2.1 WIN_PORTABLE_PY_VERSION=2.7.2.1
WIN_PYSERIAL_VERSION=2.5 WIN_PYSERIAL_VERSION=2.5
BUILD_NAME=Alpha4
#############################
# Support functions
#############################
function checkTool
{
if [ -z `which $1` ]; then
echo "The $1 command must be somewhere in your \$PATH."
echo "Fix your \$PATH or install $2"
exit 1
fi
}
############################# #############################
# Actual build script # Actual build script
############################# #############################
#Check if we have 7zip, needed to extract and packup a bunch of packages. checkTool git "git: http://git-scm.com/"
7z > /dev/null 2>&1 checkTool curl "curl: http://curl.haxx.se/"
if [ $? != 0 ]; then if [ $BUILD_TARGET = "win32" ]; then
echo $0 requires 7zip to run. #Check if we have 7zip, needed to extract and packup a bunch of packages for windows.
exit 1 checkTool 7z "7zip: http://www.7-zip.org/"
fi
#For building under MacOS we need gnutar instead of tar
if [ -z `which gnutar` ]; then
TAR=tar
else
TAR=gnutar
fi fi
############################# #############################
# Download all needed files. # Download all needed files.
############################# #############################
#Get portable python for windows and extract it. (Linux and Mac need to install python themselfs) if [ $BUILD_TARGET = "win32" ]; then
if [ ! -f "PortablePython_${WIN_PORTABLE_PY_VERSION}.exe" ]; then #Get portable python for windows and extract it. (Linux and Mac need to install python themselfs)
wget http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe if [ ! -f "PortablePython_${WIN_PORTABLE_PY_VERSION}.exe" ]; then
fi curl -L -O http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe
if [ ! -f pyserial-${WIN_PYSERIAL_VERSION}.exe ]; then fi
wget http://sourceforge.net/projects/pyserial/files/pyserial/${WIN_PYSERIAL_VERSION}/pyserial-${WIN_PYSERIAL_VERSION}.win32.exe/download if [ ! -f pyserial-${WIN_PYSERIAL_VERSION}.exe ]; then
mv download pyserial-${WIN_PYSERIAL_VERSION}.exe curl -L -O http://sourceforge.net/projects/pyserial/files/pyserial/${WIN_PYSERIAL_VERSION}/pyserial-${WIN_PYSERIAL_VERSION}.win32.exe/download
fi mv download pyserial-${WIN_PYSERIAL_VERSION}.exe
#Get pypy fi
if [ ! -f "pypy-${PYPY_VERSION}-win32.zip" ]; then #Get pypy
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip if [ ! -f "pypy-${PYPY_VERSION}-win32.zip" ]; then
fi curl -L -O https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
if [ ! -f "pypy-${PYPY_VERSION}-linux.tar.bz2" ]; then fi
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-linux.tar.bz2 else
fi if [ ! -f "pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2" ]; then
if [ ! -f "pypy-${PYPY_VERSION}-osx64.tar.bz2" ]; then curl -L -O https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-osx64.tar.bz2 fi
fi fi
#Get our own version of Printrun #Get our own version of Printrun
rm -rf Printrun rm -rf Printrun
git clone git://github.com/daid/Printrun.git git clone git://github.com/daid/Printrun.git
@ -50,55 +81,55 @@ rm -rf Printrun/.git
############################# #############################
# Build the packages # Build the packages
############################# #############################
rm -rf target_win32 target_linux target_osx64 rm -rf ${TARGET_DIR}
mkdir -p target_win32 target_linux target_osx64 mkdir -p ${TARGET_DIR}
7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/App if [ $BUILD_TARGET = "win32" ]; then
7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/Lib/site-packages #For windows extract portable python to include it.
7z x pyserial-${WIN_PYSERIAL_VERSION}.exe PURELIB 7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/App
7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/Lib/site-packages
7z x pyserial-${WIN_PYSERIAL_VERSION}.exe PURELIB
mkdir -p target_win32/python mkdir -p ${TARGET_DIR}/python
mv \$_OUTDIR/App/* target_win32/python mv \$_OUTDIR/App/* ${TARGET_DIR}/python
mv \$_OUTDIR/Lib/site-packages/wx* target_win32/python/Lib/site-packages/ mv \$_OUTDIR/Lib/site-packages/wx* ${TARGET_DIR}/python/Lib/site-packages/
mv PURELIB/serial target_win32/python/Lib mv PURELIB/serial ${TARGET_DIR}/python/Lib
rm -rf \$_OUTDIR rm -rf \$_OUTDIR
rm -rf PURELIB rm -rf PURELIB
fi
#Extract pypy #Extract pypy
7z x pypy-${PYPY_VERSION}-win32.zip -otarget_win32 if [ $BUILD_TARGET = "win32" ]; then
mv target_win32/pypy-${PYPY_VERSION} target_win32/pypy 7z x pypy-${PYPY_VERSION}-win32.zip -o${TARGET_DIR}
cd target_linux; tar -xjf ../pypy-${PYPY_VERSION}-linux.tar.bz2; cd .. mv ${TARGET_DIR}/pypy-${PYPY_VERSION} ${TARGET_DIR}/pypy
mv target_linux/pypy-${PYPY_VERSION} target_linux/pypy else
cd target_osx64; tar -xjf ../pypy-${PYPY_VERSION}-osx64.tar.bz2; cd .. cd ${TARGET_DIR}; $TAR -xjf ../pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2; cd ..
mv target_linux/pypy-${PYPY_VERSION} target_osx64/pypy mv ${TARGET_DIR}/pypy-${PYPY_VERSION} ${TARGET_DIR}/pypy
fi
#add Skeinforge #add Skeinforge
cp -a SkeinPyPy target_win32/SkeinPyPy cp -a SkeinPyPy ${TARGET_DIR}/SkeinPyPy
cp -a SkeinPyPy target_linux/SkeinPyPy
cp -a SkeinPyPy target_osx64/SkeinPyPy
#add printrun #add printrun
cp -a Printrun target_win32/Printrun mv Printrun ${TARGET_DIR}/Printrun
cp -a Printrun target_linux/Printrun
cp -a Printrun target_osx64/Printrun
#add windows batch files #add script files
echo "python\\python.exe SkeinPyPy\\skeinforge_application\\skeinforge.py" > target_win32/skeinforge.bat cp -a scripts/${BUILD_TARGET}/* $TARGET_DIR/
echo "python\\python.exe printrun\\pronterface.py" > target_win32/printrun.bat
#add readme file #add readme file
cp README target_win32/README.txt cp README ${TARGET_DIR}/README.txt
cp README target_linux/README.txt
cp README target_osx64/README.txt
#package the result #package the result
cd target_win32 if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
7z a ../SkeinPyPy_Win32_${BUILD_NAME}.zip * if [ $BUILD_TARGET = "win32" ]; then
cd .. cd ${TARGET_DIR}
cd target_linux 7z a ../SkeinPyPy_${BUILD_TARGET}_${BUILD_NAME}.zip *
7z a ../SkeinPyPy_Linux_${BUILD_NAME}.zip * cd ..
cd .. else
cd target_osx64 echo "Archiving to ${TARGET_DIR}.tar.gz"
7z a ../SkeinPyPy_MacOSX_${BUILD_NAME}.zip * $TAR cfp - ${TARGET_DIR} | gzip --best -c > ${TARGET_DIR}.tar.gz
cd .. fi
else
echo "Installed into ${TARGET_DIR}"
fi

View File

@ -0,0 +1,17 @@
#!/bin/bash
python -c 'import wx'
if [ $? != 0 ]; then
echo "Requires wx python."
exit 1
fi
python -c 'import serial'
if [ $? != 0 ]; then
echo "Requires pyserial."
exit 1
fi
SCRIPT_DIR=`dirname $0`
python ${SCRIPT_DIR}/Printrun/pronterface.py

View File

@ -0,0 +1,19 @@
#!/bin/bash
arch -arch i386 python2.7 -c 'import wx'
if [ $? != 0 ]; then
echo "Requires wx. Download and install from:"
echo " http://www.wxpython.org/download.php"
exit 1
fi
python2.7 -c 'import serial'
if [ $? != 0 ]; then
echo "Requires pyserial."
echo " sudo easy_install-2.7 pyserial"
exit 1
fi
SCRIPT_DIR=`dirname $0`
arch -arch i386 python2.7 ${SCRIPT_DIR}/Printrun/pronterface.py

View File

@ -0,0 +1 @@
@python\python.exe printrun\pronterface.py

View File

@ -0,0 +1,2 @@
@python\python.exe SkeinPyPy\skeinforge_application\skeinforge.py