annotate build.sh @ 71:86b8afcf65c7 default tip master

Fixed order of tar arguments in build script
author Ivo Smits <Ivo@UFO-Net.nl>
date Mon, 22 Jul 2019 21:12:13 +0200
parents 36b9f18509db
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
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
d621348448de Fixing linuxisms
Dereckson <dereckson@espace-win.org>
parents: 14
diff changeset
11 elif [ "$(uname -s)" = "SunOS" ]; then
13
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
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
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
14 CFLAGS="$CFLAGS -DSOLARIS -m64"
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
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
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
20 fi
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
21
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
22 echo Cleaning up...
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
23 rm -rf out/ obj/ tmp/
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
24
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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...
71
86b8afcf65c7 Fixed order of tar arguments in build script
Ivo Smits <Ivo@UFO-Net.nl>
parents: 69
diff changeset
28 $tar --transform "s,^,quicktun-`cat version`/," --exclude "debian/data" -czf "out/quicktun-`cat version`.tgz" build.sh clean.sh deb src version
65
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
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
30
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
31 mkdir -p obj tmp tmp/include
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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}"
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
42 export CRYPTLIB="-lsodium"
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}"
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
48 export CRYPTLIB="-lnacl"
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
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.'
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
52 $cc $CFLAGS -c src/tweetnacl.c -o obj/tweetnacl.o
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
53 $cc $CFLAGS -c src/randombytes.c -o obj/randombytes.o
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
54 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
55 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
56 export CPATH="./tmp/include/:${CPATH}"
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
57 export CRYPTLIB="obj/randombytes.o obj/tweetnacl.o"
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
58 fi
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
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 $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
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
71
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
74 $cc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c $CRYPTLIB $LDFLAGS
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
75 $cc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c $CRYPTLIB $LDFLAGS
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
76 $cc $CFLAGS -o out/quicktun.salty src/proto.salty.c $CRYPTLIB $LDFLAGS
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
diff changeset
77 $cc $CFLAGS -o out/quicktun.keypair src/keypair.c $CRYPTLIB $LDFLAGS
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
69
36b9f18509db Correctly link tweetnacl
Ivo Smits <Ivo@UFO-Net.nl>
parents: 67
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 $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...
67
c87212fe8883 Renamed debian directory to prepare for debian packaging, fixed possible crash in PI mode 2
Ivo Smits <Ivo@UCIS.nl>
parents: 65
diff changeset
85 cd deb
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
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
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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