Fix "make clean"
[asdcplib.git] / win32 / Makefile.mak
1 # $Id$\r
2 # Copyright (c) 2007-2008 John Hurst. All rights reserved.\r
3 #\r
4 # Redistribution and use in source and binary forms, with or without\r
5 # modification, are permitted provided that the following conditions\r
6 # are met:\r
7 # 1. Redistributions of source code must retain the above copyright\r
8 #    notice, this list of conditions and the following disclaimer.\r
9 # 2. Redistributions in binary form must reproduce the above copyright\r
10 #    notice, this list of conditions and the following disclaimer in the\r
11 #    documentation and/or other materials provided with the distribution.\r
12 # 3. The name of the author may not be used to endorse or promote products\r
13 #    derived from this software without specific prior written permission.\r
14 #\r
15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r
16 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r
17 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
18 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r
19 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
20 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
21 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
22 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
23 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
24 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
25 \r
26 \r
27 SRCDIR = ..\src\r
28 OBJDIR = .\r
29 \r
30 !ifndef WITH_OPENSSL\r
31 !error "OpenSSL is needed! Specify it with WITH_OPENSSL=<OpenSSL directory>"\r
32 !endif\r
33 \r
34 CXXFLAGS1 = /nologo /W3 /GR /EHsc /DWIN32 /DKM_WIN32 /D_CONSOLE /I. /I$(SRCDIR) /DASDCP_PLATFORM=\"win32\" \\r
35         /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DPACKAGE_VERSION=\"1.3.19a\" \\r
36         /I$(WITH_OPENSSL)\inc32\r
37 \r
38 LIB_EXE = lib.exe\r
39 LIBFLAGS1 = /NOLOGO /LIBPATH:$(WITH_OPENSSL)\out32dll\r
40 \r
41 LINK = link.exe\r
42 LINKFLAGS1 = /NOLOGO /SUBSYSTEM:console /MACHINE:I386 /LIBPATH:. /DEBUG\r
43 \r
44 \r
45 !ifdef DEBUG\r
46 CXXFLAGS2 = $(CXXFLAGS1) /MTd /DDEBUG /D_DEBUG /Od /RTC1 /ZI\r
47 LINKFLAGS = $(LINKFLAGS1) /DEBUG\r
48 !else\r
49 CXXFLAGS2 = $(CXXFLAGS1) /MT /DNDEBUG /D_NDEBUG /O2\r
50 LINKFLAGS = $(LINKFLAGS1)\r
51 !endif\r
52 \r
53 !IFDEF WITH_XERCES\r
54 !ifdef WITH_XML_PARSER\r
55 !ERROR "Cannot include both Expat and Xerces-C++!"\r
56 !endif\r
57 \r
58 CXXFLAGS = $(CXXFLAGS2) /DHAVE_XERCES_C=1 /I"$(WITH_XERCES)"\include\r
59 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XERCES)"\lib\r
60 !ELSEIFDEF WITH_XML_PARSER\r
61 CXXFLAGS = $(CXXFLAGS2) /DASDCP_USE_EXPAT /I"$(WITH_XML_PARSER)"\Source\lib\r
62 !IFDEF DEBUG\r
63 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\debug\r
64 !ELSE\r
65 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\release\r
66 !ENDIF\r
67 !ELSE\r
68 CXXFLAGS = $(CXXFLAGS2)\r
69 LIBFLAGS = $(LIBFLAGS1)\r
70 !ENDIF\r
71 \r
72 CPPFLAGS = $(CXXFLAGS)\r
73 \r
74 KUMU_OBJS = KM_fileio.obj KM_log.obj KM_prng.obj KM_util.obj KM_xml.obj\r
75 ASDCP_OBJS = MPEG2_Parser.obj MPEG.obj JP2K_Codestream_Parser.obj \\r
76         JP2K_Sequence_Parser.obj JP2K.obj PCM_Parser.obj Wav.obj \\r
77         TimedText_Parser.obj KLV.obj Dict.obj MXFTypes.obj MXF.obj \\r
78         Index.obj Metadata.obj AS_DCP.obj AS_DCP_MXF.obj AS_DCP_AES.obj \\r
79         h__Reader.obj h__Writer.obj AS_DCP_MPEG2.obj AS_DCP_JP2K.obj \\r
80         AS_DCP_PCM.obj AS_DCP_TimedText.obj PCMParserList.obj \\r
81         MDD.obj\r
82 \r
83 {$(SRCDIR)\}.cpp{}.obj:\r
84         $(CXX) $(CXXFLAGS) -Fd$(OBJDIR)\ /c $<\r
85 \r
86 all: kmfilegen.exe kmrandgen.exe kmuuidgen.exe asdcp-test.exe blackwave.exe klvwalk.exe wavesplit.exe\r
87 \r
88 clean:\r
89         erase *.exe *.lib *.obj *.ilk *.pdb *.idb\r
90 \r
91 libkumu.lib : $(KUMU_OBJS)\r
92 !IFDEF WITH_XERCES\r
93 !IFDEF DEBUG\r
94         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib xerces-c_2D.lib\r
95 !ELSE\r
96         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib xerces-c_2.lib\r
97 !ENDIF\r
98 !ELSEIFDEF WITH_XML_PARSER\r
99         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib libexpatMT.lib\r
100 !ELSE\r
101         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib\r
102 !ENDIF \r
103 \r
104 libasdcp.lib: libkumu.lib $(ASDCP_OBJS)\r
105         $(LIB_EXE) $(LIBFLAGS) /OUT:libasdcp.lib $**\r
106 \r
107 blackwave.exe: libasdcp.lib blackwave.obj\r
108         $(LINK) $(LINKFLAGS) /OUT:blackwave.exe $** Advapi32.lib\r
109 \r
110 wavesplit.exe: libasdcp.lib wavesplit.obj\r
111         $(LINK) $(LINKFLAGS) /OUT:wavesplit.exe $** Advapi32.lib\r
112 \r
113 kmuuidgen.exe: libkumu.lib kmuuidgen.obj\r
114         $(LINK) $(LINKFLAGS) /OUT:kmuuidgen.exe $** Advapi32.lib\r
115 \r
116 kmrandgen.exe: libkumu.lib kmrandgen.obj\r
117         $(LINK) $(LINKFLAGS) /OUT:kmrandgen.exe $** Advapi32.lib\r
118 \r
119 kmfilegen.exe: libkumu.lib kmfilegen.obj\r
120         $(LINK) $(LINKFLAGS) /OUT:kmfilegen.exe $** Advapi32.lib\r
121 \r
122 klvwalk.exe: libasdcp.lib klvwalk.obj\r
123         $(LINK) $(LINKFLAGS) /OUT:klvwalk.exe $** Advapi32.lib\r
124 \r
125 asdcp-test.exe: libasdcp.lib asdcp-test.obj\r
126         $(LINK) $(LINKFLAGS) /OUT:asdcp-test.exe $** Advapi32.lib\r