Mercurial > hg > syntilista
comparison Makefile.gen @ 50:402446a76794
And more build system work.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 07 Apr 2017 06:04:07 +0300 |
parents | b86eb06070ba |
children | 1ac8fdd932b3 |
comparison
equal
deleted
inserted
replaced
49:b86eb06070ba | 50:402446a76794 |
---|---|
1 ### | |
2 ### Main build file | |
3 ### | |
1 | 4 |
5 # Tools | |
2 CC = $(BINTOOL_PREFIX)gcc | 6 CC = $(BINTOOL_PREFIX)gcc |
3 CXX = $(BINTOOL_PREFIX)g++ | 7 CXX = $(BINTOOL_PREFIX)g++ |
4 AR = $(BINTOOL_PREFIX)ar | 8 AR = $(BINTOOL_PREFIX)ar |
5 RANLIB = $(BINTOOL_PREFIX)ranlib | 9 RANLIB = $(BINTOOL_PREFIX)ranlib |
6 WINDRES = $(BINTOOL_PREFIX)windres | 10 WINDRES = $(BINTOOL_PREFIX)windres |
7 | 11 |
8 INSTALL ?= install | 12 INSTALL ?= install |
9 MKDIR ?= mkdir | 13 MKDIR ?= mkdir |
10 MKDIR_P ?= $(MKDIR) -p | 14 MKDIR_P ?= $(MKDIR) -p |
11 | 15 |
16 # Common defines | |
17 DEFINES += -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB | |
12 | 18 |
19 # Application stuff | |
13 APP_BIN=$(BINPATH)Syntilista$(EXEEXT) | 20 APP_BIN=$(BINPATH)Syntilista$(EXEEXT) |
14 APP_OBJS=main.o qrc_Syntilista.o moc_main.o | 21 APP_OBJS=main.o qrc_Syntilista.o moc_main.o |
15 APP_VERSION= | 22 APP_VERSION := $(shell cat VERSION) |
23 comma:= , | |
24 APP_VERSION_COM := $(subst .,$(comma),$(APP_VERSION)) | |
25 CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" | |
16 | 26 |
17 LOGO_SVG ?= kampuscafe4.svg | 27 LOGO_SVG ?= kampuscafe4.svg |
18 ICON_PNGS = icon-16.png icon-32.png icon-48.png icon-64.png | 28 ICON_PNGS = icon-16.png icon-32.png icon-48.png icon-64.png |
19 | 29 |
20 | 30 |
31 # And target lists | |
21 TARGETS = $(APP_BIN) | 32 TARGETS = $(APP_BIN) |
22 NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) | 33 NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) |
23 NOINST_TARGETS += qrc_Syntilista.cpp | 34 NOINST_TARGETS += |
24 # moc_main.cpp | |
25 | 35 |
26 | 36 |
27 ## | 37 ### |
28 ## Version strings | 38 ### Target rules |
29 ## | 39 ### |
30 APP_VERSION := $(shell cat VERSION) | |
31 comma:= , | |
32 APP_VERSION_COM := $(subst .,$(comma),$(NN_VERSION)) | |
33 CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" | |
34 | |
35 | |
36 ## | |
37 ## Target rules | |
38 ## | |
39 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) | 40 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) |
40 | 41 |
41 | 42 |
42 moc_%.cpp: %.h | 43 moc_predefs.h: |
44 @echo "" > $(OBJPATH)dummy.cpp | |
45 @$(CXX) $(CXXFLAGS) -dM -E -o $@ $(OBJPATH)dummy.cpp | |
46 | |
47 moc_%.cpp: %.h $(QT_MOC_RULES) | |
43 @echo " Qt::MOC $@ $<" | 48 @echo " Qt::MOC $@ $<" |
44 @$(QT_MOC) $(DEFINES) $(QT_MOC_FLAGS) $(INCPATH) $< -o $@ | 49 @$(QT_MOC) $(DEFINES) $(QT_MOC_FLAGS) $(INCPATH) $< -o $@ |
45 | 50 |
46 ui_%.h: %.ui | 51 ui_%.h: %.ui |
47 @echo " Qt:UIC $@ $<" | 52 @echo " Qt:UIC $@ $<" |
59 $(OBJPATH)%.o: %.cpp | 64 $(OBJPATH)%.o: %.cpp |
60 @echo " CXX $@" | 65 @echo " CXX $@" |
61 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< | 66 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< |
62 | 67 |
63 | 68 |
69 | |
64 ### | 70 ### |
65 ### Windows specific targets | 71 ### Windows specific rules |
66 ### | 72 ### |
67 $(OBJPATH)moc_predefs.h: $(QT5_PREFIX)/mkspecs/features/data/dummy.cpp | 73 resource.rc: resource.rc.in icon.ico VERSION |
68 @$(CXX) $(CXXFLAGS) -dM -E -o $@ $< | 74 @sed -e "s/@APP_VERSION@/$(APP_VERSION)/g;s/@APP_VERSION_COM@/$(APP_VERSION_COM)/g;s#@APP_EXE@#$(notdir $(APP_BIN))#g" < $< > $@ |
69 | 75 |
70 resource.rc: resource.rc.in $VERSION | 76 %.o: %.rc |
71 @sed -e "s/@VERSION@/$(APP_VERSION)/g;s/@VERSION_COM@/$(APP_VERSION_COM)/g;s#@EXE@#$(notdir $(APP_BIN))#g" < $< > $@ | 77 @echo " WINDRES $<" |
72 | 78 @$(WINDRES) $< -O coff -o $@ |
73 resource.o: resource.rc | |
74 $(WINDRES) $< -O coff -o $@ | |
75 | 79 |
76 | 80 |
77 ### | 81 ### |
78 ### Application rules | 82 ### Application rules |
79 ### | 83 ### |
81 inkscape --export-area-page -w $(patsubst icon-%.png,%,$@) -h $(patsubst icon-%.png,%,$@) -e "$@" "$<" | 85 inkscape --export-area-page -w $(patsubst icon-%.png,%,$@) -h $(patsubst icon-%.png,%,$@) -e "$@" "$<" |
82 | 86 |
83 logo.png: $(LOGO_SVG) | 87 logo.png: $(LOGO_SVG) |
84 inkscape --export-area-page -w 300 -h 280 -e "$@" "$<" | 88 inkscape --export-area-page -w 300 -h 280 -e "$@" "$<" |
85 | 89 |
86 Syntilista.ico: $(ICON_PNGS) | 90 icon.ico: $(ICON_PNGS) |
87 convert $< $+ | 91 convert $< $@ |
88 | 92 |
89 qrc_Syntilista.cpp: Syntilista.qrc logo.png $(ICON_PNGS) | 93 qrc_Syntilista.cpp: Syntilista.qrc logo.png $(ICON_PNGS) |
90 @echo " Qt:RCC $@ $<" | 94 @echo " Qt:RCC $@ $<" |
91 @$(QT_RCC) -name "Syntilista" $< -o $@ | 95 @$(QT_RCC) -name "Syntilista" $< -o $@ |
92 | 96 |
93 $(OBJPATH)main.o: main.cpp main.h ui_mainwindow.h ui_editperson.h | 97 $(OBJPATH)main.o: main.cpp main.h ui_mainwindow.h ui_editperson.h |
94 @echo " CXX $@" | 98 @echo " CXX $@" |
95 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< | 99 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< |
96 | 100 |
97 | 101 |
98 $(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) | 102 $(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) $(APP_DEPS) |
99 @echo " LINK $@" | 103 @echo " LINK $@" |
100 @$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS) | 104 @$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS) |
101 | 105 |
102 | 106 |
103 ## | 107 ### |
104 ## Special targets | 108 ### Special targets |
105 ## | 109 ### |
106 clean: | 110 clean: |
107 $(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o | 111 $(RM) $(TARGETS) $(NOINST_TARGETS) $(OBJPATH)*.o |
108 | 112 |
109 distclean: clean | 113 distclean: clean |
110 $(RM) *~ core *.core | 114 $(RM) *~ core *.core |