blob: 0430d17a06b1519eda6aa14799556d5e239825da [file] [log] [blame]
Tom Finegan5f1065e2016-03-17 15:09:46 -07001CXX := g++
Tom Finegan596f5e02016-03-31 19:46:21 -07002DEFINES := -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
3DEFINES += -D__STDC_LIMIT_MACROS
Tom Finegan5f1065e2016-03-17 15:09:46 -07004INCLUDES := -I.
Lisa Veldend707c672018-01-22 11:41:20 +01005CXXFLAGS := -W -Wall -g -std=c++11
James Zern918440a2016-03-22 20:55:33 -07006ALL_CXXFLAGS := -MMD -MP $(DEFINES) $(INCLUDES) $(CXXFLAGS)
Tom Finegan5f1065e2016-03-17 15:09:46 -07007LIBWEBMA := libwebm.a
8LIBWEBMSO := libwebm.so
Tom Fineganf5784192016-03-18 11:16:35 -07009WEBMOBJS := mkvmuxer/mkvmuxer.o mkvmuxer/mkvmuxerutil.o mkvmuxer/mkvwriter.o
Tom Finegan5f1065e2016-03-17 15:09:46 -070010WEBMOBJS += mkvparser/mkvparser.o mkvparser/mkvreader.o
11WEBMOBJS += common/file_util.o common/hdr_util.o
12OBJSA := $(WEBMOBJS:.o=_a.o)
13OBJSSO := $(WEBMOBJS:.o=_so.o)
14VTTOBJS := webvtt/vttreader.o webvtt/webvttparser.o sample_muxer_metadata.o
Tom Fineganc1475042016-08-24 12:21:56 -070015EXEOBJS := mkvmuxer_sample.o mkvparser_sample.o dumpvtt.o vttdemux.o
16EXES := mkvparser_sample mkvmuxer_sample dumpvtt vttdemux
Tom Finegan5f1065e2016-03-17 15:09:46 -070017DEPS := $(WEBMOBJS:.o=.d) $(OBJECTS1:.o=.d) $(OBJECTS2:.o=.d)
18DEPS += $(OBJECTS3:.o=.d) $(OBJECTS4:.o=.d) $(OBJSA:.o=.d) $(OBJSSO:.o=.d)
Frank Galligane3c95762016-04-26 09:51:59 -070019DEPS += $(VTTOBJS:.o=.d) $(EXEOBJS:.o=.d)
Tom Finegan5f1065e2016-03-17 15:09:46 -070020CLEAN := $(EXEOBJS) $(VTTOBJS) $(WEBMOBJS) $(OBJSA) $(OBJSSO) $(LIBWEBMA)
Tom Finegan596f5e02016-03-31 19:46:21 -070021CLEAN += $(LIBWEBMSO) $(EXES) $(DEPS) $(INFOOBJS)
John Koleszard537a942010-06-02 10:25:06 -040022
Frank Galligana3dd4082011-06-21 14:42:55 -040023all: $(EXES)
John Koleszard537a942010-06-02 10:25:06 -040024
Tom Fineganc1475042016-08-24 12:21:56 -070025mkvparser_sample: mkvparser_sample.o $(LIBWEBMA)
Frank Galligana3dd4082011-06-21 14:42:55 -040026 $(CXX) $^ -o $@
John Koleszard537a942010-06-02 10:25:06 -040027
Tom Fineganc1475042016-08-24 12:21:56 -070028mkvmuxer_sample: mkvmuxer_sample.o $(VTTOBJS) $(LIBWEBMA)
Frank Galligana3dd4082011-06-21 14:42:55 -040029 $(CXX) $^ -o $@
John Koleszard537a942010-06-02 10:25:06 -040030
Tom Fineganf2f87e22016-03-17 14:31:26 -070031dumpvtt: dumpvtt.o $(VTTOBJS) $(WEBMOBJS)
32 $(CXX) $^ -o $@
33
34vttdemux: vttdemux.o $(VTTOBJS) $(LIBWEBMA)
Matthew Heaney282a6752012-08-20 15:41:06 -070035 $(CXX) $^ -o $@
36
Michael Szal69c93482012-09-21 13:56:11 -070037shared: $(LIBWEBMSO)
38
39libwebm.a: $(OBJSA)
Frank Galligana3dd4082011-06-21 14:42:55 -040040 $(AR) rcs $@ $^
41
Michael Szal69c93482012-09-21 13:56:11 -070042libwebm.so: $(OBJSSO)
James Zern918440a2016-03-22 20:55:33 -070043 $(CXX) $(ALL_CXXFLAGS) -shared $(OBJSSO) -o $(LIBWEBMSO)
Michael Szal69c93482012-09-21 13:56:11 -070044
Tom Finegan504e0f22016-03-21 11:20:48 -070045%.o: %.cc
James Zern918440a2016-03-22 20:55:33 -070046 $(CXX) -c $(ALL_CXXFLAGS) $< -o $@
Tom Finegan87f9bea2016-03-07 11:09:44 -080047%_a.o: %.cc
James Zern918440a2016-03-22 20:55:33 -070048 $(CXX) -c $(ALL_CXXFLAGS) $< -o $@
Tom Finegan87f9bea2016-03-07 11:09:44 -080049%_so.o: %.cc
James Zern918440a2016-03-22 20:55:33 -070050 $(CXX) -c $(ALL_CXXFLAGS) -fPIC $< -o $@
Michael Szal69c93482012-09-21 13:56:11 -070051
John Koleszard537a942010-06-02 10:25:06 -040052clean:
Tom Fineganf2f87e22016-03-17 14:31:26 -070053 $(RM) -f $(CLEAN) Makefile.bak
Tom Finegan25025a52013-08-19 11:03:45 -070054
55ifneq ($(MAKECMDGOALS), clean)
56 -include $(DEPS)
57endif