Mercurial > hg > quicktun
comparison build.sh @ 69:36b9f18509db
Correctly link tweetnacl
author | Ivo Smits <Ivo@UFO-Net.nl> |
---|---|
date | Mon, 13 Mar 2017 18:17:36 +0100 |
parents | c87212fe8883 |
children | 86b8afcf65c7 |
comparison
equal
deleted
inserted
replaced
68:18e0b8bdeecc | 69:36b9f18509db |
---|---|
26 if [ "$1" != "debian" ]; then | 26 if [ "$1" != "debian" ]; then |
27 echo Creating source archive... | 27 echo Creating source archive... |
28 $tar --transform "s,^,quicktun-`cat version`/," -czf "out/quicktun-`cat version`.tgz" build.sh clean.sh deb src version --exclude "debian/data" | 28 $tar --transform "s,^,quicktun-`cat version`/," -czf "out/quicktun-`cat version`.tgz" build.sh clean.sh deb src version --exclude "debian/data" |
29 fi | 29 fi |
30 | 30 |
31 mkdir -p obj tmp tmp/include tmp/lib | 31 mkdir -p obj tmp tmp/include |
32 | 32 |
33 export LIBRARY_PATH="/usr/local/lib/:${LIBRARY_PATH}" | 33 export LIBRARY_PATH="/usr/local/lib/:${LIBRARY_PATH}" |
34 | 34 |
35 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest1.c | 35 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest1.c |
36 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest2.c | 36 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest2.c |
37 if [ "$1" = "debian" ] || $cc -shared -lsodium tmp/libtest1.c -o tmp/libtest 2>/dev/null; then | 37 if [ "$1" = "debian" ] || $cc -shared -lsodium tmp/libtest1.c -o tmp/libtest 2>/dev/null; then |
38 echo Using shared libsodium. | 38 echo Using shared libsodium. |
39 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h | 39 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h |
40 echo '#include <sodium/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h | 40 echo '#include <sodium/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h |
41 export CPATH="./tmp/include/:${CPATH}" | 41 export CPATH="./tmp/include/:${CPATH}" |
42 export CRYPTLIB="sodium" | 42 export CRYPTLIB="-lsodium" |
43 elif $cc -shared -lnacl tmp/libtest2.c -o tmp/libtest 2>/dev/null; then | 43 elif $cc -shared -lnacl tmp/libtest2.c -o tmp/libtest 2>/dev/null; then |
44 echo Using shared libnacl. | 44 echo Using shared libnacl. |
45 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h | 45 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h |
46 echo '#include <nacl/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h | 46 echo '#include <nacl/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h |
47 export CPATH="./tmp/include/:${CPATH}" | 47 export CPATH="./tmp/include/:${CPATH}" |
48 export CRYPTLIB="nacl" | 48 export CRYPTLIB="-lnacl" |
49 else | 49 else |
50 echo Building TweetNaCl... | 50 echo Building TweetNaCl... |
51 echo 'The TweetNaCl cryptography library is not optimized for performance. Please install libsodium or libnacl before building QuickTun for best performance.' | 51 echo 'The TweetNaCl cryptography library is not optimized for performance. Please install libsodium or libnacl before building QuickTun for best performance.' |
52 $cc $CFLAGS -shared -fPIC src/tweetnacl.c src/randombytes.c -o tmp/lib/libtweetnacl.a | 52 $cc $CFLAGS -c src/tweetnacl.c -o obj/tweetnacl.o |
53 $cc $CFLAGS -c src/randombytes.c -o obj/randombytes.o | |
53 echo '#include <src/tweetnacl.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h | 54 echo '#include <src/tweetnacl.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h |
54 echo '#include <src/tweetnacl.h>' > tmp/include/crypto_scalarmult_curve25519.h | 55 echo '#include <src/tweetnacl.h>' > tmp/include/crypto_scalarmult_curve25519.h |
55 export CPATH="./tmp/include/:${CPATH}" | 56 export CPATH="./tmp/include/:${CPATH}" |
56 export LIBRARY_PATH="./tmp/lib/:${LIBRARY_PATH}" | 57 export CRYPTLIB="obj/randombytes.o obj/tweetnacl.o" |
57 export CRYPTLIB="tweetnacl" | |
58 fi | 58 fi |
59 | 59 |
60 CFLAGS="$CFLAGS -DQT_VERSION=\"`cat version`\"" | 60 CFLAGS="$CFLAGS -DQT_VERSION=\"`cat version`\"" |
61 | 61 |
62 echo Building combined binary... | 62 echo Building combined binary... |
64 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o | 64 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o |
65 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o | 65 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o |
66 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.salty.c -o obj/proto.salty.o | 66 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.salty.c -o obj/proto.salty.o |
67 $cc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o | 67 $cc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o |
68 $cc $CFLAGS -c src/common.c -o obj/common.o | 68 $cc $CFLAGS -c src/common.c -o obj/common.o |
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 | 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 $CRYPTLIB $LDFLAGS |
70 ln out/quicktun.combined out/quicktun | 70 ln out/quicktun.combined out/quicktun |
71 | 71 |
72 echo Building single protocol binaries... | 72 echo Building single protocol binaries... |
73 $cc $CFLAGS -o out/quicktun.raw src/proto.raw.c $LDFLAGS | 73 $cc $CFLAGS -o out/quicktun.raw src/proto.raw.c $LDFLAGS |
74 $cc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c -l$CRYPTLIB $LDFLAGS | 74 $cc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c $CRYPTLIB $LDFLAGS |
75 $cc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c -l$CRYPTLIB $LDFLAGS | 75 $cc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c $CRYPTLIB $LDFLAGS |
76 $cc $CFLAGS -o out/quicktun.salty src/proto.salty.c -l$CRYPTLIB $LDFLAGS | 76 $cc $CFLAGS -o out/quicktun.salty src/proto.salty.c $CRYPTLIB $LDFLAGS |
77 $cc $CFLAGS -o out/quicktun.keypair src/keypair.c -l$CRYPTLIB $LDFLAGS | 77 $cc $CFLAGS -o out/quicktun.keypair src/keypair.c $CRYPTLIB $LDFLAGS |
78 | 78 |
79 if [ -f /etc/network/interfaces -o "$1" = "debian" ]; then | 79 if [ -f /etc/network/interfaces -o "$1" = "debian" ]; then |
80 echo Building debian binary... | 80 echo Building debian binary... |
81 $cc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o | 81 $cc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o |
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 | 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 $CRYPTLIB $LDFLAGS |
83 if [ "$1" != "debian" -a -x /usr/bin/dpkg-deb -a -x /usr/bin/fakeroot ]; then | 83 if [ "$1" != "debian" -a -x /usr/bin/dpkg-deb -a -x /usr/bin/fakeroot ]; then |
84 echo -n Building debian package... | 84 echo -n Building debian package... |
85 cd deb | 85 cd deb |
86 ./build.sh | 86 ./build.sh |
87 cd .. | 87 cd .. |