# gnutls4win Makefile --- build GnuTLS Windows installer using MinGW and NSIS # # Copyright (C) 2006, 2007, 2008 Free Software Foundation # # Written by Simon Josefsson # # This file is part of GNUTLS. # # GNUTLS is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # GNUTLS is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA CFGFLAGS=--host=i586-mingw32msvc --build=i686-pc-linux-gnu \ --prefix=$(PWD)/inst \ --with-gpg-error-prefix=$(PWD)/inst \ --with-libgcrypt-prefix=$(PWD)/inst \ --with-libtasn1-prefix=$(PWD)/inst LIBGPGERROR_VERSION=1.6 LIBGPGERROR_SO_VERSION=0 LIBGCRYPT_VERSION=1.4.1 LIBGCRYPT_SO_VERSION=11 LIBTASN1_VERSION=1.4 LIBTASN1_SO_VERSION=3 GNUTLS_VERSION=2.3.8 GNUTLS_SO_VERSION=26 GSASL_VERSION=0.2.24 GSASL_SO_VERSION=7 SHISHI_VERSION=0.0.34 SHISHI_SO_VERSION=0 all: add-pgp-keys gnutls-$(GNUTLS_VERSION).exe.sig gnutls-$(GNUTLS_VERSION).zip.sig clean: rm -rf src build inst .PHONY: add-pgp-keys add-pgp-keys: gpg --import PGP-KEYS # Libgpg-error dist/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2: rm -rf tmp mkdir tmp cd tmp && wget -q ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2 ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2.sig gpg tmp/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2.sig -mkdir dist mv tmp/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2 tmp/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2.sig dist/ rm -rf tmp src/libgpg-error-$(LIBGPGERROR_VERSION)/configure: dist/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2 -mkdir src cd src && tar xfj ../dist/libgpg-error-$(LIBGPGERROR_VERSION).tar.bz2 touch src/libgpg-error-$(LIBGPGERROR_VERSION)/configure build/libgpg-error-$(LIBGPGERROR_VERSION)/Makefile: src/libgpg-error-$(LIBGPGERROR_VERSION)/configure rm -rf build/libgpg-error-$(LIBGPGERROR_VERSION) mkdir -p build/libgpg-error-$(LIBGPGERROR_VERSION) && \ cd build/libgpg-error-$(LIBGPGERROR_VERSION) && \ ../../src/libgpg-error-$(LIBGPGERROR_VERSION)/configure $(CFGFLAGS) perl -pi -e 's/.run .LTCC/cc/' build/libgpg-error-$(LIBGPGERROR_VERSION)/libtool inst/bin/libgpg-error-$(LIBGPGERROR_SO_VERSION).dll: build/libgpg-error-$(LIBGPGERROR_VERSION)/Makefile make -C build/libgpg-error-$(LIBGPGERROR_VERSION) install check libgpg-error: inst/bin/libgpg-error-$(LIBGPGERROR_SO_VERSION).dll touch libgpg-error clean-libgpg-error: -make -C build/libgpg-error-$(LIBGPGERROR_VERSION) uninstall rm -rf src/libgpg-error-$(LIBGPGERROR_VERSION) rm -rf build/libgpg-error-$(LIBGPGERROR_VERSION) # Libgcrypt dist/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2: rm -rf tmp mkdir tmp cd tmp && wget -q ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2 ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2.sig gpg tmp/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2.sig -mkdir dist mv tmp/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2 tmp/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2.sig dist/ rm -rf tmp src/libgcrypt-$(LIBGCRYPT_VERSION)/configure: dist/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2 -mkdir src cd src && tar xfj ../dist/libgcrypt-$(LIBGCRYPT_VERSION).tar.bz2 touch src/libgcrypt-$(LIBGCRYPT_VERSION)/configure build/libgcrypt-$(LIBGCRYPT_VERSION)/Makefile: src/libgcrypt-$(LIBGCRYPT_VERSION)/configure rm -rf build/libgcrypt-$(LIBGCRYPT_VERSION) mkdir -p build/libgcrypt-$(LIBGCRYPT_VERSION) && \ cd build/libgcrypt-$(LIBGCRYPT_VERSION) && \ ../../src/libgcrypt-$(LIBGCRYPT_VERSION)/configure $(CFGFLAGS) perl -pi -e 's/.run .LTCC/cc/' build/libgcrypt-$(LIBGCRYPT_VERSION)/libtool inst/bin/libgcrypt-$(LIBGCRYPT_SO_VERSION).dll: build/libgcrypt-$(LIBGCRYPT_VERSION)/Makefile make -C build/libgcrypt-$(LIBGCRYPT_VERSION) install check libgcrypt: inst/bin/libgcrypt-$(LIBGCRYPT_SO_VERSION).dll touch libgcrypt clean-libgcrypt: -make -C build/libgcrypt-$(LIBGCRYPT_VERSION) uninstall rm -rf src/libgcrypt-$(LIBGCRYPT_VERSION) rm -rf build/libgcrypt-$(LIBGCRYPT_VERSION) # Libtasn1 dist/libtasn1-$(LIBTASN1_VERSION).tar.gz: rm -rf tmp mkdir tmp cd tmp && wget -q ftp://ftp.gnutls.org/pub/gnutls/libtasn1/libtasn1-$(LIBTASN1_VERSION).tar.gz ftp://ftp.gnutls.org/pub/gnutls/libtasn1/libtasn1-$(LIBTASN1_VERSION).tar.gz.sig gpg tmp/libtasn1-$(LIBTASN1_VERSION).tar.gz.sig -mkdir dist mv tmp/libtasn1-$(LIBTASN1_VERSION).tar.gz tmp/libtasn1-$(LIBTASN1_VERSION).tar.gz.sig dist/ rm -rf tmp src/libtasn1-$(LIBTASN1_VERSION)/configure: dist/libtasn1-$(LIBTASN1_VERSION).tar.gz -mkdir src cd src && tar xfz ../dist/libtasn1-$(LIBTASN1_VERSION).tar.gz touch src/libtasn1-$(LIBTASN1_VERSION)/configure build/libtasn1-$(LIBTASN1_VERSION)/Makefile: src/libtasn1-$(LIBTASN1_VERSION)/configure rm -rf build/libtasn1-$(LIBTASN1_VERSION) mkdir -p build/libtasn1-$(LIBTASN1_VERSION) && \ cd build/libtasn1-$(LIBTASN1_VERSION) && \ ../../src/libtasn1-$(LIBTASN1_VERSION)/configure $(CFGFLAGS) perl -pi -e 's/.run .LTCC/cc/' build/libtasn1-$(LIBTASN1_VERSION)/libtool inst/bin/libtasn1-$(LIBTASN1_SO_VERSION).dll: build/libtasn1-$(LIBTASN1_VERSION)/Makefile make -C build/libtasn1-$(LIBTASN1_VERSION) install cd build/libtasn1-$(LIBTASN1_VERSION)/src/ && cp .libs/asn1Decoding.exe asn1Decoding cd build/libtasn1-$(LIBTASN1_VERSION)/tests/ && make Test_encoding.exe Test_parser.exe Test_tree.exe && cp .libs/*.exe . make -C build/libtasn1-$(LIBTASN1_VERSION) check libtasn1: inst/bin/libtasn1-$(LIBTASN1_SO_VERSION).dll touch libtasn1 clean-libtasn1: -make -C build/libtasn1-$(LIBTASN1_VERSION) uninstall rm -rf src/libtasn1-$(LIBTASN1_VERSION) rm -rf build/libtasn1-$(LIBTASN1_VERSION) # GnuTLS dist/gnutls-$(GNUTLS_VERSION).tar.bz2: rm -rf tmp mkdir tmp cd tmp && wget -q ftp://ftp.gnutls.org/pub/gnutls/devel/gnutls-$(GNUTLS_VERSION).tar.bz2 ftp://ftp.gnutls.org/pub/gnutls/devel/gnutls-$(GNUTLS_VERSION).tar.bz2.sig gpg tmp/gnutls-$(GNUTLS_VERSION).tar.bz2.sig -mkdir dist mv tmp/gnutls-$(GNUTLS_VERSION).tar.bz2 tmp/gnutls-$(GNUTLS_VERSION).tar.bz2.sig dist/ rm -rf tmp src/gnutls-$(GNUTLS_VERSION)/configure: dist/gnutls-$(GNUTLS_VERSION).tar.bz2 -mkdir src cd src && tar xfj ../dist/gnutls-$(GNUTLS_VERSION).tar.bz2 touch src/gnutls-$(GNUTLS_VERSION)/configure build/gnutls-$(GNUTLS_VERSION)/Makefile: src/gnutls-$(GNUTLS_VERSION)/configure rm -rf build/gnutls-$(GNUTLS_VERSION) mkdir -p build/gnutls-$(GNUTLS_VERSION) && \ cd build/gnutls-$(GNUTLS_VERSION) && \ ../../src/gnutls-$(GNUTLS_VERSION)/configure $(CFGFLAGS) --disable-cxx inst/bin/libgnutls-$(GNUTLS_SO_VERSION).dll: build/gnutls-$(GNUTLS_VERSION)/Makefile make -C build/gnutls-$(GNUTLS_VERSION) install check gnutls: inst/bin/libgnutls-$(GNUTLS_SO_VERSION).dll touch gnutls clean-gnutls: -make -C build/gnutls-$(GNUTLS_VERSION) uninstall rm -rf src/gnutls-$(GNUTLS_VERSION) rm -rf build/gnutls-$(GNUTLS_VERSION) # GNU SASL src/gsasl-$(GSASL_VERSION)/configure: dist/gsasl-$(GSASL_VERSION).tar.gz -mkdir src cd src && tar xfz ../dist/gsasl-$(GSASL_VERSION).tar.gz touch src/gsasl-$(GSASL_VERSION)/configure build/gsasl-$(GSASL_VERSION)/Makefile: src/gsasl-$(GSASL_VERSION)/configure rm -rf build/gsasl-$(GSASL_VERSION) mkdir -p build/gsasl-$(GSASL_VERSION) && \ cd build/gsasl-$(GSASL_VERSION) && \ ../../src/gsasl-$(GSASL_VERSION)/configure $(CFGFLAGS) --with-libgcrypt perl -pi -e 's/.run .LTCC/cc/' build/gsasl-$(GSASL_VERSION)/libtool inst/bin/libgsasl-$(GSASL_SO_VERSION).dll: build/gsasl-$(GSASL_VERSION)/Makefile make -C build/gsasl-$(GSASL_VERSION) install check gsasl: inst/bin/libgsasl-$(GSASL_SO_VERSION).dll touch gsasl clean-gsasl: -make -C build/gsasl-$(GSASL_VERSION) uninstall rm -rf src/gsasl-$(GSASL_VERSION) rm -rf build/gsasl-$(GSASL_VERSION) # GNU Shishi src/shishi-$(SHISHI_VERSION)/configure: dist/shishi-$(SHISHI_VERSION).tar.gz -mkdir src cd src && tar xfz ../dist/shishi-$(SHISHI_VERSION).tar.gz touch src/shishi-$(SHISHI_VERSION)/configure build/shishi-$(SHISHI_VERSION)/Makefile: src/shishi-$(SHISHI_VERSION)/configure rm -rf build/shishi-$(SHISHI_VERSION) mkdir -p build/shishi-$(SHISHI_VERSION) && \ cd build/shishi-$(SHISHI_VERSION) && \ ../../src/shishi-$(SHISHI_VERSION)/configure $(CFGFLAGS) --with-libgcrypt perl -pi -e 's/.run .LTCC/cc/' build/shishi-$(SHISHI_VERSION)/libtool inst/bin/libshishi-$(SHISHI_SO_VERSION).dll: build/shishi-$(SHISHI_VERSION)/Makefile make -C build/shishi-$(SHISHI_VERSION) install check shishi: inst/bin/libshishi-$(SHISHI_SO_VERSION).dll touch shishi clean-shishi: -make -C build/shishi-$(SHISHI_VERSION) uninstall rm -rf src/shishi-$(SHISHI_VERSION) rm -rf build/shishi-$(SHISHI_VERSION) # Deliverables gnutls-$(GNUTLS_VERSION).exe: libgpg-error libgcrypt libtasn1 gnutls gnutls.nsi makensis \ -DLIBTASN1_VERSION=$(LIBTASN1_VERSION) \ -DLIBTASN1_SO_VERSION=$(LIBTASN1_SO_VERSION) \ -DLIBGPGERROR_VERSION=$(LIBGPGERROR_VERSION) \ -DLIBGPGERROR_SO_VERSION=$(LIBGPGERROR_SO_VERSION) \ -DLIBGCRYPT_VERSION=$(LIBGCRYPT_VERSION) \ -DLIBGCRYPT_SO_VERSION=$(LIBGCRYPT_SO_VERSION) \ -DGNUTLS_VERSION=$(GNUTLS_VERSION) \ -DGNUTLS_SO_VERSION=$(GNUTLS_SO_VERSION) \ gnutls.nsi chmod +x gnutls-$(GNUTLS_VERSION).exe gnutls-$(GNUTLS_VERSION).exe.sig: gnutls-$(GNUTLS_VERSION).exe rm -f gnutls-$(GNUTLS_VERSION).exe.sig gpg -b gnutls-$(GNUTLS_VERSION).exe gnutls-$(GNUTLS_VERSION).zip: libgpg-error libgcrypt libtasn1 gnutls rm -f gnutls-$(GNUTLS_VERSION).zip cd inst && zip -r ../gnutls-$(GNUTLS_VERSION).zip * gnutls-$(GNUTLS_VERSION).zip.sig: gnutls-$(GNUTLS_VERSION).zip rm -f gnutls-$(GNUTLS_VERSION).zip.sig gpg -b gnutls-$(GNUTLS_VERSION).zip gsasl-$(GSASL_VERSION).exe: libgpg-error libgcrypt gsasl gsasl.nsi makensis \ -DLIBGPGERROR_VERSION=$(LIBGPGERROR_VERSION) \ -DLIBGPGERROR_SO_VERSION=$(LIBGPGERROR_SO_VERSION) \ -DLIBGCRYPT_VERSION=$(LIBGCRYPT_VERSION) \ -DLIBGCRYPT_SO_VERSION=$(LIBGCRYPT_SO_VERSION) \ -DGSASL_VERSION=$(GSASL_VERSION) \ -DGSASL_SO_VERSION=$(GSASL_SO_VERSION) \ gsasl.nsi chmod +x gsasl-$(GSASL_VERSION).exe gsasl-$(GSASL_VERSION).exe.sig: gsasl-$(GSASL_VERSION).exe rm -f gsasl-$(GSASL_VERSION).exe.sig gpg -b gsasl-$(GSASL_VERSION).exe # Cruft README.html: README Makefile -asciidoc --attribute icons --attribute iconsdir=../graphics/ --attribute imagesdir=./ README -cvs commit -m Auto-update. README.html