diff --git a/Makefile b/Makefile index ca3d2cf..30a7f00 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,11 @@ ROOTPATH := $(shell git rev-parse --show-toplevel) COMMANDLINE := $(shell ps -o args= $$PPID) +# ---------- Base Includes ---------- + +-include $(ROOTPATH)/Makefile.conf +-include $(ROOTPATH)/Makefiles/Makefile.conf.base + # ---------- Architectures ---------- ARCHS := $(shell ls $(ROOTPATH)/Makefiles/Makefile.conf.* | grep -v base | sed 's/.*Makefile\.conf\.//g') @@ -16,6 +21,16 @@ ARCHS += any ARCHS := $(filter-out any,$(ARCHS)) +ifeq ($(ARCH),) + ifneq ($(DEFAULTARCH),) + ARCH := $(DEFAULTARCH) + else + ARCH := x86_64 + endif +endif + +-include $(ROOTPATH)/Makefiles/Makefile.conf.$(ARCH) + ifeq (,$(findstring -S,$(COMMANDLINE))) ifneq ($(ARCH),) $(info ARCH: $(ARCH)) @@ -51,9 +66,6 @@ REALOBJECTS := $(SOURCES:.cpp=.o.$(ARCH)) DEPENDS = $(REALOBJECTS:.o.$(ARCH)=.d.$(ARCH)) OBJECTS := Makefile.conf OBJECTS += $(REALOBJECTS) -LIBRARIES = -LIBFILES = -TARGETS = # ---------- Recursive Targets ---------- @@ -66,12 +78,6 @@ artifacts: $(LOCALOBJECTS) .DEFAULT_GOAL := artifacts -# ---------- Includes ---------- - --include $(ROOTPATH)/Makefiles/Makefile.conf.$(ARCH) --include $(ROOTPATH)/Makefiles/Makefile.conf.base --include $(ROOTPATH)/Makefile.conf - # ---------- Libraries ---------- define build_target_library_arch diff --git a/Makefile.aliases b/Makefile.aliases index 63bcc98..18f4f02 100644 --- a/Makefile.aliases +++ b/Makefile.aliases @@ -2,39 +2,37 @@ # Makefile.conf.aliases # -ARCHS += armv6 -ARCHS += armv8 -ARCHS += alpine +ALIASES += armv6 +ALIASES += armv8 +ALIASES += alpine +ARCHS += $(ALIASES) ARCH := $(filter $(ARCHS),$(MAKECMDGOALS)) MAKECMDGOALS := $(filter-out $(ARCH),$(MAKECMDGOALS)) # ARMv6 Defaults to Raspbian jessie ifeq ($(ARCH),armv6) -ARCH := armv6-jessie + ARCH := armv6-jessie -.PHONY: armv6 -armv6: $(ARCH) + .PHONY: armv6 + armv6: $(ARCH) endif # ARMv8 Defaults to Raspbian stretch ifeq ($(ARCH),armv8) -ARCH := armv8-stretch + ARCH := armv8-stretch -.PHONY: armv8 -armv8: $(ARCH) + .PHONY: armv8 + armv8: $(ARCH) endif # Alpine defaults to x86_64 alpine ifeq ($(ARCH),alpine) -ARCH := x86_64-alpine + ARCH := x86_64-alpine -.PHONY: alpine -alpine: $(ARCH) + .PHONY: alpine + alpine: $(ARCH) endif -# Default is x86_64 -ifeq ($(ARCH),) -ARCH := x86_64 -endif +ARCHS := $(filter-out $(ALIASES),$(ARCHS)) diff --git a/Makefile.conf.armv6-jessie b/Makefile.conf.armv6-jessie index 43d42b0..3257756 100644 --- a/Makefile.conf.armv6-jessie +++ b/Makefile.conf.armv6-jessie @@ -3,7 +3,7 @@ # ARCH := armv6-jessie -CFLAGS := -marm -march=armv6 +CFLAGS += -marm -march=armv6 ARCHBASEDIR := /opt/build/Raspbian-jessie @@ -16,3 +16,4 @@ CFLAGS += -I$(ARCHBASEDIR)/include -I$(ARCHBASEDIR)/include/arm-linux-gnueabihf LFLAGS += -L$(ARCHBASEDIR)/lib -L$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -L$(ARCHBASEDIR)/usr/lib -L$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += -Wl,-rpath,$(ARCHBASEDIR)/lib -Wl,-rpath,$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -Wl,-rpath,$(ARCHBASEDIR)/usr/lib -Wl,-rpath,$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += --sysroot $(ARCHBASEDIR)/tools/arm-rpi-linux-gnueabihf/sysroot + diff --git a/Makefile.conf.armv6-stretch b/Makefile.conf.armv6-stretch index a049b4f..2cb28c9 100644 --- a/Makefile.conf.armv6-stretch +++ b/Makefile.conf.armv6-stretch @@ -3,7 +3,7 @@ # ARCH := armv6-stretch -CFLAGS := -marm -march=armv6 +CFLAGS += -marm -march=armv6 ARCHBASEDIR := /opt/build/Raspbian-stretch @@ -16,3 +16,4 @@ CFLAGS += -I$(ARCHBASEDIR)/include -I$(ARCHBASEDIR)/include/arm-linux-gnueabihf LFLAGS += -L$(ARCHBASEDIR)/lib -L$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -L$(ARCHBASEDIR)/usr/lib -L$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += -Wl,-rpath,$(ARCHBASEDIR)/lib -Wl,-rpath,$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -Wl,-rpath,$(ARCHBASEDIR)/usr/lib -Wl,-rpath,$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += --sysroot $(ARCHBASEDIR)/tools/arm-rpi-linux-gnueabihf/sysroot + diff --git a/Makefile.conf.armv8-alpine b/Makefile.conf.armv8-alpine index 01c6a31..783971e 100644 --- a/Makefile.conf.armv8-alpine +++ b/Makefile.conf.armv8-alpine @@ -3,7 +3,7 @@ # ARCH := armv8-alpine -CFLAGS := -marm -mcpu=cortex-a53 -mfpu=neon-fp-armv8 +CFLAGS += -marm -mcpu=cortex-a53 -mfpu=neon-fp-armv8 ARCHBASEDIR := /opt/build/alpine @@ -17,3 +17,4 @@ LFLAGS += -L$(ARCHBASEDIR)/lib -L$(ARCHBASEDIR)/arm-linux-musleabihf/lib -L$(ARC LFLAGS += -Wl,-rpath,$(ARCHBASEDIR)/lib -Wl,-rpath,$(ARCHBASEDIR)/arm-linux-musleabihf/lib -Wl,-rpath,$(ARCHBASEDIR)/arm-linux-musleabihf/usr/lib CFLAGS += -Wno-stringop-truncation + diff --git a/Makefile.conf.armv8-jessie b/Makefile.conf.armv8-jessie index a53d2e6..4d29930 100644 --- a/Makefile.conf.armv8-jessie +++ b/Makefile.conf.armv8-jessie @@ -3,7 +3,7 @@ # ARCH := armv8-jessie -CFLAGS := -marm -mcpu=cortex-a53 -mfpu=neon-fp-armv8 +CFLAGS += -marm -mcpu=cortex-a53 -mfpu=neon-fp-armv8 ARCHBASEDIR := /opt/build/Raspbian-jessie @@ -16,3 +16,4 @@ CFLAGS += -I$(ARCHBASEDIR)/include -I$(ARCHBASEDIR)/include/arm-linux-gnueabihf LFLAGS += -L$(ARCHBASEDIR)/lib -L$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -L$(ARCHBASEDIR)/usr/lib -L$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += -Wl,-rpath,$(ARCHBASEDIR)/lib -Wl,-rpath,$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -Wl,-rpath,$(ARCHBASEDIR)/usr/lib -Wl,-rpath,$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += --sysroot $(ARCHBASEDIR)/tools/arm-rpi-linux-gnueabihf/sysroot + diff --git a/Makefile.conf.armv8-stretch b/Makefile.conf.armv8-stretch index 652d8c9..6af0b62 100644 --- a/Makefile.conf.armv8-stretch +++ b/Makefile.conf.armv8-stretch @@ -3,7 +3,7 @@ # ARCH := armv8-stretch -CFLAGS := -marm -mcpu=cortex-a53 -mfpu=neon-fp-armv8 +CFLAGS += -marm -mcpu=cortex-a53 -mfpu=neon-fp-armv8 ARCHBASEDIR := /opt/build/Raspbian-stretch @@ -16,3 +16,4 @@ CFLAGS += -I$(ARCHBASEDIR)/include -I$(ARCHBASEDIR)/include/arm-linux-gnueabihf LFLAGS += -L$(ARCHBASEDIR)/lib -L$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -L$(ARCHBASEDIR)/usr/lib -L$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += -Wl,-rpath,$(ARCHBASEDIR)/lib -Wl,-rpath,$(ARCHBASEDIR)/lib/arm-linux-gnueabihf -Wl,-rpath,$(ARCHBASEDIR)/usr/lib -Wl,-rpath,$(ARCHBASEDIR)/usr/lib/arm-linux-gnueabihf LFLAGS += --sysroot $(ARCHBASEDIR)/tools/arm-rpi-linux-gnueabihf/sysroot + diff --git a/Makefile.conf.base b/Makefile.conf.base index 6c6a7ba..9220e2d 100644 --- a/Makefile.conf.base +++ b/Makefile.conf.base @@ -10,3 +10,4 @@ CFLAGS += -Wno-unused -Wno-variadic-macros -Wno-parentheses -Wno-unused-paramete CFLAGS += -ffunction-sections -fdata-sections LFLAGS += -Wl,--gc-sections SFLAGS := -s -R .comment --strip-unneeded + diff --git a/Makefile.conf.x86_64 b/Makefile.conf.x86_64 index caa2547..5b8b420 100644 --- a/Makefile.conf.x86_64 +++ b/Makefile.conf.x86_64 @@ -8,3 +8,4 @@ AR := ar CC := g++ STRIP := strip OBJCOPY := objcopy + diff --git a/Makefile.conf.x86_64-alpine b/Makefile.conf.x86_64-alpine index 89680a9..7897396 100644 --- a/Makefile.conf.x86_64-alpine +++ b/Makefile.conf.x86_64-alpine @@ -16,3 +16,4 @@ LFLAGS += -L$(ARCHBASEDIR)/lib -L$(ARCHBASEDIR)/x86_64-linux-musl/lib -L$(ARCHBA LFLAGS += -Wl,-rpath,$(ARCHBASEDIR)/lib -Wl,-rpath,$(ARCHBASEDIR)/x86_64-linux-musl/lib -Wl,-rpath,$(ARCHBASEDIR)/x86_64-linux-musl/usr/lib CFLAGS += -Wno-stringop-truncation +