瀏覽代碼

Update Makefile Configuration - Add ARMv8 support

JDierkse 6 年之前
父節點
當前提交
f6d5b9e787
共有 5 個文件被更改,包括 61 次插入32 次删除
  1. 28 26
      Makefile
  2. 1 1
      Makefile.conf
  3. 5 4
      Makefile.conf.armv6
  4. 26 0
      Makefile.conf.armv8
  5. 1 1
      Makefile.conf.x86-64

+ 28 - 26
Makefile

@@ -4,53 +4,56 @@
 
 include Makefile.conf
 
-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)
-
-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      =
+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)
+
+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)
 
--include Makefile.target
+artifacts: $(LOCALOBJECTS)
 
-artifacts: $(SUBDIRS) $(LOCALOBJECTS)
+.DEFAULT_GOAL := artifacts
+
+-include Makefile.target
 
 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
-

+ 1 - 1
Makefile.conf

@@ -1 +1 @@
-Makefile.conf.local
+Makefile.conf.armv8

+ 5 - 4
Makefile.conf.rpi → 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

+ 26 - 0
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'`

+ 1 - 1
Makefile.conf.local → 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