Tom Finegan | 5f1065e | 2016-03-17 15:09:46 -0700 | [diff] [blame] | 1 | CXX := g++ |
Tom Finegan | 596f5e0 | 2016-03-31 19:46:21 -0700 | [diff] [blame] | 2 | DEFINES := -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS |
| 3 | DEFINES += -D__STDC_LIMIT_MACROS |
Tom Finegan | 5f1065e | 2016-03-17 15:09:46 -0700 | [diff] [blame] | 4 | INCLUDES := -I. |
Lisa Velden | d707c67 | 2018-01-22 11:41:20 +0100 | [diff] [blame] | 5 | CXXFLAGS := -W -Wall -g -std=c++11 |
James Zern | 918440a | 2016-03-22 20:55:33 -0700 | [diff] [blame] | 6 | ALL_CXXFLAGS := -MMD -MP $(DEFINES) $(INCLUDES) $(CXXFLAGS) |
Tom Finegan | 5f1065e | 2016-03-17 15:09:46 -0700 | [diff] [blame] | 7 | LIBWEBMA := libwebm.a |
| 8 | LIBWEBMSO := libwebm.so |
Tom Finegan | f578419 | 2016-03-18 11:16:35 -0700 | [diff] [blame] | 9 | WEBMOBJS := mkvmuxer/mkvmuxer.o mkvmuxer/mkvmuxerutil.o mkvmuxer/mkvwriter.o |
Tom Finegan | 5f1065e | 2016-03-17 15:09:46 -0700 | [diff] [blame] | 10 | WEBMOBJS += mkvparser/mkvparser.o mkvparser/mkvreader.o |
| 11 | WEBMOBJS += common/file_util.o common/hdr_util.o |
| 12 | OBJSA := $(WEBMOBJS:.o=_a.o) |
| 13 | OBJSSO := $(WEBMOBJS:.o=_so.o) |
| 14 | VTTOBJS := webvtt/vttreader.o webvtt/webvttparser.o sample_muxer_metadata.o |
Tom Finegan | c147504 | 2016-08-24 12:21:56 -0700 | [diff] [blame] | 15 | EXEOBJS := mkvmuxer_sample.o mkvparser_sample.o dumpvtt.o vttdemux.o |
| 16 | EXES := mkvparser_sample mkvmuxer_sample dumpvtt vttdemux |
Tom Finegan | 5f1065e | 2016-03-17 15:09:46 -0700 | [diff] [blame] | 17 | DEPS := $(WEBMOBJS:.o=.d) $(OBJECTS1:.o=.d) $(OBJECTS2:.o=.d) |
| 18 | DEPS += $(OBJECTS3:.o=.d) $(OBJECTS4:.o=.d) $(OBJSA:.o=.d) $(OBJSSO:.o=.d) |
Frank Galligan | e3c9576 | 2016-04-26 09:51:59 -0700 | [diff] [blame] | 19 | DEPS += $(VTTOBJS:.o=.d) $(EXEOBJS:.o=.d) |
Tom Finegan | 5f1065e | 2016-03-17 15:09:46 -0700 | [diff] [blame] | 20 | CLEAN := $(EXEOBJS) $(VTTOBJS) $(WEBMOBJS) $(OBJSA) $(OBJSSO) $(LIBWEBMA) |
Tom Finegan | 596f5e0 | 2016-03-31 19:46:21 -0700 | [diff] [blame] | 21 | CLEAN += $(LIBWEBMSO) $(EXES) $(DEPS) $(INFOOBJS) |
John Koleszar | d537a94 | 2010-06-02 10:25:06 -0400 | [diff] [blame] | 22 | |
Frank Galligan | a3dd408 | 2011-06-21 14:42:55 -0400 | [diff] [blame] | 23 | all: $(EXES) |
John Koleszar | d537a94 | 2010-06-02 10:25:06 -0400 | [diff] [blame] | 24 | |
Tom Finegan | c147504 | 2016-08-24 12:21:56 -0700 | [diff] [blame] | 25 | mkvparser_sample: mkvparser_sample.o $(LIBWEBMA) |
Frank Galligan | a3dd408 | 2011-06-21 14:42:55 -0400 | [diff] [blame] | 26 | $(CXX) $^ -o $@ |
John Koleszar | d537a94 | 2010-06-02 10:25:06 -0400 | [diff] [blame] | 27 | |
Tom Finegan | c147504 | 2016-08-24 12:21:56 -0700 | [diff] [blame] | 28 | mkvmuxer_sample: mkvmuxer_sample.o $(VTTOBJS) $(LIBWEBMA) |
Frank Galligan | a3dd408 | 2011-06-21 14:42:55 -0400 | [diff] [blame] | 29 | $(CXX) $^ -o $@ |
John Koleszar | d537a94 | 2010-06-02 10:25:06 -0400 | [diff] [blame] | 30 | |
Tom Finegan | f2f87e2 | 2016-03-17 14:31:26 -0700 | [diff] [blame] | 31 | dumpvtt: dumpvtt.o $(VTTOBJS) $(WEBMOBJS) |
| 32 | $(CXX) $^ -o $@ |
| 33 | |
| 34 | vttdemux: vttdemux.o $(VTTOBJS) $(LIBWEBMA) |
Matthew Heaney | 282a675 | 2012-08-20 15:41:06 -0700 | [diff] [blame] | 35 | $(CXX) $^ -o $@ |
| 36 | |
Michael Szal | 69c9348 | 2012-09-21 13:56:11 -0700 | [diff] [blame] | 37 | shared: $(LIBWEBMSO) |
| 38 | |
| 39 | libwebm.a: $(OBJSA) |
Frank Galligan | a3dd408 | 2011-06-21 14:42:55 -0400 | [diff] [blame] | 40 | $(AR) rcs $@ $^ |
| 41 | |
Michael Szal | 69c9348 | 2012-09-21 13:56:11 -0700 | [diff] [blame] | 42 | libwebm.so: $(OBJSSO) |
James Zern | 918440a | 2016-03-22 20:55:33 -0700 | [diff] [blame] | 43 | $(CXX) $(ALL_CXXFLAGS) -shared $(OBJSSO) -o $(LIBWEBMSO) |
Michael Szal | 69c9348 | 2012-09-21 13:56:11 -0700 | [diff] [blame] | 44 | |
Tom Finegan | 504e0f2 | 2016-03-21 11:20:48 -0700 | [diff] [blame] | 45 | %.o: %.cc |
James Zern | 918440a | 2016-03-22 20:55:33 -0700 | [diff] [blame] | 46 | $(CXX) -c $(ALL_CXXFLAGS) $< -o $@ |
Tom Finegan | 87f9bea | 2016-03-07 11:09:44 -0800 | [diff] [blame] | 47 | %_a.o: %.cc |
James Zern | 918440a | 2016-03-22 20:55:33 -0700 | [diff] [blame] | 48 | $(CXX) -c $(ALL_CXXFLAGS) $< -o $@ |
Tom Finegan | 87f9bea | 2016-03-07 11:09:44 -0800 | [diff] [blame] | 49 | %_so.o: %.cc |
James Zern | 918440a | 2016-03-22 20:55:33 -0700 | [diff] [blame] | 50 | $(CXX) -c $(ALL_CXXFLAGS) -fPIC $< -o $@ |
Michael Szal | 69c9348 | 2012-09-21 13:56:11 -0700 | [diff] [blame] | 51 | |
John Koleszar | d537a94 | 2010-06-02 10:25:06 -0400 | [diff] [blame] | 52 | clean: |
Tom Finegan | f2f87e2 | 2016-03-17 14:31:26 -0700 | [diff] [blame] | 53 | $(RM) -f $(CLEAN) Makefile.bak |
Tom Finegan | 25025a5 | 2013-08-19 11:03:45 -0700 | [diff] [blame] | 54 | |
| 55 | ifneq ($(MAKECMDGOALS), clean) |
| 56 | -include $(DEPS) |
| 57 | endif |