Mercurial > hg > syntilista
view Makefile.gen @ 176:c29a1078d601
This page end check is not a kludge anymore, really .. I suppose.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 20 Sep 2017 09:49:09 +0300 |
parents | 325e7590f93e |
children | 87dfca9f704d |
line wrap: on
line source
### ### Main build file ### # Tools CC = $(BINTOOL_PREFIX)gcc CXX = $(BINTOOL_PREFIX)g++ AR = $(BINTOOL_PREFIX)ar RANLIB = $(BINTOOL_PREFIX)ranlib WINDRES = $(BINTOOL_PREFIX)windres INSTALL ?= install MKDIR ?= mkdir MKDIR_P ?= $(MKDIR) -p # Common defines DEFINES += -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_CORE_LIB # Application stuff APP_SRC=src/ APP_IMG=img/ APP_BIN=$(BINPATH)Syntilista$(EXEEXT) APP_OBJS=main.o printing.o resources.o moc_main.o APP_VERSION := $(shell cat VERSION) comma:= , APP_VERSION_COM := $(subst .,$(comma),$(APP_VERSION)) CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" LOGO_SVG ?= kampuscafe4.svg ICON_PNGS = icon-64.png icon-48.png icon-32.png icon-16.png APP_RESOURCES += $(addprefix $(APP_IMG),logo.png $(ICON_PNGS)) # And target lists TARGETS = $(APP_BIN) NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) NOINST_TARGETS += CLEAN_TARGETS += icon.ico $(APP_SRC)moc_*.cpp $(APP_SRC)ui_*.h DISTCLEAN_TARGETS += ### ### Target rules ### all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) moc_predefs.h: @echo "" > $(OBJPATH)dummy.cpp @$(CXX) $(CXXFLAGS) -dM -E -o $@ $(OBJPATH)dummy.cpp moc_%.cpp: %.h $(QT_MOC_RULES) @echo " Qt::MOC $@ $<" @$(QT_MOC) $(DEFINES) $(QT_MOC_FLAGS) $(INCPATH) $< -o $@ ui_%.h: %.ui @echo " Qt:UIC $@ $<" @$(QT_UIC) $(QT_UIC_FLAGS) $< -o $@ $(OBJPATH) $(BINPATH): @echo " MKDIR $@" @$(MKDIR_P) $@ $(OBJPATH)%.o: $(APP_SRC)%.cpp $(APP_SRC)%.h @echo " CXX $@" @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< $(OBJPATH)%.o: $(APP_SRC)%.cpp @echo " CXX $@" @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< ### ### Windows specific rules ### %.rc: %.rc.in icon.ico VERSION @sed -e "s/@APP_VERSION@/$(APP_VERSION)/g;s/@APP_VERSION_COM@/$(APP_VERSION_COM)/g;s#@APP_EXE@#$(notdir $(APP_BIN))#g" < $< > $@ $(OBJPATH)%.o: $(APP_SRC)%.rc @echo " WINDRES $<" @$(WINDRES) $< -O coff -o $@ ### ### Application rules ### $(APP_IMG)icon-%.png: $(addprefix $(APP_IMG),$(LOGO_SVG)) inkscape --export-area-page -w $(patsubst $(APP_IMG)icon-%.png,%,$@) -h $(patsubst $(APP_IMG)icon-%.png,%,$@) -e "$@" "$<" $(APP_IMG)logo.png: $(addprefix $(APP_IMG),$(LOGO_SVG)) inkscape --export-area-page -w 258 -h 220 -e "$@" "$<" icon.ico: $(addprefix $(APP_IMG),$(ICON_PNGS)) @echo " CONVERT $+ -> $@" @convert $+ $@ $(APP_SRC)%.cpp: $(APP_SRC)%.qrc $(APP_RESOURCES) @echo " Qt:RCC $@ $<" @$(QT_RCC) -name "Syntilista" $< -o $@ $(OBJPATH)main.o: $(addprefix $(APP_SRC),main.cpp main.h ui_mainwindow.h ui_editperson.h ui_aboutwindow.h) VERSION @echo " CXX $@" @$(CXX) $(CXXFLAGS) $(DEFINES) $(INCPATH) -c -o $@ $< $(APP_BIN): $(addprefix $(OBJPATH),$(APP_OBJS)) $(APP_DEP_LIBS) | $(APP_DEPS) @echo " LINK $@" @$(CXX) $(LDFLAGS) -o $@ $+ $(APP_LIBS) ### ### Special targets ### clean: -$(RM) $(TARGETS) $(NOINST_TARGETS) $(CLEAN_TARGETS) $(OBJPATH)*.o distclean: clean -$(RM) $(DISTCLEAN_TARGETS) *~ core *.core .PHONY: clean distclean all