o Added VideoLineMap property to picture essence descriptors
[asdcplib.git] / win32 / Makefile.mak
index 111d343b8d4b63a70b7cc441a67c4e2a9a8f66bc..444e78fff645f5752affa54a495a566b37750540 100755 (executable)
-SRCDIR=..\src\r
+# $Id$\r
+# Copyright (c) 2007-2012 John Hurst. All rights reserved.\r
+#\r
+# Redistribution and use in source and binary forms, with or without\r
+# modification, are permitted provided that the following conditions\r
+# are met:\r
+# 1. Redistributions of source code must retain the above copyright\r
+#    notice, this list of conditions and the following disclaimer.\r
+# 2. Redistributions in binary form must reproduce the above copyright\r
+#    notice, this list of conditions and the following disclaimer in the\r
+#    documentation and/or other materials provided with the distribution.\r
+# 3. The name of the author may not be used to endorse or promote products\r
+#    derived from this software without specific prior written permission.\r
+#\r
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
 \r
-OPENSSL_DIR = ..\..\openssl\r
 \r
-KUMU_OBJS = KM_fileio.obj KM_log.obj KM_prng.obj KM_util.obj KM_xml.obj\r
+SRCDIR = ..\src\r
+OBJDIR = .\r
+\r
+!ifndef WITH_OPENSSL\r
+!error "OpenSSL is needed! Specify it with WITH_OPENSSL=<OpenSSL directory>"\r
+!endif\r
+\r
+!ifdef ENABLE_RANDOM_UUID\r
+CXXFLAGS1 = /nologo /W3 /GR /EHsc /DWIN32 /DKM_WIN32 /D_CONSOLE /I. /I$(SRCDIR) /DASDCP_PLATFORM=\"win32\" \\r
+       /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DPACKAGE_VERSION=\"2.5.13\" \\r
+       /I"$(WITH_OPENSSL)"\inc32 /DCONFIG_RANDOM_UUID=1\r
+!else\r
+CXXFLAGS1 = /nologo /W3 /GR /EHsc /DWIN32 /DKM_WIN32 /D_CONSOLE /I. /I$(SRCDIR) /DASDCP_PLATFORM=\"win32\" \\r
+       /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DPACKAGE_VERSION=\"2.5.13\" \\r
+       /I"$(WITH_OPENSSL)"\inc32\r
+!endif\r
+LIB_EXE = lib.exe\r
+LIBFLAGS1 = /NOLOGO /LIBPATH:"$(WITH_OPENSSL)"\out32dll\r
+\r
+LINK = link.exe\r
+LINKFLAGS1 = /NOLOGO /SUBSYSTEM:console /MACHINE:I386 /LIBPATH:. /DEBUG\r
+\r
+\r
+!ifdef DEBUG\r
+CXXFLAGS2 = $(CXXFLAGS1) /MTd /DDEBUG /D_DEBUG /Od /RTC1 /ZI\r
+LINKFLAGS = $(LINKFLAGS1) /DEBUG\r
+!else\r
+CXXFLAGS2 = $(CXXFLAGS1) /MT /DNDEBUG /D_NDEBUG /O2\r
+LINKFLAGS = $(LINKFLAGS1)\r
+!endif\r
+\r
+!IFDEF WITH_XERCES\r
+!ifdef WITH_XML_PARSER\r
+!ERROR "Cannot include both Expat and Xerces-C++!"\r
+!endif\r
+\r
+CXXFLAGS = $(CXXFLAGS2) /DHAVE_XERCES_C=1 /I"$(WITH_XERCES)"\include\r
+LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XERCES)"\lib\r
+!ELSEIFDEF WITH_XML_PARSER\r
+CXXFLAGS = $(CXXFLAGS2) /DASDCP_USE_EXPAT /I"$(WITH_XML_PARSER)"\Source\lib\r
+!IFDEF DEBUG\r
+LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\debug\r
+!ELSE\r
+LIBFLAGS = $(LIBFLAGS1) /LIBPATH:"$(WITH_XML_PARSER)"\Source\win32\bin\release\r
+!ENDIF\r
+!ELSE\r
+CXXFLAGS = $(CXXFLAGS2)\r
+LIBFLAGS = $(LIBFLAGS1)\r
+!ENDIF\r
+\r
+CPPFLAGS = $(CXXFLAGS)\r
+\r
+KUMU_OBJS = KM_fileio.obj KM_log.obj KM_prng.obj KM_util.obj KM_xml.obj KM_tai.obj\r
 ASDCP_OBJS = MPEG2_Parser.obj MPEG.obj JP2K_Codestream_Parser.obj \\r
        JP2K_Sequence_Parser.obj JP2K.obj PCM_Parser.obj Wav.obj \\r
        TimedText_Parser.obj KLV.obj Dict.obj MXFTypes.obj MXF.obj \\r
        Index.obj Metadata.obj AS_DCP.obj AS_DCP_MXF.obj AS_DCP_AES.obj \\r
        h__Reader.obj h__Writer.obj AS_DCP_MPEG2.obj AS_DCP_JP2K.obj \\r
        AS_DCP_PCM.obj AS_DCP_TimedText.obj PCMParserList.obj \\r
-       MDD.obj\r
+       MDD.obj AS_DCP_ATMOS.obj AS_DCP_DCData.obj \\r
+       DCData_ByteStream_Parser.obj DCData_Sequence_Parser.obj \\r
+       AtmosSyncChannel_Generator.obj AtmosSyncChannel_Mixer.obj \\r
+       PCMDataProviders.obj SyncEncoder.obj CRC16.obj \\r
+       UUIDInformation.obj\r
+AS02_OBJS = h__02_Reader.obj h__02_Writer.obj AS_02_JP2K.obj \\r
+       AS_02_PCM.obj\r
 \r
