Mercurial > hg > syntilista
comparison Makefile.gen @ 49:b86eb06070ba
More work on buildsystem.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 07 Apr 2017 05:40:22 +0300 |
parents | 200ec310660a |
children | 402446a76794 |
comparison
equal
deleted
inserted
replaced
48:200ec310660a | 49:b86eb06070ba |
---|---|
1 | 1 |
2 CC = $(BINTOOL_PREFIX)gcc | 2 CC = $(BINTOOL_PREFIX)gcc |
3 CXX = $(BINTOOL_PREFIX)g++ | 3 CXX = $(BINTOOL_PREFIX)g++ |
4 AR = $(BINTOOL_PREFIX)ar | 4 AR = $(BINTOOL_PREFIX)ar |
5 RANLIB = $(BINTOOL_PREFIX)ranlib | 5 RANLIB = $(BINTOOL_PREFIX)ranlib |
6 WINDRES = $(BINTOOL_PREFIX)windres | |
7 | |
6 INSTALL ?= install | 8 INSTALL ?= install |
7 MKDIR ?= mkdir | 9 MKDIR ?= mkdir |
8 MKDIR_P ?= $(MKDIR) -p | 10 MKDIR_P ?= $(MKDIR) -p |
9 | 11 |
10 | 12 |
11 SYNTILISTA_BIN=$(BINPATH)Syntilista$(EXEEXT) | 13 APP_BIN=$(BINPATH)Syntilista$(EXEEXT) |
12 SYNTILISTA_OBJS=main.o qrc_Syntilista.o moc_main.o | 14 APP_OBJS=main.o qrc_Syntilista.o moc_main.o |
15 APP_VERSION= | |
13 | 16 |
14 LOGO_SVG ?= kampuscafe4.svg | 17 LOGO_SVG ?= kampuscafe4.svg |
18 ICON_PNGS = icon-16.png icon-32.png icon-48.png icon-64.png | |
15 | 19 |
16 TARGETS = $(SYNTILISTA_BIN) | 20 |
21 TARGETS = $(APP_BIN) | |
17 NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) | 22 NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) |
18 NOINST_TARGETS += qrc_Syntilista.cpp | 23 NOINST_TARGETS += qrc_Syntilista.cpp |
19 # moc_main.cpp | 24 # moc_main.cpp |
20 | 25 |
26 | |
27 ## | |
28 ## Version strings | |
29 ## | |
30 APP_VERSION := $(shell cat VERSION) | |
31 comma:= , | |
32 APP_VERSION_COM := $(subst .,$(comma),$(NN_VERSION)) | |
33 CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" | |
21 | 34 |
22 | 35 |
23 ## | 36 ## |
24 ## Target rules | 37 ## Target rules |
25 ## | 38 ## |
46 $(OBJPATH)%.o: %.cpp | 59 $(OBJPATH)%.o: %.cpp |
47 @echo " CXX $@" | 60 @echo " CXX $@" |
48 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< | 61 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< |
49 | 62 |
50 | 63 |
51 ## | 64 ### |
52 ## Application rules | 65 ### Windows specific targets |
53 ## | 66 ### |
67 $(OBJPATH)moc_predefs.h: $(QT5_PREFIX)/mkspecs/features/data/dummy.cpp | |
68 @$(CXX) $(CXXFLAGS) -dM -E -o $@ $< | |
69 | |
70 resource.rc: resource.rc.in $VERSION | |
71 @sed -e "s/@VERSION@/$(APP_VERSION)/g;s/@VERSION_COM@/$(APP_VERSION_COM)/g;s#@EXE@#$(notdir $(APP_BIN))#g" < $< > $@ | |
72 | |
73 resource.o: resource.rc | |
74 $(WINDRES) $< -O coff -o $@ | |
75 | |
76 | |
77 ### | |
78 ### Application rules | |
79 ### | |
54 icon-%.png: $(LOGO_SVG) | 80 icon-%.png: $(LOGO_SVG) |
55 inkscape --export-area-page -w $(patsubst icon-%.png,%,$@) -h $(patsubst icon-%.png,%,$@) -e "$@" "$<" | 81 inkscape --export-area-page -w $(patsubst icon-%.png,%,$@) -h $(patsubst icon-%.png,%,$@) -e "$@" "$<" |
56 | 82 |
57 logo.png: $(LOGO_SVG) | 83 logo.png: $(LOGO_SVG) |
58 inkscape --export-area-page -w 300 -h 280 -e "$@" "$<" | 84 inkscape --export-area-page -w 300 -h 280 -e "$@" "$<" |
59 | 85 |
86 Syntilista.ico: $(ICON_PNGS) | |
87 convert $< $+ | |
60 | 88 |
61 qrc_Syntilista.cpp: Syntilista.qrc logo.png icon-16.png icon-32.png icon-48.png icon-64.png | 89 qrc_Syntilista.cpp: Syntilista.qrc logo.png $(ICON_PNGS) |
62 @echo " Qt:RCC $@ $<" | 90 @echo " Qt:RCC $@ $<" |
63 @$(QT_RCC) -name "Syntilista" $< -o $@ | 91 @$(QT_RCC) -name "Syntilista" $< -o $@ |
64 | 92 |
65 $(OBJPATH)main.o: main.cpp main.h ui_mainwindow.h ui_editperson.h | 93 $(OBJPATH)main.o: main.cpp main.h ui_mainwindow.h ui_editperson.h |
66 @echo " CXX $@" | 94 @echo " CXX $@" |
67 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< | 95 @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< |
68 | 96 |
69 | 97 |
70 $(SYNTILISTA_BIN): $(addprefix $(OBJPATH),$(SYNTILISTA_OBJS)) | 98 $(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) |
71 @echo " LINK $@" | 99 @echo " LINK $@" |
72 @$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS) | 100 @$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS) |
73 | 101 |
74 | 102 |
75 ## | 103 ## |