]> git.sesse.net Git - nageru/blob - Makefile
Fix a GCC warning.
[nageru] / Makefile
1 CXX=g++
2 PROTOC=protoc
3 PKG_MODULES := Qt5Core Qt5Gui Qt5Widgets Qt5OpenGLExtensions Qt5OpenGL Qt5PrintSupport libjpeg movit libmicrohttpd protobuf sqlite3
4 CXXFLAGS ?= -O2 -g -Wall  # Will be overridden by environment.
5 CXXFLAGS += -fPIC $(shell pkg-config --cflags $(PKG_MODULES)) -DMOVIT_SHADER_DIR=\"$(shell pkg-config --variable=shaderdir movit)\" -pthread
6
7 LDLIBS=$(shell pkg-config --libs $(PKG_MODULES)) -pthread -lavformat -lavcodec -lavutil -lswscale -lGL -lva -lva-drm -lva-x11 -lX11
8
9 # Qt objects
10 OBJS_WITH_MOC = mainwindow.o jpeg_frame_view.o clip_list.o
11 OBJS += $(OBJS_WITH_MOC)
12 OBJS += $(OBJS_WITH_MOC:.o=.moc.o) 
13
14 # Flow objects
15 OBJS += flow.o gpu_timers.o
16
17 OBJS += ffmpeg_raii.o main.o player.o httpd.o mux.o metacube2.o video_stream.o context.o chroma_subsampler.o
18 OBJS += vaapi_jpeg_decoder.o memcpy_interleaved.o db.o disk_space_estimator.o ycbcr_converter.o flags.o
19 OBJS += state.pb.o
20
21 %.o: %.cpp
22         $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
23 %.o: %.cc
24         $(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
25 %.pb.cc %.pb.h : %.proto
26         $(PROTOC) --cpp_out=. $<
27
28 %.h: %.ui
29         uic $< -o $@
30
31 %.moc.cpp: %.h
32         moc $< -o $@
33
34 all: futatabi flow vis eval
35
36 mainwindow.o: ui_mainwindow.h state.pb.h
37
38 clip_list.h: state.pb.h
39
40 db.h: state.pb.h
41
42 futatabi: $(OBJS) $(CEF_LIBS)
43         $(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS)
44 flow: flow.o flow_main.o gpu_timers.o
45         $(CXX) -o $@ $^ -lepoxy -lSDL2 -lSDL2_image
46 eval: eval.o util.o
47         $(CXX) -o $@ $^
48 vis: vis.o util.o
49         $(CXX) -o $@ $^
50
51 DEPS=$(OBJS:.o=.d)
52 -include $(DEPS)
53
54 clean:
55         $(RM) $(OBJS) $(DEPS) flow_main.o gpu_timers.o futatabi $(OBJS_WITH_MOC:.o=.moc.cpp) *.pb.cc *.pb.h