+{$(SRCDIR)\}.cpp{}.obj:\r
+       $(CXX) $(CXXFLAGS) -Fd$(OBJDIR)\ /c $<\r
 \r
-CXXFLAGS = /nologo /W3 /GR /EHsc /DWIN32 /DKM_WIN32 /D_CONSOLE /I. /DASDCP_PLATFORM=\"win32\" \\r
-       /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /RTC1 /DPACKAGE_VERSION=\"win32\" \\r
-       /MTd /Od /ZI /DDEBUG /OPT:NOREF /D_DEBUG /I$(OPENSSL_DIR)\inc32\r
-CPPFLAGS = $(CXXFLAGS)\r
+{$(SRCDIR)\}.c{}.obj:\r
+       $(CXX) $(CXXFLAGS) -Fd$(OBJDIR)\ /c $<\r
 \r
-LIB = lib.exe\r
-LIBFLAGS = /NOLOGO /LIBPATH:$(OPENSSL_DIR)\out32dll\r
+all: kmfilegen.exe kmrandgen.exe kmuuidgen.exe asdcp-test.exe \\r
+     asdcp-wrap.exe asdcp-unwrap.exe asdcp-info.exe \\r
+     blackwave.exe klvwalk.exe j2c-test.exe wavesplit.exe \r
+!IFDEF USE_AS_02\r
+       as-02-wrap.exe as-02-unwrap.exe \\r
+!ENDIF\r
 \r
-LINK = link.exe\r
-LINKFLAGS = /NOLOGO /SUBSYSTEM:console /MACHINE:I386 /LIBPATH:. /DEBUG\r
-\r
-all: blackwave.exe\r
+clean:\r
+       erase *.exe *.lib *.obj *.ilk *.pdb *.idb\r
 \r
 libkumu.lib : $(KUMU_OBJS)\r
-       $(LIB) $(LIBFLAGS) /OUT:libkumu.lib $(KUMU_OBJS) libeay32.lib\r
+!IFDEF WITH_XERCES\r
+!IFDEF DEBUG\r
+       $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib xerces-c_2D.lib\r
+!ELSE\r
+       $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib xerces-c_2.lib\r
+!ENDIF\r
+!ELSEIFDEF WITH_XML_PARSER\r
+       $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib libexpatMT.lib\r
+!ELSE\r
+       $(LIB_EXE) $(LIBFLAGS) /OUT:libkumu.lib $** libeay32.lib\r
+!ENDIF \r
+\r
+libasdcp.lib: libkumu.lib $(ASDCP_OBJS)\r
+       $(LIB_EXE) $(LIBFLAGS) /OUT:libasdcp.lib $**\r
+\r
+!IFDEF USE_AS_02\r
+libas02.lib: libasdcp.lib libkumu.lib $(AS02_OBJS)\r
+       $(LIB_EXE) $(LIBFLAGS) /OUT:libas02.lib $**\r
+!ENDIF\r
+\r
+blackwave.exe: libasdcp.lib blackwave.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:blackwave.exe $** Advapi32.lib\r
+\r
+wavesplit.exe: libasdcp.lib wavesplit.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:wavesplit.exe $** Advapi32.lib\r
+\r
+kmuuidgen.exe: libkumu.lib kmuuidgen.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:kmuuidgen.exe $** Advapi32.lib\r
+\r
+kmrandgen.exe: libkumu.lib kmrandgen.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:kmrandgen.exe $** Advapi32.lib\r
+\r
+kmfilegen.exe: libkumu.lib kmfilegen.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:kmfilegen.exe $** Advapi32.lib\r
+\r
+klvwalk.exe: libasdcp.lib klvwalk.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:klvwalk.exe $** Advapi32.lib\r
+\r
+asdcp-test.exe: libasdcp.lib asdcp-test.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:asdcp-test.exe $** Advapi32.lib\r
+\r
+asdcp-wrap.exe: libasdcp.lib asdcp-wrap.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:asdcp-wrap.exe $** Advapi32.lib\r
+\r
+asdcp-unwrap.exe: libasdcp.lib asdcp-unwrap.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:asdcp-unwrap.exe $** Advapi32.lib\r
+\r
+asdcp-info.exe: libasdcp.lib asdcp-info.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:asdcp-info.exe $** Advapi32.lib\r
+\r
+asdcp-util.exe: libasdcp.lib asdcp-util.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:asdcp-util.exe $** Advapi32.lib\r
+\r
+j2c-test.exe: libasdcp.lib j2c-test.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:j2c-test.exe $** Advapi32.lib\r
+\r
+!IFDEF USE_AS_02\r
+as-02-wrap.exe: libas02.lib as-02-wrap.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:as-02-wrap.exe $** Advapi32.lib\r
+\r
+as-02-unwrap.exe: libas02.lib as-02-unwrap.obj\r
+       $(LINK) $(LINKFLAGS) /OUT:as-02-unwrap.exe $** Advapi32.lib\r
+!ENDIF\r
 \r
-libasdcp.lib: $(ASDCP_OBJS)\r
-       $(LIB) $(LIBFLAGS) /OUT:libasdcp.lib $(ASDCP_OBJS) libeay32.lib\r
 \r
-blackwave.exe: blackwave.obj libasdcp.lib libkumu.lib\r
-       $(LINK) $(LINKFLAGS) /OUT:blackwave.exe blackwave.obj libkumu.lib libasdcp.lib Advapi32.lib\r
+# END Makefile\r