comparison build.sh @ 56:377e7d4fbc10

Use system default C compiler instead of gcc in build script
author Ivo Smits <Ivo@UCIS.nl>
date Fri, 31 Jan 2014 22:57:46 +0100
parents 3115f8af98bb
children 4c083d81f5a8
comparison
equal deleted inserted replaced
55:5685fad38195 56:377e7d4fbc10
1 #!/bin/sh 1 #!/bin/sh
2 set -e 2 set -e
3
4 tar="tar"
5 cc="cc"
3 6
4 if [ "$(uname -s)" = "OpenBSD" -o "$(uname -s)" = "FreeBSD" -o "$(uname -s)" = "NetBSD" ]; then 7 if [ "$(uname -s)" = "OpenBSD" -o "$(uname -s)" = "FreeBSD" -o "$(uname -s)" = "NetBSD" ]; then
5 echo "Detected *BSD" 8 echo "Detected *BSD"
6 tar="gtar" 9 tar="gtar"
7 elif [ "$(uname -s)" = "SunOS" ]; then 10 elif [ "$(uname -s)" = "SunOS" ]; then
11 LDFLAGS="$LDFLAGS -lnsl -lsocket" 14 LDFLAGS="$LDFLAGS -lnsl -lsocket"
12 elif [ "$(uname -s)" = "Darwin" ]; then 15 elif [ "$(uname -s)" = "Darwin" ]; then
13 echo "Detected Mac OS X (Darwin)" 16 echo "Detected Mac OS X (Darwin)"
14 CFLAGS="$CFLAGS -arch i686" 17 CFLAGS="$CFLAGS -arch i686"
15 LDFLAGS="$LDFLAGS -arch i686" 18 LDFLAGS="$LDFLAGS -arch i686"
16 else
17 tar="tar"
18 fi 19 fi
19 20
20 echo Cleaning up... 21 echo Cleaning up...
21 rm -rf out/ obj/ tmp/ 22 rm -rf out/ obj/ tmp/
22 23
28 29
29 export LIBRARY_PATH="/usr/local/lib/:${LIBRARY_PATH}" 30 export LIBRARY_PATH="/usr/local/lib/:${LIBRARY_PATH}"
30 31
31 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest1.c 32 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest1.c
32 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest2.c 33 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/libtest2.c
33 if gcc -shared -lsodium tmp/libtest1.c -o tmp/libtest 2>/dev/null; then 34 if $cc -shared -lsodium tmp/libtest1.c -o tmp/libtest 2>/dev/null; then
34 echo Using shared libsodium. 35 echo Using shared libsodium.
35 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h 36 echo '#include <sodium/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h
36 echo '#include <sodium/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h 37 echo '#include <sodium/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h
37 export CPATH="./tmp/include/:${CPATH}" 38 export CPATH="./tmp/include/:${CPATH}"
38 export CRYPTLIB="sodium" 39 export CRYPTLIB="sodium"
39 elif gcc -shared -lnacl tmp/libtest2.c -o tmp/libtest 2>/dev/null; then 40 elif $cc -shared -lnacl tmp/libtest2.c -o tmp/libtest 2>/dev/null; then
40 echo Using shared libnacl. 41 echo Using shared libnacl.
41 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h 42 echo '#include <nacl/crypto_box_curve25519xsalsa20poly1305.h>' > tmp/include/crypto_box_curve25519xsalsa20poly1305.h
42 echo '#include <nacl/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h 43 echo '#include <nacl/crypto_scalarmult_curve25519.h>' > tmp/include/crypto_scalarmult_curve25519.h
43 export CPATH="./tmp/include/:${CPATH}" 44 export CPATH="./tmp/include/:${CPATH}"
44 export CRYPTLIB="nacl" 45 export CRYPTLIB="nacl"
68 fi 69 fi
69 70
70 CFLAGS="$CFLAGS -DQT_VERSION=\"`cat version`\"" 71 CFLAGS="$CFLAGS -DQT_VERSION=\"`cat version`\""
71 72
72 echo Building combined binary... 73 echo Building combined binary...
73 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.raw.c -o obj/proto.raw.o 74 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.raw.c -o obj/proto.raw.o
74 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o 75 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacl0.c -o obj/proto.nacl0.o
75 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o 76 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.nacltai.c -o obj/proto.nacltai.o
76 gcc $CFLAGS -c -DCOMBINED_BINARY src/proto.salty.c -o obj/proto.salty.o 77 $cc $CFLAGS -c -DCOMBINED_BINARY src/proto.salty.c -o obj/proto.salty.o
77 gcc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o 78 $cc $CFLAGS -c -DCOMBINED_BINARY src/run.combined.c -o obj/run.combined.o
78 gcc $CFLAGS -c src/common.c -o obj/common.o 79 $cc $CFLAGS -c src/common.c -o obj/common.o
79 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 -l$CRYPTLIB $LDFLAGS 80 $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
80 ln out/quicktun.combined out/quicktun 81 ln out/quicktun.combined out/quicktun
81 82
82 echo Building single protocol binaries... 83 echo Building single protocol binaries...
83 gcc $CFLAGS -o out/quicktun.raw src/proto.raw.c $LDFLAGS 84 $cc $CFLAGS -o out/quicktun.raw src/proto.raw.c $LDFLAGS
84 gcc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c -l$CRYPTLIB $LDFLAGS 85 $cc $CFLAGS -o out/quicktun.nacl0 src/proto.nacl0.c -l$CRYPTLIB $LDFLAGS
85 gcc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c -l$CRYPTLIB $LDFLAGS 86 $cc $CFLAGS -o out/quicktun.nacltai src/proto.nacltai.c -l$CRYPTLIB $LDFLAGS
86 gcc $CFLAGS -o out/quicktun.salty src/proto.salty.c -l$CRYPTLIB $LDFLAGS 87 $cc $CFLAGS -o out/quicktun.salty src/proto.salty.c -l$CRYPTLIB $LDFLAGS
87 gcc $CFLAGS -o out/quicktun.keypair src/keypair.c -l$CRYPTLIB $LDFLAGS 88 $cc $CFLAGS -o out/quicktun.keypair src/keypair.c -l$CRYPTLIB $LDFLAGS
88 89
89 if [ -f /etc/network/interfaces ]; then 90 if [ -f /etc/network/interfaces ]; then
90 echo Building debian binary... 91 echo Building debian binary...
91 gcc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o 92 $cc $CFLAGS -c -DCOMBINED_BINARY -DDEBIAN_BINARY src/run.combined.c -o obj/run.debian.o
92 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 -l$CRYPTLIB $LDFLAGS 93 $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
93 if [ -x /usr/bin/dpkg-deb -a -x /usr/bin/fakeroot ]; then 94 if [ -x /usr/bin/dpkg-deb -a -x /usr/bin/fakeroot ]; then
94 echo -n Building debian package... 95 echo -n Building debian package...
95 cd debian 96 cd debian
96 ./build.sh 97 ./build.sh
97 cd .. 98 cd ..