Mercurial > hg > syntilista
changeset 262:847917a62ea2
Build system cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 Jan 2020 03:08:32 +0200 |
parents | f6a99b984b8e |
children | f0e180b13e05 |
files | Makefile.gen |
diffstat | 1 files changed, 39 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile.gen Tue Dec 24 05:38:12 2019 +0200 +++ b/Makefile.gen Tue Jan 14 03:08:32 2020 +0200 @@ -1,11 +1,13 @@ ### -### Main build file +### Compiler flags ### - CFLAGS += -O2 -W -Wall -Wextra CXXFLAGS += -O2 -W -Wall -Wextra -std=c++11 -# Tools + +### +### Tools, paths and directories +### ifneq ($(BINTOOL_PREFIX),) CC = $(BINTOOL_PREFIX)gcc CXX = $(BINTOOL_PREFIX)g++ @@ -14,11 +16,15 @@ RANLIB = $(BINTOOL_PREFIX)ranlib WINDRES = $(BINTOOL_PREFIX)windres + INSTALL ?= install MKDIR ?= mkdir MKDIR_P ?= $(MKDIR) -p -# Common defines + +### +### Main targets and objects +### DEFINES += -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG \ -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB \ -DQT_CORE_LIB @@ -68,23 +74,41 @@ CXXFLAGS += -DAPP_VERSION=\"$(APP_VERSION)\" +### +### Functions and compilation/link commands +### ifneq ($(V),1) -COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $< -COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo " CXX $<" && $(CXX) $(CXXFLAGS) -c -o $@ $< -LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+) -LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo " LINK $@" && $(CXX) -o $@ $(filter %.o %.a,$+) -LINK_STATIC_LIB = @echo " AR $@" && $(AR) cru $@ $(filter %.o,$+) && $(RANLIB) $@ +DO_CMD=/bin/echo -E " $(1) $(2)" && $(3) else -COMPILE_C_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CC) $(CFLAGS) -c -o $@ $<" && $(CC) $(CFLAGS) -c -o $@ $< -COMPILE_CXX_OBJ = @if test ! -d $(OBJPATH); then $(MKDIR_P) $(OBJPATH); fi && echo "$(CXX) $(CXXFLAGS) -c -o $@ $<" && $(CXX) $(CXXFLAGS) -c -o $@ $< -LINK_C_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CC) -o $@ $(filter %.o %.a,$+)" && $(CC) -o $@ $(filter %.o %.a,$+) -LINK_CXX_BIN = @if test ! -d $(BINPATH); then $(MKDIR_P) $(BINPATH); fi && echo "$(CXX) -o $@ $(filter %.o %.a,$+)" && $(CXX) -o $@ $(filter %.o %.a,$+) -LINK_STATIC_LIB = @echo "$(AR) cru $@ $(filter %.o,$+)" && $(AR) cru $@ $(filter %.o,$+) && echo "$(RANLIB) $@" && $(RANLIB) $@ +DO_CMD=/bin/echo -E $(3) && $(3) endif +DO_MKDIR=if test ! -d "$(1)"; then mkdir -p "$(1)"; fi + + +COMPILE_C_OBJ = \ + @$(call DO_MKDIR,$(OBJPATH)) ; \ + $(call DO_CMD,CC,$<,$(CC) $(CFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) + +LINK_C_BIN = \ + @$(call DO_MKDIR,$(BINPATH)) ; \ + $(call DO_CMD,LINK,$@,$(CC) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) + +COMPILE_CXX_OBJ = \ + @$(call DO_MKDIR,$(OBJPATH)) ; \ + $(call DO_CMD,CXX,$<,$(CXX) $(CXXFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) + +LINK_CXX_BIN = \ + @$(call DO_MKDIR,$(BINPATH)) ; \ + $(call DO_CMD,LINK,$@,$(CXX) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) + +LINK_STATIC_LIB = \ + @$(call DO_MKDIR,$(OBJPATH)) ; \ + $(call DO_CMD,AR,$@ $(filter %.o,$+),$(AR) cru $@ $(filter %.o,$+)) ; \ + $(call DO_CMD,RANLIB,$@,$(RANLIB) $@) ### -### Target rules +### Generic target rules ### all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS)