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 ..