release
[asdcplib.git] / win32 / Makefile.mak
1 # $Id$\r
2 # Copyright (c) 2007-2012 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 !ifdef ENABLE_RANDOM_UUID\r
35 CXXFLAGS1 = /nologo /W3 /GR /EHsc /DWIN32 /DKM_WIN32 /D_CONSOLE /I. /I$(SRCDIR) /DASDCP_PLATFORM=\"win32\" \\r
36         /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DPACKAGE_VERSION=\"2.5.11rc1\" \\r
37         /I"$(WITH_OPENSSL)"\inc32 /DCONFIG_RANDOM_UUID=1\r
38 !else\r
39 CXXFLAGS1 = /nologo /W3 /GR /EHsc /DWIN32 /DKM_WIN32 /D_CONSOLE /I. /I$(SRCDIR) /DASDCP_PLATFORM=\"win32\" \\r
40         /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DPACKAGE_VERSION=\"2.5.11rc1\" \\r
41         /I"$(WITH_OPENSSL)"\inc32\r
42 !endif\r
43 LIB_EXE = lib.exe\r
44 LIBFLAGS1 = /NOLOGO /LIBPATH:"$(WITH_OPENSSL)"\out32dll\r
45 \r
46 LINK = link.exe\r
47 LINKFLAGS1 = /NOLOGO /SUBSYSTEM:console /MACHINE:I386 /LIBPATH:. /DEBUG\r
48 \r
49 \r
50 !ifdef DEBUG\r
51 CXXFLAGS2 = $(CXXFLAGS1) /MTd /DDEBUG /D_DEBUG /Od /RTC1 /ZI\r
52 LINKFLAGS = $(LINKFLAGS1) /DEBUG\r
53 !else\r
54 CXXFLAGS2 = $(CXXFLAGS1) /MT /DNDEBUG /D_NDEBUG /O2\r
55 LINKFLAGS = $(LINKFLAGS1)\r
56 !endif\r
57 \r
58 !IFDEF WITH_XERCES\r
59 !ifdef WITH_XML_PARSER\r
60 !ERROR "Cannot include both Expat and Xerces-C++!"\r
61 !endif\r
62 \r
63 CXXFLAGS = $(CXXFLAGS2) /DHAVE_XERCES_C=1 /I"$(WITH_XERCES)"\include\r
64 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XERCES)"\lib\r
65 !ELSEIFDEF WITH_XML_PARSER\r
66 CXXFLAGS = $(CXXFLAGS2) /DASDCP_USE_EXPAT /I"$(WITH_XML_PARSER)"\Source\lib\r
67 !IFDEF DEBUG\r
68 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\debug\r
69 !ELSE\r
70 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\release\r
71 !ENDIF\r
72 !ELSE\r
73 CXXFLAGS = $(CXXFLAGS2)\r
74 LIBFLAGS = $(LIBFLAGS1)\r
75 !ENDIF\r
76 \r
77 CPPFLAGS = $(CXXFLAGS)\r
78 \r
79 KUMU_OBJS = KM_fileio.obj KM_log.obj KM_prng.obj KM_util.obj KM_xml.obj KM_tai.obj\r
80 ASDCP_OBJS = MPEG2_Parser.obj MPEG.obj JP2K_Codestream_Parser.obj \\r
81         JP2K_Sequence_Parser.obj JP2K.obj PCM_Parser.obj Wav.obj \\r
82         TimedText_Parser.obj KLV.obj Dict.obj MXFTypes.obj MXF.obj \\r
83         Index.obj Metadata.obj AS_DCP.obj AS_DCP_MXF.obj AS_DCP_AES.obj \\r
84         h__Reader.obj h__Writer.obj AS_DCP_MPEG2.obj AS_DCP_JP2K.obj \\r
85         AS_DCP_PCM.obj AS_DCP_TimedText.obj PCMParserList.obj \\r
86         MDD.obj AS_DCP_ATMOS.obj AS_DCP_DCData.obj \\r
87         DCData_ByteStream_Parser.obj DCData_Sequence_Parser.obj \\r
88         AtmosSyncChannel_Generator.obj AtmosSyncChannel_Mixer.obj \\r
89         PCMDataProviders.obj SyncEncoder.obj CRC16.obj \\r
90         UUIDInformation.obj ST2095_PinkNoise.obj\r
91 AS02_OBJS = h__02_Reader.obj h__02_Writer.obj AS_02_JP2K.obj \\r
92         AS_02_PCM.obj AS_02_TimedText.obj ST2052_TextParser.obj\r
93 PHDR_OBJS = AS_02_PHDR.obj\r
94 \r
95 {$(SRCDIR)\}.cpp{}.obj:\r
96         $(CXX) $(CXXFLAGS) -Fd$(OBJDIR)\ /c $<\r
97 \r
98 {$(SRCDIR)\}.c{}.obj:\r
99         $(CXX) $(CXXFLAGS) -Fd$(OBJDIR)\ /c $<\r
100 \r
101 all: \\r
102         kmfilegen.exe \\r
103         kmrandgen.exe \\r
104         kmuuidgen.exe \\r
105         asdcp-test.exe \\r
106         asdcp-wrap.exe \\r
107         asdcp-unwrap.exe \\r
108         asdcp-info.exe \\r
109         blackwave.exe \\r
110         pinkwave.exe \\r
111         wavesplit.exe\r
112         j2c-test.exe \\r
113         klvwalk.exe \\r
114         klvsplit.exe\r
115 !IFDEF USE_AS_02\r
116 all +=  as-02-wrap.exe \\r
117         as-02-unwrap.exe\r
118 !ENDIF\r
119 !IFDEF USE_PHDR\r
120 all +=  phdr-wrap.exe \\r
121         phdr-unwrap.exe\r
122 !ENDIF\r
123 \r
124 clean:\r
125         erase *.exe *.lib *.obj *.ilk *.pdb *.idb *.manifest\r
126 \r
127 libkumu.lib : $(KUMU_OBJS)\r
128 !IFDEF WITH_XERCES\r
129 !IFDEF DEBUG\r
130         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib xerces-c_2D.lib\r
131 !ELSE\r
132         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib xerces-c_2.lib\r
133 !ENDIF\r
134 !ELSEIFDEF WITH_XML_PARSER\r
135         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib libexpatMT.lib\r
136 !ELSE\r
137         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib\r
138 !ENDIF \r
139 \r
140 libasdcp.lib: libkumu.lib $(ASDCP_OBJS)\r
141         $(LIB_EXE) $(LIBFLAGS) /OUT:libasdcp.lib $**\r
142 \r
143 !IFDEF USE_AS_02\r
144 libas02.lib: libasdcp.lib libkumu.lib $(AS02_OBJS)\r
145         $(LIB_EXE) $(LIBFLAGS) /OUT:libas02.lib $**\r
146 !ENDIF\r
147 \r
148 !IFDEF USE_PHDR\r
149 libas02-phdr.lib: libas02.lib libasdcp.lib libkumu.lib $(PHDR_OBJS)\r
150         $(LIB_EXE) $(LIBFLAGS) /OUT:libas02-phdr.lib $**\r
151 !ENDIF\r
152 \r
153 blackwave.exe: libasdcp.lib blackwave.obj\r
154         $(LINK) $(LINKFLAGS) /OUT:blackwave.exe $** Advapi32.lib user32.lib\r
155 \r
156 pinkwave.exe: libasdcp.lib pinkwave.obj\r
157         $(LINK) $(LINKFLAGS) /OUT:pinkwave.exe $** Advapi32.lib user32.lib\r
158 \r
159 wavesplit.exe: libasdcp.lib wavesplit.obj\r
160         $(LINK) $(LINKFLAGS) /OUT:wavesplit.exe $** Advapi32.lib user32.lib\r
161 \r
162 kmuuidgen.exe: libkumu.lib kmuuidgen.obj\r
163         $(LINK) $(LINKFLAGS) /OUT:kmuuidgen.exe $** Advapi32.lib user32.lib\r
164 \r
165 kmrandgen.exe: libkumu.lib kmrandgen.obj\r
166         $(LINK) $(LINKFLAGS) /OUT:kmrandgen.exe $** Advapi32.lib user32.lib\r
167 \r
168 kmfilegen.exe: libkumu.lib kmfilegen.obj\r
169         $(LINK) $(LINKFLAGS) /OUT:kmfilegen.exe $** Advapi32.lib user32.lib\r
170 \r
171 klvwalk.exe: libasdcp.lib klvwalk.obj\r
172         $(LINK) $(LINKFLAGS) /OUT:klvwalk.exe $** Advapi32.lib user32.lib\r
173 \r
174 asdcp-test.exe: libasdcp.lib asdcp-test.obj\r
175         $(LINK) $(LINKFLAGS) /OUT:asdcp-test.exe $** Advapi32.lib user32.lib\r
176 \r
177 asdcp-wrap.exe: libasdcp.lib asdcp-wrap.obj\r
178         $(LINK) $(LINKFLAGS) /OUT:asdcp-wrap.exe $** Advapi32.lib user32.lib\r
179 \r
180 asdcp-unwrap.exe: libasdcp.lib asdcp-unwrap.obj\r
181         $(LINK) $(LINKFLAGS) /OUT:asdcp-unwrap.exe $** Advapi32.lib user32.lib\r
182 \r
183 asdcp-info.exe: libasdcp.lib asdcp-info.obj\r
184         $(LINK) $(LINKFLAGS) /OUT:asdcp-info.exe $** Advapi32.lib user32.lib\r
185 \r
186 asdcp-util.exe: libasdcp.lib asdcp-util.obj\r
187         $(LINK) $(LINKFLAGS) /OUT:asdcp-util.exe $** Advapi32.lib user32.lib\r
188 \r
189 j2c-test.exe: libasdcp.lib j2c-test.obj\r
190         $(LINK) $(LINKFLAGS) /OUT:j2c-test.exe $** Advapi32.lib user32.lib\r
191 \r
192 !IFDEF USE_AS_02\r
193 as-02-wrap.exe: libas02.lib as-02-wrap.obj\r
194         $(LINK) $(LINKFLAGS) /OUT:as-02-wrap.exe $** Advapi32.lib user32.lib\r
195 \r
196 as-02-unwrap.exe: libas02.lib as-02-unwrap.obj\r
197         $(LINK) $(LINKFLAGS) /OUT:as-02-unwrap.exe $** Advapi32.lib user32.lib\r
198 !ENDIF\r
199 \r
200 !IFDEF USE_PHDR\r
201 phdr-wrap.exe: libas02-phdr.lib phdr-wrap.obj\r
202         $(LINK) $(LINKFLAGS) /OUT:phdr-wrap.exe $** Advapi32.lib user32.lib\r
203 \r
204 phdr-unwrap.exe: libas02-phdr.lib phdr-unwrap.obj\r
205         $(LINK) $(LINKFLAGS) /OUT:phdr-unwrap.exe $** Advapi32.lib user32.lib\r
206 !ENDIF\r
207 \r
208 \r
209 # END Makefile\r