tunblick/third_party/Makefile

changeset 10
ece0fe74e240
parent 1
1a5334dfb21d
equal deleted inserted replaced
0:7a1ab26e3b3d 1:99e02e33b49d
1 # This Makefile builds all the third_party code 1 # This Makefile builds all the third_party code
2 # It shouldn't be called by anything other than automated scripts 2 # It shouldn't be called by anything other than automated scripts
3 3
4 # Both lzo and openvpn should be built universally 4 # Both lzo and openvpn should be built universally
5 # MSvB: ...using four architectures i386, x86_64, ppc, and ppc64
5 6
6 LZO_DIR=lzo-2.02 7 HOSTARCH=x86_64
8 LZO_DIR=lzo-2.03
7 PKCS11_DIR=pkcs11-helper-1.07 9 PKCS11_DIR=pkcs11-helper-1.07
8 10
9 all: tuntap lzo openvpn 11 all: tuntap openvpn
10 12
11 pkcs11-helper:: 13 pkcs11-helper:
12 @for a in ppc i686; do \ 14 echo Configure PKCS11-Helper 32/64 bit universal library
13 echo Configure PKCS11-Helper for $$a; \ 15 cd $(PKCS11_DIR) && OPENSSL_CFLAGS="-I/usr/include" OPENSSL_LIBS="-L/usr/lib -lssl -lcrypto" CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -Os -mmacosx-version-min=10.5 -arch ppc -arch ppc64 -arch i386 -arch x86_64" ./configure --enable-static --disable-dependency-tracking --prefix=$$(pwd)/staging/ --includedir=$$(pwd)/staging/include/
14 cd $(PKCS11_DIR); \ 16 echo Build PKCS11-Helper 32/64 bit universal binary
15 echo Forcefully be clean; \ 17 $(MAKE) -C $(PKCS11_DIR)
16 $(MAKE) clean; \ 18 echo Install to third_party/$(PKCS11_DIR)/staging
17 OPENSSL_LIBS="-lcrypto" CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -Os -mmacosx-version-min=10.4 -arch $$a" ./configure --enable-static --disable-dependency-tracking --prefix=$$(pwd)/staging_$$a/ --includedir=$$(pwd)/staging/include/; \ 19 $(MAKE) -C $(PKCS11_DIR) install
18 echo Build PKCS11-Helper; \
19 $(MAKE); \
20 echo Install to third_party/$(PKCS11_DIR)/staging_$$a; \
21 $(MAKE) install; \
22 cd ../; \
23 done
24 mkdir -p $(PKCS11_DIR)/staging/lib
25 lipo $(PKCS11_DIR)/staging_*/lib/libpkcs11-helper.a -create -output $(PKCS11_DIR)/staging/lib/libpkcs11-helper.a
26 cp $(PKCS11_DIR)/staging_i686/lib/libpkcs11-helper.la $(PKCS11_DIR)/staging/lib/
27 20
28 lzo:: 21 lzo:
29 @for a in ppc i686; do \ 22 @for a in ppc ppc64 i386 x86_64; do \
30 echo Configure LZO for $$a; \ 23 echo Configure LZO for $$a; \
31 cd $(LZO_DIR); \ 24 cd $(LZO_DIR); \
32 echo Forcefully be clean; \ 25 echo Forcefully be clean; \
33 $(MAKE) clean; \ 26 $(MAKE) clean; \
34 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -Os -mmacosx-version-min=10.4 -arch $$a" ./configure --disable-dependency-tracking --disable-asm --prefix=$$(pwd)/staging_$$a/ --includedir=$$(pwd)/staging/include/; \ 27 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -Os -mmacosx-version-min=10.5 -arch $$a" ./configure --host=$(HOSTARCH) --build=$$a --disable-dependency-tracking --disable-asm --prefix=$$(pwd)/staging_$$a/ --includedir=$$(pwd)/staging/include/; \
35 echo Build LZO; \ 28 echo Build LZO; \
36 $(MAKE); \ 29 $(MAKE); \
37 echo Install to third_party/$(LZO_DIR)/staging_$$a; \ 30 echo Install to third_party/$(LZO_DIR)/staging_$$a; \
38 $(MAKE) install; \ 31 $(MAKE) install; \
39 cd ../; \ 32 cd ..; \
40 done 33 done
41 34
42 # Use lipo to create a universal library 35 # Use lipo to create a universal library
43 mkdir -p $(LZO_DIR)/staging/lib 36 mkdir -p $(LZO_DIR)/staging/lib
44 lipo $(LZO_DIR)/staging_*/lib/liblzo2.a -create -output $(LZO_DIR)/staging/lib/liblzo2.a 37 lipo $(LZO_DIR)/staging_*/lib/liblzo2.a -create -output $(LZO_DIR)/staging/lib/liblzo2.a
45 cp $(LZO_DIR)/staging_i686/lib/liblzo2.la $(LZO_DIR)/staging/lib/ 38 cp $(LZO_DIR)/staging_i386/lib/liblzo2.la $(LZO_DIR)/staging/lib/
46 39
47 # wtf? library was renamed??? move it back so openvpn will build correctly 40 # wtf? library was renamed??? move it back so openvpn will build correctly
48 cd $(LZO_DIR)/staging/lib/; mv liblzo2.a liblzo.a; mv liblzo2.la liblzo.la 41 cd $(LZO_DIR)/staging/lib; mv liblzo2.a liblzo.a; mv liblzo2.la liblzo.la
49 42
50 lzo-clean: 43 lzo-clean:
51 $(MAKE) -C $(LZO_DIR) clean 44 $(MAKE) -C $(LZO_DIR) clean
52 rm -rf $(LZO_DIR)/staging* 45 rm -rf $(LZO_DIR)/staging*
53 46
54 openvpn: lzo pkcs11-helper 47 openvpn: lzo pkcs11-helper
55 @for a in ppc i686; do \ 48 echo Configure OpenVPN 32/64 bit universal binary
56 echo Configure OpenVPN for $$a; \ 49 cd openvpn && autoreconf -i -v
57 cd openvpn/; \ 50 cd openvpn && LDFLAGS="-L../$(PKCS11_DIR)/staging/lib/" CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -Os -mmacosx-version-min=10.5 -arch ppc -arch ppc64 -arch i386 -arch x86_64" ./configure --with-lzo-headers=../$(LZO_DIR)/staging/include/ --with-lzo-lib=../$(LZO_DIR)/staging/lib/ --with-pkcs11-helper-headers=../$(PKCS11_DIR)/staging/include/ --with-pkcs11-helper-libs=../$(PKCS11_DIR)/staging/lib/ --disable-dependency-tracking
58 echo Forcefully be clean; \ 51 echo Build OpenVPN 32/64 bit universal binary
59 $(MAKE) clean; \ 52 $(MAKE) -C openvpn
60 autoreconf -i -v; \
61 LDFLAGS="-L../$(PKCS11_DIR)/staging/lib/" CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk -Os -mmacosx-version-min=10.4 -arch $$a" ./configure --with-lzo-headers=../$(LZO_DIR)/staging/include/ --with-lzo-lib=../$(LZO_DIR)/staging/lib/ --with-pkcs11-helper-headers=../$(PKCS11_DIR)/staging/include/ --with-pkcs11-helper-libs=../$(PKCS11_DIR)/staging/lib/ --disable-dependency-tracking; \
62 echo Build OpenVPN; \
63 $(MAKE); \
64 mv openvpn openvpn_tblk_$$a; \
65 cd ../; \
66 done
67
68 # Use lipo to create a universal library
69 lipo openvpn/openvpn_tblk_* -create -output openvpn/openvpn
70 53
71 openvpn-clean: 54 openvpn-clean:
72 $(MAKE) -C openvpn/ clean 55 $(MAKE) -C openvpn clean
73 rm -f openvpn/openvpn_tblk_*
74 56
75 .PHONY : tuntap 57 .PHONY : tuntap
76 58
77 tuntap: 59 tuntap:
78 # Now we'll build the tun/tap driver 60 # Now we'll build the tun/tap driver
79 $(MAKE) -C tuntap/ 61 # # MSvB: Patch buildconf for building 64-bit (broken as of 20090728)
62 # sed -i .orig \
63 # -e 's;-arch ppc;-arch ppc -arch ppc64;g' \
64 # -e 's;-arch i386;-arch i386 -arch x86_64;g' \
65 # tuntap/src/tap/Makefile tuntap/src/tun/Makefile
66 # MSvB: Patch buildconf for building with up to date APIs
67 sed -i .orig \
68 -e 's;MacOSX10.4u.sdk;MacOSX10.5.sdk;g' \
69 tuntap/src/tap/Makefile tuntap/src/tun/Makefile
70 $(MAKE) -C tuntap
80 71
81 tuntap-clean: 72 tuntap-clean:
82 $(MAKE) -C tuntap/ clean 73 $(MAKE) -C tuntap clean
83
84
85 74
86 clean: lzo-clean tuntap-clean openvpn-clean 75 clean: lzo-clean tuntap-clean openvpn-clean

mercurial