xref: /aosp_15_r20/external/libwebm/Makefile.unix (revision 103e46e4cd4b6efcf6001f23fa8665fb110abf8d)
1CXX       := g++
2DEFINES   := -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
3DEFINES   += -D__STDC_LIMIT_MACROS
4INCLUDES  := -I.
5CXXFLAGS  := -W -Wall -g -std=c++11
6ALL_CXXFLAGS := -MMD -MP $(DEFINES) $(INCLUDES) $(CXXFLAGS)
7LIBWEBMA  := libwebm.a
8LIBWEBMSO := libwebm.so
9WEBMOBJS  := mkvmuxer/mkvmuxer.o mkvmuxer/mkvmuxerutil.o mkvmuxer/mkvwriter.o
10WEBMOBJS  += 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
15EXEOBJS   := mkvmuxer_sample.o mkvparser_sample.o dumpvtt.o vttdemux.o
16EXES      := mkvparser_sample mkvmuxer_sample dumpvtt vttdemux
17DEPS      := $(WEBMOBJS:.o=.d) $(OBJECTS1:.o=.d) $(OBJECTS2:.o=.d)
18DEPS      += $(OBJECTS3:.o=.d) $(OBJECTS4:.o=.d) $(OBJSA:.o=.d) $(OBJSSO:.o=.d)
19DEPS      += $(VTTOBJS:.o=.d) $(EXEOBJS:.o=.d)
20CLEAN     := $(EXEOBJS) $(VTTOBJS) $(WEBMOBJS) $(OBJSA) $(OBJSSO) $(LIBWEBMA)
21CLEAN     += $(LIBWEBMSO) $(EXES) $(DEPS) $(INFOOBJS)
22
23all: $(EXES)
24
25mkvparser_sample: mkvparser_sample.o $(LIBWEBMA)
26	$(CXX) $^ -o $@
27
28mkvmuxer_sample: mkvmuxer_sample.o $(VTTOBJS) $(LIBWEBMA)
29	$(CXX) $^ -o $@
30
31dumpvtt: dumpvtt.o $(VTTOBJS) $(WEBMOBJS)
32	$(CXX) $^ -o $@
33
34vttdemux: vttdemux.o $(VTTOBJS) $(LIBWEBMA)
35	$(CXX) $^ -o $@
36
37shared: $(LIBWEBMSO)
38
39libwebm.a: $(OBJSA)
40	$(AR) rcs $@ $^
41
42libwebm.so: $(OBJSSO)
43	$(CXX) $(ALL_CXXFLAGS) -shared $(OBJSSO) -o $(LIBWEBMSO)
44
45%.o: %.cc
46	$(CXX) -c $(ALL_CXXFLAGS) $< -o $@
47%_a.o: %.cc
48	$(CXX) -c $(ALL_CXXFLAGS) $< -o $@
49%_so.o: %.cc
50	$(CXX) -c $(ALL_CXXFLAGS) -fPIC $< -o $@
51
52clean:
53	$(RM) -f $(CLEAN) Makefile.bak
54
55ifneq ($(MAKECMDGOALS), clean)
56  -include $(DEPS)
57endif
58