Browse Source

make: move exported make vars to one place

dev/timer
René Kijewski 9 years ago
parent
commit
747138cf99
  1. 10
      Makefile.buildtests
  2. 25
      Makefile.include
  3. 42
      Makefile.vars

10
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)'

25
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

42
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.
Loading…
Cancel
Save