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 ##