Mercurial > hg > quicktun
annotate build.sh @ 46:3f04a72ce035
Salty protocol: move local sending timestamp forward if remote has a newer timestamp
author | Ivo Smits <Ivo@UCIS.nl> |
---|---|
date | Fri, 24 May 2013 17:06:42 +0200 |
parents | c8d176154d7c |
children | f80422b612ab |
rev | line source |
---|---|
0 | 1 #!/bin/sh |
13 | 2 |
38
d9f5caa13898
Added support for NetBSD, added command line parsing to provide configuration options
Ivo Smits <Ivo@UCIS.nl>
parents:
34
diff
changeset
|
3 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
|
4 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
|
5 tar="gtar" |
17 | 6 elif [ "$(uname -s)" = "SunOS" ]; then |
13 | 7 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
|
8 tar="gtar" |
13 | 9 CFLAGS="$CFLAGS -DSOLARIS -m64" |
10 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
|
11 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
|
12 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
|
13 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
|
14 LDFLAGS="$LDFLAGS -arch i686" |
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
|
15 else |
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
|
16 tar="tar" |
13 | 17 fi |
18 | |
0 | 19 echo Cleaning up... |
20 rm -rf out/ obj/ tmp/ | |
21 | |
22 mkdir -p out | |
23 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
|
24 $tar --transform "s,^,quicktun-`cat version`/," -czf "out/quicktun-`cat version`.tgz" build.sh clean.sh debian src version --exclude "debian/data" |
0 | 25 |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
26 mkdir -p obj tmp |
0 | 27 |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
28 export LIBRARY_PATH="/usr/local/lib/:${LIBRARY_PATH}" |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
29 if [ -z "${NACL_SHARED}" ]; then |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
30 mkdir -p lib include |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
31 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
|
32 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
|
33 echo Found. |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
34 else |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
35 echo Not found, building... |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
36 mkdir tmp/nacl |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
37 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
|
38 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
|
39 (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
|
40 ./do |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
41 cd ../../ |
34
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
42 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
|
43 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
|
44 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
|
45 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
|
46 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
|
47 echo Done. |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
48 fi |
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
49 export CPATH="./include/:${CPATH}" |
34
b876afa5a72a
Fixed the build script and FreeBSD tun mode
Ivo Smits <Ivo@UCIS.nl>
parents:
31
diff
changeset
|
50 export LIBRARY_PATH="./lib/:${LIBRARY_PATH}" |
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
|
51 else |
23
bd4259de8459
Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents:
19
diff
changeset
|
52 echo Using shared NaCl library. |
24
dfac56805c77
Fixed support for shared NaCl library, explicitly refer to cryptographic primitives
Ivo Smits <Ivo@UCIS.nl>
parents:
23
diff
changeset
|
53 export CPATH="/usr/include/nacl/:${CPATH}" |
0 | 54 fi |
55 | |
38
d9f5caa13898
Added support for NetBSD, added command line parsing to provide configuration options
Ivo Smits <Ivo@UCIS.nl>
parents:
34
diff
changeset
|
56 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
|
57 |
0 | 58 echo Building combined binary... |
13 | 59 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.raw.c -o obj/proto.raw.o |
60 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o | |
61 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o | |
42
c8d176154d7c
Added salty protocol (stateful, little overhead, PFS)
Ivo Smits <Ivo@UCIS.nl>
parents:
38
diff
changeset
|
62 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.salty.c -o obj/proto.salty.o |
13 | 63 gcc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o |
64 gcc $CFLAGS -c src/common.c -o obj/common.o | |
42
c8d176154d7c
Added salty protocol (stateful, little overhead, PFS)
Ivo Smits <Ivo@UCIS.nl>
parents:
38
diff
changeset
|
65 gcc $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 -lnacl $LDFLAGS |
0 | 66 |
67 echo Building single protocol binaries... | |
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
|
68 gcc $CFLAGS -o out/quicktun.raw src/proto.raw.c $LDFLAGS |
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
|
69 gcc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c -lnacl $LDFLAGS |
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
|
70 gcc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c -lnacl $LDFLAGS |
42
c8d176154d7c
Added salty protocol (stateful, little overhead, PFS)
Ivo Smits <Ivo@UCIS.nl>
parents:
38
diff
changeset
|
71 gcc $CFLAGS -o out/quicktun.salty src/proto.salty.c -lnacl $LDFLAGS |
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
|
72 gcc $CFLAGS -o out/quicktun.keypair src/keypair.c -lnacl $LDFLAGS |
0 | 73 |
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
|
74 if [ -f /etc/network/interfaces ]; then |
0 | 75 echo Building debian binary... |
13 | 76 gcc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o |
42
c8d176154d7c
Added salty protocol (stateful, little overhead, PFS)
Ivo Smits <Ivo@UCIS.nl>
parents:
38
diff
changeset
|
77 gcc $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 -lnacl $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
|
78 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
|
79 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
|
80 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
|
81 ./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
|
82 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
|
83 fi |
0 | 84 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
|
85 |