1CC=gcc
2CFLAGS=-m64 -Os -Wall -MMD -fno-asynchronous-unwind-tables -g -Wno-sign-compare -Wno-unused-but-set-variable
3LDFLAGS= -m64 -g
4CFLAGS+=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
5PWD:=$(shell pwd)
6CFLAGS+=-I$(PWD)
7
8CXX=g++
9CXXFLAGS=$(CFLAGS)
10
11PROGS=TAppEncoder jsenc
12
13
14all: $(PROGS)
15
16ENC_OBJS=$(addprefix TLibEncoder/, SyntaxElementWriter.o TEncSbac.o \
17TEncBinCoderCABACCounter.o TEncGOP.o\
18TEncSampleAdaptiveOffset.o TEncBinCoderCABAC.o TEncAnalyze.o\
19TEncEntropy.o TEncTop.o SEIwrite.o TEncPic.o TEncRateCtrl.o\
20WeightPredAnalysis.o TEncSlice.o TEncCu.o NALwrite.o TEncCavlc.o\
21TEncSearch.o TEncPreanalyzer.o)
22ENC_OBJS+=TLibVideoIO/TVideoIOYuv.o
23ENC_OBJS+=$(addprefix TLibCommon/, TComWeightPrediction.o TComLoopFilter.o\
24TComBitStream.o TComMotionInfo.o TComSlice.o ContextModel3DBuffer.o\
25TComPic.o TComRdCostWeightPrediction.o TComTU.o TComPicSym.o\
26TComPicYuv.o TComYuv.o TComTrQuant.o TComInterpolationFilter.o\
27ContextModel.o TComSampleAdaptiveOffset.o SEI.o TComPrediction.o\
28TComDataCU.o TComChromaFormat.o Debug.o TComRom.o\
29TComPicYuvMD5.o TComRdCost.o TComPattern.o TComCABACTables.o)
30ENC_OBJS+=libmd5/libmd5.o
31ENC_OBJS+=TAppEncCfg.o TAppEncTop.o program_options_lite.o
32
33TAppEncoder: $(ENC_OBJS) encmain.o
34	$(CXX) -o $@ $(LDFLAGS) $^ -lm
35
36jsenc: jsenc.o jctvc_glue.o $(ENC_OBJS)
37	$(CXX) -o $@ $(LDFLAGS) $^ -lpng -lm
38
39%.o: %.c
40	$(CC) $(CFLAGS) -c -o $@ $<
41
42%.o: %.cpp
43	$(CXX) $(CXXFLAGS) -c -o $@ $<
44
45clean:
46	rm -f *.o *.d *~ \
47	TLibEncoder/*.o TLibEncoder/*.d TLibEncoder/*~ \
48	TLibVideoIO/*.o TLibVideoIO/*.d TLibVideoIO/*~ \
49        TLibCommon/*.o TLibCommon/*.d TLibCommon/*~
50
51-include $(wildcard *.d)
52-include $(wildcard TLibEncoder/*.d)
53-include $(wildcard TLibVideoIO/*.d)
54-include $(wildcard TLibCommon/*.d)
55