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