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 |