1 # Makefile for xmlsec, specific for Windows, MSVC and NMAKE.
3 # Take a look at the beginning and modify the variables to suit your
4 # environment. Having done that, you can do a
7 XMLSEC_CRYPTO = openssl
11 # There should never be a need to modify anything below this line.
12 XMLSEC_OBJS_DIR = build
14 $(XMLSEC_OBJS_DIR)\sign1.exe \
15 $(XMLSEC_OBJS_DIR)\sign2.exe \
16 $(XMLSEC_OBJS_DIR)\sign3.exe \
17 $(XMLSEC_OBJS_DIR)\verify1.exe \
18 $(XMLSEC_OBJS_DIR)\verify2.exe \
19 $(XMLSEC_OBJS_DIR)\verify3.exe \
20 $(XMLSEC_OBJS_DIR)\verify4.exe \
21 $(XMLSEC_OBJS_DIR)\encrypt1.exe \
22 $(XMLSEC_OBJS_DIR)\encrypt2.exe \
23 $(XMLSEC_OBJS_DIR)\encrypt3.exe \
24 $(XMLSEC_OBJS_DIR)\decrypt1.exe \
25 $(XMLSEC_OBJS_DIR)\decrypt2.exe \
26 $(XMLSEC_OBJS_DIR)\decrypt3.exe \
27 $(XMLSEC_OBJS_DIR)\xkms-server.exe \
30 !IF "$(XMLSEC_CRYPTO)" == "openssl"
31 XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_CRYPTO=\"openssl\""
32 XMLSEC_SOLIBS = libxmlsec-openssl.lib libeay32.lib wsock32.lib user32.lib gdi32.lib
33 XMLSEC_ALIBS = libxmlsec-openssl_a.lib libeay32.lib wsock32.lib user32.lib gdi32.lib
36 !IF "$(XMLSEC_CRYPTO)" == "nss"
37 XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_NSS" /D "XMLSEC_CRYPTO=\"nss\""
38 XMLSEC_SOLIBS = libxmlsec-nss.lib nss3.lib nspr4.lib plds4.lib plc4.lib
39 XMLSEC_ALIBS = libxmlsec-nss_a.lib nss3.lib nspr4.lib plds4.lib plc4.lib
42 !IF "$(XMLSEC_CRYPTO)" == "mscrypto"
43 XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_CRYPTO=\"mscrypto\""
44 XMLSEC_SOLIBS = libxmlsec-mscrypto.lib user32.lib gdi32.lib crypt32.lib advapi32.lib
45 XMLSEC_ALIBS = libxmlsec-mscrypto_a.lib user32.lib gdi32.lib crypt32.lib advapi32.lib
48 !IF "$(XMLSEC_STATIC)" == "yes"
49 XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC"
50 XMLSEC_LIBS = $(XMLSEC_LIBS) $(XMLSEC_ALIBS) libxmlsec_a.lib \
51 libxml2_a.lib libxslt_a.lib libexslt_a.lib
53 XMLSEC_LIBS = $(XMLSEC_LIBS) $(XMLSEC_SOLIBS) libxmlsec.lib libxml2.lib \
54 libxslt.lib libexslt.lib
57 # The preprocessor and its options.
61 # The compiler and its options.
63 CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /DWIN32_SOCKETS /W1 /MD $(XMLSEC_CFLAGS)
65 # The linker and its options.
67 LDFLAGS = /nologo $(XMLSEC_LIBS) wsock32.lib
69 # Optimisation and debug symbols.
71 CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7
72 LDFLAGS = $(LDFLAGS) /DEBUG
74 CFLAGS = $(CFLAGS) /D "NDEBUG" /O2
75 LDFLAGS = $(LDFLAGS) /OPT:NOWIN98
78 all : $(XMLSEC_OBJS_DIR) $(XMLSEC_EXAMPLES)
81 if not exist $(XMLSEC_OBJS_DIR) mkdir $(XMLSEC_OBJS_DIR)
83 .c{$(XMLSEC_OBJS_DIR)}.exe :
84 $(CC) /c $(CFLAGS) /Fo$(XMLSEC_OBJS_DIR)\ $<
85 $(LD) $(LDFLAGS) /OUT:$*.exe $*.obj
88 if exist $(XMLSEC_OBJS_DIR) rmdir /S /Q $(XMLSEC_OBJS_DIR)