forked from daid/LegacyCura
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sh
executable file
·135 lines (114 loc) · 3.72 KB
/
build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/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
#############################
# 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
#############################
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.
#############################
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
rm -rf Printrun/.git
#############################
# Build the packages
#############################
rm -rf ${TARGET_DIR}
mkdir -p ${TARGET_DIR}
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_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
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_DIR}/SkeinPyPy
#add printrun
mv Printrun ${TARGET_DIR}/Printrun
#add script files
cp -a scripts/${BUILD_TARGET}/* $TARGET_DIR/
#add readme file
cp README ${TARGET_DIR}/README.txt
#package the result
if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
if [ $BUILD_TARGET = "win32" ]; then
cd ${TARGET_DIR}
7z a ../${TARGET_DIR}.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