Git init
[external/xmlsec1.git] / examples / Makefile.w32
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. Having done that, you can do a
5
6 XMLSEC_STATIC  = yes
7 XMLSEC_CRYPTO  = openssl
8 XMLSEC_CFLAGS  =
9 XMLSEC_LIBS    =
10
11 # There should never be a need to modify anything below this line.
12 XMLSEC_OBJS_DIR = build
13 XMLSEC_EXAMPLES = \
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 \
28
29
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 
34 !ENDIF
35
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
40 !ENDIF
41
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
46 !ENDIF
47
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 
52 !ELSE
53 XMLSEC_LIBS   = $(XMLSEC_LIBS) $(XMLSEC_SOLIBS) libxmlsec.lib libxml2.lib \
54                 libxslt.lib libexslt.lib
55 !ENDIF
56
57 # The preprocessor and its options.
58 CPP = cl.exe /EP
59 CPPFLAGS = /nologo
60
61 # The compiler and its options.
62 CC = cl.exe
63 CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /DWIN32_SOCKETS /W1 /MD $(XMLSEC_CFLAGS)  
64
65 # The linker and its options.
66 LD = link.exe
67 LDFLAGS = /nologo $(XMLSEC_LIBS) wsock32.lib
68
69 # Optimisation and debug symbols.
70 !if "$(DEBUG)" == "1"
71 CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7
72 LDFLAGS = $(LDFLAGS) /DEBUG
73 !else
74 CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 
75 LDFLAGS = $(LDFLAGS) /OPT:NOWIN98
76 !endif
77
78 all : $(XMLSEC_OBJS_DIR) $(XMLSEC_EXAMPLES)
79
80 $(XMLSEC_OBJS_DIR) :
81         if not exist $(XMLSEC_OBJS_DIR) mkdir $(XMLSEC_OBJS_DIR)
82
83 .c{$(XMLSEC_OBJS_DIR)}.exe :
84         $(CC) /c $(CFLAGS) /Fo$(XMLSEC_OBJS_DIR)\ $<
85         $(LD) $(LDFLAGS) /OUT:$*.exe $*.obj
86
87 clean:
88         if exist $(XMLSEC_OBJS_DIR) rmdir /S /Q $(XMLSEC_OBJS_DIR)