Mercurial > hg > quicktun
annotate build.sh @ 32:51c6d2fc712f V2.1.8
Fixes contributed by Daniel Dickinson <daniel@cshore.neomailbox.net>
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Wed, 12 Oct 2011 01:34:46 +0200 |
parents | a51d07ac3f1b |
children | b876afa5a72a |
rev | line source |
---|---|
0 | 1 #!/bin/sh |
13 | 2 |
17 | 3 if [ "$(uname -s)" = "OpenBSD" -o "$(uname -s)" = "FreeBSD" ]; then |
14
d9dfeeaff7e8
Added BSD support to build script, updated NaCl URL to new version, added version file
Ivo Smits <Ivo@UCIS.nl>
parents:
13
diff
changeset
|
4 echo "Detected *BSD" |
d9dfeeaff7e8
Added BSD support to build script, updated NaCl URL to new version, added version file
Ivo Smits <Ivo@UCIS.nl>
parents:
13
diff
changeset
|
5 tar="gtar" |
17 | 6 elif [ "$(uname -s)" = "SunOS" ]; then |
13 | 7 echo "Detected SunOS" |
14
d9dfeeaff7e8
Added BSD support to build script, updated NaCl URL to new version, added version file
Ivo Smits <Ivo@UCIS.nl>
parents:
13
diff
changeset
|
8 tar="gtar" |
13 | 9 CFLAGS="$CFLAGS -DSOLARIS -m64" |
10 LDFLAGS="$LDFLAGS -lnsl -lsocket" | |
30
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
11 elif [ "$(uname -s)" = "Darwin" ]; then |
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
12 echo "Detected Mac OS X (Darwin)" |
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
13 CFLAGS="$CFLAGS -arch i686" |
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
14 LDFLAGS="$LDFLAGS -arch i686" |
14
d9dfeeaff7e8
Added BSD support to build script, updated NaCl URL to new version, added version file
Ivo Smits <Ivo@UCIS.nl>
parents:
13
diff
changeset
|
15 else |
d9dfeeaff7e8
Added BSD support to build script, updated NaCl URL to new version, added version file
Ivo Smits <Ivo@UCIS.nl>
parents:
13
diff
changeset
|
16 tar="tar" |
13 | 17 fi |
18 | |
0 | 19 echo Cleaning up... |
20 rm -rf out/ obj/ tmp/ | |
21 | |
22 mkdir -p out | |
23 echo Creating source archive... | |
19
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
24 $tar --transform "s,^,quicktun-`cat version`/," -czf "out/quicktun-`cat version`.tgz" build.sh clean.sh debian src version --exclude "debian/data" |
0 | 25 |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
26 mkdir -p obj tmp |
0 | 27 |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
28 export LIBRARY_PATH="/usr/local/lib/:${LIBRARY_PATH}" |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
29 if [ -z "${NACL_SHARED}" ]; then |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
30 mkdir -p lib include |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
31 echo Checking for NaCl library... |
24
dfac56805c77
Fixed support for shared NaCl library, explicitly refer to cryptographic primitives
Ivo Smits <Ivo@UCIS.nl>
parents:
23
diff
changeset
|
32 if [ -e lib/libnacl.a -a -e include/crypto_box_curve25519xsalsa20poly1305.h -a -e include/crypto_scalarmult_curve25519.h ]; then |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
33 echo Found. |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
34 else |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
35 echo Not found, building... |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
36 mkdir tmp/nacl |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
37 cd tmp/nacl |
30
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
38 NACLURL="http://hyperelliptic.org/nacl/nacl-20110221.tar.bz2" |
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
39 (wget -q -O- "${NACLURL}" || curl -q "${NACLURL}") | bunzip2 | $tar -xf - --strip-components 1 |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
40 ./do |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
41 cd ../../ |
31 | 42 ABI=`tmp/nacl/build/*/bin/okabi | head -n 1` |
30
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
43 cp "tmp/nacl/build/*/lib/${ABI}/libnacl.a" lib/ |
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
44 cp "tmp/nacl/build/*/include/${ABI}/crypto_box_curve25519xsalsa20poly1305.h" include/ |
6f0e6b7dc088
Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
Ivo Smits <Ivo@UCIS.nl>
parents:
25
diff
changeset
|
45 cp "tmp/nacl/build/*/include/${ABI}/crypto_scalarmult_curve25519.h" include/ |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
46 echo Done. |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
47 fi |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
48 export CPATH="./include/:${CPATH}" |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
49 export LIBRARY_PATH="/usr/local/lib/:./lib/:${LIBRARY_PATH}" |
19
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
50 else |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
51 echo Using shared NaCl library. |
24
dfac56805c77
Fixed support for shared NaCl library, explicitly refer to cryptographic primitives
Ivo Smits <Ivo@UCIS.nl>
parents:
23
diff
changeset
|
52 export CPATH="/usr/include/nacl/:${CPATH}" |
0 | 53 fi |
54 | |
55 echo Building combined binary... | |
13 | 56 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.raw.c -o obj/proto.raw.o |
57 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o | |
58 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o | |
59 gcc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o | |
60 gcc $CFLAGS -c src/common.c -o obj/common.o | |
19
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
61 gcc $CFLAGS -o out/quicktun.combined obj/common.o obj/run.combined.o obj/proto.raw.o obj/proto.nacl0.o obj/proto.nacltai.o -lnacl $LDFLAGS |
0 | 62 |
63 echo Building single protocol binaries... | |
19
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
64 gcc $CFLAGS -o out/quicktun.raw src/proto.raw.c $LDFLAGS |
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
65 gcc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c -lnacl $LDFLAGS |
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
66 gcc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c -lnacl $LDFLAGS |
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
67 gcc $CFLAGS -o out/quicktun.keypair src/keypair.c -lnacl $LDFLAGS |
0 | 68 |
11
5be1ecb80cc9
Fixed build script for debian systems without packaging tools, removed packet logging from nacltai
root <root@Really.UFO-Net.nl>
parents:
7
diff
changeset
|
69 if [ -f /etc/network/interfaces ]; then |
0 | 70 echo Building debian binary... |
13 | 71 gcc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o |
19
3400045a57b8
Version 2.1.6, changed sourcecode archive generation, use NaCl version 20110221, do not duplicate NaCl sourcecode, support iproute2 for persistent tunnel creation on Debian, support running as root on Debian, removed autogenerated header files
Ivo Smits <Ivo@UCIS.nl>
parents:
18
diff
changeset
|
72 gcc $CFLAGS -o out/quicktun.debian obj/common.o obj/run.debian.o obj/proto.raw.o obj/proto.nacl0.o obj/proto.nacltai.o -lnacl $LDFLAGS |
11
5be1ecb80cc9
Fixed build script for debian systems without packaging tools, removed packet logging from nacltai
root <root@Really.UFO-Net.nl>
parents:
7
diff
changeset
|
73 if [ -x /usr/bin/dpkg-deb -a -x /usr/bin/fakeroot ]; then |
5be1ecb80cc9
Fixed build script for debian systems without packaging tools, removed packet logging from nacltai
root <root@Really.UFO-Net.nl>
parents:
7
diff
changeset
|
74 echo -n Building debian package... |
5be1ecb80cc9
Fixed build script for debian systems without packaging tools, removed packet logging from nacltai
root <root@Really.UFO-Net.nl>
parents:
7
diff
changeset
|
75 cd debian |
5be1ecb80cc9
Fixed build script for debian systems without packaging tools, removed packet logging from nacltai
root <root@Really.UFO-Net.nl>
parents:
7
diff
changeset
|
76 ./build.sh |
5be1ecb80cc9
Fixed build script for debian systems without packaging tools, removed packet logging from nacltai
root <root@Really.UFO-Net.nl>
parents:
7
diff
changeset
|
77 cd .. |
5be1ecb80cc9
Fixed build script for debian systems without packaging tools, removed packet logging from nacltai
root <root@Really.UFO-Net.nl>
parents:
7
diff
changeset
|
78 fi |
0 | 79 fi |
25
24e09485a8a3
Clean up in build script, fixed compiler warnings in nacltai protocol debug code
Ivo Smits <Ivo@UCIS.nl>
parents:
24
diff
changeset
|
80 |
24e09485a8a3
Clean up in build script, fixed compiler warnings in nacltai protocol debug code
Ivo Smits <Ivo@UCIS.nl>
parents:
24
diff
changeset
|
81 rm -rf obj tmp |