diff --git a/Makefile.base b/Makefile.base index 9b1bc4c044c9bf8b38a88ab7ecd24b25b2bb8798..fcdd36fadb09743b76a0b7a1118cfe18dd427ef4 100644 --- a/Makefile.base +++ b/Makefile.base @@ -57,13 +57,13 @@ CXXFLAGS = $(filter-out $(CXXUWFLAGS), $(CFLAGS)) $(CXXEXFLAGS) # compile and generate dependency info $(OBJC): $(BINDIR)$(MODULE)/%.o: %.c - $(AD)$(CC) \ + $(AD)$(CCACHE) $(CC) \ -DRIOT_FILE_RELATIVE=\"$(patsubst $(RIOTBASE)/%,%,$(abspath $<))\" \ -DRIOT_FILE_NOPATH=\"$(notdir $<)\" \ $(CFLAGS) $(INCLUDES) -MD -MP -c -o $@ $(abspath $<) $(OBJCXX): $(BINDIR)$(MODULE)/%.o: %.cpp - $(AD)$(CXX) \ + $(AD)$(CCACHE) $(CXX) \ -DRIOT_FILE_RELATIVE=\"$(patsubst $(RIOTBASE)/%,%,$(abspath $<))\" \ -DRIOT_FILE_NOPATH=\"$(notdir $<)\" \ $(CXXFLAGS) $(INCLUDES) -MD -MP -c -o $@ $(abspath $<) diff --git a/Makefile.buildtests b/Makefile.buildtests index 06f34bc035d70d07eef40a7a0e56462fd5886a1b..ed04493e94bf8f46919c7bc2992a35c000374a97 100644 --- a/Makefile.buildtests +++ b/Makefile.buildtests @@ -48,6 +48,9 @@ buildtest: HOME=$${HOME} \ PATH=$${PATH} \ BOARD=$${BOARD} \ + CCACHE=$${CCACHE} \ + CCACHE_DIR=$${CCACHE_DIR} \ + CCACHE_BASEDIR=$${CCACHE_BASEDIR} \ RIOTBASE=$${RIOTBASE} \ RIOTBOARD=$${RIOTBOARD} \ RIOTCPU=$${RIOTCPU} \ diff --git a/Makefile.include b/Makefile.include index ec150b30f026c44a598fd8c6dcc55899746d548f..8fe6fc825b58de69a1de3d96dd9cc86c784b73e9 100644 --- a/Makefile.include +++ b/Makefile.include @@ -152,7 +152,12 @@ ifeq ($(origin RIOT_VERSION), undefined) RIOT_VERSION := "UNKNOWN (builddir: $(RIOTBASE))" endif endif + +ifneq (,$(RIOT_VERSION_OVERRIDE)) +export CFLAGS += -DRIOT_VERSION=\"$(RIOT_VERSION_OVERRIDE)\" +else export CFLAGS += -DRIOT_VERSION=\"$(RIOT_VERSION)\" +endif # the binaries to link BASELIBS += $(BINDIR)$(BOARD)_base.a diff --git a/dist/Dockerfile b/dist/Dockerfile index 2cddabb119be306aeb7ec5e52e27a8b84a8980f4..c485f0428086ec3867129150bc9d7cc59a2f0fb8 100644 --- a/dist/Dockerfile +++ b/dist/Dockerfile @@ -10,6 +10,14 @@ # Usage: # 3. cd to riot root # 4. # docker run -i -t -u $UID -v $(pwd):/data/riotbuild riotbuild ./dist/tools/compile_test/compile_test.py +# +# If you want to use a persistent ccache, map a directory to '/data/ccache' +# and set CCACHE=ccache: +# +# 4. # docker run -i -t -u $UID -v $(pwd):/data/riotbuild -v /tmp/riot_ccache:/data/ccache \ +# -e CCACHE=ccache -e RIOT_VERSION_OVERRIDE=buildtest \ +# riotbuild ./dist/tools/compile_test/compile_test.py +# FROM ubuntu @@ -23,16 +31,23 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-key FE324A81C208C89497EF RUN apt-get update RUN apt-get -y dist-upgrade -RUN apt-get -y install build-essential -RUN apt-get -y install git -RUN apt-get -y install gcc-multilib -RUN apt-get -y install gcc-arm-none-eabi -RUN apt-get -y install gcc-msp430 -RUN apt-get -y install pcregrep libpcre3 -RUN apt-get -y install qemu-system-x86 python3 -RUN apt-get -y install g++-multilib -RUN apt-get -y install gcc-avr binutils-avr avr-libc -RUN apt-get -y install subversion curl wget python p7zip unzip +RUN apt-get -y install build-essential \ + git \ + gcc-multilib \ + gcc-arm-none-eabi \ + gcc-msp430 \ + pcregrep libpcre3 \ + qemu-system-x86 python3 \ + g++-multilib \ + gcc-avr binutils-avr avr-libc \ + subversion curl wget python p7zip unzip + +RUN wget http://launchpadlibrarian.net/206632429/ccache_3.2.2-2_amd64.deb \ + -O /tmp/ccache_3.2.2-2_amd64.deb \ + && dpkg -i /tmp/ccache_3.2.2-2_amd64.deb + +RUN mkdir -m 777 -p /data/ccache +ENV CCACHE_DIR /data/ccache RUN mkdir -p /data/riotbuild WORKDIR /data/riotbuild