4 GNUTLS_FILE:=gnutls-$(GNUTLS_VERSION).tar.xz
5 GNUTLS_DIR:=gnutls-$(GNUTLS_VERSION)
8 GMP_FILE:=gmp-$(GMP_VERSION).tar.bz2
9 GMP_DIR:=gmp-$(GMP_VERSION)
11 P11_KIT_VERSION=0.18.2
12 P11_KIT_FILE:=p11-kit-$(P11_KIT_VERSION).tar.gz
13 P11_KIT_DIR:=p11-kit-$(P11_KIT_VERSION)
16 NETTLE_FILE:=nettle-$(NETTLE_VERSION).tar.gz
17 NETTLE_DIR:=nettle-$(NETTLE_VERSION)
19 CROSS_DIR:=$(PWD)/win32
20 BIN_DIR:=$(CROSS_DIR)/bin
21 LIB_DIR:=$(CROSS_DIR)/lib
22 HEADERS_DIR:=$(CROSS_DIR)/include
23 DEVCPP_DIR:=$(PWD)/devcpp
26 all: update-gpg-keys gnutls-w32
28 upload: gnutls-w32 devpak
29 ../build-aux/gnupload --to ftp.gnu.org:gnutls/w32 $(GNUTLS_DIR)-w32.zip
30 ../build-aux/gnupload --to ftp.gnu.org:gnutls/w32 gnutls-$(GNUTLS_VERSION)-1gn.DevPak
33 gpg --recv-keys 96865171 B565716F D92765AF A8F4C2FD DB899F46
35 $(GNUTLS_DIR)-w32.zip: $(LIB_DIR) $(BIN_DIR) $(GNUTLS_DIR)/.installed
36 rm -rf $(CROSS_DIR)/etc $(CROSS_DIR)/share $(CROSS_DIR)/lib/include $(CROSS_DIR)/lib/pkgconfig
37 cd $(CROSS_DIR) && zip -r $(PWD)/$@ *
38 gpg --sign --detach $(GNUTLS_DIR)-w32.zip
40 gnutls-$(GNUTLS_VERSION)-1gn.DevPak: $(GNUTLS_DIR)-w32.zip devcpp.tar
42 mkdir -p $(DEVCPP_DIR)
43 cd $(DEVCPP_DIR) && unzip ../$(GNUTLS_DIR)-w32.zip
44 cd $(DEVCPP_DIR) && tar xf ../devcpp.tar && sed -i 's/@VERSION@/$(GNUTLS_VERSION)/g' gnutls.DevPackage
45 cd $(DEVCPP_DIR) && tar -cjf ../$@ .
47 devpak: gnutls-$(GNUTLS_VERSION)-1gn.DevPak
49 gnutls-w32: $(GNUTLS_DIR)-w32.zip
51 nettle: $(NETTLE_DIR)/.installed
53 gmp: $(GMP_DIR)/.installed
61 CONFIG_FLAGS := --prefix=$(CROSS_DIR) --host=i686-w64-mingw32 --enable-shared --disable-static --bindir=$(BIN_DIR) --libdir=$(LIB_DIR) --includedir=$(HEADERS_DIR)
63 $(P11_KIT_DIR)/.configured:
64 test -f $(P11_KIT_FILE) || wget http://p11-glue.freedesktop.org/releases/$(P11_KIT_FILE)
65 test -f $(P11_KIT_FILE).sig || wget http://p11-glue.freedesktop.org/releases/$(P11_KIT_FILE).sig
66 gpg --verify $(P11_KIT_FILE).sig
67 test -d $(P11_KIT_DIR) || tar -xf $(P11_KIT_FILE)
68 cd $(P11_KIT_DIR) && LDFLAGS="$(LDFLAGS)" ./configure $(CONFIG_FLAGS) --without-libtasn1 && cd ..
71 $(P11_KIT_DIR)/.installed: $(P11_KIT_DIR)/.configured
72 make -C $(P11_KIT_DIR) $(SMP)
73 make -C $(P11_KIT_DIR) install -i
74 -rm -rf $(HEADERS_DIR)/p11-kit
75 -mv $(HEADERS_DIR)/p11-kit-1/p11-kit $(HEADERS_DIR)
76 -rm -rf $(HEADERS_DIR)/p11-kit-1
77 rm -f $(BIN_DIR)/p11-kit.exe
80 $(GMP_DIR)/.configured:
81 test -f $(GMP_FILE) || wget ftp://ftp.gmplib.org/pub/$(GMP_DIR)/$(GMP_FILE)
82 test -f $(GMP_FILE).sig || wget ftp://ftp.gmplib.org/pub/$(GMP_DIR)/$(GMP_FILE).sig
83 gpg --verify $(GMP_FILE).sig
84 test -d $(GMP_DIR) || tar -xf $(GMP_FILE)
85 cd $(GMP_DIR) && LDFLAGS="$(LDFLAGS)" ./configure $(CONFIG_FLAGS) --enable-fat --exec-prefix=$(LIB_DIR) --oldincludedir=$(HEADERS_DIR) && cd ..
86 cp $(GMP_DIR)/COPYING.LIB $(CROSS_DIR)/COPYING.GMP
89 $(GMP_DIR)/.installed: $(GMP_DIR)/.configured
90 make -C $(GMP_DIR) $(SMP)
91 make -C $(GMP_DIR) install -i
92 -mkdir -p $(HEADERS_DIR)
93 mv $(LIB_DIR)/include/* $(HEADERS_DIR)/
94 rmdir $(LIB_DIR)/include/
97 $(NETTLE_DIR)/.configured: $(GMP_DIR)/.installed
98 test -f $(NETTLE_FILE) || wget http://www.lysator.liu.se/~nisse/archive/$(NETTLE_FILE)
99 test -f $(NETTLE_FILE).sig || wget http://www.lysator.liu.se/~nisse/archive/$(NETTLE_FILE).sig
100 gpg --verify $(NETTLE_FILE).sig
101 test -d $(NETTLE_DIR) || tar -xf $(NETTLE_FILE)
102 cd $(NETTLE_DIR) && CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" LDFLAGS="$(LDFLAGS)" ./configure $(CONFIG_FLAGS) --with-lib-path=$(LIB_DIR) && cd ..
105 #nettle messes up installation
106 $(NETTLE_DIR)/.installed: $(NETTLE_DIR)/.configured
107 make -C $(NETTLE_DIR) $(SMP) -i
108 make -C $(NETTLE_DIR) install -i
109 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
110 cp $(NETTLE_DIR)/libnettle.dll.a $(NETTLE_DIR)/libhogweed.dll.a $(LIB_DIR)/
111 cp $(NETTLE_DIR)/libnettle*.dll $(NETTLE_DIR)/libhogweed*.dll $(BIN_DIR)/
114 $(GNUTLS_DIR)/.installed: $(GNUTLS_DIR)/.configured
115 make -C $(GNUTLS_DIR) $(SMP)
116 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
117 make -C $(GNUTLS_DIR) -C tests check $(SMP)
118 make -C $(GNUTLS_DIR) install -i
119 cp $(GNUTLS_DIR)/COPYING $(GNUTLS_DIR)/COPYING.LESSER $(CROSS_DIR)
120 cp /usr/i686-w64-mingw32/sys-root/mingw/bin/libgcc_s_sjlj-1.dll $(BIN_DIR)/
123 $(GNUTLS_DIR)/.configured: $(NETTLE_DIR)/.installed $(P11_KIT_DIR)/.installed
124 test -f $(GNUTLS_FILE) || wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/$(GNUTLS_FILE)
125 test -f $(GNUTLS_FILE).sig || wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/$(GNUTLS_FILE).sig
126 gpg --verify $(GNUTLS_FILE).sig
127 test -d $(GNUTLS_DIR) || tar -xf $(GNUTLS_FILE)
128 cd $(GNUTLS_DIR) && \
129 PKG_CONFIG_PATH="$(PWD)/$(NETTLE_DIR)/:$(PKG_CONFIG_PATH)" \
130 P11_KIT_CFLAGS="-I$(HEADERS_DIR)" \
131 P11_KIT_LIBS="$(LIB_DIR)/libp11-kit.la" \
132 LDFLAGS="$(LDFLAGS) -L$(LIB_DIR)" CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" \
133 ./configure $(CONFIG_FLAGS) --enable-local-libopts --with-libnettle-prefix=$(LIB_DIR) \
134 --disable-libdane --disable-openssl-compatibility --with-included-libtasn1 && cd ..
138 rm -rf $(CROSS_DIR) $(GNUTLS_DIR)/.installed $(NETTLE_DIR)/.installed $(GMP_DIR)/.installed $(P11_KIT_DIR)/.installed
141 rm -rf $(CROSS_DIR) $(GNUTLS_DIR) $(NETTLE_DIR) $(GMP_DIR) $(P11_KIT_DIR)