diff --git a/Makefile b/Makefile index 61216ac..756787d 100644 --- a/Makefile +++ b/Makefile @@ -4,53 +4,56 @@ include Makefile.conf -ARNAME = $(notdir $(CURDIR)).a +ARNAME = $(notdir $(CURDIR)).a -SUBDIRS := $(wildcard */.) -SUBDIRS := $(foreach dir,$(SUBDIRS),$(subst /.,,$(dir))) -FILTER = doc% -SUBDIRS := $(filter-out $(FILTER),$(SUBDIRS)) -SUBDIRARS = $(foreach dir,$(SUBDIRS),$(dir)/$(dir).a) +SUBDIRS := $(wildcard */.) +SUBDIRS := $(foreach dir,$(SUBDIRS),$(subst /.,,$(dir))) +FILTER = doc% +SUBDIRS := $(filter-out $(FILTER),$(SUBDIRS)) +SUBDIRARS = $(foreach dir,$(SUBDIRS),$(dir)/$(dir).a) -LOCALSOURCES = $(wildcard *.cpp *.cc) -SOURCES = $(wildcard *.cpp */*.cpp */*/*.cpp */*/*/*.cpp) -LOCALOBJECT_ = $(LOCALSOURCES:.cpp=.o) -LOCALOBJECTS = $(LOCALOBJECT_:.cc=.o) -OBJECTS = $(SOURCES:.cpp=.o) -LOCALDEPENDS = $(LOCALOBJECTS:.o=.d) -DEPENDS = $(OBJECTS:.o=.d) -TARGETS = +LOCALSOURCES = $(wildcard *.cpp *.cc) +LOCALOBJECTS := $(LOCALSOURCES:.cpp=.o) +LOCALOBJECTS := $(LOCALOBJECTS:.cc=.o) +LOCALDEPENDS = $(LOCALOBJECTS:.o=.d) +SOURCES = $(wildcard *.cpp */*.cpp */*/*.cpp */*/*/*.cpp) +OBJECTS = $(SOURCES:.cpp=.o) +DEPENDS = $(OBJECTS:.o=.d) +TARGETS = + +$(LOCALOBJECTS): | $(SUBDIRS) +$(OBJECTS): | $(SUBDIRS) + +artifacts: $(LOCALOBJECTS) + +.DEFAULT_GOAL := artifacts -include Makefile.target -artifacts: $(SUBDIRS) $(LOCALOBJECTS) - ifneq ($(MAKECMDGOALS),clean) -include $(LOCALDEPENDS) endif %.d: %.cpp - @echo [MM] $@ + $(info [MM] $@) @$(CC) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@ %.o: %.cpp - @echo [CC] $@ + $(info [CC] $@) @nice -n 19 $(CC) -c $(CFLAGS) $< -o $@ %.d: %.cc - @echo [MM] $@ + $(info [MM] $@) @$(CC) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@ %.o: %.cc - @echo [CC] $@ + $(info [CC] $@) @nice -n 19 $(CC) -c $(CFLAGS) $< -o $@ $(ARNAME): $(SUBDIRS) $(LOCALOBJECTS) - @echo [AR] $@ + $(info [AR] $@) @nice -n 19 $(AR) rcuT $@ $(LOCALOBJECTS) $(SUBDIRARS) -$(OBJECTS): | $(SUBDIRS) - .PHONY: $(SUBDIRS) $(SUBDIRS): @$(MAKE) -S -C $@ artifacts @@ -64,4 +67,3 @@ clean: $(MAKE) -S -C $$dir $@; \ done @rm -f $(LOCALOBJECTS) $(LOCALDEPENDS) $(ARNAME) $(TARGETS) || true - diff --git a/Makefile.conf b/Makefile.conf index c58b57f..96d52a1 120000 --- a/Makefile.conf +++ b/Makefile.conf @@ -1 +1 @@ -Makefile.conf.local \ No newline at end of file +Makefile.conf.armv8 \ No newline at end of file diff --git a/Makefile.conf.rpi b/Makefile.conf.armv6 similarity index 64% rename from Makefile.conf.rpi rename to Makefile.conf.armv6 index 1f98d8a..d98ef60 100644 --- a/Makefile.conf.rpi +++ b/Makefile.conf.armv6 @@ -3,19 +3,20 @@ # CFLAGS := -g3 -O3 -fPIC -marm -march=armv6 -std=c++11 -CFLAGS += -Wall -Wextra -Wstrict-aliasing -pedantic -fmax-errors=5 -Werror -Wunreachable-code -Wcast-qual -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Woverloaded-virtual -Wsign-promo -Wstrict-null-sentinel -Wswitch-default -Wno-unused -Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option +CFLAGS += -Wall -Wextra -Wstrict-aliasing -fmax-errors=5 -Werror -Wunreachable-code -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Woverloaded-virtual -Wsign-promo -Wstrict-null-sentinel -Wswitch-default -Wno-unused -Wno-variadic-macros -Wno-parentheses -Wno-unused-parameter -fdiagnostics-show-option # CFLAGS += -Wold-style-cast -Wundef -Wshadow -Wctor-dtor-privacy -Wredundant-decls -Wstrict-overflow=5 -Wcast-align -LFLAGS := -lpthread -lm -lboost_system -lboost_thread -lboost_program_options -lboost_date_time -lssl -lcrypto -lcurl -lmysqlcppconn -lmysqlclient -lz -ldl +LFLAGS := -lpthread -lm -lboost_system -lboost_thread -lboost_program_options -lboost_date_time -lssl -lcrypto -lcurl -lz -ldl -lbluetooth AR := /opt/build/rpi-armv6/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar CC := /opt/build/rpi-armv6/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ STRIP := /opt/build/rpi-armv6/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip OBJCOPY := /opt/build/rpi-armv6/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy -CFLAGS += -I/opt/build/rpi-armv6/include -I/opt/build/rpi-armv6/include/mysql +CFLAGS += -I/opt/build/rpi-armv6/include LFLAGS += -L/opt/build/rpi-armv6/lib --sysroot /opt/build/rpi-armv6/tools/arm-bcm2708/arm-linux-gnueabihf/arm-linux-gnueabihf/sysroot -Wl,-rpath,/opt/build/rpi-armv6/lib -CFLAGS += -I/opt/build/DomoticaServer +CFLAGS += -fpermissive +CFLAGS += -I/opt/build/PresenceDetection CFLAGS += -ffunction-sections -fdata-sections LFLAGS += -Wl,--gc-sections diff --git a/Makefile.conf.armv8 b/Makefile.conf.armv8 new file mode 100644 index 0000000..7720fd5 --- /dev/null +++ b/Makefile.conf.armv8 @@ -0,0 +1,26 @@ +# +# Makefile.conf +# + +CFLAGS := -g3 -O3 -fPIC -marm -march=armv8-a -std=c++11 +CFLAGS += -Wall -Wextra -Wstrict-aliasing -fmax-errors=5 -Werror -Wunreachable-code -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Woverloaded-virtual -Wsign-promo -Wstrict-null-sentinel -Wswitch-default -Wno-unused -Wno-variadic-macros -Wno-parentheses -Wno-unused-parameter -Wno-missing-field-initializers -fdiagnostics-show-option +# CFLAGS += -Wold-style-cast -Wundef -Wshadow -Wctor-dtor-privacy -Wredundant-decls -Wstrict-overflow=5 -Wcast-align +LFLAGS := -lpthread -lm -lboost_system -lboost_thread -lboost_program_options -lboost_date_time -lssl -lcrypto -lcurl -lz -ldl -lbluetooth + +AR := /opt/build/rpi-armv8/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar +CC := /opt/build/rpi-armv8/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ +STRIP := /opt/build/rpi-armv8/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip +OBJCOPY := /opt/build/rpi-armv8/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy + +CFLAGS += -I/opt/build/rpi-armv8/include +LFLAGS += -L/opt/build/rpi-armv8/lib --sysroot /opt/build/rpi-armv8/tools/arm-bcm2708/arm-linux-gnueabihf/arm-linux-gnueabihf/sysroot -Wl,-rpath,/opt/build/rpi-armv8/lib + +CFLAGS += -fpermissive +CFLAGS += -I/opt/build/PresenceDetection + +CFLAGS += -ffunction-sections -fdata-sections +LFLAGS += -Wl,--gc-sections +SFLAGS := -s -R .comment -R .gnu.version --strip-unneeded + +DEBUGDIR := .debug +DATETIME := `date +'%y%m%d-%H%M'` diff --git a/Makefile.conf.local b/Makefile.conf.x86-64 similarity index 95% rename from Makefile.conf.local rename to Makefile.conf.x86-64 index 5ce1541..de33fb9 100644 --- a/Makefile.conf.local +++ b/Makefile.conf.x86-64 @@ -2,7 +2,7 @@ # Makefile.conf.local # -CFLAGS := -g3 -O3 -Wall -fPIC +CFLAGS := -g3 -O3 -Wall -fPIC -std=c++11 CFLAGS += -Wall -Wextra -Wstrict-aliasing -pedantic -fmax-errors=5 -Werror -Wunreachable-code -Wcast-qual -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wnoexcept -Woverloaded-virtual -Wsign-promo -Wstrict-null-sentinel -Wswitch-default -Wno-unused -Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option # CFLAGS += -Wold-style-cast -Wundef -Wshadow -Wctor-dtor-privacy -Wredundant-decls -Wstrict-overflow=5 -Wcast-align LFLAGS := -lpthread -lm -lboost_system -lboost_thread -lboost_program_options -lboost_date_time -lssl -lcrypto -lcurl -lz -ldl -lbluetooth