Mercurial > hg > quicktun
annotate build.sh @ 66:9499cbd71871
Added tag V2.2.5 for changeset e0bd3a4993c2
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Tue, 24 Jan 2017 22:02:33 +0100 |
parents | e0bd3a4993c2 |
children | c87212fe8883 |
rev | line source |
---|---|
0 | 1 #!/bin/sh |
48
f80422b612ab
Abort build scripts on error, added quicktun (main) executable
Ivo Smits <Ivo@UCIS.nl>
parents:
42
diff
changeset
|
2 set -e |
13 | 3 |
56
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
4 tar="tar" |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
5 cc="cc" |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
6 |
38
d9f5caa13898
Added support for NetBSD, added command line parsing to provide configuration options
Ivo Smits <Ivo@UCIS.nl>
parents:
34
diff
changeset
|
7 if [ "$(uname -s)" = "OpenBSD" -o "$(uname -s)" = "FreeBSD" -o "$(uname -s)" = "NetBSD" ]; 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
|
8 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
|
9 tar="gtar" |
57
4c083d81f5a8
Fixes for OpenBSD (thanks to Pi <pi-quicktun@mrtheplague.net> and SeekingFor)
Ivo Smits <Ivo@UCIS.nl>
parents:
56
diff
changeset
|
10 export CPATH="/usr/local/include:${CPATH}" |
17 | 11 elif [ "$(uname -s)" = "SunOS" ]; then |
13 | 12 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
|
13 tar="gtar" |
13 | 14 CFLAGS="$CFLAGS -DSOLARIS -m64" |
15 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
|
16 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
|
17 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
|
18 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
|
19 LDFLAGS="$LDFLAGS -arch i686" |
13 | 20 fi |
21 | |
0 | 22 echo Cleaning up... |
23 rm -rf out/ obj/ tmp/ | |
24 | |
25 mkdir -p out | |
65
e0bd3a4993c2
Release version 2.2.5 with small changes for debian packaging
Ivo Smits <Ivo@UFO-Net.nl>
parents:
64
diff
changeset
|
26 if [ "$1" != "debian" ]; then |
e0bd3a4993c2
Release version 2.2.5 with small changes for debian packaging
Ivo Smits <Ivo@UFO-Net.nl>
parents:
64
diff
changeset
|
27 echo Creating source archive... |
e0bd3a4993c2
Release version 2.2.5 with small changes for debian packaging
Ivo Smits <Ivo@UFO-Net.nl>
parents:
64
diff
changeset
|
28 $tar --transform "s,^,quicktun-`cat version`/," -czf "out/quicktun-`cat version`.tgz" build.sh clean.sh debian src version --exclude "debian/data" |
e0bd3a4993c2
Release version 2.2.5 with small changes for debian packaging
Ivo Smits <Ivo@UFO-Net.nl>
parents:
64
diff
changeset
|
29 fi |
0 | 30 |
64
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
31 mkdir -p obj tmp tmp/include tmp/lib |
0 | 32 |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
33 export LIBRARY_PATH="/usr/local/lib/:${LIBRARY_PATH}" |
52
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
34 |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
35 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest1.c |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
36 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest2.c |
65
e0bd3a4993c2
Release version 2.2.5 with small changes for debian packaging
Ivo Smits <Ivo@UFO-Net.nl>
parents:
64
diff
changeset
|
37 if [ "$1" = "debian" ] || $cc -shared -lsodium tmp/libtest1.c -o tmp/libtest 2>/dev/null; then |
52
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
38 echo Using shared libsodium. |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
39 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
40 echo '#include <sodium/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
41 export CPATH="./tmp/include/:${CPATH}" |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
42 export CRYPTLIB="sodium" |
56
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
43 elif $cc -shared -lnacl tmp/libtest2.c -o tmp/libtest 2>/dev/null; then |
52
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
44 echo Using shared libnacl. |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
45 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
46 echo '#include <nacl/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
47 export CPATH="./tmp/include/:${CPATH}" |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
48 export CRYPTLIB="nacl" |
3115f8af98bb
Added support for libsodium, fixed bug in USE_PI compatibility mode, improved timestamp checking in nacltai protocol
Ivo Smits <Ivo@UCIS.nl>
parents:
48
diff
changeset
|
49 else |
64
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
50 echo Building TweetNaCl... |
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
51 echo 'The TweetNaCl cryptography library is not optimized for performance. Please install libsodium or libnacl before building QuickTun for best performance.' |
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
52 $cc $CFLAGS -shared -fPIC src/tweetnacl.c src/randombytes.c -o tmp/lib/libtweetnacl.a |
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
53 echo '#include <src/tweetnacl.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h |
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
54 echo '#include <src/tweetnacl.h>' > tmp/include/crypto_scalarmult_curve25519.h |
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
55 export CPATH="./tmp/include/:${CPATH}" |
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
56 export LIBRARY_PATH="./tmp/lib/:${LIBRARY_PATH}" |
fa53d1c54886
Use default RNG for key generation, added options to generate public key from private key, use bundled tweetnacl as fallback instead of nacl download
Ivo Smits <Ivo@UFO-Net.nl>
parents:
57
diff
changeset
|
57 export CRYPTLIB="tweetnacl" |
0 | 58 fi |
59 | |
38
d9f5caa13898
Added support for NetBSD, added command line parsing to provide configuration options
Ivo Smits <Ivo@UCIS.nl>
parents:
34
diff
changeset
|
60 CFLAGS="$CFLAGS -DQT_VERSION=\"`cat version`\"" |
d9f5caa13898
Added support for NetBSD, added command line parsing to provide configuration options
Ivo Smits <Ivo@UCIS.nl>
parents:
34
diff
changeset
|
61 |
0 | 62 echo Building combined binary... |
56
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
63 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.raw.c -o obj/proto.raw.o |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
64 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
65 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
66 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.salty.c -o obj/proto.salty.o |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
67 $cc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
68 $cc $CFLAGS -c src/common.c -o obj/common.o |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
69 $cc $CFLAGS -o out/quicktun.combined obj/common.o obj/run.combined.o obj/proto.raw.o obj/proto.nacl0.o obj/proto.nacltai.o obj/proto.salty.o -l$CRYPTLIB $LDFLAGS |
48
f80422b612ab
Abort build scripts on error, added quicktun (main) executable
Ivo Smits <Ivo@UCIS.nl>
parents:
42
diff
changeset
|
70 ln out/quicktun.combined out/quicktun |
0 | 71 |
72 echo Building single protocol binaries... | |
56
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
73 $cc $CFLAGS -o out/quicktun.raw src/proto.raw.c $LDFLAGS |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
74 $cc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c -l$CRYPTLIB $LDFLAGS |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
75 $cc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c -l$CRYPTLIB $LDFLAGS |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
76 $cc $CFLAGS -o out/quicktun.salty src/proto.salty.c -l$CRYPTLIB $LDFLAGS |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
77 $cc $CFLAGS -o out/quicktun.keypair src/keypair.c -l$CRYPTLIB $LDFLAGS |
0 | 78 |
65
e0bd3a4993c2
Release version 2.2.5 with small changes for debian packaging
Ivo Smits <Ivo@UFO-Net.nl>
parents:
64
diff
changeset
|
79 if [ -f /etc/network/interfaces -o "$1" = "debian" ]; then |
0 | 80 echo Building debian binary... |
56
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
81 $cc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o |
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
82 $cc $CFLAGS -o out/quicktun.debian obj/common.o obj/run.debian.o obj/proto.raw.o obj/proto.nacl0.o obj/proto.nacltai.o obj/proto.salty.o -l$CRYPTLIB $LDFLAGS |
65
e0bd3a4993c2
Release version 2.2.5 with small changes for debian packaging
Ivo Smits <Ivo@UFO-Net.nl>
parents:
64
diff
changeset
|
83 if [ "$1" != "debian" -a -x /usr/bin/dpkg-deb -a -x /usr/bin/fakeroot ]; then |
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
|
84 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
|
85 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
|
86 ./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
|
87 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
|
88 fi |
0 | 89 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
|
90 |