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.
master
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
#############################
##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
WIN_PORTABLE_PY_VERSION=2.7.2.1
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
#############################
#Check if we have 7zip, needed to extract and packup a bunch of packages.
7z > /dev/null 2>&1
if [ $? != 0 ]; then
echo $0 requires 7zip to run.
exit 1
checkTool git "git: http://git-scm.com/"
checkTool curl "curl: http://curl.haxx.se/"
if [ $BUILD_TARGET = "win32" ]; then
#Check if we have 7zip, needed to extract and packup a bunch of packages for windows.
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
#############################
# Download all needed files.
#############################
#Get portable python for windows and extract it. (Linux and Mac need to install python themselfs)
if [ ! -f "PortablePython_${WIN_PORTABLE_PY_VERSION}.exe" ]; then
wget http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe
fi
if [ ! -f pyserial-${WIN_PYSERIAL_VERSION}.exe ]; then
wget http://sourceforge.net/projects/pyserial/files/pyserial/${WIN_PYSERIAL_VERSION}/pyserial-${WIN_PYSERIAL_VERSION}.win32.exe/download
mv download pyserial-${WIN_PYSERIAL_VERSION}.exe
fi
#Get pypy
if [ ! -f "pypy-${PYPY_VERSION}-win32.zip" ]; then
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
fi
if [ ! -f "pypy-${PYPY_VERSION}-linux.tar.bz2" ]; then
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-linux.tar.bz2
fi
if [ ! -f "pypy-${PYPY_VERSION}-osx64.tar.bz2" ]; then
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-osx64.tar.bz2
if [ $BUILD_TARGET = "win32" ]; then
#Get portable python for windows and extract it. (Linux and Mac need to install python themselfs)
if [ ! -f "PortablePython_${WIN_PORTABLE_PY_VERSION}.exe" ]; then
curl -L -O http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe
fi
if [ ! -f pyserial-${WIN_PYSERIAL_VERSION}.exe ]; then
curl -L -O http://sourceforge.net/projects/pyserial/files/pyserial/${WIN_PYSERIAL_VERSION}/pyserial-${WIN_PYSERIAL_VERSION}.win32.exe/download
mv download pyserial-${WIN_PYSERIAL_VERSION}.exe
fi
#Get pypy
if [ ! -f "pypy-${PYPY_VERSION}-win32.zip" ]; then
curl -L -O https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
fi
else
if [ ! -f "pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2" ]; then
curl -L -O https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
fi
fi
#Get our own version of Printrun
rm -rf Printrun
git clone git://github.com/daid/Printrun.git
@ -50,55 +81,55 @@ rm -rf Printrun/.git
#############################
# Build the packages
#############################
rm -rf target_win32 target_linux target_osx64
mkdir -p target_win32 target_linux target_osx64
rm -rf ${TARGET_DIR}
mkdir -p ${TARGET_DIR}
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
if [ $BUILD_TARGET = "win32" ]; then
#For windows extract portable python to include it.
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
mv \$_OUTDIR/App/* target_win32/python
mv \$_OUTDIR/Lib/site-packages/wx* target_win32/python/Lib/site-packages/
mv PURELIB/serial target_win32/python/Lib
rm -rf \$_OUTDIR
rm -rf PURELIB
mkdir -p ${TARGET_DIR}/python
mv \$_OUTDIR/App/* ${TARGET_DIR}/python
mv \$_OUTDIR/Lib/site-packages/wx* ${TARGET_DIR}/python/Lib/site-packages/
mv PURELIB/serial ${TARGET_DIR}/python/Lib
rm -rf \$_OUTDIR
rm -rf PURELIB
fi
#Extract pypy
7z x pypy-${PYPY_VERSION}-win32.zip -otarget_win32
mv target_win32/pypy-${PYPY_VERSION} target_win32/pypy
cd target_linux; tar -xjf ../pypy-${PYPY_VERSION}-linux.tar.bz2; cd ..
mv target_linux/pypy-${PYPY_VERSION} target_linux/pypy
cd target_osx64; tar -xjf ../pypy-${PYPY_VERSION}-osx64.tar.bz2; cd ..
mv target_linux/pypy-${PYPY_VERSION} target_osx64/pypy
if [ $BUILD_TARGET = "win32" ]; then
7z x pypy-${PYPY_VERSION}-win32.zip -o${TARGET_DIR}
mv ${TARGET_DIR}/pypy-${PYPY_VERSION} ${TARGET_DIR}/pypy
else
cd ${TARGET_DIR}; $TAR -xjf ../pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2; cd ..
mv ${TARGET_DIR}/pypy-${PYPY_VERSION} ${TARGET_DIR}/pypy
fi
#add Skeinforge
cp -a SkeinPyPy target_win32/SkeinPyPy
cp -a SkeinPyPy target_linux/SkeinPyPy
cp -a SkeinPyPy target_osx64/SkeinPyPy
cp -a SkeinPyPy ${TARGET_DIR}/SkeinPyPy
#add printrun
cp -a Printrun target_win32/Printrun
cp -a Printrun target_linux/Printrun
cp -a Printrun target_osx64/Printrun
mv Printrun ${TARGET_DIR}/Printrun
#add windows batch files
echo "python\\python.exe SkeinPyPy\\skeinforge_application\\skeinforge.py" > target_win32/skeinforge.bat
echo "python\\python.exe printrun\\pronterface.py" > target_win32/printrun.bat
#add script files
cp -a scripts/${BUILD_TARGET}/* $TARGET_DIR/
#add readme file
cp README target_win32/README.txt
cp README target_linux/README.txt
cp README target_osx64/README.txt
cp README ${TARGET_DIR}/README.txt
#package the result
cd target_win32
7z a ../SkeinPyPy_Win32_${BUILD_NAME}.zip *
cd ..
cd target_linux
7z a ../SkeinPyPy_Linux_${BUILD_NAME}.zip *
cd ..
cd target_osx64
7z a ../SkeinPyPy_MacOSX_${BUILD_NAME}.zip *
cd ..
if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
if [ $BUILD_TARGET = "win32" ]; then
cd ${TARGET_DIR}
7z a ../SkeinPyPy_${BUILD_TARGET}_${BUILD_NAME}.zip *
cd ..
else
echo "Archiving to ${TARGET_DIR}.tar.gz"
$TAR cfp - ${TARGET_DIR} | gzip --best -c > ${TARGET_DIR}.tar.gz
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