From 747138cf997a6b5d1f294e5893f4faf757e1066f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Mon, 5 May 2014 21:53:37 +0200 Subject: [PATCH] make: move exported make vars to one place --- Makefile.buildtests | 10 +++++++--- Makefile.include | 25 +++++++++++-------------- Makefile.vars | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 Makefile.vars diff --git a/Makefile.buildtests b/Makefile.buildtests index 63e04ca89d..20dba3f5c6 100644 --- a/Makefile.buildtests +++ b/Makefile.buildtests @@ -170,10 +170,14 @@ buildinfo: @echo 'ELFFILE: $(ELFFILE)' @echo 'HEXFILE: $(HEXFILE)' @echo '' - @echo 'CC: $(CC)' - @echo -e 'CFLAGSS:$(patsubst %, \n\t%, $(CFLAGS))' + @echo 'CC: $(CC)' + @echo -e 'CFLAGS:$(patsubst %, \n\t%, $(CFLAGS))' @echo '' - @echo 'LINK: $(LINK)' + @echo 'CXX: $(CXX)' + @echo -e 'CXXUWFLAGS:$(patsubst %, \n\t%, $(CXXUWFLAGS))' + @echo -e 'CXXEXFLAGS:$(patsubst %, \n\t%, $(CXXEXFLAGS))' + @echo '' + @echo 'LINK: $(LINK)' @echo -e 'LINKFLAGS:$(patsubst %, \n\t%, $(LINKFLAGS))' @echo '' @echo 'OBJCOPY: $(OBJCOPY)' diff --git a/Makefile.include b/Makefile.include index 89b144aee2..4a058fff53 100644 --- a/Makefile.include +++ b/Makefile.include @@ -3,13 +3,13 @@ export __RIOTBUILD_FLAG := RIOT # set undefined variables RIOTBASE ?= $(shell dirname "$(lastword $(MAKEFILE_LIST))") -export RIOTBASE := $(abspath $(RIOTBASE)) +RIOTBASE := $(abspath $(RIOTBASE)) RIOTCPU ?= $(RIOTBASE)/cpu -export RIOTCPU := $(abspath $(RIOTCPU)) +RIOTCPU := $(abspath $(RIOTCPU)) RIOTBOARD ?= $(RIOTBASE)/boards -export RIOTBOARD := $(abspath $(RIOTBOARD)) +RIOTBOARD := $(abspath $(RIOTBOARD)) ifeq ($(strip $(MCU)),) MCU = $(CPU) @@ -32,11 +32,8 @@ BB = $(shell echo $(BOARD)|tr 'a-z' 'A-Z'|tr '-' '_') CPUDEF = $(shell echo $(CPU)|tr 'a-z' 'A-Z'|tr '-' '_') CFLAGS += -DBOARD_$(BB) -DCPU_$(CPUDEF) -export CFLAGS -export APPLICATION - -export BINDIRBASE ?= $(CURDIR)/bin -export BINDIR ?= $(abspath $(BINDIRBASE)/$(BOARD))/ +BINDIRBASE ?= $(CURDIR)/bin +BINDIR ?= $(abspath $(BINDIRBASE)/$(BOARD))/ ifeq ($(QUIET),1) AD=@ @@ -44,7 +41,6 @@ ifeq ($(QUIET),1) else AD= endif -export AD BOARD := $(strip $(BOARD)) @@ -87,13 +83,11 @@ BASELIBS += $(USEPKG:%=${BINDIR}%.a) .PHONY: all clean flash doc term objsize buildsize buildsizes buildsizes-diff buildinfo -export ELFFILE ?= $(BINDIR)$(APPLICATION).elf -export HEXFILE ?= $(ELFFILE:.elf=.hex) +ELFFILE ?= $(BINDIR)$(APPLICATION).elf +HEXFILE ?= $(ELFFILE:.elf=.hex) # variables used to complie and link c++ -export CPPMIX ?= $(if $(wildcard *.cpp),1,) -export CXXUWFLAGS -export CXXEXFLAGS +CPPMIX ?= $(if $(wildcard *.cpp),1,) # We assume $(LINK) to be gcc-like. Use `LINKFLAGPREFIX :=` for ld-like linker options. LINKFLAGPREFIX ?= -Wl, @@ -159,3 +153,6 @@ debug: # Extra make goals for testing and comparing changes. include $(RIOTBASE)/Makefile.buildtests + +# Export variables used throughout the whole make system: +include $(RIOTBASE)/Makefile.vars diff --git a/Makefile.vars b/Makefile.vars new file mode 100644 index 0000000000..2f895fdede --- /dev/null +++ b/Makefile.vars @@ -0,0 +1,42 @@ +export AD # Used in front of Makefile lines to suppress the printing of the command if user did not opt-in to see them. +export QUIET # The parameter to use whether to show verbose makefile commands or not. + +export APPLICATION # The application, set in the Makefile which is run by the user. +export BOARD # The board to compile the application for. +export CPU # The CPU, set by the board's Makefile.include. +export MCU # The MCU, set by the board's Makefile.include, or defaulted to the same value as CPU. +export INCLUDES # The extra include paths, set by the various Makefile.include files. + +export USEMODULE # Sys Module dependencies of the application. Set in the application's Makefile. +export USEPKG # Pkg dependencies (third party modules) of the application. Set in the application's Makefile. +export DISABLE_MODULE # Used in the application's Makefile to suppress DEFAULT_MODULEs. +export APPDEPS # Files / Makefile targets that need to be created before the application can be build. Set in the application's Makefile. + +export RIOTBASE # The root folder of RIOT. The folder where this very file lives in. +export RIOTCPU # For third party CPUs this folder is the base of the CPUs. +export RIOTBOARD # For third party BOARDs this folder is the base of the BOARDs. +export BINDIRBASE # This is the folder where the application should be built in. For each BOARD a different subfolder is used. +export BINDIR # This is the folder where the application should be built in. + +export PREFIX # The prefix of the toolchain commands, e.g. "arm-non-eabi-" or "msp430-". +export CC # The C compiler to use. +export CXX # The CXX compiler to use. +export CFLAGS # The compiler flags. Must only ever be used with `+=`. +export CXXUWFLAGS # (Patters of) flags in CFLAGS, that should not be passed to CXX. +export CXXEXFLAGS # Additional flags that should be passed to CXX. +export AR # The command to create the object file archives. +export AS # The assembler. +export ASFLAGS # Flags for the assembler. +export LINK # The command used to link the files. Must take the same parameters as GCC, i.e. "ld" won't work. +export LINKFLAGS # Flags to supply in the linking step. +export OBJCOPY # The command used to create the HEXFILE. +export OFLAGS # The parameter for OBJCOPY, e.g. to strip the debug information. +export SIZE # The command to read to size of the ELF sections. +export UNDEF # Set by the BOARD's and CPU's Makefile.include, this contains object files with must not be used in the ELFFILE even if the if no call to the functions. + +export FLASHER # The command to call on "make flash". +export FFLAGS # The parameters to supply to FLASHER. +export TERMPROG # The command to call on "make term". +export PORT # The parameters to supply to TERMPROG. +export ELFFILE # The unstripped result of the compilation. +export HEXFILE # The stripped result of the compilation.