annotate build.sh @ 30:6f0e6b7dc088

Fixed build script to support multiple abis on one machine, bugfix in code, minor improvements
author Ivo Smits <Ivo@UCIS.nl>
date Thu, 04 Aug 2011 18:17:06 +0200
parents 24e09485a8a3
children a51d07ac3f1b
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
13
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
2
17
d621348448de Fixing linuxisms
Dereckson <dereckson@espace-win.org>
parents: 14
diff changeset
3 if [ "$(uname -s)" = "OpenBSD" -o "$(uname -s)" = "FreeBSD" ]; 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
d621348448de Fixing linuxisms
Dereckson <dereckson@espace-win.org>
parents: 14
diff changeset
6 elif [ "$(uname -s)" = "SunOS" ]; then
13
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
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
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
9 CFLAGS="$CFLAGS -DSOLARIS -m64"
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
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
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
17 fi
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
18
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
19 echo Cleaning up...
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
20 rm -rf out/ obj/ tmp/
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
21
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
22 mkdir -p out
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
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 ../../
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
42 ABI=`nacl/build/*/bin/okabi | head -n 1`
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
43 cp "tmp/nacl/build/*/lib/${ABI}/libnacl.a" lib/
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
44 cp "tmp/nacl/build/*/include/${ABI}/crypto_box_curve25519xsalsa20poly1305.h" include/
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
45 cp "tmp/nacl/build/*/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
46 echo Done.
bd4259de8459 Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents: 19
diff changeset
47 fi
bd4259de8459 Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents: 19
diff changeset
48 export CPATH="./include/:${CPATH}"
bd4259de8459 Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents: 19
diff changeset
49 export LIBRARY_PATH="/usr/local/lib/:./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
50 else
23
bd4259de8459 Support shared NaCl library in build script (untested)
Ivo Smits <Ivo@UCIS.nl>
parents: 19
diff changeset
51 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
52 export CPATH="/usr/include/nacl/:${CPATH}"
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
53 fi
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
54
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
55 echo Building combined binary...
13
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
56 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.raw.c -o obj/proto.raw.o
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
57 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
58 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
59 gcc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
60 gcc $CFLAGS -c src/common.c -o obj/common.o
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
61 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 -lnacl $LDFLAGS
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
62
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
63 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
64 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
65 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
66 gcc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.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
67 gcc $CFLAGS -o out/quicktun.keypair src/keypair.c -lnacl $LDFLAGS
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
68
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
69 if [ -f /etc/network/interfaces ]; then
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
70 echo Building debian binary...
13
f7e0145d8e2a solaris support
Gabor Adam Toth <tg@tgbit.net>
parents: 11
diff changeset
71 gcc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o
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.debian obj/common.o obj/run.debian.o obj/proto.raw.o obj/proto.nacl0.o obj/proto.nacltai.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
73 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
74 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
75 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
76 ./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
77 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
78 fi
0
65c01f57bdce Initial commit
ivo <ivo@UFO-Net.nl>
parents:
diff changeset
79 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
80
24e09485a8a3 Clean up in build script, fixed compiler warnings in nacltai protocol debug code
Ivo Smits <Ivo@UCIS.nl>
parents: 24
diff changeset
81 rm -rf obj tmp