gmp is compiled with --enable-fat.
[gnutls:gnutls.git] / cross.mk
1
2 GNUTLS_FILE:=gnutls-3.0.9.tar.xz
3 GNUTLS_DIR:=gnutls-3.0.9
4
5 GMP_FILE:=gmp-5.0.2.tar.lz
6 GMP_DIR:=gmp-5.0.2
7
8 P11_KIT_FILE:=p11-kit-0.9.tar.gz
9 P11_KIT_DIR:=p11-kit-0.9
10
11 NETTLE_FILE:=nettle-2.4.tar.gz
12 NETTLE_DIR:=nettle-2.4
13
14 CROSS_DIR:=$(PWD)/win32
15 BIN_DIR:=$(CROSS_DIR)/bin
16 LIB_DIR:=$(CROSS_DIR)/lib
17 HEADERS_DIR:=$(LIB_DIR)/include
18
19 all: gnutls-win32
20
21 $(GNUTLS_DIR)-win32.zip: $(LIB_DIR) $(BIN_DIR) $(GNUTLS_DIR)/.installed
22         cd $(CROSS_DIR) && zip -r $(PWD)/$@ *
23
24 gnutls-win32: $(GNUTLS_DIR)-win32.zip
25
26 nettle: $(NETTLE_DIR)/.installed
27
28 gmp: $(GMP_DIR)/.installed
29
30 $(BIN_DIR):
31         mkdir -p $(BIN_DIR)
32
33 $(LIB_DIR):
34         mkdir -p $(LIB_DIR)
35         mkdir -p $(HEADERS_DIR)
36
37 CONFIG_FLAGS := --host=i686-w64-mingw32 --enable-shared --disable-static --bindir=$(BIN_DIR) --libdir=$(LIB_DIR) --includedir=$(HEADERS_DIR)
38
39 $(P11_KIT_DIR)/.configured:
40         test -f $(P11_KIT_FILE) || wget http://p11-glue.freedesktop.org/releases/$(P11_KIT_FILE)
41         test -d $(P11_KIT_DIR) || tar -xf $(P11_KIT_FILE)
42         cd $(P11_KIT_DIR) && ./configure $(CONFIG_FLAGS) && cd ..
43         touch $@
44
45 $(P11_KIT_DIR)/.installed: $(P11_KIT_DIR)/.configured
46         make -C $(P11_KIT_DIR) -j2
47         make -C $(P11_KIT_DIR) install -i
48         -rm -rf $(HEADERS_DIR)/p11-kit
49         -mv $(HEADERS_DIR)/p11-kit-1/p11-kit $(HEADERS_DIR)
50         -rmdir $(HEADERS_DIR)/p11-kit-1
51         rm -f $(BIN_DIR)/p11-kit.exe
52         touch $@
53
54 $(GMP_DIR)/.configured: 
55         test -f $(GMP_FILE) || wget ftp://ftp.gmplib.org/pub/$(GMP_DIR)/$(GMP_FILE)
56         test -d $(GMP_DIR) || tar -xf $(GMP_FILE)
57         cd $(GMP_DIR) && ./configure $(CONFIG_FLAGS) --enable-fat --exec-prefix=$(LIB_DIR) --oldincludedir=$(HEADERS_DIR) && cd ..
58         touch $@
59
60 $(GMP_DIR)/.installed: $(GMP_DIR)/.configured
61         make -C $(GMP_DIR) -j2
62         make -C $(GMP_DIR) install -i
63         touch $@
64
65 $(NETTLE_DIR)/.configured: $(GMP_DIR)/.installed
66         test -f $(NETTLE_FILE) || wget http://www.lysator.liu.se/~nisse/archive/$(NETTLE_FILE)
67         test -d $(NETTLE_DIR) || tar -xf $(NETTLE_FILE)
68         cd $(NETTLE_DIR) && CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" ./configure $(CONFIG_FLAGS) --with-lib-path=$(LIB_DIR) && cd ..
69         touch $@
70
71 #nettle messes up installation
72 $(NETTLE_DIR)/.installed: $(NETTLE_DIR)/.configured
73         make -C $(NETTLE_DIR) -j2
74         make -C $(NETTLE_DIR) install -i
75         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
76         cp $(NETTLE_DIR)/libnettle.dll.a $(NETTLE_DIR)/libhogweed.dll.a $(LIB_DIR)/
77         cp $(NETTLE_DIR)/libnettle*.dll $(NETTLE_DIR)/libhogweed*.dll $(BIN_DIR)/
78         touch $@
79
80 $(GNUTLS_DIR)/.installed: $(GNUTLS_DIR)/.configured
81         make -C $(GNUTLS_DIR) -j2
82         make -C $(GNUTLS_DIR) install -i
83         cp $(GNUTLS_DIR)/COPYING $(GNUTLS_DIR)/COPYING.LESSER $(CROSS_DIR)
84         touch $@
85
86 $(GNUTLS_DIR)/.configured: $(NETTLE_DIR)/.installed $(P11_KIT_DIR)/.installed
87         test -f $(GNUTLS_FILE) || wget ftp://ftp.gnu.org/gnu/gnutls/$(GNUTLS_FILE)
88         test -d $(GNUTLS_DIR) || tar -xf $(GNUTLS_FILE)
89         cd $(GNUTLS_DIR) && \
90                 P11_KIT_CFLAGS="-I$(HEADERS_DIR)" \
91                 P11_KIT_LIBS="$(LIB_DIR)/libp11-kit.la" \
92                 LDFLAGS="-L$(LIB_DIR)" CFLAGS="-I$(HEADERS_DIR)" CXXFLAGS="-I$(HEADERS_DIR)" \
93                 ./configure $(CONFIG_FLAGS) --with-libnettle-prefix=$(LIB_DIR) \
94                 --disable-openssl-compatibility && cd ..
95         touch $@
96
97 clean:
98         rm -rf $(CROSS_DIR) $(GNUTLS_DIR)/.installed $(NETTLE_DIR)/.installed $(GMP_DIR)/.installed $(P11_KIT_DIR)/.installed
99