CXX := g++ PREDEFINES := -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS INCLUDES := -I. CXXFLAGS := -W -Wall -g -MMD -MP $(PREDEFINES) $(INCLUDES) LIBWEBMA := libwebm.a LIBWEBMSO := libwebm.so WEBMOBJS := mkvmuxer.o mkvmuxerutil.o 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 := vttreader.o webvttparser.o sample_muxer_metadata.o EXEOBJS := sample.o sample_muxer.o dumpvtt.o vttdemux.o 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) EXES := sample_muxer sample dumpvtt vttdemux CLEAN := $(EXEOBJS) $(VTTOBJS) $(WEBMOBJS) $(OBJSA) $(OBJSSO) $(LIBWEBMA) CLEAN += $(LIBWEBMSO) $(EXES) $(DEPS) all: $(EXES) sample: sample.o $(LIBWEBMA) $(CXX) $^ -o $@ sample_muxer: sample_muxer.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) $(CXXFLAGS) -shared $(OBJSSO) -o $(LIBWEBMSO) %.o: %.cpp $(CXX) -c $(CXXFLAGS) $< -o $@ %_a.o: %.cpp $(CXX) -c $(CXXFLAGS) $< -o $@ %_a.o: %.cc $(CXX) -c $(CXXFLAGS) $< -o $@ %_so.o: %.cpp $(CXX) -c $(CXXFLAGS) -fPIC $< -o $@ %_so.o: %.cc $(CXX) -c $(CXXFLAGS) -fPIC $< -o $@ clean: $(RM) -f $(CLEAN) Makefile.bak ifneq ($(MAKECMDGOALS), clean) -include $(DEPS) endif