CXX := g++ DEFINES := -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS DEFINES += -D__STDC_LIMIT_MACROS INCLUDES := -I. CXXFLAGS := -W -Wall -g ALL_CXXFLAGS := -MMD -MP $(DEFINES) $(INCLUDES) $(CXXFLAGS) LIBWEBMA := libwebm.a LIBWEBMSO := libwebm.so WEBMOBJS := mkvmuxer/mkvmuxer.o mkvmuxer/mkvmuxerutil.o mkvmuxer/mkvwriter.o WEBMOBJS += mkvparser/mkvparser.o mkvparser/mkvreader.o WEBMOBJS += common/file_util.o common/hdr_util.o OBJSA := $(WEBMOBJS:.o=_a.o) OBJSSO := $(WEBMOBJS:.o=_so.o) VTTOBJS := webvtt/vttreader.o webvtt/webvttparser.o sample_muxer_metadata.o EXEOBJS := mkvmuxer_sample.o mkvparser_sample.o dumpvtt.o vttdemux.o EXES := mkvparser_sample mkvmuxer_sample dumpvtt vttdemux DEPS := $(WEBMOBJS:.o=.d) $(OBJECTS1:.o=.d) $(OBJECTS2:.o=.d) DEPS += $(OBJECTS3:.o=.d) $(OBJECTS4:.o=.d) $(OBJSA:.o=.d) $(OBJSSO:.o=.d) DEPS += $(VTTOBJS:.o=.d) $(EXEOBJS:.o=.d) CLEAN := $(EXEOBJS) $(VTTOBJS) $(WEBMOBJS) $(OBJSA) $(OBJSSO) $(LIBWEBMA) CLEAN += $(LIBWEBMSO) $(EXES) $(DEPS) $(INFOOBJS) all: $(EXES) mkvparser_sample: mkvparser_sample.o $(LIBWEBMA) $(CXX) $^ -o $@ mkvmuxer_sample: mkvmuxer_sample.o $(VTTOBJS) $(LIBWEBMA) $(CXX) $^ -o $@ dumpvtt: dumpvtt.o $(VTTOBJS) $(WEBMOBJS) $(CXX) $^ -o $@ vttdemux: vttdemux.o $(VTTOBJS) $(LIBWEBMA) $(CXX) $^ -o $@ shared: $(LIBWEBMSO) libwebm.a: $(OBJSA) $(AR) rcs $@ $^ libwebm.so: $(OBJSSO) $(CXX) $(ALL_CXXFLAGS) -shared $(OBJSSO) -o $(LIBWEBMSO) %.o: %.cc $(CXX) -c $(ALL_CXXFLAGS) $< -o $@ %_a.o: %.cc $(CXX) -c $(ALL_CXXFLAGS) $< -o $@ %_so.o: %.cc $(CXX) -c $(ALL_CXXFLAGS) -fPIC $< -o $@ clean: $(RM) -f $(CLEAN) Makefile.bak ifneq ($(MAKECMDGOALS), clean) -include $(DEPS) endif