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
parent
3b0845f87e
commit
559f855ef0
155
build.sh
155
build.sh
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
@python\python.exe printrun\pronterface.py
|
|
@ -0,0 +1,2 @@
|
|||
@python\python.exe SkeinPyPy\skeinforge_application\skeinforge.py
|
||||
|
Loading…
Reference in New Issue