Build in this directory.
[asdcplib.git] / win32 / Makefile.mak
1 #\r
2 # $Id$\r
3 # Copyright (c) 2007-8 CineCert, LLC. All rights reserved.\r
4 #\r
5 #\r
6 #\r
7 #\r
8 #\r
9 #\r
10 #\r
11 #\r
12 #\r
13 \r
14 \r
15 ARCH = win32\r
16 SRCDIR = ..\src\r
17 OBJDIR = .\r
18 \r
19 !ifndef WITH_OPENSSL\r
20 !error "OpenSSL is needed! Specify it with WITH_OPENSSL=<OpenSSL directory>"\r
21 !endif\r
22 \r
23 KUMU_OBJS = $(OBJDIR)\KM_fileio.obj $(OBJDIR)\KM_log.obj $(OBJDIR)\KM_prng.obj $(OBJDIR)\KM_util.obj $(OBJDIR)\KM_xml.obj\r
24 ASDCP_OBJS = MPEG2_Parser.obj MPEG.obj JP2K_Codestream_Parser.obj \\r
25         JP2K_Sequence_Parser.obj JP2K.obj PCM_Parser.obj Wav.obj \\r
26         TimedText_Parser.obj KLV.obj Dict.obj MXFTypes.obj MXF.obj \\r
27         Index.obj Metadata.obj AS_DCP.obj AS_DCP_MXF.obj AS_DCP_AES.obj \\r
28         h__Reader.obj h__Writer.obj AS_DCP_MPEG2.obj AS_DCP_JP2K.obj \\r
29         AS_DCP_PCM.obj AS_DCP_TimedText.obj PCMParserList.obj \\r
30         MDD.obj\r
31 \r
32 CXXFLAGS1 = /nologo /W3 /GR /EHsc /DWIN32 /DKM_WIN32 /D_CONSOLE /I. /I$(SRCDIR) /DASDCP_PLATFORM=\"win32\" \\r
33         /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DPACKAGE_VERSION=\"1.3.19a\" \\r
34         /I$(WITH_OPENSSL)\inc32\r
35 \r
36 LIB_EXE = lib.exe\r
37 LIBFLAGS1 = /NOLOGO /LIBPATH:$(WITH_OPENSSL)\out32dll\r
38 \r
39 LINK = link.exe\r
40 LINKFLAGS1 = /NOLOGO /SUBSYSTEM:console /MACHINE:I386 /LIBPATH:. /DEBUG\r
41 \r
42 \r
43 !ifdef DEBUG\r
44 CXXFLAGS2 = $(CXXFLAGS1) /MTd /DDEBUG /D_DEBUG /Od /RTC1 /ZI\r
45 LINKFLAGS = $(LINKFLAGS1) /DEBUG\r
46 !else\r
47 CXXFLAGS2 = $(CXXFLAGS1) /MT /DNODEBUG /D_NODEBUG /O2\r
48 LINKFLAGS = $(LINKFLAGS1)\r
49 !endif\r
50 \r
51 !ifndef WITH_OPENSSL\r
52 !error "OpenSSL is needed!"\r
53 !endif\r
54 \r
55 !IFDEF WITH_XERCES\r
56 !ifdef WITH_XML_PARSER\r
57 !ERROR "Cannot include both Expat and Xerces-C++!"\r
58 !endif\r
59 \r
60 XERCES_DIR = $(WITH_XERCES)\r
61 CXXFLAGS = $(CXXFLAGS2) /DHAVE_XERCES_C=1 /I"$(XERCES_DIR)"\include\r
62 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(XERCES_DIR)"\lib\r
63 !ELSEIFDEF WITH_XML_PARSER\r
64 CXXFLAGS = $(CXXFLAGS2) /DASDCP_USE_EXPAT /I"$(WITH_XML_PARSER)"\Source\lib\r
65 !IFDEF DEBUG\r
66 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\debug\r
67 !ELSE\r
68 LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\release\r
69 !ENDIF\r
70 !ELSE\r
71 CXXFLAGS = $(CXXFLAGS2)\r
72 LIBFLAGS = $(LIBFLAGS1)\r
73 !ENDIF\r
74 \r
75 CPPFLAGS = $(CXXFLAGS)\r
76 \r
77 {$(SRCDIR)\}.cpp{}.obj:\r
78         $(CXX) $(CXXFLAGS) -Fd$(OBJDIR)\ /c $<\r
79 \r
80 all: libkumu.lib kmfilegen.exe kmrandgen.exe kmuuidgen.exe asdcp-test.exe blackwave.exe klvwalk.exe wavesplit.exe\r
81 \r
82 libkumu.lib : $(KUMU_OBJS)\r
83 !IFDEF WITH_XERCES\r
84 !IFDEF DEBUG\r
85         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $(KUMU_OBJS) libeay32.lib xerces-c_2D.lib\r
86 !ELSE\r
87         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $(KUMU_OBJS) libeay32.lib xerces-c_2.lib\r
88 !ENDIF\r
89 !ELSEIFDEF WITH_XML_PARSER\r
90         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $(KUMU_OBJS) libeay32.lib libexpatMT.lib\r
91 !ELSE\r
92         $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $(KUMU_OBJS) libeay32.lib\r
93 !ENDIF \r
94 \r
95 libasdcp.lib: libkumu.lib $(ASDCP_OBJS)\r
96         $(LIB_EXE) $(LIBFLAGS) /OUT:libasdcp.lib libkumu.lib $(ASDCP_OBJS)\r
97 \r
98 blackwave.exe: libasdcp.lib blackwave.obj\r
99         $(LINK) $(LINKFLAGS) /OUT:blackwave.exe blackwave.obj libasdcp.lib Advapi32.lib\r
100 \r
101 wavesplit.exe: libasdcp.lib wavesplit.obj\r
102         $(LINK) $(LINKFLAGS) /OUT:wavesplit.exe wavesplit.obj libasdcp.lib Advapi32.lib\r
103 \r
104 kmuuidgen.exe: libkumu.lib kmuuidgen.obj\r
105         $(LINK) $(LINKFLAGS) /OUT:kmuuidgen.exe kmuuidgen.obj libkumu.lib Advapi32.lib\r
106 \r
107 kmrandgen.exe: libkumu.lib kmrandgen.obj\r
108         $(LINK) $(LINKFLAGS) /OUT:kmrandgen.exe kmrandgen.obj libkumu.lib Advapi32.lib\r
109 \r
110 kmfilegen.exe: libkumu.lib kmfilegen.obj\r
111         $(LINK) $(LINKFLAGS) /OUT:kmfilegen.exe kmfilegen.obj libkumu.lib Advapi32.lib\r
112 \r
113 klvwalk.exe: libasdcp.lib klvwalk.obj\r
114         $(LINK) $(LINKFLAGS) /OUT:klvwalk.exe klvwalk.obj libasdcp.lib Advapi32.lib\r
115 \r
116 asdcp-test.exe: libasdcp.lib asdcp-test.obj\r
117         $(LINK) $(LINKFLAGS) /OUT:asdcp-test.exe asdcp-test.obj libasdcp.lib Advapi32.lib\r
118 \r
119 \r
120 O = .\r
121 S = ..\src\r