# What are we dealing with? PACKAGE = @PACKAGE@ VERSION = @VERSION@ @SET_MAKE@ SHELL = @SHELL@ # Where to? srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datarootdir = @datarootdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ man1dir = $(mandir)/man1 includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs localedir = $(datadir)/locale # Common programs AR = @AR@ CC = @CC@ CPP = @CPP@ CXX = @CXX@ EXEEXT = @EXEEXT@ GCC_DEP_STYLE = @GCC_DEP_STYLE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_HEADER = $(INSTALL_DATA) INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c LD = @LD@ MOC = @MOC@ OBJEXT = @OBJEXT@ PATH_SEPARATOR = @PATH_SEPARATOR@ PROFILING_CFLAGS = @PROFILING_CFLAGS@ PROFILING_LIBS = @PROFILING_LIBS@ RANLIB = @RANLIB@ UIC = @UIC@ # Variable stuff as set by configure BZ2_LIBS = @BZ2_LIBS@ CPPFLAGS = @CPPFLAGS@ DEBUG_CFLAGS = @DEBUG_CFLAGS@ EBML_CFLAGS = @EBML_CFLAGS@ EBML_LIBS = @EBML_LIBS@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ EXTRA_LDFLAGS = @EXTRA_LDFLAGS@ FLAC_LIBS = @FLAC_LIBS@ ICONV_LIBS = @ICONV_LIBS@ LIBINTL_LIBS = @LIBINTL_LIBS@ LZO_LIBS = @LZO_LIBS@ MAGIC_LIBS = @MAGIC_LIBS@ MATROSKA_CFLAGS = @MATROSKA_CFLAGS@ MATROSKA_LIBS = @MATROSKA_LIBS@ MINGW_GUIAPP = @MINGW_GUIAPP@ MINGW_LIBS = @MINGW_LIBS@ MINGW = @MINGW@ OGG_LIBS = @OGG_LIBS@ OPTIMIZATION_CFLAGS = @OPTIMIZATION_CFLAGS@ PCRE_CFLAGS = @PCRE_CFLAGS@ PCRE_LIBS = @PCRE_LIBS@ PROFILING_CFLAGS = @PROFILING_CFLAGS@ PROFILING_LIBS = @PROFILING_LIBS@ QT_CFLAGS = @QT_CFLAGS@ QT_LIBS = @QT_LIBS@ USER_CPPFLAGS = @USER_CPPFLAGS@ USER_CXXFLAGS = @USER_CXXFLAGS@ USER_CFLAGS = @USER_CFLAGS@ USER_LDFLAGS = @USER_LDFLAGS@ VORBIS_LIBS = @VORBIS_LIBS@ WXWIDGETS_CFLAGS = @WXWIDGETS_CFLAGS@ WXWIDGETS_INCLUDES = @WXWIDGETS_INCLUDES@ WXWIDGETS_LIBS = @WXWIDGETS_LIBS@ ZLIB_LIBS = @ZLIB_LIBS@ WARNING_CFLAGS = -Wall -Wno-sign-compare -Wno-comment CFLAGS = $(USER_CPPFLAGS) $(EXTRA_CFLAGS) $(OPTIMIZATION_CFLAGS) $(USER_CFLAGS) $(WARNING_CFLAGS) -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(EXTRA_CFLAGS) $(DEBUG_CFLAGS) $(PROFILING_CFLAGS) $(MATROSKA_CFLAGS) $(EBML_CFLAGS) CXXFLAGS = $(USER_CPPFLAGS) $(EXTRA_CFLAGS) $(OPTIMIZATION_CFLAGS) $(USER_CXXFLAGS) $(WARNING_CFLAGS) -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(EXTRA_CFLAGS) $(DEBUG_CFLAGS) $(PROFILING_CFLAGS) $(MATROSKA_CFLAGS) $(EBML_CFLAGS) $(WXWIDGETS_CFLAGS) $(PCRE_CFLAGS) $(QT_CFLAGS) CPPFLAGS = $(USER_CPPFLAGS) $(CPPFLAGS) LDFLAGS = $(USER_LDFLAGS) $(EXTRA_LDFLAGS) $(PROFILING_LIBS) CFLAGS += -DPACKAGE=\"$(PACKAGE)\" -DVERSION=\"$(VERSION)\" CXXFLAGS += -DPACKAGE=\"$(PACKAGE)\" -DVERSION=\"$(VERSION)\" CXXFLAGS += -DMTX_LOCALE_DIR=\"$(localedir)\" \ -DMTX_PKG_DATA_DIR=\"$(pkgdatadir)\" # Which additional stuff to compile USE_WXWIDGETS = @USE_WXWIDGETS@ USE_QT = @USE_QT@ AVILIB_INCLUDES = -Iavilib-0.6.10 AVILIB_LIBDIRS = -Lavilib-0.6.10 DEP_AVILIB = avilib-0.6.10/libavi.a LIBMTXCOMMONDLL=@LIBMTXCOMMONDLL@ ifeq (1,$(LIBMTXCOMMONDLL)) LIBMTXCOMMONEXT = dll CXXFLAGS_SRC_COMMON += -DMTX_DLL_EXPORT CXXFLAGS_NO_SRC_COMMON += -DMTX_DLL else LIBMTXCOMMONEXT = a endif ifeq (1,$(MINGW)) MMG_RESOURCES = src/mmg/mmg-resources.rc LIBRPCRT = -lrpcrt4 endif DEP_COMMON = src/common/libmtxcommon.$(LIBMTXCOMMONEXT) DEP_EBMLCOMMON = src/common/libmtxebmlcommon.a DEP_KAXCOMMON = src/common/libmtxkaxcommon.a DEP_INPUT = src/input/libmtxinput.a DEP_OUTPUT = src/output/libmtxoutput.a DEP_AVI = $(DEP_AVILIB) DEP_RMFF = librmff/librmff.a DEP_MPEGPARSER = src/mpegparser/libmpegparser.a COMPRESSION_LIBRARIES = $(LZO_LIBS) $(BZ2_LIBS) APPLICATIONS = src/mkvmerge@EXEEXT@ src/mkvinfo@EXEEXT@ \ src/mkvextract@EXEEXT@ src/base64tool@EXEEXT@ MANPAGES = doc/mkvmerge.1 doc/mkvinfo.1 doc/mkvextract.1 doc/base64tool.1 ifeq (yes,$(USE_WXWIDGETS)) APPLICATIONS += src/mmg/mmg@EXEEXT@ MANPAGES += doc/mmg.1 endif TRANSLATIONS = @TRANSLATIONS@ TRANSLATIONS_POS = @TRANSLATIONS_POS@ TRANSLATIONS_MOS = $(patsubst %.po,%.mo,$(TRANSLATIONS_POS)) HTMLHELPBOOKS = mkvmerge-gui-book all: $(APPLICATIONS) $(TRANSLATIONS_MOS) $(HTMLHELPBOOKS) install: install-programs install-mans install-trans install-guide install-programs: $(APPLICATIONS) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(APPLICATIONS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p ; then \ f=`echo "$$p1" | sed 's,^.*/,,;s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \ else :; fi; \ done install-mans: $(mkinstalldirs) $(DESTDIR)$(man1dir) @for i in $(MANPAGES); do \ inst=`echo $$i | sed -e 's/^.*\///'`; \ echo " $(INSTALL_DATA) $$i $(DESTDIR)$(man1dir)/$$inst"; \ $(INSTALL_DATA) $$i $(DESTDIR)$(man1dir)/$$inst; \ done install-trans: @for i in $(TRANSLATIONS); do \ echo "$(mkinstalldirs) $(DESTDIR)$(localedir)/$$i/LC_MESSAGES"; \ $(mkinstalldirs) $(DESTDIR)$(localedir)/$$i/LC_MESSAGES; \ echo "$(INSTALL_DATA) po/$$i.mo $(DESTDIR)$(localedir)/$$i/LC_MESSAGES/mkvtoolnix.mo"; \ $(INSTALL_DATA) po/$$i.mo $(DESTDIR)$(localedir)/$$i/LC_MESSAGES/mkvtoolnix.mo; \ done install-guide: $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/images @for i in doc/mkvmerge-gui.*; do \ echo " $(INSTALL_DATA) $$i $(DESTDIR)$(pkgdatadir)/"; \ $(INSTALL_DATA) $$i $(DESTDIR)$(pkgdatadir)/; \ done @for i in doc/images/*gif; do \ echo " $(INSTALL_DATA) $$i $(DESTDIR)$(pkgdatadir)/images/"; \ $(INSTALL_DATA) $$i $(DESTDIR)$(pkgdatadir)/images/; \ done SYSTEM_INCLUDES = $(AVILIB_INCLUDES) \ -I. -Ilibrmff -Isrc/merge -Isrc/info -Isrc/common -Isrc/input \ -Isrc/output -Isrc/mpegparser SYSTEM_LIBDIRS = $(AVILIB_LIBDIRS) \ -Llibrmff -Lsrc/common -Lsrc/input -Lsrc/output \ -Lsrc/mpegparser RUNAR = $(AR) rcu LINK = $(CXX) $(LDFLAGS) $(LIBDIRS) $(SYSTEM_LIBDIRS) LINKSHARED = $(CXX) $(LDFLAGS) $(LIBDIRS) $(SYSTEM_LIBDIRS) \ -shared -Wl,--export-all CXXCOMPILE = $(CXX) $(CXXFLAGS) $(INCLUDES) $(SYSTEM_INCLUDES) CCOMPILE = $(CC) $(CFLAGS) $(INCLUDES) $(SYSTEM_INCLUDES) RCCOMPILE = windres $(WXWIDGETS_INCLUDES) -Isrc/mmg ALL_SOURCES=$(wildcard avilib-0.6.10/*.c) $(wildcard avilib-0.6.10/*.cpp) \ $(wildcard librmff/*.c) \ $(wildcard src/*.cpp) $(wildcard src/input/*.cpp) \ $(wildcard src/output/*.cpp) $(wildcard src/common/*.cpp) \ $(wildcard src/mmg/*.cpp) $(wildcard src/extract/*.cpp) \ $(wildcard src/merge/*cpp) $(wildcard src/info/*.cpp) \ $(wildcard src/mpegparser/*.cpp) \ $(patsubst %.ui,%.h,$(UIFILES)) ifeq ($(V),1) Q = else Q = @ endif # Some general rules ifeq (1,$(LIBMTXCOMMONDLL)) %.o: %.cpp @echo ' CXX ' $< @if echo $@ | grep src.common > /dev/null 2>&1; then \ test x$(V) = "x1" && echo $(CXXCOMPILE) $(CXXFLAGS_SRC_COMMON) -c -o $@ $< ; \ $(CXXCOMPILE) $(CXXFLAGS_SRC_COMMON) -c -o $@ $< ; \ else \ test x$(V) = "x1" && echo $(CXXCOMPILE) $(CXXFLAGS_NO_SRC_COMMON) -c -o $@ $< ; \ $(CXXCOMPILE) $(CXXFLAGS_NO_SRC_COMMON) -c -o $@ $< ; \ fi else %.o: %.cpp @echo ' CXX ' $< $(Q)$(CXXCOMPILE) -c -o $@ $< endif %.o: %.c @echo ' CC ' $< $(Q)$(CCOMPILE) -c -o $@ $< %.o: %.rc @echo ' WINDRES ' $< $(Q)$(RCCOMPILE) -o $@ $< %.mo: %.po @echo ' MSGFMT ' $< $(Q)msgfmt -o $@ $< # HTML help book stuff %.hhk: %.hhc @echo ' GREP ' $< $(Q)grep -v 'name="ID"' $< > $@ # Qt files %.h: %.ui @echo ' UIC ' $< $(Q)$(UIC) $< > $@ %.moc.cpp: %.h @echo ' MOC ' $< $(Q)$(MOC) $(QT_CFLAGS) $< > $@ clean: rm -f *.o */*.o */*/*.o */lib*.a */*/lib*.a po/*.mo $(APPLICATIONS) \ */*.exe */*/*.exe */*/*.dll */*/*.dll.a doc/*.hhk \ src/info/ui/*.h src/info/*.moc.cpp distclean dist-clean: clean rm -f config.h config.log config.cache Makefile */Makefile */*/Makefile maintainer-clean: distclean rm -f configure config.h.in depend: @echo Calculating dependecies: @rm -f .depend @touch .depend ifeq (v2,$(GCC_DEP_STYLE)) @for i in $(ALL_SOURCES); do \ o="`dirname "$$i"`/" ; \ echo ' CXX -MM '$$i ; \ $(CXX) $(CXXFLAGS) $(INCLUDES) $(SYSTEM_INCLUDES) -MM $$i | \ awk 'BEGIN { pfx="'$$o'" } { print pfx $$0 ; pfx="" }' \ >> .depend ; \ done else @for i in $(ALL_SOURCES); do \ o="`echo $$i | sed -e 's/\.c$$/.o/' -e 's/\.cpp$$/.o/'`" ; \ echo ' CXX -MM '$$i ; \ $(CXX) $(CXXFLAGS) $(INCLUDES) $(SYSTEM_INCLUDES) -MM \ -MT $$o $$i >> .depend ; \ done endif update-po: xgettext --keyword=_ --keyword=N_ --default-domain=mkvtoolnix \ -o po/mkvtoolnix.pot $(ALL_SOURCES) @for i in po/*.po ; do \ echo msgmerge -s $$i po/mkvtoolnix.pot ; \ msgmerge -s $$i po/mkvtoolnix.pot > $$i.new ; \ mv $$i.new $$i ; \ done @rm po/mkvtoolnix.pot mkvmerge-gui-book: doc/mkvmerge-gui.hhk # # avilib-0.6.10 # libavi_SOURCES = $(wildcard avilib-0.6.10/*.c) $(wildcard avilib-0.6.10/*.cpp) libavi_OBJECTS := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(libavi_SOURCES))) avilib-0.6.10/libavi.a: $(libavi_OBJECTS) @rm -f $@ @echo ' AR ' $@ $(Q)$(RUNAR) $@ $(libavi_OBJECTS) @echo ' RANLIB ' $@ $(Q)$(RANLIB) $@ # # librmff # librmff_SOURCES = $(wildcard librmff/*.c) librmff_OBJECTS := $(patsubst %.c,%.o,$(librmff_SOURCES)) librmff/librmff.a: $(librmff_OBJECTS) @rm -f $@ @echo ' AR ' $@ $(Q)$(RUNAR) $@ $(librmff_OBJECTS) @echo ' RANLIB ' $@ $(Q)$(RANLIB) $@ # # spyder's MPEG parser # libmpegparser_SOURCES = $(wildcard src/mpegparser/*.cpp) libmpegparser_OBJECTS := $(patsubst %.cpp,%.o,$(libmpegparser_SOURCES)) src/mpegparser/libmpegparser.a: $(libmpegparser_OBJECTS) @rm -f $@ @echo ' AR ' $@ $(Q)$(RUNAR) $@ $(libmpegparser_OBJECTS) @echo ' RANLIB ' $@ $(Q)$(RANLIB) $@ # # src/common # libmtxcommon_SOURCES = $(wildcard src/common/*.cpp) libmtxcommon_OBJECTS := $(patsubst %.cpp,%.o,$(libmtxcommon_SOURCES)) src/common/libmtxcommon.dll: $(libmtxcommon_OBJECTS) @echo ' LD/DLL ' $@ $(Q)$(LINKSHARED) -Wl,--out-implib=$@.a -o $@ $(libmtxcommon_OBJECTS) \ -liconv -lz $(COMPRESSION_LIBRARIES) -lmatroska -lebml \ -lexpat -lrpcrt4 src/common/libmtxcommon.a: $(libmtxcommon_OBJECTS) @rm -f $@ @echo ' AR ' $@ $(Q)$(RUNAR) $@ $(libmtxcommon_OBJECTS) @echo ' RANLIB ' $@ $(Q)$(RANLIB) $@ # # src/input # libmtxinput_SOURCES = $(wildcard src/input/*.cpp) libmtxinput_OBJECTS := $(patsubst %.cpp,%.o,$(libmtxinput_SOURCES)) src/input/libmtxinput.a: $(libmtxinput_OBJECTS) @rm -f $@ @echo ' AR ' $@ $(Q)$(RUNAR) $@ $(libmtxinput_OBJECTS) @echo ' RANLIB ' $@ $(Q)$(RANLIB) $@ # # src/output # libmtxoutput_SOURCES = $(wildcard src/output/*.cpp) libmtxoutput_OBJECTS := $(patsubst %.cpp,%.o,$(libmtxoutput_SOURCES)) src/output/libmtxoutput.a: $(libmtxoutput_OBJECTS) @rm -f $@ @echo ' AR ' $@ $(Q)$(RUNAR) $@ $(libmtxoutput_OBJECTS) @echo ' RANLIB ' $@ $(Q)$(RANLIB) $@ # # src/merge # mkvmerge_SOURCES = $(wildcard src/merge/*.cpp) mkvmerge_OBJECTS := $(patsubst %.cpp,%.o,$(mkvmerge_SOURCES)) mkvmerge_DEPENDENCIES += $(DEP_COMMON) \ $(DEP_COMP) $(DEP_INPUT) $(DEP_OUTPUT) $(DEP_AVI) $(DEP_RMFF) \ $(DEP_MPEGPARSER) mkvmerge_LDADD = -lmtxinput -lmtxoutput \ -lmtxcommon $(MAGIC_LIBS) -lmatroska -lebml \ -lavi -lrmff -lmpegparser \ $(FLAC_LIBS) -lvorbis -logg -lz $(COMPRESSION_LIBRARIES) \ -lexpat $(ICONV_LIBS) $(LIBINTL_LIBS) $(PCRE_LIBS) $(LIBRPCRT) # # src/info # mkvinfo_SOURCES = src/info/mkvinfo.cpp src/info/console_ui.cpp mkvinfo_LDADD = -lmtxcommon $(MAGIC_LIBS) -lmatroska -lebml ifeq (yes,$(USE_QT)) mkvinfo_SOURCES += src/info/qt_ui.cpp src/info/qt_ui.moc.cpp \ src/info/rightclick_tree_widget.moc.cpp mkvinfo_UIFILES = $(patsubst %.ui,%.h,$(wildcard src/info/ui/*.ui)) mkvinfo_LDADD += $(QT_LIBS) src/info/qt_ui.o: $(wildcard src/info/ui/*.ui) else ifeq (yes,$(USE_WXWIDGETS)) mkvinfo_SOURCES += src/info/wxwidgets_ui.cpp mkvinfo_LDADD += $(WXWIDGETS_LIBS) endif endif mkvinfo_OBJECTS := $(patsubst %.cpp,%.o,$(mkvinfo_SOURCES)) mkvinfo_DEPENDENCIES += $(DEP_COMMON) mkvinfo_LDADD += -lexpat $(ICONV_LIBS) $(LIBINTL_LIBS) $(LIBRPCRT) # # src/extract # mkvextract_SOURCES = $(wildcard src/extract/*.cpp) mkvextract_OBJECTS := $(patsubst %.cpp,%.o,$(mkvextract_SOURCES)) mkvextract_DEPENDENCIES += $(DEP_COMMON) $(DEP_AVILIB) $(DEP_RMFF) mkvextract_LDADD = -lmtxcommon $(MAGIC_LIBS) -lvorbis -logg -lavi -lmatroska -lebml -lrmff \ $(ICONV_LIBS) $(LIBINTL_LIBS) -lexpat \ -lz $(COMPRESSION_LIBRARIES) $(LIBRPCRT) # # src # base64tool_SOURCES = src/base64tool.cpp base64tool_OBJECTS := $(patsubst %.cpp,%.o,$(base64tool_SOURCES)) base64tool_DEPENDENCIES += $(DEP_COMMON) base64tool_LDADD = -lmtxcommon $(MAGIC_LIBS) -lexpat $(ICONV_LIBS) $(LIBINTL_LIBS) \ $(LIBRPCRT) # # src/mmg # mmg_SOURCES = $(wildcard src/mmg/*.cpp) mmg_OBJECTS := $(patsubst %.cpp,%.o,$(mmg_SOURCES)) \ $(patsubst %.rc,%.o,$(MMG_RESOURCES)) mmg_DEPENDENCIES += $(DEP_COMMON) mmg_LDADD = -lmtxcommon $(MAGIC_LIBS) -lmatroska -lebml -lexpat $(ICONV_LIBS) \ $(WXWIDGETS_LIBS) $(LIBINTL_LIBS) $(MINGW_GUIAPP) \ $(LIBRPCRT) mkvmerge: src/mkvmerge@EXEEXT@ src/mkvmerge@EXEEXT@: $(mkvmerge_OBJECTS) $(mkvmerge_DEPENDENCIES) @echo ' LINK ' $@ $(Q)$(LINK) -o $@ $(mkvmerge_OBJECTS) $(mkvmerge_LDADD) mkvinfo: src/mkvinfo@EXEEXT@ src/mkvinfo@EXEEXT@: $(mkvinfo_UIFILES) $(mkvinfo_OBJECTS) $(mkvinfo_DEPENDENCIES) @echo ' LINK ' $@ $(Q)$(LINK) -o $@ $(mkvinfo_OBJECTS) $(mkvinfo_LDADD) mkvextract: src/mkvextract@EXEEXT@ src/mkvextract@EXEEXT@: $(mkvextract_OBJECTS) $(mkvextract_DEPENDENCIES) @echo ' LINK ' $@ $(Q)$(LINK) -o $@ $(mkvextract_OBJECTS) $(mkvextract_LDADD) base64tool: src/base64tool@EXEEXT@ src/base64tool@EXEEXT@: $(base64tool_OBJECTS) $(base64tool_DEPENDENCIES) @echo ' LINK ' $@ $(Q)$(LINK) -o $@ $(base64tool_OBJECTS) $(base64tool_LDADD) mmg: src/mmg/mmg@EXEEXT@ src/mmg/mmg@EXEEXT@: $(mmg_OBJECTS) $(mmg_DEPENDENCIES) @echo ' LINK ' $@ $(Q)$(LINK) -o $@ $(mmg_OBJECTS) $(mmg_LDADD) .SECONDARY: # # include dependency files if they exist # ifneq ($(wildcard .depend),) include .depend endif