ocsptool: follow the documented process for gnutls_x509_crt_get_authority_info_access
[gnutls:gnutls.git] / cross.mk
1 SMP=-j4
2
3 GNUTLS_VERSION:=3.3.11
4 GNUTLS_FILE:=gnutls-$(GNUTLS_VERSION).tar.xz
5 GNUTLS_DIR:=gnutls-$(GNUTLS_VERSION)
6
7 OPENCONNECT_VERSION:=6.00
8 OPENCONNECT_FILE:=openconnect-$(OPENCONNECT_VERSION).tar.gz
9 OPENCONNECT_DIR:=openconnect-$(OPENCONNECT_VERSION)
10
11 GMP_VERSION=6.0.0
12 GMP_VERSIONA=6.0.0a
13 GMP_FILE:=gmp-$(GMP_VERSIONA).tar.bz2
14 GMP_SERV_DIR:=gmp-$(GMP_VERSIONA)
15 GMP_DIR:=gmp-$(GMP_VERSION)
16
17 XML2_VERSION=2.9.1
18 XML2_FILE:=libxml2-$(XML2_VERSION).tar.gz
19 XML2_DIR:=libxml2-$(XML2_VERSION)
20
21 LIBZ_VERSION=1.2.8
22 LIBZ_FILE:=zlib-$(LIBZ_VERSION).tar.gz
23 LIBZ_DIR:=zlib-$(LIBZ_VERSION)
24
25 P11_KIT_VERSION=0.20.7
26 P11_KIT_FILE:=p11-kit-$(P11_KIT_VERSION).tar.gz
27 P11_KIT_DIR:=p11-kit-$(P11_KIT_VERSION)
28
29 NETTLE_VERSION=2.7.1
30 NETTLE_FILE:=nettle-$(NETTLE_VERSION).tar.gz
31 NETTLE_DIR:=nettle-$(NETTLE_VERSION)
32
33 PKG_CONFIG_DIR:=$(PWD)/win32/lib/pkgconfig/
34 CROSS_DIR:=$(PWD)/win32
35 BIN_DIR:=$(CROSS_DIR)/bin
36 LIB_DIR:=$(CROSS_DIR)/lib
37 HEADERS_DIR:=$(CROSS_DIR)/include
38 DEVCPP_DIR:=$(PWD)/devcpp
39 LDFLAGS=
40 #doesn't seem to work
41 #LDFLAGS=-static-libgcc
42
43 all: update-gpg-keys gnutls-w32
44
45 upload: gnutls-w32 devpak
46         ../build-aux/gnupload --to ftp.gnu.org:gnutls/w32 $(GNUTLS_DIR)-w32.zip
47         ../build-aux/gnupload --to ftp.gnu.org:gnutls/w32 gnutls-$(GNUTLS_VERSION)-1gn.DevPak
48
49 update-gpg-keys:
50         gpg --recv-keys 96865171 B565716F D92765AF A8F4C2FD DB899F46
51
52 $(GNUTLS_DIR)-w32.zip: $(LIB_DIR) $(BIN_DIR) $(GNUTLS_DIR)/.installed
53         rm -rf $(CROSS_DIR)/etc $(CROSS_DIR)/share $(CROSS_DIR)/lib/include
54         cd $(CROSS_DIR) && zip -r $(PWD)/$@ *
55         gpg --sign --detach $(GNUTLS_DIR)-w32.zip
56
57 gnutls-$(GNUTLS_VERSION)-1gn.DevPak: $(GNUTLS_DIR)-w32.zip devcpp.tar
58         rm -rf $(DEVCPP_DIR)
59         mkdir -p $(DEVCPP_DIR)
60         cd $(DEVCPP_DIR) && unzip ../$(GNUTLS_DIR)-w32.zip 
61         cd $(DEVCPP_DIR) && tar xf ../devcpp.tar && sed -i 's/@VERSION@/$(GNUTLS_VERSION)/g' gnutls.DevPackage
62         cd $(DEVCPP_DIR) && tar -cjf ../$@ .
63
64 devpak: gnutls-$(GNUTLS_VERSION)-1gn.DevPak
65
66 gnutls-w32: $(GNUTLS_DIR)-w32.zip
67
68 openconnect-w32: $(OPENCONNECT_DIR)/.installed
69
70 nettle: $(NETTLE_DIR)/.installed
71
72 gmp: $(GMP_DIR)/.installed
73
74 $(BIN_DIR):
75         mkdir -p $(BIN_DIR)
76
77 $(LIB_DIR):
78         mkdir -p $(LIB_DIR)
79
80 CONFIG_ENV := PKG_CONFIG_PATH="$(PKG_CONFIG_DIR)"
81 CONFIG_ENV += PKG_CONFIG_LIBDIR="$(PKG_CONFIG_DIR)"
82 CONFIG_FLAGS1 := --prefix=$(CROSS_DIR) --enable-shared \
83         --libdir=$(LIB_DIR) --includedir=$(HEADERS_DIR)
84 CONFIG_FLAGS := --host=i686-w64-mingw32 $(CONFIG_FLAGS1) --disable-static --bindir=$(BIN_DIR) --sbindir=$(BIN_DIR) \
85          --enable-threads=win32 
86
87 $(P11_KIT_DIR)/.configured:
88         test -f $(P11_KIT_FILE) || wget http://p11-glue.freedesktop.org/releases/$(P11_KIT_FILE)
89         test -f $(P11_KIT_FILE).sig || wget http://p11-glue.freedesktop.org/releases/$(P11_KIT_FILE).sig
90         gpg --verify $(P11_KIT_FILE).sig
91         test -d $(P11_KIT_DIR) || tar -xf $(P11_KIT_FILE)
92         cd $(P11_KIT_DIR) && LDFLAGS="$(LDFLAGS)" $(CONFIG_ENV) ./configure $(CONFIG_FLAGS) --without-libffi --without-libtasn1 && cd ..
93         touch $@
94
95 $(P11_KIT_DIR)/.installed: $(P11_KIT_DIR)/.configured
96         make -C $(P11_KIT_DIR) $(SMP)
97         make -C $(P11_KIT_DIR) install -i
98         -rm -rf $(HEADERS_DIR)/p11-kit
99         -mv $(HEADERS_DIR)/p11-kit-1/p11-kit $(HEADERS_DIR)
100         -rm -rf $(HEADERS_DIR)/p11-kit-1
101         rm -f $(BIN_DIR)/p11-kit.exe
102         touch $@
103
104 $(GMP_DIR)/.configured: 
105         test -f $(GMP_FILE) || wget ftp://ftp.gmplib.org/pub/$(GMP_DIR)/$(GMP_FILE)
106         test -f $(GMP_FILE).sig || wget ftp://ftp.gmplib.org/pub/$(GMP_DIR)/$(GMP_FILE).sig
107         gpg --verify $(GMP_FILE).sig
108         test -d $(GMP_DIR) || tar -xf $(GMP_FILE)
109         cd $(GMP_DIR) && LDFLAGS="$(LDFLAGS)" $(CONFIG_ENV) ./configure $(CONFIG_FLAGS) --enable-fat --exec-prefix=$(LIB_DIR)  --oldincludedir=$(HEADERS_DIR) && cd ..
110         cp $(GMP_DIR)/COPYING.LESSERv3 $(CROSS_DIR)/COPYING.GMP
111         touch $@
112
113 $(GMP_DIR)/.installed: $(GMP_DIR)/.configured
114         make -C $(GMP_DIR) $(SMP)
115         make -C $(GMP_DIR) install -i
116         -mkdir -p $(HEADERS_DIR)
117         mv $(LIB_DIR)/include/* $(HEADERS_DIR)/
118         rmdir $(LIB_DIR)/include/
119         touch $@
120
121 $(NETTLE_DIR)/.configured: $(GMP_DIR)/.installed
122         test -f $(NETTLE_FILE) || wget http://www.lysator.liu.se/~nisse/archive/$(NETTLE_FILE)
123         test -f $(NETTLE_FILE).sig || wget http://www.lysator.liu.se/~nisse/archive/$(NETTLE_FILE).sig
124         gpg --verify $(NETTLE_FILE).sig
125         test -d $(NETTLE_DIR) || tar -xf $(NETTLE_FILE)
126         cd $(NETTLE_DIR) && CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" LDFLAGS="$(LDFLAGS)" $(CONFIG_ENV) ./configure $(CONFIG_FLAGS) --with-lib-path=$(LIB_DIR) && cd ..
127         touch $@
128
129 #nettle messes up installation
130 $(NETTLE_DIR)/.installed: $(NETTLE_DIR)/.configured
131         make -C $(NETTLE_DIR) $(SMP) -i
132         make -C $(NETTLE_DIR) install -i
133         rm -f $(LIB_DIR)/libnettle.a $(LIB_DIR)/libhogweed.a $(BIN_DIR)/nettle-hash.exe $(BIN_DIR)/nettle-lfib-stream.exe $(BIN_DIR)/pkcs1-conv.exe $(BIN_DIR)/sexp-conv.exe
134         cp $(NETTLE_DIR)/libnettle.dll.a $(NETTLE_DIR)/libhogweed.dll.a $(LIB_DIR)/
135         cp $(NETTLE_DIR)/libnettle*.dll $(NETTLE_DIR)/libhogweed*.dll $(BIN_DIR)/
136         touch $@
137
138 GCC_DLLS=/usr/lib/gcc/i686-w64-mingw32/4.9-win32/libgcc_s_sjlj-1.dll
139
140 $(GNUTLS_DIR)/.installed: $(GNUTLS_DIR)/.configured
141         make -C $(GNUTLS_DIR) $(SMP)
142         -cp $(GCC_DLLS) $(GNUTLS_DIR)/tests
143         -cp $(GCC_DLLS) $(GNUTLS_DIR)/tests/safe-renegotiation
144         -cp $(GCC_DLLS) $(GNUTLS_DIR)/tests/slow
145         sed -i 's/^"$$@" >$$log_file/echo $$@|grep exe >\/dev\/null; if [ $$? == 0 ];then wine "$$@" >$$log_file;else \/bin\/true >$$log_file;fi/g' $(GNUTLS_DIR)/build-aux/test-driver
146         make -C $(GNUTLS_DIR)/tests check $(SMP)
147         make -C $(GNUTLS_DIR) install -i
148         cp $(GNUTLS_DIR)/COPYING $(GNUTLS_DIR)/COPYING.LESSER $(CROSS_DIR)
149         -cp $(GCC_DLLS) $(BIN_DIR)/
150         touch $@
151
152 $(GNUTLS_DIR)/.configured: $(NETTLE_DIR)/.installed $(P11_KIT_DIR)/.installed
153         test -f $(GNUTLS_FILE) || wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/$(GNUTLS_FILE)
154         test -f $(GNUTLS_FILE).sig || wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/$(GNUTLS_FILE).sig
155         gpg --verify $(GNUTLS_FILE).sig
156         test -d $(GNUTLS_DIR) || tar -xf $(GNUTLS_FILE)
157         cd $(GNUTLS_DIR) && \
158                 $(CONFIG_ENV) LDFLAGS="$(LDFLAGS) -L$(LIB_DIR)" CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" \
159                 ./configure $(CONFIG_FLAGS) --enable-local-libopts --disable-cxx \
160                 --without-zlib --disable-nls --enable-gcc-warnings --disable-libdane --disable-openssl-compatibility --with-included-libtasn1 && cd ..
161         touch $@
162
163 $(OPENCONNECT_DIR)/.installed: $(OPENCONNECT_DIR)/.configured
164         make -C $(OPENCONNECT_DIR) $(SMP)
165         make -C $(OPENCONNECT_DIR) install -i
166         touch $@
167
168 $(OPENCONNECT_DIR)/.configured: $(GNUTLS_DIR)/.installed $(XML2_DIR)/.installed
169         test -f $(OPENCONNECT_FILE) || wget ftp://ftp.infradead.org/pub/openconnect/$(OPENCONNECT_FILE)
170         test -f $(OPENCONNECT_FILE).sig || wget ftp://ftp.infradead.org/pub/openconnect/$(OPENCONNECT_FILE).asc
171         gpg --verify $(OPENCONNECT_FILE).asc
172         test -d $(OPENCONNECT_DIR) || tar -xf $(OPENCONNECT_FILE)
173         cd $(OPENCONNECT_DIR) && \
174                 $(CONFIG_ENV) LDFLAGS="$(LDFLAGS) -L$(LIB_DIR)" CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" \
175                 ./configure $(CONFIG_FLAGS) && cd ..
176         sed -i 's/-Werror-implicit-function-declaration//g' $(OPENCONNECT_DIR)/Makefile
177         touch $@
178
179 $(XML2_DIR)/.configured: $(GMP_DIR)/.installed
180         test -f $(XML2_FILE) || wget ftp://xmlsoft.org/libxml2/$(XML2_FILE)
181         #test -f $(XML2_FILE).sig || wget ftp://xmlsoft.org/libxml2//$(XML2_FILE).sig
182         #gpg --verify $(XML2_FILE).sig
183         test -d $(XML2_DIR) || tar -xf $(XML2_FILE)
184         cd $(XML2_DIR) && CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" LDFLAGS="$(LDFLAGS)" $(CONFIG_ENV) ./configure $(CONFIG_FLAGS) --without-python --without-legacy --without-python --without-http --without-ftp --with-lib-path=$(LIB_DIR) && cd ..
185         touch $@
186
187 $(XML2_DIR)/.installed: $(XML2_DIR)/.configured
188         make -C $(XML2_DIR) $(SMP)
189         make -C $(XML2_DIR) install
190         touch $@
191
192 clean:
193         rm -rf $(CROSS_DIR) $(XML2_DIR)/.installed $(GNUTLS_DIR)/.installed $(OPENCONNECT_DIR)/.installed $(NETTLE_DIR)/.installed $(GMP_DIR)/.installed $(P11_KIT_DIR)/.installed
194
195 dirclean:
196         rm -rf $(CROSS_DIR) $(GNUTLS_DIR) $(NETTLE_DIR) $(GMP_DIR) $(P11_KIT_DIR)
197