1# Makefile for xmlsec, specific for Windows, MSVC and NMAKE. 2# 3# Take a look at the beginning and modify the variables to suit your 4# environment. 5XMLSEC_STATIC = yes 6XMLSEC_DEFAULT_CRYPTO = openssl 7XMLSEC_CFLAGS = 8XMLSEC_LIBS = 9 10# There should never be a need to modify anything below this line. 11XMLSEC_OBJS_DIR = build 12XMLSEC_EXAMPLES = \ 13 $(XMLSEC_OBJS_DIR)\sign1.exe \ 14 $(XMLSEC_OBJS_DIR)\sign2.exe \ 15 $(XMLSEC_OBJS_DIR)\sign3.exe \ 16 $(XMLSEC_OBJS_DIR)\verify1.exe \ 17 $(XMLSEC_OBJS_DIR)\verify2.exe \ 18 $(XMLSEC_OBJS_DIR)\verify3.exe \ 19 $(XMLSEC_OBJS_DIR)\verify4.exe \ 20 $(XMLSEC_OBJS_DIR)\encrypt1.exe \ 21 $(XMLSEC_OBJS_DIR)\encrypt2.exe \ 22 $(XMLSEC_OBJS_DIR)\encrypt3.exe \ 23 $(XMLSEC_OBJS_DIR)\decrypt1.exe \ 24 $(XMLSEC_OBJS_DIR)\decrypt2.exe \ 25 $(XMLSEC_OBJS_DIR)\decrypt3.exe \ 26 27# 28!IF "$(XMLSEC_DEFAULT_CRYPTO)" == "openssl" 29XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_DEFAULT_CRYPTO=\"openssl\"" 30XMLSEC_SOLIBS = libxmlsec-openssl.lib libeay32.lib wsock32.lib user32.lib gdi32.lib 31XMLSEC_ALIBS = libxmlsec-openssl_a.lib libeay32.lib wsock32.lib user32.lib gdi32.lib 32!ENDIF 33 34!IF "$(XMLSEC_DEFAULT_CRYPTO)" == "nss" 35XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_NSS" /D "XMLSEC_DEFAULT_CRYPTO=\"nss\"" 36XMLSEC_SOLIBS = libxmlsec-nss.lib nss3.lib nspr4.lib plds4.lib plc4.lib 37XMLSEC_ALIBS = libxmlsec-nss_a.lib nss3.lib nspr4.lib plds4.lib plc4.lib 38!ENDIF 39 40!IF "$(XMLSEC_DEFAULT_CRYPTO)" == "mscrypto" 41XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_DEFAULT_CRYPTO=\"mscrypto\"" 42XMLSEC_SOLIBS = libxmlsec-mscrypto.lib user32.lib gdi32.lib crypt32.lib advapi32.lib 43XMLSEC_ALIBS = libxmlsec-mscrypto_a.lib user32.lib gdi32.lib crypt32.lib advapi32.lib 44!ENDIF 45 46!IF "$(XMLSEC_STATIC)" == "yes" 47XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "XMLSEC_STATIC" 48XMLSEC_LIBS = $(XMLSEC_LIBS) $(XMLSEC_ALIBS) libxmlsec_a.lib \ 49 libxml2_a.lib libxslt_a.lib libexslt_a.lib 50!ELSE 51XMLSEC_LIBS = $(XMLSEC_LIBS) $(XMLSEC_SOLIBS) libxmlsec.lib libxml2.lib \ 52 libxslt.lib libexslt.lib 53!ENDIF 54 55# The preprocessor and its options. 56CPP = cl.exe /EP 57CPPFLAGS = /nologo 58 59# The compiler and its options. 60CC = cl.exe 61CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /DWIN32_SOCKETS /W1 /MD $(XMLSEC_CFLAGS) 62 63# The linker and its options. 64LD = link.exe 65LDFLAGS = /nologo $(XMLSEC_LIBS) wsock32.lib 66 67# Optimisation and debug symbols. 68!if "$(DEBUG)" == "1" 69CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 70LDFLAGS = $(LDFLAGS) /DEBUG 71!else 72CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 73LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 74!endif 75 76all : $(XMLSEC_OBJS_DIR) $(XMLSEC_EXAMPLES) 77 78$(XMLSEC_OBJS_DIR) : 79 if not exist $(XMLSEC_OBJS_DIR) mkdir $(XMLSEC_OBJS_DIR) 80 81.c{$(XMLSEC_OBJS_DIR)}.exe : 82 $(CC) /c $(CFLAGS) /Fo$(XMLSEC_OBJS_DIR)\ $< 83 $(LD) $(LDFLAGS) /OUT:$*.exe $*.obj 84 85clean: 86 if exist $(XMLSEC_OBJS_DIR) rmdir /S /Q $(XMLSEC_OBJS_DIR) 87