Mercurial > hg > quicktun
annotate build.sh @ 57:4c083d81f5a8
Fixes for OpenBSD (thanks to Pi <pi-quicktun@mrtheplague.net> and SeekingFor)
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Fri, 31 Jan 2014 23:58:53 +0100 |
parents | 377e7d4fbc10 |
children | fa53d1c54886 |
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 | |
26 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
|
27 $tar --transform "s,^,quicktun-`cat version`/," -czf "out/quicktun-`cat version`.tgz" build.sh clean.sh debian src version --exclude "debian/data" |
0 | 28 |
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
|
29 mkdir -p obj tmp tmp/include |
0 | 30 |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
31 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
|
32 |
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
|
33 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
|
34 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest2.c |
56
377e7d4fbc10
Use system default C compiler instead of gcc in build script
Ivo Smits <Ivo@UCIS.nl>
parents:
52
diff
changeset
|
35 if $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
|
36 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
|
37 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
|
38 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
|
39 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
|
40 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
|
41 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
|
42 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
|
43 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
|
44 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
|
45 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
|
46 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
|
47 else |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
48 mkdir -p lib include |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
49 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
|
50 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
|
51 echo Found. |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
52 else |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
53 echo Not found, building... |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
54 mkdir tmp/nacl |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
55 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
|
56 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
|
57 (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
|
58 ./do |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
59 cd ../../ |
34
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
60 NACLDIR="tmp/nacl/build/`hostname | sed 's/\..*//' | tr -cd '[a-z][A-Z][0-9]'`" |
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
61 ABI=`"${NACLDIR}/bin/okabi" | head -n 1` |
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
62 cp "${NACLDIR}/lib/${ABI}/libnacl.a" lib/ |
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
63 cp "${NACLDIR}/include/${ABI}/crypto_box_curve25519xsalsa20poly1305.h" include/ |
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
64 cp "${NACLDIR}/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
|
65 echo Done. |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
66 fi |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
67 export CPATH="./include/:${CPATH}" |
34
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
68 export LIBRARY_PATH="./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
|
69 export CRYPTLIB="nacl" |
0 | 70 fi |
71 | |
38
d9f5caa13898
Added support for NetBSD, added command line parsing to provide configuration options
Ivo Smits <Ivo@UCIS.nl>
parents:
34
diff
changeset
|
72 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
|
73 |
0 | 74 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
|
75 $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
|
76 $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
|
77 $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
|
78 $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
|
79 $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
|
80 $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
|
81 $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
|
82 ln out/quicktun.combined out/quicktun |
0 | 83 |
84 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
|
85 $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
|
86 $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
|
87 $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
|
88 $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
|
89 $cc $CFLAGS -o out/quicktun.keypair src/keypair.c -l$CRYPTLIB $LDFLAGS |
0 | 90 |
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
|
91 if [ -f /etc/network/interfaces ]; then |
0 | 92 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
|
93 $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
|
94 $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 |
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
|
95 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
|
96 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
|
97 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
|
98 ./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
|
99 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
|
100 fi |
0 | 101 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
|
102 |