diff options
Diffstat (limited to 'win32/Makefile.msvc')
-rw-r--r-- | win32/Makefile.msvc | 699 |
1 files changed, 699 insertions, 0 deletions
diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc new file mode 100644 index 00000000..b1d8869e --- /dev/null +++ b/win32/Makefile.msvc @@ -0,0 +1,699 @@ +# Makefile for xmlsec, specific for Windows, MSVC and NMAKE. +# +# Take a look at the beginning and modify the variables to suit your +# environment. Having done that, you can do a +# +# nmake [all] to build the xmlsec and the accompanying utilities. +# nmake clean to remove all compiler output files and return to a +# clean state. +# nmake rebuild to rebuild everything from scratch. This basically does +# a 'nmake clean' and then a 'nmake all'. +# nmake install to install the library and its header files. +# +# March 2002, Igor Zlatkovic <igor@stud.fh-frankfurt.de> +# Created for LibXML and LibXSLT +# April 2002, Aleksey Sanin <aleksey@aleksey.com> +# Modified for XMLSec Libary +# + +AUTOCONF = .\configure.txt + +# If you cannot run the configuration script, which would take the burden of +# editing this file from your back, then remove the following line... +!include $(AUTOCONF) +# ...and enable the following lines and adapt them to your environment. +#BASEDIR = .. +#XMLSEC_SRCDIR = $(BASEDIR)\src +#APPS_SRCDIR = $(BASEDIR)\apps +#BINDIR = binaries +#XMLSEC_MAJOR_VERSION = 0 # set this to the right value. +#XMLSEC_MINOR_VERSION = 0 # set this to the right value. +#XMLSEC_MICRO_VERSION = 0 # set this to the right value. +#WITH_XMLSEC_DEBUG = 1 +#UNICODE = 1 +#DEBUG = 0 +#WITH_CRYPTO=openssl +#WITH_CRYPTO=openssl +#WITH_DEFAULT_CRYPTO=openssl +#WITH_OPENSSL=1 +#WITH_OPENSSL_VERSION= +#WITH_NSS=0 +#WITH_MSCRYPTO=0 +#WITH_LIBXSLT=1 +#STATIC = 0 +#WITH_DL = 1 +#PREFIX = . # set this to the right value. +#BINPREFIX = $(PREFIX)\bin +#INCPREFIX = $(PREFIX)\include +#LIBPREFIX = $(PREFIX)\lib +#SOPREFIX = $(PREFIX)\lib +#INCLUDE = $(INCLUDE);$(INCPREFIX) +#LIB = $(LIB);$(LIBPREFIX) + +# There should never be a need to modify anything below this line. +# ---------------------------------------------------------------- + +# +# Names of various input and output components. +# +!if "$(STATIC)" == "1" +APP_NAME = xmlseca.exe +!else +APP_NAME = xmlsec.exe +!endif +APP_NAME_MANIFEST = $(APP_NAME).manifest + +XMLSEC_NAME = xmlsec +XMLSEC_BASENAME = lib$(XMLSEC_NAME) +XMLSEC_SO = $(XMLSEC_BASENAME).dll +XMLSEC_SO_MANIFEST = $(XMLSEC_BASENAME).dll.manifest +XMLSEC_IMP = $(XMLSEC_BASENAME).lib +XMLSEC_A = $(XMLSEC_BASENAME)_a.lib + +XMLSEC_OPENSSL_NAME = $(XMLSEC_NAME)-openssl +XMLSEC_OPENSSL_BASENAME = lib$(XMLSEC_OPENSSL_NAME) +XMLSEC_OPENSSL_SO = $(XMLSEC_OPENSSL_BASENAME).dll +XMLSEC_OPENSSL_SO_MANIFEST = $(XMLSEC_OPENSSL_BASENAME).dll.manifest +XMLSEC_OPENSSL_IMP = $(XMLSEC_OPENSSL_BASENAME).lib +XMLSEC_OPENSSL_A = $(XMLSEC_OPENSSL_BASENAME)_a.lib + +XMLSEC_NSS_NAME = $(XMLSEC_NAME)-nss +XMLSEC_NSS_BASENAME = lib$(XMLSEC_NSS_NAME) +XMLSEC_NSS_SO = $(XMLSEC_NSS_BASENAME).dll +XMLSEC_NSS_SO_MANIFEST = $(XMLSEC_NSS_BASENAME).dll.manifest +XMLSEC_NSS_IMP = $(XMLSEC_NSS_BASENAME).lib +XMLSEC_NSS_A = $(XMLSEC_NSS_BASENAME)_a.lib + +XMLSEC_MSCRYPTO_NAME = $(XMLSEC_NAME)-mscrypto +XMLSEC_MSCRYPTO_BASENAME= lib$(XMLSEC_MSCRYPTO_NAME) +XMLSEC_MSCRYPTO_SO = $(XMLSEC_MSCRYPTO_BASENAME).dll +XMLSEC_MSCRYPTO_SO_MANIFEST = $(XMLSEC_MSCRYPTO_BASENAME).dll.manifest +XMLSEC_MSCRYPTO_IMP = $(XMLSEC_MSCRYPTO_BASENAME).lib +XMLSEC_MSCRYPTO_A = $(XMLSEC_MSCRYPTO_BASENAME)_a.lib + +# +# Places where intermediate files produced by the compiler go +# +XMLSEC_APPS_INTDIR = apps.int +XMLSEC_APPS_INTDIR_A = apps_a.int + +XMLSEC_INTDIR = $(XMLSEC_BASENAME).int +XMLSEC_INTDIR_A = $(XMLSEC_BASENAME)_a.int + +XMLSEC_OPENSSL_INTDIR = $(XMLSEC_BASENAME)_openssl.int +XMLSEC_OPENSSL_INTDIR_A = $(XMLSEC_BASENAME)_openssl_a.int + +XMLSEC_NSS_INTDIR = $(XMLSEC_BASENAME)_nss.int +XMLSEC_NSS_INTDIR_A = $(XMLSEC_BASENAME)_nss_a.int + +XMLSEC_MSCRYPTO_INTDIR = $(XMLSEC_BASENAME)_mscrypto.int +XMLSEC_MSCRYPTO_INTDIR_A= $(XMLSEC_BASENAME)_mscrypto_a.int + +# +# Source folders +# +XMLSEC_OPENSSL_SRCDIR = $(XMLSEC_SRCDIR)\openssl +XMLSEC_NSS_SRCDIR = $(XMLSEC_SRCDIR)\nss +XMLSEC_MSCRYPTO_SRCDIR = $(XMLSEC_SRCDIR)\mscrypto + + +# +# Object files for libraries and apps. +# +XMLSEC_APPS_OBJS = \ + $(XMLSEC_APPS_INTDIR)\crypto.obj\ + $(XMLSEC_APPS_INTDIR)\cmdline.obj\ + $(XMLSEC_APPS_INTDIR)\xmlsec.obj +XMLSEC_APPS_OBJS_A = \ + $(XMLSEC_APPS_INTDIR_A)\crypto.obj\ + $(XMLSEC_APPS_INTDIR_A)\cmdline.obj\ + $(XMLSEC_APPS_INTDIR_A)\xmlsec.obj + +XMLSEC_OBJS = \ + $(XMLSEC_INTDIR)\app.obj\ + $(XMLSEC_INTDIR)\base64.obj\ + $(XMLSEC_INTDIR)\bn.obj\ + $(XMLSEC_INTDIR)\buffer.obj \ + $(XMLSEC_INTDIR)\c14n.obj \ + $(XMLSEC_INTDIR)\dl.obj \ + $(XMLSEC_INTDIR)\enveloped.obj \ + $(XMLSEC_INTDIR)\errors.obj \ + $(XMLSEC_INTDIR)\io.obj \ + $(XMLSEC_INTDIR)\keyinfo.obj \ + $(XMLSEC_INTDIR)\keys.obj \ + $(XMLSEC_INTDIR)\keysdata.obj \ + $(XMLSEC_INTDIR)\keysmngr.obj \ + $(XMLSEC_INTDIR)\kw_aes_des.obj \ + $(XMLSEC_INTDIR)\list.obj \ + $(XMLSEC_INTDIR)\membuf.obj \ + $(XMLSEC_INTDIR)\nodeset.obj \ + $(XMLSEC_INTDIR)\parser.obj \ + $(XMLSEC_INTDIR)\soap.obj \ + $(XMLSEC_INTDIR)\strings.obj \ + $(XMLSEC_INTDIR)\templates.obj \ + $(XMLSEC_INTDIR)\transforms.obj \ + $(XMLSEC_INTDIR)\x509.obj \ + $(XMLSEC_INTDIR)\xkms.obj \ + $(XMLSEC_INTDIR)\xmldsig.obj \ + $(XMLSEC_INTDIR)\xmlenc.obj \ + $(XMLSEC_INTDIR)\xmlsec.obj \ + $(XMLSEC_INTDIR)\xmltree.obj \ + $(XMLSEC_INTDIR)\xpath.obj \ + $(XMLSEC_INTDIR)\xslt.obj +XMLSEC_OBJS_A = \ + $(XMLSEC_INTDIR_A)\app.obj\ + $(XMLSEC_INTDIR_A)\base64.obj\ + $(XMLSEC_INTDIR_A)\bn.obj\ + $(XMLSEC_INTDIR_A)\buffer.obj \ + $(XMLSEC_INTDIR_A)\c14n.obj \ + $(XMLSEC_INTDIR_A)\dl.obj \ + $(XMLSEC_INTDIR_A)\enveloped.obj \ + $(XMLSEC_INTDIR_A)\errors.obj \ + $(XMLSEC_INTDIR_A)\io.obj \ + $(XMLSEC_INTDIR_A)\keyinfo.obj \ + $(XMLSEC_INTDIR_A)\keys.obj \ + $(XMLSEC_INTDIR_A)\keysdata.obj \ + $(XMLSEC_INTDIR_A)\keysmngr.obj \ + $(XMLSEC_INTDIR_A)\kw_aes_des.obj \ + $(XMLSEC_INTDIR_A)\list.obj \ + $(XMLSEC_INTDIR_A)\membuf.obj \ + $(XMLSEC_INTDIR_A)\nodeset.obj \ + $(XMLSEC_INTDIR_A)\parser.obj \ + $(XMLSEC_INTDIR_A)\soap.obj \ + $(XMLSEC_INTDIR_A)\strings.obj \ + $(XMLSEC_INTDIR_A)\templates.obj \ + $(XMLSEC_INTDIR_A)\transforms.obj \ + $(XMLSEC_INTDIR_A)\x509.obj \ + $(XMLSEC_INTDIR_A)\xkms.obj \ + $(XMLSEC_INTDIR_A)\xmldsig.obj \ + $(XMLSEC_INTDIR_A)\xmlenc.obj \ + $(XMLSEC_INTDIR_A)\xmlsec.obj \ + $(XMLSEC_INTDIR_A)\xmltree.obj \ + $(XMLSEC_INTDIR_A)\xpath.obj \ + $(XMLSEC_INTDIR_A)\xslt.obj + +XMLSEC_OPENSSL_OBJS = \ + $(XMLSEC_OPENSSL_INTDIR)\app.obj\ + $(XMLSEC_OPENSSL_INTDIR)\bn.obj \ + $(XMLSEC_OPENSSL_INTDIR)\ciphers.obj \ + $(XMLSEC_OPENSSL_INTDIR)\crypto.obj \ + $(XMLSEC_OPENSSL_INTDIR)\digests.obj \ + $(XMLSEC_OPENSSL_INTDIR)\evp.obj \ + $(XMLSEC_OPENSSL_INTDIR)\hmac.obj \ + $(XMLSEC_OPENSSL_INTDIR)\kt_rsa.obj \ + $(XMLSEC_OPENSSL_INTDIR)\kw_aes.obj \ + $(XMLSEC_OPENSSL_INTDIR)\kw_des.obj \ + $(XMLSEC_OPENSSL_INTDIR)\signatures.obj \ + $(XMLSEC_OPENSSL_INTDIR)\strings.obj \ + $(XMLSEC_OPENSSL_INTDIR)\symkeys.obj \ + $(XMLSEC_OPENSSL_INTDIR)\x509.obj \ + $(XMLSEC_OPENSSL_INTDIR)\x509vfy.obj +XMLSEC_OPENSSL_OBJS_A = \ + $(XMLSEC_OPENSSL_INTDIR_A)\app.obj\ + $(XMLSEC_OPENSSL_INTDIR_A)\bn.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\ciphers.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\crypto.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\digests.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\evp.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\hmac.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\kt_rsa.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\kw_aes.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\kw_des.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\signatures.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\strings.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\symkeys.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\x509.obj \ + $(XMLSEC_OPENSSL_INTDIR_A)\x509vfy.obj + +XMLSEC_NSS_OBJS = \ + $(XMLSEC_NSS_INTDIR)\app.obj\ + $(XMLSEC_NSS_INTDIR)\bignum.obj\ + $(XMLSEC_NSS_INTDIR)\ciphers.obj \ + $(XMLSEC_NSS_INTDIR)\crypto.obj \ + $(XMLSEC_NSS_INTDIR)\digests.obj \ + $(XMLSEC_NSS_INTDIR)\hmac.obj \ + $(XMLSEC_NSS_INTDIR)\pkikeys.obj\ + $(XMLSEC_NSS_INTDIR)\signatures.obj\ + $(XMLSEC_NSS_INTDIR)\symkeys.obj \ + $(XMLSEC_NSS_INTDIR)\x509.obj\ + $(XMLSEC_NSS_INTDIR)\x509vfy.obj\ + $(XMLSEC_NSS_INTDIR)\keysstore.obj\ + $(XMLSEC_NSS_INTDIR)\keytrans.obj\ + $(XMLSEC_NSS_INTDIR)\kw_des.obj\ + $(XMLSEC_NSS_INTDIR)\kw_aes.obj\ + $(XMLSEC_NSS_INTDIR)\strings.obj +XMLSEC_NSS_OBJS_A = \ + $(XMLSEC_NSS_INTDIR_A)\app.obj\ + $(XMLSEC_NSS_INTDIR_A)\bignum.obj\ + $(XMLSEC_NSS_INTDIR_A)\ciphers.obj \ + $(XMLSEC_NSS_INTDIR_A)\crypto.obj \ + $(XMLSEC_NSS_INTDIR_A)\digests.obj \ + $(XMLSEC_NSS_INTDIR_A)\hmac.obj \ + $(XMLSEC_NSS_INTDIR_A)\pkikeys.obj\ + $(XMLSEC_NSS_INTDIR_A)\signatures.obj\ + $(XMLSEC_NSS_INTDIR_A)\symkeys.obj \ + $(XMLSEC_NSS_INTDIR_A)\x509.obj\ + $(XMLSEC_NSS_INTDIR_A)\x509vfy.obj\ + $(XMLSEC_NSS_INTDIR_A)\keysstore.obj\ + $(XMLSEC_NSS_INTDIR_A)\kt_rsa.obj\ + $(XMLSEC_NSS_INTDIR_A)\kw_des.obj\ + $(XMLSEC_NSS_INTDIR_A)\kw_aes.obj\ + $(XMLSEC_NSS_INTDIR_A)\strings.obj + +XMLSEC_MSCRYPTO_OBJS = \ + $(XMLSEC_MSCRYPTO_INTDIR)\app.obj\ + $(XMLSEC_MSCRYPTO_INTDIR)\crypto.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\ciphers.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\digests.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\hmac.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\symkeys.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\kt_rsa.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\kw_aes.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\kw_des.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\strings.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\signatures.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\certkeys.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\keysstore.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\x509.obj \ + $(XMLSEC_MSCRYPTO_INTDIR)\x509vfy.obj +XMLSEC_MSCRYPTO_OBJS_A = \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\app.obj\ + $(XMLSEC_MSCRYPTO_INTDIR_A)\crypto.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\ciphers.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\digests.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\hmac.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\symkeys.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\kt_rsa.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\kw_aes.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\kw_des.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\strings.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\signatures.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\certkeys.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\keysstore.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\x509.obj \ + $(XMLSEC_MSCRYPTO_INTDIR_A)\x509vfy.obj + +# +# The preprocessor and its options. +# +CPP = cl.exe /EP +CPPFLAGS = /nologo + +# +# The compiler and its options. +# +CC = cl.exe +CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" +CFLAGS = $(CFLAGS) /D "_MBCS" /D "_REENTRANT" /W1 /MD +CFLAGS = $(CFLAGS) /I$(BASEDIR) /I$(BASEDIR)\include +CFLAGS = $(CFLAGS) /I$(INCPREFIX) +CFLAGS = $(CFLAGS) /D PACKAGE=\"$(XMLSEC_NAME)\" +CFLAGS = $(CFLAGS) /D "HAVE_STDIO_H" /D "HAVE_STDLIB_H" +CFLAGS = $(CFLAGS) /D "HAVE_STRING_H" /D "HAVE_CTYPE_H" +CFLAGS = $(CFLAGS) /D "HAVE_MALLOC_H" /D "HAVE_MEMORY_H" + +!if "$(UNICODE)" == "1" +CFLAGS = $(CFLAGS) /D "UNICODE" /D "_UNICODE" +!endif + +# Optimisation and debug symbols. +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 +!else +CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 +!endif + +# configurable options +!if "$(WITH_LIBXSLT)" == "1" +!else +CFLAGS = $(CFLAGS) /DXMLSEC_NO_XSLT=1 +!endif + +!if "$(WITH_NT4)" == "1" +CFLAGS = $(CFLAGS) /DXMLSEC_MSCRYPTO_NT4=1 +!else +!endif + +APP_CFLAGS = /D "XMLSEC_CRYPTO=\"$(XMLSEC_CRYPTO)\"" +!if "$(WITH_DL)" == "1" +CFLAGS = $(CFLAGS) /D "XMLSEC_DL_WIN32" +APP_CFLAGS = $(APP_CFLAGS) /D "XMLSEC_CRYPTO_DYNAMIC_LOADING" +!else +CFLAGS = $(CFLAGS) /D "XMLSEC_NO_CRYPTO_DYNAMIC_LOADING" +APP_CFLAGS = $(APP_CFLAGS) $(XMLSEC_CRYPTO_CFLAGS) +# this disables TEMPLATE tests and helps with missing algorithms (hmac) in mscrypto +APP_CFLAGS = $(APP_CFLAGS) /D "XMLSEC_NO_TMPL_TEST" +!endif + +!if "$(WITH_OPENSSL_VERSION)" == "" +XMLSEC_OPENSSL_CFLAGS = /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_CRYPTO=\"openssl\"" +!else +XMLSEC_OPENSSL_CFLAGS = /D "$(WITH_OPENSSL_VERSION)" /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_CRYPTO=\"openssl\"" +!endif +XMLSEC_NSS_CFLAGS = /D "XMLSEC_CRYPTO_NSS" /D "XMLSEC_CRYPTO=\"nss\"" +XMLSEC_MSCRYPTO_CFLAGS = /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_CRYPTO=\"mscrypto\"" + +# +# The linker and its options. +# +LD = link.exe +LDFLAGS = /nologo +LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) +LIBS = + +# Optimisation and debug symbols. +!if "$(DEBUG)" == "1" +LDFLAGS = $(LDFLAGS) /DEBUG +!else +LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 +!endif + +SOLIBS = $(LIBS) libxml2.lib +ALIBS = $(LIBS) libxml2_a.lib + +!if "$(WITH_ICONV)" == "1" +SOLIBS = $(SOLIBS) iconv.lib +ALIBS = $(ALIBS) iconv_a.lib +!endif + +!if "$(WITH_LIBXSLT)" == "1" +SOLIBS = $(SOLIBS) libxslt.lib +ALIBS = $(ALIBS) libxslt_a.lib +!endif + +!if "$(STATIC)" == "1" +APP_LIBS = $(ALIBS) $(XMLSEC_CRYPTO_ALIBS) +!else +APP_LIBS = $(SOLIBS) $(XMLSEC_CRYPTO_SOLIBS) +!endif + +!if "$(WITH_DL)" == "1" +!else +!endif + +XMLSEC_OPENSSL_SOLIBS = libeay32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib +XMLSEC_OPENSSL_ALIBS = libeay32.lib wsock32.lib kernel32.lib user32.lib gdi32.lib + +XMLSEC_NSS_SOLIBS = smime3.lib ssl3.lib nss3.lib libnspr4.lib libplds4.lib libplc4.lib kernel32.lib user32.lib gdi32.lib +XMLSEC_NSS_ALIBS = smime3.lib ssl3.lib nss3.lib libnspr4_s.lib libplds4_s.lib libplc4_s.lib kernel32.lib user32.lib gdi32.lib + +XMLSEC_MSCRYPTO_SOLIBS = kernel32.lib user32.lib gdi32.lib Crypt32.lib Advapi32.lib +XMLSEC_MSCRYPTO_ALIBS = kernel32.lib user32.lib gdi32.lib Crypt32.lib Advapi32.lib + + +# The archiver and its options. +AR = link.exe /lib +ARFLAGS = /nologo + + +# +# xmlsec-<default-crypto> options +# +!if "$(WITH_DEFAULT_CRYPTO)" == "openssl" +XMLSEC_CRYPTO = "openssl" +XMLSEC_CRYPTO_CFLAGS = $(XMLSEC_OPENSSL_CFLAGS) +XMLSEC_CRYPTO_SOLIBS = $(XMLSEC_OPENSSL_SOLIBS) +XMLSEC_CRYPTO_ALIBS = $(XMLSEC_OPENSSL_ALIBS) +XMLSEC_CRYPTO_SO = $(XMLSEC_OPENSSL_SO) +XMLSEC_CRYPTO_IMP = $(XMLSEC_OPENSSL_IMP) +XMLSEC_CRYPTO_A = $(XMLSEC_OPENSSL_A) +!endif + +!if "$(WITH_DEFAULT_CRYPTO)" == "nss" +XMLSEC_CRYPTO = "nss" +XMLSEC_CRYPTO_CFLAGS = $(XMLSEC_NSS_CFLAGS) +XMLSEC_CRYPTO_SOLIBS = $(XMLSEC_NSS_SOLIBS) +XMLSEC_CRYPTO_ALIBS = $(XMLSEC_NSS_ALIBS) +XMLSEC_CRYPTO_SO = $(XMLSEC_NSS_SO) +XMLSEC_CRYPTO_IMP = $(XMLSEC_NSS_IMP) +XMLSEC_CRYPTO_A = $(XMLSEC_NSS_A) +!endif + +!if "$(WITH_DEFAULT_CRYPTO)" == "mscrypto" +XMLSEC_CRYPTO = "mscrypto" +XMLSEC_CRYPTO_CFLAGS = $(XMLSEC_MSCRYPTO_CFLAGS) +XMLSEC_CRYPTO_SOLIBS = $(XMLSEC_MSCRYPTO_SOLIBS) +XMLSEC_CRYPTO_ALIBS = $(XMLSEC_MSCRYPTO_ALIBS) +XMLSEC_CRYPTO_SO = $(XMLSEC_MSCRYPTO_SO) +XMLSEC_CRYPTO_IMP = $(XMLSEC_MSCRYPTO_IMP) +XMLSEC_CRYPTO_A = $(XMLSEC_MSCRYPTO_A) +!endif + +# +# Build rules +# + +all : xmlsec xmlseca $(WITH_CRYPTO) apps + +xmlsec : $(XMLSEC_APPS_INTDIR) $(BINDIR)\$(XMLSEC_SO) $(WITH_DEFAULT_CRYPTO) + +xmlseca : $(XMLSEC_APPS_INTDIR_A) $(BINDIR)\$(XMLSEC_A) $(WITH_DEFAULT_CRYPTO) + +openssl: $(BINDIR)\$(XMLSEC_OPENSSL_SO) $(BINDIR)\$(XMLSEC_OPENSSL_A) + +nss: $(BINDIR)\$(XMLSEC_NSS_SO) $(BINDIR)\$(XMLSEC_NSS_A) + +mscrypto: $(BINDIR)\$(XMLSEC_MSCRYPTO_SO) $(BINDIR)\$(XMLSEC_MSCRYPTO_A) + +apps : $(BINDIR)\$(APP_NAME) + +check : check-keys check-dsig check-enc + +check-keys : $(BINDIR)\$(APP_NAME) + cd .. + if not exist win32\tmp mkdir win32\tmp + set TMPFOLDER=win32/tmp + sh ./tests/testrun.sh ./tests/testKeys.sh default ./tests win32/$(BINDIR)/$(APP_NAME) der + cd win32 + +check-dsig : $(BINDIR)\$(APP_NAME) + cd .. + if not exist win32\tmp mkdir win32\tmp + set TMPFOLDER=win32/tmp + sh ./tests/testrun.sh ./tests/testDSig.sh default ./tests win32/$(BINDIR)/$(APP_NAME) der + cd win32 + +check-enc : $(BINDIR)\$(APP_NAME) + cd .. + if not exist win32\tmp mkdir win32\tmp + set TMPFOLDER=win32/tmp + sh ./tests/testrun.sh ./tests/testEnc.sh default ./tests win32/$(BINDIR)/$(APP_NAME) der + cd win32 + +check-xkms : $(BINDIR)\$(APP_NAME) + cd .. + if not exist win32\tmp mkdir win32\tmp + set TMPFOLDER=win32\tmp + sh ./tests/testrun.sh ./tests/testXKMS.sh default ./tests win32/$(BINDIR)/$(APP_NAME) der + cd win32 + +clean : + if exist $(XMLSEC_INTDIR) rmdir /S /Q $(XMLSEC_INTDIR) + if exist $(XMLSEC_INTDIR_A) rmdir /S /Q $(XMLSEC_INTDIR_A) + if exist $(XMLSEC_OPENSSL_INTDIR) rmdir /S /Q $(XMLSEC_OPENSSL_INTDIR) + if exist $(XMLSEC_OPENSSL_INTDIR_A) rmdir /S /Q $(XMLSEC_OPENSSL_INTDIR_A) + if exist $(XMLSEC_NSS_INTDIR) rmdir /S /Q $(XMLSEC_NSS_INTDIR) + if exist $(XMLSEC_NSS_INTDIR_A) rmdir /S /Q $(XMLSEC_NSS_INTDIR_A) + if exist $(XMLSEC_MSCRYPTO_INTDIR) rmdir /S /Q $(XMLSEC_MSCRYPTO_INTDIR) + if exist $(XMLSEC_MSCRYPTO_INTDIR_A) rmdir /S /Q $(XMLSEC_MSCRYPTO_INTDIR_A) + if exist $(XMLSEC_APPS_INTDIR) rmdir /S /Q $(XMLSEC_APPS_INTDIR) + if exist $(XMLSEC_APPS_INTDIR_A) rmdir /S /Q $(XMLSEC_APPS_INTDIR_A) + if exist $(BINDIR) rmdir /S /Q $(BINDIR) + +rebuild : clean all + +install : all + if not exist $(INCPREFIX)\$(XMLSEC_NAME) mkdir $(INCPREFIX)\$(XMLSEC_NAME) + if not exist $(BINPREFIX) mkdir $(BINPREFIX) + if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_OPENSSL_SO) if not exist $(INCPREFIX)\$(XMLSEC_NAME)\openssl mkdir $(INCPREFIX)\$(XMLSEC_NAME)\openssl + if exist $(BINDIR)\$(XMLSEC_NSS_SO) if not exist $(INCPREFIX)\$(XMLSEC_NAME)\nss mkdir $(INCPREFIX)\$(XMLSEC_NAME)\nss + if exist $(BINDIR)\$(XMLSEC_MSCRYPTO_SO) if not exist $(INCPREFIX)\$(XMLSEC_NAME)\mscrypto mkdir $(INCPREFIX)\$(XMLSEC_NAME)\mscrypto + if exist $(BASEDIR)\include\$(XMLSEC_NAME) copy $(BASEDIR)\include\$(XMLSEC_NAME)\*.h $(INCPREFIX)\$(XMLSEC_NAME) + if exist $(BINDIR)\$(XMLSEC_OPENSSL_SO) copy $(BASEDIR)\include\$(XMLSEC_NAME)\openssl\*.h $(INCPREFIX)\$(XMLSEC_NAME)\openssl + if exist $(BINDIR)\$(XMLSEC_NSS_SO) copy $(BASEDIR)\include\$(XMLSEC_NAME)\nss\*.h $(INCPREFIX)\$(XMLSEC_NAME)\nss + if exist $(BINDIR)\$(XMLSEC_MSCRYPTO_SO) copy $(BASEDIR)\include\$(XMLSEC_NAME)\mscrypto\*.h $(INCPREFIX)\$(XMLSEC_NAME)\mscrypto + if exist $(BINDIR)\$(XMLSEC_SO) copy $(BINDIR)\$(XMLSEC_SO) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_SO_MANIFEST) copy $(BINDIR)\$(XMLSEC_SO_MANIFEST) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_A) copy $(BINDIR)\$(XMLSEC_A) $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_IMP) copy $(BINDIR)\$(XMLSEC_IMP) $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_OPENSSL_SO) copy $(BINDIR)\$(XMLSEC_OPENSSL_SO) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_OPENSSL_SO_MANIFEST) copy $(BINDIR)\$(XMLSEC_OPENSSL_SO_MANIFEST) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_OPENSSL_A) copy $(BINDIR)\$(XMLSEC_OPENSSL_A) $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_OPENSSL_IMP) copy $(BINDIR)\$(XMLSEC_OPENSSL_IMP) $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_NSS_SO) copy $(BINDIR)\$(XMLSEC_NSS_SO) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_NSS_SO_MANIFEST) copy $(BINDIR)\$(XMLSEC_NSS_SO_MANIFEST) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_NSS_A) copy $(BINDIR)\$(XMLSEC_NSS_A) $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_NSS_IMP) copy $(BINDIR)\$(XMLSEC_NSS_IMP) $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_MSCRYPTO_SO) copy $(BINDIR)\$(XMLSEC_MSCRYPTO_SO) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_MSCRYPTO_SO_MANIFEST) copy $(BINDIR)\$(XMLSEC_MSCRYPTO_SO_MANIFEST) $(SOPREFIX) + if exist $(BINDIR)\$(XMLSEC_MSCRYPTO_A) copy $(BINDIR)\$(XMLSEC_MSCRYPTO_A) $(LIBPREFIX) + if exist $(BINDIR)\$(XMLSEC_MSCRYPTO_IMP) copy $(BINDIR)\$(XMLSEC_MSCRYPTO_IMP) $(LIBPREFIX) + if exist $(BINDIR)\$(APP_NAME) copy $(BINDIR)\$(APP_NAME) $(BINPREFIX) + if exist $(BINDIR)\$(APP_NAME_MANIFEST) copy $(BINDIR)\$(APP_NAME_MANIFEST) $(BINPREFIX) + +uninstall : + if exist $(INCPREFIX)\$(XMLSEC_NAME) rmdir /S /Q $(INCPREFIX)\$(XMLSEC_NAME) + if exist $(SOPREFIX)\$(XMLSEC_SO) del /F /S /Q $(SOPREFIX)\$(XMLSEC_SO) + if exist $(SOPREFIX)\$(XMLSEC_SO_MANIFEST) del /F /S /Q $(SOPREFIX)\$(XMLSEC_SO) + if exist $(LIBPREFIX)\$(XMLSEC_A) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_A) + if exist $(LIBPREFIX)\$(XMLSEC_IMP) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_IMP) + if exist $(SOPREFIX)\$(XMLSEC_OPENSSL_SO) del /F /S /Q $(SOPREFIX)\$(XMLSEC_OPENSSL_SO) + if exist $(SOPREFIX)\$(XMLSEC_OPENSSL_SO_MANIFEST) del /F /S /Q $(SOPREFIX)\$(XMLSEC_OPENSSL_SO) + if exist $(LIBPREFIX)\$(XMLSEC_OPENSSL_A) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_OPENSSL_A) + if exist $(LIBPREFIX)\$(XMLSEC_OPENSSL_IMP) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_OPENSSL_IMP) + if exist $(SOPREFIX)\$(XMLSEC_NSS_SO) del /F /S /Q $(SOPREFIX)\$(XMLSEC_NSS_SO) + if exist $(SOPREFIX)\$(XMLSEC_NSS_SO_MANIFEST) del /F /S /Q $(SOPREFIX)\$(XMLSEC_NSS_SO) + if exist $(LIBPREFIX)\$(XMLSEC_NSS_A) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_NSS_A) + if exist $(LIBPREFIX)\$(XMLSEC_NSS_IMP) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_NSS_IMP) + if exist $(SOPREFIX)\$(XMLSEC_MSCRYPTO_SO) del /F /S /Q $(SOPREFIX)\$(XMLSEC_MSCRYPTO_SO) + if exist $(SOPREFIX)\$(XMLSEC_MSCRYPTO_SO_MANIFEST) del /F /S /Q $(SOPREFIX)\$(XMLSEC_MSCRYPTO_SO) + if exist $(LIBPREFIX)\$(XMLSEC_MSCRYPTO_A) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_MSCRYPTO_A) + if exist $(LIBPREFIX)\$(XMLSEC_MSCRYPTO_IMP) del /F /S /Q $(LIBPREFIX)\$(XMLSEC_MSCRYPTO_IMP) + if exist $(BINPREFIX)\$(APP_NAME) del /F /S /Q $(BINPREFIX)\$(APP_NAME) + if exist $(BINPREFIX)\$(APP_NAME_MANIFEST) del /F /S /Q $(BINPREFIX)\$(APP_NAME_MANIFEST) + +# This is a target for me, to make a binary distribution. Not for the public use, +# keep your hands off :-) +BDVERSION = $(XMLSEC_VERSION_MAJOR).$(XMLSEC_VERSION_MINOR).$(XMLSEC_VERSION_SUBMINOR) +BDPREFIX = $(XMLSEC_BASENAME)-$(BDVERSION).win32 +bindist : all + $(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install + cscript //NoLogo configure.js genreadme $(XMLSEC_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt + +# Makes the compiler output directory. +$(BINDIR) : + if not exist $(BINDIR) mkdir $(BINDIR) + +# Makes intermediate directories. +$(XMLSEC_APPS_INTDIR) : + if not exist $(XMLSEC_APPS_INTDIR) mkdir $(XMLSEC_APPS_INTDIR) +$(XMLSEC_APPS_INTDIR_A) : + if not exist $(XMLSEC_APPS_INTDIR_A) mkdir $(XMLSEC_APPS_INTDIR_A) + +$(XMLSEC_INTDIR) : + if not exist $(XMLSEC_INTDIR) mkdir $(XMLSEC_INTDIR) +$(XMLSEC_INTDIR_A) : + if not exist $(XMLSEC_INTDIR_A) mkdir $(XMLSEC_INTDIR_A) + +$(XMLSEC_OPENSSL_INTDIR) : + if not exist $(XMLSEC_OPENSSL_INTDIR) mkdir $(XMLSEC_OPENSSL_INTDIR) +$(XMLSEC_OPENSSL_INTDIR_A) : + if not exist $(XMLSEC_OPENSSL_INTDIR_A) mkdir $(XMLSEC_OPENSSL_INTDIR_A) + +$(XMLSEC_NSS_INTDIR) : + if not exist $(XMLSEC_NSS_INTDIR) mkdir $(XMLSEC_NSS_INTDIR) +$(XMLSEC_NSS_INTDIR_A) : + if not exist $(XMLSEC_NSS_INTDIR_A) mkdir $(XMLSEC_NSS_INTDIR_A) + +$(XMLSEC_MSCRYPTO_INTDIR) : + if not exist $(XMLSEC_MSCRYPTO_INTDIR) mkdir $(XMLSEC_MSCRYPTO_INTDIR) +$(XMLSEC_MSCRYPTO_INTDIR_A) : + if not exist $(XMLSEC_MSCRYPTO_INTDIR_A) mkdir $(XMLSEC_MSCRYPTO_INTDIR_A) + +# An implicit rule for xmlsec compilation. +{$(APPS_SRCDIR)}.c{$(XMLSEC_APPS_INTDIR)}.obj:: + $(CC) $(CFLAGS) $(APP_CFLAGS) /Fo$(XMLSEC_APPS_INTDIR)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_INTDIR)}.obj:: + $(CC) $(CFLAGS) /Fo$(XMLSEC_INTDIR)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_OPENSSL_INTDIR)}.obj:: + $(CC) $(CFLAGS) $(XMLSEC_OPENSSL_CFLAGS) /Fo$(XMLSEC_OPENSSL_INTDIR)\ /c $< +{$(XMLSEC_OPENSSL_SRCDIR)}.c{$(XMLSEC_OPENSSL_INTDIR)}.obj:: + $(CC) $(CFLAGS) $(XMLSEC_OPENSSL_CFLAGS) /Fo$(XMLSEC_OPENSSL_INTDIR)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_NSS_INTDIR)}.obj:: + $(CC) $(CFLAGS) $(XMLSEC_NSS_CFLAGS) /Fo$(XMLSEC_NSS_INTDIR)\ /c $< +{$(XMLSEC_NSS_SRCDIR)}.c{$(XMLSEC_NSS_INTDIR)}.obj:: + $(CC) $(CFLAGS) $(XMLSEC_NSS_CFLAGS) /Fo$(XMLSEC_NSS_INTDIR)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_MSCRYPTO_INTDIR)}.obj:: + $(CC) $(CFLAGS) $(XMLSEC_MSCRYPTO_CFLAGS) /Fo$(XMLSEC_MSCRYPTO_INTDIR)\ /c $< +{$(XMLSEC_MSCRYPTO_SRCDIR)}.c{$(XMLSEC_MSCRYPTO_INTDIR)}.obj:: + $(CC) $(CFLAGS) $(XMLSEC_MSCRYPTO_CFLAGS) /Fo$(XMLSEC_MSCRYPTO_INTDIR)\ /c $< + +# An implicit rule for static xmlsec compilation. +{$(APPS_SRCDIR)}.c{$(XMLSEC_APPS_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) $(APP_CFLAGS) /Fo$(XMLSEC_APPS_INTDIR_A)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) /Fo$(XMLSEC_INTDIR_A)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_OPENSSL_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) $(XMLSEC_OPENSSL_CFLAGS) /Fo$(XMLSEC_OPENSSL_INTDIR_A)\ /c $< +{$(XMLSEC_OPENSSL_SRCDIR)}.c{$(XMLSEC_OPENSSL_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) $(XMLSEC_OPENSSL_CFLAGS) /Fo$(XMLSEC_OPENSSL_INTDIR_A)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_NSS_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) $(XMLSEC_NSS_CFLAGS) /Fo$(XMLSEC_NSS_INTDIR_A)\ /c $< +{$(XMLSEC_NSS_SRCDIR)}.c{$(XMLSEC_NSS_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) $(XMLSEC_NSS_CFLAGS) /Fo$(XMLSEC_NSS_INTDIR_A)\ /c $< + +{$(XMLSEC_SRCDIR)}.c{$(XMLSEC_MSCRYPTO_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) $(XMLSEC_MSCRYPTO_CFLAGS) /Fo$(XMLSEC_MSCRYPTO_INTDIR_A)\ /c $< +{$(XMLSEC_MSCRYPTO_SRCDIR)}.c{$(XMLSEC_MSCRYPTO_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" \ + $(CFLAGS) $(XMLSEC_MSCRYPTO_CFLAGS) /Fo$(XMLSEC_MSCRYPTO_INTDIR_A)\ /c $< + +# Compiles xmlsec source. Uses the implicit rule for commands. +$(XMLSEC_OBJS) : $(XMLSEC_INTDIR) +$(XMLSEC_OBJS_A) : $(XMLSEC_INTDIR_A) + +$(XMLSEC_OPENSSL_OBJS) : $(XMLSEC_OPENSSL_INTDIR) +$(XMLSEC_OPENSSL_OBJS_A) : $(XMLSEC_OPENSSL_INTDIR_A) + +$(XMLSEC_NSS_OBJS) : $(XMLSEC_NSS_INTDIR) +$(XMLSEC_NSS_OBJS_A) : $(XMLSEC_NSS_INTDIR_A) + +$(XMLSEC_MSCRYPTO_OBJS) : $(XMLSEC_MSCRYPTO_INTDIR) +$(XMLSEC_MSCRYPTO_OBJS_A) : $(XMLSEC_MSCRYPTO_INTDIR_A) + +# Creates the shared objects and archives. +$(BINDIR)\$(XMLSEC_SO) : $(BINDIR) $(XMLSEC_OBJS) + $(LD) $(LDFLAGS) /DLL /VERSION:$(XMLSEC_VERSION_MAJOR).$(XMLSEC_VERSION_MINOR) \ + /IMPLIB:$(BINDIR)\$(XMLSEC_IMP) /OUT:$(BINDIR)\$(XMLSEC_SO) \ + $(XMLSEC_OBJS) $(SOLIBS) +$(BINDIR)\$(XMLSEC_A) : $(BINDIR) $(XMLSEC_OBJS_A) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XMLSEC_A) $(XMLSEC_OBJS_A) + +$(BINDIR)\$(XMLSEC_OPENSSL_SO) : $(BINDIR) $(XMLSEC_OPENSSL_OBJS) + $(LD) $(LDFLAGS) /DLL /VERSION:$(XMLSEC_VERSION_MAJOR).$(XMLSEC_VERSION_MINOR) \ + /IMPLIB:$(BINDIR)\$(XMLSEC_OPENSSL_IMP) /OUT:$(BINDIR)\$(XMLSEC_OPENSSL_SO) \ + $(XMLSEC_OPENSSL_OBJS) $(XMLSEC_IMP) $(SOLIBS) $(XMLSEC_OPENSSL_SOLIBS) +$(BINDIR)\$(XMLSEC_OPENSSL_A) : $(BINDIR) $(XMLSEC_OPENSSL_OBJS_A) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XMLSEC_OPENSSL_A) $(XMLSEC_OPENSSL_OBJS_A) + +$(BINDIR)\$(XMLSEC_NSS_SO) : $(BINDIR) $(XMLSEC_NSS_OBJS) + $(LD) $(LDFLAGS) /DLL /VERSION:$(XMLSEC_VERSION_MAJOR).$(XMLSEC_VERSION_MINOR) \ + /IMPLIB:$(BINDIR)\$(XMLSEC_NSS_IMP) /OUT:$(BINDIR)\$(XMLSEC_NSS_SO) \ + $(XMLSEC_NSS_OBJS) $(XMLSEC_IMP) $(SOLIBS) $(XMLSEC_NSS_SOLIBS) +$(BINDIR)\$(XMLSEC_NSS_A) : $(BINDIR) $(XMLSEC_NSS_OBJS_A) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XMLSEC_NSS_A) $(XMLSEC_NSS_OBJS_A) + +$(BINDIR)\$(XMLSEC_MSCRYPTO_SO) : $(BINDIR) $(XMLSEC_MSCRYPTO_OBJS) + $(LD) $(LDFLAGS) /DLL /VERSION:$(XMLSEC_VERSION_MAJOR).$(XMLSEC_VERSION_MINOR) \ + /IMPLIB:$(BINDIR)\$(XMLSEC_MSCRYPTO_IMP) /OUT:$(BINDIR)\$(XMLSEC_MSCRYPTO_SO) \ + $(XMLSEC_MSCRYPTO_OBJS) $(XMLSEC_IMP) $(SOLIBS) $(XMLSEC_MSCRYPTO_SOLIBS) +$(BINDIR)\$(XMLSEC_MSCRYPTO_A) : $(BINDIR) $(XMLSEC_MSCRYPTO_OBJS_A) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XMLSEC_MSCRYPTO_A) $(XMLSEC_MSCRYPTO_OBJS_A) + +# An implicit rule for xmlsec command line tool +$(BINDIR)\xmlseca.exe: $(BINDIR) $(XMLSEC_APPS_OBJS_A) + $(LD) $(LDFLAGS) /OUT:$@ $(XMLSEC_A) $(XMLSEC_CRYPTO_A) $(APP_LIBS) $(XMLSEC_APPS_OBJS_A) +$(BINDIR)\xmlsec.exe: $(BINDIR) $(XMLSEC_APPS_OBJS) + $(LD) $(LDFLAGS) /OUT:$@ $(XMLSEC_IMP) $(XMLSEC_CRYPTO_IMP) $(APP_LIBS) $(XMLSEC_APPS_OBJS) + +# Builds xmlsec and friends. Uses the implicit rule for commands. +$(BINDIR)\$(APP_NAME) : $(BINDIR) xmlsec xmlseca + +# Source dependences should be autogenerated somehow here, but how to +# do it? I have no clue. + |