From 0b7f5c227253d0b8db6595a851061c68075641c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= Date: Fri, 11 Oct 2019 20:30:30 +0200 Subject: [PATCH 1/6] pkg/pkg.mk: prepare to move include at the beginning The file must not change the default goal otherwise it could change packages behavior. --- pkg/pkg.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/pkg.mk b/pkg/pkg.mk index b159535eea..ca5f0f8939 100644 --- a/pkg/pkg.mk +++ b/pkg/pkg.mk @@ -78,4 +78,6 @@ clean:: distclean:: rm -rf "$(PKG_BUILDDIR)" +# Reset goal for package +.DEFAULT_GOAL = endif From 1a074713111afe3cbbc6961227164531fcc22a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= Date: Fri, 4 Oct 2019 13:54:43 +0200 Subject: [PATCH 2/6] pkg/pkg.mk: ensure file is included at the beginning This should prevent issues where the Makefile use 'PKG_BUILDDIR' before them being defined. This will also allow changing the state targets to be file targets. --- pkg/pkg.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/pkg.mk b/pkg/pkg.mk index ca5f0f8939..955d78fbab 100644 --- a/pkg/pkg.mk +++ b/pkg/pkg.mk @@ -1,6 +1,11 @@ # # Include this file if your Package needs to be checked out by git # +# Packages should include this file just after defining the PKG_* variables +# This will ensure the variables are defined in the Makefile. +ifneq (,$(.DEFAULT_GOAL)) + $(error $(lastword $(MAKEFILE_LIST)) must be included at the beginning of the file after defining the PKG_* variables) +endif ifeq (,$(PKG_NAME)) $(error PKG_NAME not defined) From 9b6526c911c1253423b4d8641a4900685bc7ef27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= Date: Mon, 20 May 2019 16:32:32 +0200 Subject: [PATCH 3/6] pkg/pkg.mk: use intermediate state files Rely on file creation and dependencies instead of .PHONY targets. Files will be rebuilt when changing version as the main `Makefile` will have been updated. All steps are re-done on version change. When deleting patches, the '.prepare' step should be redone thanks to the included 'patch-dep.inc' file (TODO TEST ME). Implementation in order: * '.git': means the repository has been cloned. * '.git-downloaded': Fetches the wanted version * '.git-prepared': will clean checkout the version and apply patches --- pkg/local.mk | 5 +-- pkg/pkg.mk | 98 ++++++++++++++++++++++++++++++++-------------------- 2 files changed, 62 insertions(+), 41 deletions(-) diff --git a/pkg/local.mk b/pkg/local.mk index c2a8f0ece7..4f5755da2e 100644 --- a/pkg/local.mk +++ b/pkg/local.mk @@ -6,10 +6,7 @@ # # WARNING: any local changes made to $(PKG_BUILDDIR) *will* get lost! -.PHONY: prepare git-download clean - -git-download: - @true +.PHONY: prepare clean prepare: $(PKG_BUILDDIR)/.prepared @true diff --git a/pkg/pkg.mk b/pkg/pkg.mk index 955d78fbab..52c58b8682 100644 --- a/pkg/pkg.mk +++ b/pkg/pkg.mk @@ -1,8 +1,12 @@ # # Include this file if your Package needs to be checked out by git # +# A package is up to date when its '.git-prepared' file is up to date. +# Any change to the package makefile will force updating the repository +# # Packages should include this file just after defining the PKG_* variables # This will ensure the variables are defined in the Makefile. + ifneq (,$(.DEFAULT_GOAL)) $(error $(lastword $(MAKEFILE_LIST)) must be included at the beginning of the file after defining the PKG_* variables) endif @@ -20,8 +24,8 @@ ifeq (,$(PKG_LICENSE)) $(error PKG_LICENSE not defined) endif -PKG_DIR?=$(CURDIR) -PKG_BUILDDIR?=$(PKGDIRBASE)/$(PKG_NAME) +PKG_DIR ?= $(CURDIR) +PKG_BUILDDIR ?= $(PKGDIRBASE)/$(PKG_NAME) PKG_SOURCE_LOCAL ?= $(PKG_SOURCE_LOCAL_$(shell echo $(PKG_NAME) | tr a-z- A-Z_)) # allow overriding package source with local folder (useful during development) @@ -29,59 +33,79 @@ ifneq (,$(PKG_SOURCE_LOCAL)) include $(RIOTBASE)/pkg/local.mk else -.PHONY: prepare git-download clean git-ensure-version - -prepare: git-download - -ifneq (,$(wildcard $(PKG_DIR)/patches)) -git-download: $(PKG_BUILDDIR)/.git-patched -else -git-download: git-ensure-version -endif - ifeq ($(QUIET),1) GIT_QUIET ?= --quiet endif +GITFLAGS ?= -c user.email=buildsystem@riot -c user.name="RIOT buildsystem" +GITAMFLAGS ?= $(GIT_QUIET) --no-gpg-sign --ignore-whitespace --whitespace=nowarn + +.PHONY: all prepare clean distclean FORCE + +PKG_PATCHES = $(sort $(wildcard $(PKG_DIR)/patches/*.patch)) + +PKG_STATE_FILE = .pkg-state.git +PKG_STATE = $(PKG_BUILDDIR)/$(PKG_STATE_FILE) + +PKG_PREPARED = $(PKG_STATE)-prepared +PKG_PATCHED = $(PKG_STATE)-patched +PKG_DOWNLOADED = $(PKG_STATE)-downloaded + +# Declare 'all' first to have it being the default target +all: $(PKG_PREPARED) +prepare: $(PKG_PREPARED) + +# Allow packages to add a custom step to be `prepared`. +# It should be a dependency of `$(PKG_PREPARED)` and depend on `$(PKG_PATCHED)` +$(PKG_PREPARED): $(PKG_PATCHED) + @touch $@ + # Use explicit '--git-dir' and '--work-tree' to prevent issues when the # directory is not a git repository for any reason (clean -xdff or others) GIT_IN_PKG = git -C $(PKG_BUILDDIR) --git-dir=.git --work-tree=. -GITFLAGS ?= -c user.email=buildsystem@riot -c user.name="RIOT buildsystem" -GITAMFLAGS ?= $(GIT_QUIET) --no-gpg-sign --ignore-whitespace --whitespace=nowarn +# When $(PKG_PATCHED).d is included $(PKG_PATCHED) pre-requisites will include +# the old pre-requisites forcing a rebuild on pre-requisite removal, but we do +# not want to generate $(PKG_PATCHED).d with the old pre-requisites +PKG_PATCHED_PRE_REQUISITES = $(PKG_PATCHES) $(PKG_DOWNLOADED) $(MAKEFILE_LIST) -ifneq (,$(wildcard $(PKG_DIR)/patches)) -$(PKG_BUILDDIR)/.git-patched: git-ensure-version $(PKG_DIR)/Makefile $(PKG_DIR)/patches/*.patch +# Generate dependency file. Force rebuilding on dependency deletion +# Warning: It will be evaluated before target execution, so use as first step +# $1: output file name +gen_dependency_files = $(file >$1,$@: $2)$(foreach f,$2,$(file >>$1,$(f):)) + +# Patch the package +# * create dependencies files +# * clean, without removing the 'state' files +# * checkout the wanted base commit +# * apply patches if there are any. (If none, it does nothing) +$(PKG_PATCHED): $(PKG_PATCHED_PRE_REQUISITES) + $(info [INFO] patch $(PKG_NAME)) + $(call gen_dependency_files,$@.d,$(PKG_PATCHED_PRE_REQUISITES)) + $(Q)$(GIT_IN_PKG) clean $(GIT_QUIET) -xdff '**' $(PKG_STATE:$(PKG_BUILDDIR)/%=':!%*') $(Q)$(GIT_IN_PKG) checkout $(GIT_QUIET) -f $(PKG_VERSION) - $(Q)$(GIT_IN_PKG) $(GITFLAGS) am $(GITAMFLAGS) "$(PKG_DIR)"/patches/*.patch - $(Q)touch $@ -endif + $(Q)$(GIT_IN_PKG) $(GITFLAGS) am $(GITAMFLAGS) $(PKG_PATCHES) $@ -$(PKG_BUILDDIR)/.git-downloaded: +$(PKG_BUILDDIR)/.git: + $(info [INFO] cloning $(PKG_NAME)) $(Q)rm -Rf $(PKG_BUILDDIR) $(Q)mkdir -p $(PKG_BUILDDIR) - $(Q)$(GITCACHE) clone "$(PKG_URL)" "$(PKG_VERSION)" "$(PKG_BUILDDIR)" - $(Q)touch $@ + $(Q)$(GITCACHE) clone $(PKG_URL) $(PKG_VERSION) $(PKG_BUILDDIR) clean:: - @test -d $(PKG_BUILDDIR) && { \ - rm $(PKG_BUILDDIR)/.git-patched ; \ - $(GIT_IN_PKG) clean -f ; \ - $(GIT_IN_PKG) checkout "$(PKG_VERSION)"; \ - make $(PKG_BUILDDIR)/.git-patched ; \ - touch $(PKG_BUILDDIR)/.git-downloaded ; \ - } > /dev/null 2>&1 || true + @-test -d $(PKG_BUILDDIR) && $(GIT_IN_PKG) clean $(GIT_QUIET) -xdff distclean:: - rm -rf "$(PKG_BUILDDIR)" + rm -rf $(PKG_BUILDDIR) + +# Dependencies to 'patches' +-include $(PKG_PATCHED).d # Reset goal for package .DEFAULT_GOAL = From 831898f73592c9f5de79435b16525f0802c3d7c5 Mon Sep 17 00:00:00 2001 From: Bas Stottelaar Date: Tue, 7 Jan 2020 20:15:18 +0100 Subject: [PATCH 4/6] pkg: adapt Makefile template --- pkg/Makefile.git | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/Makefile.git b/pkg/Makefile.git index 5536103ada..3f58592ba2 100644 --- a/pkg/Makefile.git +++ b/pkg/Makefile.git @@ -3,9 +3,7 @@ PKG_URL= # source url of the package's git repository PKG_VERSION= # version of the package to use e.g. a git commit/ref PKG_LICENSE= # license of the package -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: $(MAKE) -C $(CURDIR)/$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk From ca5d13cc2ab6477c5e58d06564668d5cf3755148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= Date: Wed, 2 Oct 2019 12:47:02 +0200 Subject: [PATCH 5/6] pkg/*: adapt to new state file targets Prepare for handling pkg state with files. So it requires having the path defined before declaring targets. In addition, it cleans up the old git-download target. --- pkg/cayenne-lpp/Makefile | 4 +--- pkg/ccn-lite/Makefile | 32 +++++++++++++++-------------- pkg/cifra/Makefile | 4 +--- pkg/cmsis-dsp/Makefile | 11 +++++----- pkg/cmsis-dsp/Makefile.cmsis-dsp | 3 --- pkg/cn-cbor/Makefile | 4 +--- pkg/emb6/Makefile | 6 ++---- pkg/fatfs/Makefile | 4 +--- pkg/gecko_sdk/Makefile | 6 ++---- pkg/hacl/Makefile | 4 +--- pkg/heatshrink/Makefile | 4 +--- pkg/jerryscript/Makefile | 4 +--- pkg/jsmn/Makefile | 4 +--- pkg/libb2/Makefile | 4 +--- pkg/libcoap/Makefile | 12 +++++------ pkg/libcose/Makefile | 4 +--- pkg/libfixmath/Makefile | 4 +--- pkg/libhydrogen/Makefile | 6 ++---- pkg/littlefs/Makefile | 4 +--- pkg/lora-serialization/Makefile | 4 +--- pkg/lua/Makefile | 4 +--- pkg/lwip/Makefile | 6 +++--- pkg/micro-ecc/Makefile | 4 +--- pkg/microcoap/Makefile | 4 +--- pkg/micropython/Makefile | 6 ++---- pkg/minmea/Makefile | 4 +--- pkg/monocypher/Makefile | 4 +--- pkg/nanocbor/Makefile | 6 ++---- pkg/nanopb/Makefile | 8 +++----- pkg/ndn-riot/Makefile | 4 +--- pkg/nimble/Makefile | 4 ++-- pkg/oonf_api/Makefile | 5 ++--- pkg/openthread/Makefile | 6 ++---- pkg/qDSA/Makefile | 4 +--- pkg/relic/Makefile | 35 +++++++++++++++----------------- pkg/semtech-loramac/Makefile | 4 +--- pkg/spiffs/Makefile | 4 +--- pkg/talking_leds/Makefile | 4 +--- pkg/tiny-asn1/Makefile | 4 +--- pkg/tinycbor/Makefile | 4 +--- pkg/tinycrypt/Makefile | 4 +--- pkg/tinydtls/Makefile | 6 ++---- pkg/tlsf/Makefile | 5 +---- pkg/tweetnacl/Makefile | 4 +--- pkg/u8g2/Makefile | 14 ++++++------- pkg/ubasic/Makefile | 6 +++--- pkg/ucglib/Makefile | 12 +++++------ pkg/umorse/Makefile | 6 ++---- pkg/utensor/Makefile | 5 +---- pkg/wakaama/Makefile | 11 +++++----- pkg/wolfssl/Makefile | 9 +++----- 51 files changed, 120 insertions(+), 214 deletions(-) diff --git a/pkg/cayenne-lpp/Makefile b/pkg/cayenne-lpp/Makefile index 0e5fa5eb59..babad6bc5e 100644 --- a/pkg/cayenne-lpp/Makefile +++ b/pkg/cayenne-lpp/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/aabadie/cayenne-lpp PKG_VERSION=0.1.1 PKG_LICENSE=LGPLv2.1 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/ccn-lite/Makefile b/pkg/ccn-lite/Makefile index 1bb31f470b..88413b4893 100644 --- a/pkg/ccn-lite/Makefile +++ b/pkg/ccn-lite/Makefile @@ -3,40 +3,42 @@ PKG_URL=https://github.com/cn-uofbasel/ccn-lite/ PKG_VERSION=e37b02c5cb20e9acccea2394be40f7e570a66a4b PKG_LICENSE=ISC -.PHONY: all ..cmake_version_supported +include $(RIOTBASE)/pkg/pkg.mk + +.PHONY: ..cmake_version_supported CMAKE_MINIMAL_VERSION = 3.6.0 - RIOT_CFLAGS = $(INCLUDES) ifeq (llvm,$(TOOLCHAIN)) RIOT_CFLAGS += -Wno-char-subscripts endif -TOOLCHAIN_FILE=$(PKG_BUILDDIR)/xcompile-toolchain.cmake +TOOLCHAIN_FILE = $(PKG_BUILDDIR)/xcompile-toolchain.cmake -all: $(PKG_BUILDDIR)/src/Makefile - $(MAKE) -C $(PKG_BUILDDIR)/src && \ - cp $(PKG_BUILDDIR)/src/lib/libccnl-riot.a $(BINDIR)/ccn-lite.a +all: $(BINDIR)/ccn-lite.a -$(PKG_BUILDDIR)/src/Makefile: $(TOOLCHAIN_FILE) - cd $(PKG_BUILDDIR)/src && \ - cmake -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) \ - -DCCNL_RIOT=1 -DRIOT_CFLAGS="$(RIOT_CFLAGS)" -DBUILD_TESTING=OFF . -$(TOOLCHAIN_FILE): git-download +$(BINDIR)/ccn-lite.a: $(PKG_BUILDDIR)/bin/lib/libccnl-riot.a + cp $< $@ + +$(PKG_BUILDDIR)/bin/lib/libccnl-riot.a: $(PKG_BUILDDIR)/bin/Makefile + $(MAKE) -C $(PKG_BUILDDIR)/bin + +$(PKG_BUILDDIR)/bin/Makefile: $(PKG_PREPARED) $(TOOLCHAIN_FILE) | ..cmake_version_supported + cmake -B$(PKG_BUILDDIR)/bin -H$(PKG_BUILDDIR)/src \ + -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) \ + -DCCNL_RIOT=1 -DRIOT_CFLAGS="$(RIOT_CFLAGS)" -DBUILD_TESTING=OFF + +$(TOOLCHAIN_FILE): FORCE $(RIOTTOOLS)/cmake/generate-xcompile-toolchain.sh > $(TOOLCHAIN_FILE) -git-download: | ..cmake_version_supported - ..cmake_version_supported: @ # Remove '-rcX' from version as they are not well handled $(Q)\ CMAKE_VERSION=$$(cmake --version | sed -n '1 {s/cmake version //;s/-rc.*//;p;}'); \ $(RIOTTOOLS)/has_minimal_version/has_minimal_version.sh "$${CMAKE_VERSION}" "$(CMAKE_MINIMAL_VERSION)" cmake - -include $(RIOTBASE)/pkg/pkg.mk ifneq (,$(filter -Wformat-nonliteral -Wformat=2, $(CFLAGS))) CFLAGS += -Wno-format-nonliteral endif diff --git a/pkg/cifra/Makefile b/pkg/cifra/Makefile index 11ff4926bf..e44a7e3f8f 100644 --- a/pkg/cifra/Makefile +++ b/pkg/cifra/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/ctz/cifra PKG_VERSION=cfa6df9ca0007abe3c70409d02b3779ac1742297 PKG_LICENSE=CC-0 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.cifra - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/cmsis-dsp/Makefile b/pkg/cmsis-dsp/Makefile index 9cffaff1b8..d465cac151 100644 --- a/pkg/cmsis-dsp/Makefile +++ b/pkg/cmsis-dsp/Makefile @@ -2,11 +2,10 @@ PKG_NAME=cmsis-dsp PKG_URL=https://github.com/ARM-software/CMSIS_5 PKG_VERSION=5.4.0 PKG_LICENSE=Apache-2.0 -CFLAGS += -Wno-strict-aliasing -Wno-unused-parameter - -.PHONY: all - -all: - "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.$(PKG_NAME) include $(RIOTBASE)/pkg/pkg.mk + +CFLAGS += -Wno-strict-aliasing -Wno-unused-parameter + +all: + "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.$(PKG_NAME) all diff --git a/pkg/cmsis-dsp/Makefile.cmsis-dsp b/pkg/cmsis-dsp/Makefile.cmsis-dsp index 7bd5831e6b..a86b6da7da 100644 --- a/pkg/cmsis-dsp/Makefile.cmsis-dsp +++ b/pkg/cmsis-dsp/Makefile.cmsis-dsp @@ -36,8 +36,5 @@ $(OBJ): | $(CMSIS_BINDIRS) $(CMSIS_BINDIRS): @mkdir -p $@ -# Reset the default goal. -.DEFAULT_GOAL := - # Include RIOT settings and recipes include $(RIOTBASE)/Makefile.base diff --git a/pkg/cn-cbor/Makefile b/pkg/cn-cbor/Makefile index 8646ff563b..1511e31054 100644 --- a/pkg/cn-cbor/Makefile +++ b/pkg/cn-cbor/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/cabo/cn-cbor PKG_VERSION=f1cf9ffdf5cfab935a45900556f9b68af925c256 PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.cn-cbor - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/emb6/Makefile b/pkg/emb6/Makefile index d1784a623c..883e545053 100644 --- a/pkg/emb6/Makefile +++ b/pkg/emb6/Makefile @@ -3,6 +3,8 @@ PKG_URL=https://github.com/hso-esk/emb6.git PKG_VERSION=14e4a3cfff01644e078870e14e16a1fe60dcc895 PKG_LICENSE=BSD-3-Clause +include $(RIOTBASE)/pkg/pkg.mk + # GCC 7.x fails on (intentional) fallthrough, thus disable implicit-fallthrough. CFLAGS += -Wno-implicit-fallthrough CFLAGS += -Wno-strict-aliasing @@ -16,8 +18,6 @@ EMB6_SUBMODULES:=$(filter-out emb6_contrib \ emb6_router \ emb6_sock_%,$(filter emb6_%,$(USEMODULE))) -.PHONY: all - all: $(EMB6_SUBMODULES) "$(MAKE)" -C $(PKG_BUILDDIR) @@ -25,8 +25,6 @@ all: $(EMB6_SUBMODULES) emb6_%: "$(MAKE)" -C $(dir $(shell grep -lR "MODULE.*=.*\<$@\>" $(PKG_BUILDDIR))) -include $(RIOTBASE)/pkg/pkg.mk - ifeq (llvm,$(TOOLCHAIN)) CFLAGS += -Wno-tautological-compare CFLAGS += -Wno-parentheses-equality diff --git a/pkg/fatfs/Makefile b/pkg/fatfs/Makefile index 3bd886723c..a5e20650e7 100644 --- a/pkg/fatfs/Makefile +++ b/pkg/fatfs/Makefile @@ -4,10 +4,8 @@ PKG_VERSION=34f371c7735fc6fc8e714a74a7a73a61d3ed5633 PKG_LICENSE=BSD-1-Clause MODULE_MAKEFILE := $(CURDIR)/Makefile.fatfs -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: @cp $(MODULE_MAKEFILE) $(PKG_BUILDDIR)/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/gecko_sdk/Makefile b/pkg/gecko_sdk/Makefile index 3710f435fb..02a97d0358 100644 --- a/pkg/gecko_sdk/Makefile +++ b/pkg/gecko_sdk/Makefile @@ -3,6 +3,8 @@ PKG_URL=https://github.com/basilfx/RIOT-gecko-sdk PKG_VERSION=06b00b68333ea05db1c78fe6626dcfe005a80cb6 PKG_LICENSE=Zlib +include $(RIOTBASE)/pkg/pkg.mk + ifneq ($(CPU),efm32) $(error This package can only be used with EFM32 CPUs) endif @@ -11,9 +13,5 @@ ifneq (llvm,$(TOOLCHAIN)) CFLAGS += -Wno-int-in-bool-context endif -.PHONY: all - all: "$(MAKE)" -C $(PKG_BUILDDIR)/dist - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/hacl/Makefile b/pkg/hacl/Makefile index 330df12a67..8b84ecac04 100644 --- a/pkg/hacl/Makefile +++ b/pkg/hacl/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/mitls/hacl-c PKG_VERSION=aac05f5094fc92569169d5a2af54c12387160634 PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/heatshrink/Makefile b/pkg/heatshrink/Makefile index 7ba2a34235..42dd977927 100644 --- a/pkg/heatshrink/Makefile +++ b/pkg/heatshrink/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/atomicobject/heatshrink.git PKG_VERSION=7d419e1fa4830d0b919b9b6a91fe2fb786cf3280 PKG_LICENSE=ISC-License -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.heatshrink - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/jerryscript/Makefile b/pkg/jerryscript/Makefile index b38688db04..2513ec2004 100644 --- a/pkg/jerryscript/Makefile +++ b/pkg/jerryscript/Makefile @@ -3,7 +3,7 @@ PKG_URL=https://github.com/jerryscript-project/jerryscript.git PKG_VERSION=6e94414f9c3ad9b77c4635a0ca9e796752a205f0 PKG_LICENSE=Apache-2.0 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk CFLAGS += -Wno-implicit-fallthrough @@ -14,5 +14,3 @@ endif all: "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.jerryscript all - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/jsmn/Makefile b/pkg/jsmn/Makefile index cf53ff653e..7eb2e3ed67 100644 --- a/pkg/jsmn/Makefile +++ b/pkg/jsmn/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/zserge/jsmn PKG_VERSION=6784c826d9674915a4d89649c6288e6aecb4110d PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.jsmn - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/libb2/Makefile b/pkg/libb2/Makefile index 83293234af..06350f32a7 100644 --- a/pkg/libb2/Makefile +++ b/pkg/libb2/Makefile @@ -3,10 +3,8 @@ PKG_URL = https://github.com/BLAKE2/libb2 PKG_VERSION = 60ea749837362c226e8501718f505ab138e5c19d # v0.98 PKG_LICENSE = CC0-1.0 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src \ -f $(RIOTPKG)/libb2/Makefile.$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/libcoap/Makefile b/pkg/libcoap/Makefile index 18b69db159..fa37928308 100644 --- a/pkg/libcoap/Makefile +++ b/pkg/libcoap/Makefile @@ -3,16 +3,14 @@ PKG_URL=https://github.com/obgm/libcoap PKG_VERSION=ef41ce5d02d64cec0751882ae8fd95f6c32bc018 PKG_LICENSE=BSD-2-Clause +include $(RIOTBASE)/pkg/pkg.mk + # GCC 7.x fails on (intentional) fallthrough, thus disable implicit-fallthrough. CFLAGS += -Wno-implicit-fallthrough -.PHONY: all - -all: - "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk - ifeq (llvm,$(TOOLCHAIN)) CFLAGS += -Wno-format-nonliteral endif + +all: + "$(MAKE)" -C $(PKG_BUILDDIR) diff --git a/pkg/libcose/Makefile b/pkg/libcose/Makefile index 5768c146f9..a73ff88e40 100644 --- a/pkg/libcose/Makefile +++ b/pkg/libcose/Makefile @@ -3,10 +3,8 @@ PKG_URL=https://github.com/bergzand/libcose PKG_VERSION=8b5f651c3203682a2d98121cd3e5c844cb2b4c36 PKG_LICENSE=LGPL -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.libcose "$(MAKE)" -C $(PKG_BUILDDIR)/src/crypt -f $(CURDIR)/Makefile.libcose_crypt - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/libfixmath/Makefile b/pkg/libfixmath/Makefile index 3d49b6d721..ac40c2bc00 100644 --- a/pkg/libfixmath/Makefile +++ b/pkg/libfixmath/Makefile @@ -3,10 +3,8 @@ PKG_VERSION := 7f9c966b5c473770dc93940e3e6e5323f3c1ad69 PKG_URL := https://github.com/PetteriAimonen/libfixmath PKG_LICENSE := MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: $(Q)cp $(CURDIR)/Makefile.$(PKG_NAME) $(PKG_BUILDDIR)/$(PKG_NAME)/Makefile $(Q)cp $(CURDIR)/Makefile.$(PKG_NAME)-unittests $(PKG_BUILDDIR)/unittests/Makefile - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/libhydrogen/Makefile b/pkg/libhydrogen/Makefile index f0284b0446..28e32e1322 100644 --- a/pkg/libhydrogen/Makefile +++ b/pkg/libhydrogen/Makefile @@ -3,13 +3,11 @@ PKG_URL = https://github.com/jedisct1/libhydrogen PKG_VERSION = 39eb529905ce118b674a7723c0d2b48074b9986d PKG_LICENSE = ISC +include $(RIOTBASE)/pkg/pkg.mk + # This warning is triggered on non-32bit platforms CFLAGS += -Wno-type-limits -.PHONY: all - all: "$(MAKE)" -C $(PKG_BUILDDIR) \ -f $(RIOTPKG)/libhydrogen/Makefile.$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/littlefs/Makefile b/pkg/littlefs/Makefile index a806dd1cd8..eaada0094a 100644 --- a/pkg/littlefs/Makefile +++ b/pkg/littlefs/Makefile @@ -4,9 +4,7 @@ PKG_URL=https://github.com/ARMmbed/littlefs.git PKG_VERSION=7e110b44c0e796dc56e2fe86587762d685653029 PKG_LICENSE=Apache-2.0 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.littlefs - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/lora-serialization/Makefile b/pkg/lora-serialization/Makefile index e4d80dec85..2441032b4a 100644 --- a/pkg/lora-serialization/Makefile +++ b/pkg/lora-serialization/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/leandrolanzieri/lora-serialization PKG_VERSION=d88577a18706ea66431b5f037475b65f43fa88ca PKG_LICENSE=LGPLv2.1 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/lua/Makefile b/pkg/lua/Makefile index 69170baa95..1df60e9909 100644 --- a/pkg/lua/Makefile +++ b/pkg/lua/Makefile @@ -4,10 +4,8 @@ PKG_URL=https://github.com/lua/lua.git PKG_VERSION=e354c6355e7f48e087678ec49e340ca0696725b1 PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: Makefile.lua @cp Makefile.lua $(PKG_BUILDDIR) "$(MAKE)" -C $(PKG_BUILDDIR) -f Makefile.lua - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/lwip/Makefile b/pkg/lwip/Makefile index cb4e34b9d8..a8dd556dad 100644 --- a/pkg/lwip/Makefile +++ b/pkg/lwip/Makefile @@ -4,12 +4,14 @@ PKG_URL=https://git.savannah.nongnu.org/git/lwip.git PKG_VERSION=159e31b689577dbf69cf0683bbaffbd71fa5ee10 PKG_LICENSE=BSD-3-Clause +include $(RIOTBASE)/pkg/pkg.mk + LWIP_MODULES = lwip_api lwip_core lwip_ipv4 lwip_ipv6 \ lwip_netif lwip_netif_ppp lwip_polarssl LWIP_USEMODULE = $(filter $(LWIP_MODULES),$(USEMODULE)) LWIP_MODULE_MAKEFILE = $(RIOTBASE)/Makefile.base -.PHONY: all $(LWIP_MODULES) +.PHONY: $(LWIP_MODULES) CFLAGS += -Wno-address @@ -40,5 +42,3 @@ lwip_netif_ppp: lwip_polarssl: $(call make_module,$@,$(PKG_BUILDDIR)/src/netif/ppp/polarssl) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/micro-ecc/Makefile b/pkg/micro-ecc/Makefile index 518e38f707..931943b71a 100644 --- a/pkg/micro-ecc/Makefile +++ b/pkg/micro-ecc/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/kmackay/micro-ecc.git PKG_VERSION=b6c0cdbe7d20af48b0c2a909a66ff00b093d1542 PKG_LICENSE=BSD-2-Clause -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/microcoap/Makefile b/pkg/microcoap/Makefile index 155c8837b0..1ad54e67a4 100644 --- a/pkg/microcoap/Makefile +++ b/pkg/microcoap/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/1248/microcoap.git PKG_VERSION=ef272895925f0d4c563725fe0102966f544a0fdc PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/micropython/Makefile b/pkg/micropython/Makefile index f29342605e..6a1015b64e 100644 --- a/pkg/micropython/Makefile +++ b/pkg/micropython/Makefile @@ -5,10 +5,8 @@ PKG_LICENSE=MIT CFLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-error -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: @mkdir -p $(PKG_BUILDDIR)/tmp - BUILD=$(PKG_BUILDDIR) "$(MAKE)" -C $(PKG_BUILDDIR)/ports/riot - -include $(RIOTBASE)/pkg/pkg.mk + BUILD=$(PKG_BUILDDIR) "$(MAKE)" -C $(PKG_BUILDDIR)/ports/riot \ No newline at end of file diff --git a/pkg/minmea/Makefile b/pkg/minmea/Makefile index a919a42b29..bfa8aaca4c 100644 --- a/pkg/minmea/Makefile +++ b/pkg/minmea/Makefile @@ -3,10 +3,8 @@ PKG_URL=https://github.com/kosma/minmea PKG_VERSION=ae4dd9442a9041345d5ef108f062e7e4ec6954f2 PKG_LICENSE=WTFPL -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: @cp Makefile.$(PKG_NAME) $(PKG_BUILDDIR)/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/monocypher/Makefile b/pkg/monocypher/Makefile index 010d96ddd3..fcd96b64c9 100644 --- a/pkg/monocypher/Makefile +++ b/pkg/monocypher/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/LoupVaillant/Monocypher PKG_VERSION=d9cc2aea29158971ed4b7dc074efdcb35e7183d5 PKG_LICENSE=CC-0 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: $(Q)"$(MAKE)" -C $(PKG_BUILDDIR)/src - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/nanocbor/Makefile b/pkg/nanocbor/Makefile index f5df0dc631..312c233746 100644 --- a/pkg/nanocbor/Makefile +++ b/pkg/nanocbor/Makefile @@ -3,10 +3,8 @@ PKG_URL = https://github.com/bergzand/nanocbor PKG_VERSION = 3a672f79b2458a96393447e50a41174f741eadc5 PKG_LICENSE = LGPL-2.1 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk -all: git-download +all: "$(MAKE)" -C $(PKG_BUILDDIR)/src \ -f $(RIOTPKG)/nanocbor/Makefile.$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/nanopb/Makefile b/pkg/nanopb/Makefile index 1e43d8d56e..422a5abc79 100644 --- a/pkg/nanopb/Makefile +++ b/pkg/nanopb/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/nanopb/nanopb PKG_VERSION=493adf3616bee052649c63c473f8355630c2797f # nanopb-0.3.9.4 PKG_LICENSE=MIT -.PHONY: all - -all: git-download - "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.nanopb - include $(RIOTBASE)/pkg/pkg.mk + +all: + "$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.nanopb diff --git a/pkg/ndn-riot/Makefile b/pkg/ndn-riot/Makefile index a892281ced..81a133631e 100644 --- a/pkg/ndn-riot/Makefile +++ b/pkg/ndn-riot/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/named-data-iot/ndn-riot PKG_VERSION=34c5eb8adf198049f0a56048825b505c561a8874 PKG_LICENSE=LGPLv2.1 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/nimble/Makefile b/pkg/nimble/Makefile index 828bb65d27..bcfc62cde4 100644 --- a/pkg/nimble/Makefile +++ b/pkg/nimble/Makefile @@ -3,6 +3,8 @@ PKG_URL = https://github.com/apache/mynewt-nimble.git PKG_VERSION = 946cfb7ff27fcf3adacebcd50c159b89d854fbf2 PKG_LICENSE = Apache-2.0 +include $(RIOTBASE)/pkg/pkg.mk + TDIR = $(RIOTPKG)/$(PKG_NAME) PDIR = $(PKG_BUILDDIR) @@ -86,5 +88,3 @@ nimble_scanlist: nimble_scanner: "$(MAKE)" -C $(TDIR)/scanner - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/oonf_api/Makefile b/pkg/oonf_api/Makefile index dc5c604723..dc0717569d 100644 --- a/pkg/oonf_api/Makefile +++ b/pkg/oonf_api/Makefile @@ -3,6 +3,8 @@ PKG_URL=https://github.com/OLSR/OONF.git PKG_VERSION=v0.3.0 PKG_LICENSE=BSD-3-Clause +include $(RIOTBASE)/pkg/pkg.mk + MODULE:=$(PKG_NAME) # GCC 7.x fails on (intentional) fallthrough, thus disable implicit-fallthrough. @@ -10,8 +12,6 @@ CFLAGS += -Wno-implicit-fallthrough COMBINED_ARCHIVE = $(BINDIR)/$(MODULE).a -.PHONY: all - all: "$(MAKE)" -C $(PKG_BUILDDIR) "$(MAKE)" $(COMBINED_ARCHIVE) @@ -37,7 +37,6 @@ $(BINDIR)/$(MODULE).mri: $(file >$@,$(call MRI_TEMPLATE,$(COMBINED_ARCHIVE),$(PARTIAL_ARCHIVES))) @true -include $(RIOTBASE)/pkg/pkg.mk ifneq (,$(filter -Wformat-nonliteral -Wformat=2, $(CFLAGS))) CFLAGS += -Wno-format-nonliteral endif diff --git a/pkg/openthread/Makefile b/pkg/openthread/Makefile index 98e89e9be8..64788075a1 100644 --- a/pkg/openthread/Makefile +++ b/pkg/openthread/Makefile @@ -4,6 +4,8 @@ PKG_VERSION=thread-reference-20180926 PKG_LICENSE=BSD-3-Clause PKG_BUILDDIR ?= $(PKGDIRBASE)/$(PKG_NAME) +include $(RIOTBASE)/pkg/pkg.mk + ifneq (,$(filter openthread-ftd,$(USEMODULE))) TD = ftd $(info Compile OpenThread for FTD device) @@ -23,8 +25,6 @@ OPENTHREAD_ARGS += $(CLI_ARG) $(JOINER_ARG) --enable-application-coap CONFIG_FILE = OPENTHREAD_PROJECT_CORE_CONFIG_FILE='\"platform_config.h\"' $(info $$OPENTHREAD_ARGS is [${OPENTHREAD_ARGS}]) -.PHONY: all - OPENTHREAD_COMMON_FLAGS = -fdata-sections -ffunction-sections -Os OPENTHREAD_COMMON_FLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter @@ -48,5 +48,3 @@ all: ifneq (,$(filter openthread-cli,$(USEMODULE))) cp $(PKG_BUILDDIR)/output/lib/libopenthread-cli-$(TD).a ${BINDIR}/openthread-cli.a endif - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/qDSA/Makefile b/pkg/qDSA/Makefile index 7bb88ae9a0..7651801db3 100644 --- a/pkg/qDSA/Makefile +++ b/pkg/qDSA/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/RIOT-OS/qDSA.git PKG_VERSION=dd2392b0c81ce4187fd3e1e2d3e0a4767f75782e PKG_LICENSE=PD -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/$(QDSA_IMPL) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/relic/Makefile b/pkg/relic/Makefile index 6a5d2983e2..088564eb28 100644 --- a/pkg/relic/Makefile +++ b/pkg/relic/Makefile @@ -3,41 +3,38 @@ PKG_URL=https://github.com/relic-toolkit/relic.git PKG_VERSION=0b0442a8218df8d309266923f2dd5b9ae3b318ce PKG_LICENSE=LGPL-2.1 -.PHONY: all ..cmake_version_supported +include $(RIOTBASE)/pkg/pkg.mk + +.PHONY: ..cmake_version_supported CMAKE_MINIMAL_VERSION = 3.6.0 - CFLAGS += -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-function -Wno-newline-eof -TOOLCHAIN_FILE=$(PKG_BUILDDIR)/xcompile-toolchain.cmake +TOOLCHAIN_FILE = $(PKG_BUILDDIR)/xcompile-toolchain.cmake -all: $(PKG_BUILDDIR)/Makefile - $(MAKE) -C $(PKG_BUILDDIR) && \ - cp $(PKG_BUILDDIR)/lib/librelic_s.a $(BINDIR)/$(PKG_NAME).a +all: $(BINDIR)/$(PKG_NAME).a + +$(BINDIR)/$(PKG_NAME).a: $(PKG_BUILDDIR)/lib/librelic_s.a + cp $< $@ + +$(PKG_BUILDDIR)/lib/librelic_s.a: $(PKG_BUILDDIR)/Makefile + $(MAKE) -C $(PKG_BUILDDIR) # Pass 'COMP' with a target specific export to not have issues with the shell # escaping evaluation. COMP = $(filter-out -Werror -Werror=old-style-definition -Werror=strict-prototypes -std=gnu99,$(CFLAGS)) $(PKG_BUILDDIR)/Makefile: export COMP ?= +$(PKG_BUILDDIR)/Makefile: $(PKG_PREPARED) $(TOOLCHAIN_FILE) | ..cmake_version_supported + cmake -B$(PKG_BUILDDIR) -H$(PKG_BUILDDIR) \ + -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) \ + -DCHECK=off -DTESTS=0 -DBENCH=0 -DSHLIB=off -Wno-dev $(RELIC_CONFIG_FLAGS) -$(PKG_BUILDDIR)/Makefile: $(TOOLCHAIN_FILE) - cd $(PKG_BUILDDIR) && \ - cmake -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) \ - -DCHECK=off -DTESTS=0 -DBENCH=0 -DSHLIB=off -Wno-dev $(RELIC_CONFIG_FLAGS) . - -$(TOOLCHAIN_FILE): git-download +$(TOOLCHAIN_FILE): FORCE $(RIOTTOOLS)/cmake/generate-xcompile-toolchain.sh > $(TOOLCHAIN_FILE) -git-download: | ..cmake_version_supported - ..cmake_version_supported: @ # Remove '-rcX' from version as they are not well handled $(Q)\ CMAKE_VERSION=$$(cmake --version | sed -n '1 {s/cmake version //;s/-rc.*//;p;}'); \ $(RIOTTOOLS)/has_minimal_version/has_minimal_version.sh "$${CMAKE_VERSION}" "$(CMAKE_MINIMAL_VERSION)" cmake - -clean:: - @rm -rf $(BINDIR)/$(PKG_NAME).a - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/semtech-loramac/Makefile b/pkg/semtech-loramac/Makefile index 3eb9a007b4..87edb202c9 100644 --- a/pkg/semtech-loramac/Makefile +++ b/pkg/semtech-loramac/Makefile @@ -3,7 +3,7 @@ PKG_URL=https://github.com/Lora-net/LoRaMac-node.git PKG_VERSION=1cdd9ccec4c9f05b616e7112059be4a9e358c571 PKG_LICENSE=BSD-3-Clause -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: @cp Makefile.loramac $(PKG_BUILDDIR)/Makefile @@ -12,5 +12,3 @@ all: @cp Makefile.loramac_crypto $(PKG_BUILDDIR)/src/system/crypto/Makefile @cp Makefile.loramac_arch $(PKG_BUILDDIR)/src/boards/mcu/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/spiffs/Makefile b/pkg/spiffs/Makefile index 2d95554124..849c6df259 100644 --- a/pkg/spiffs/Makefile +++ b/pkg/spiffs/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/pellepl/spiffs.git PKG_VERSION=287148c46587089c4543a21eef2d6e9e14b88364 PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.spiffs - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/talking_leds/Makefile b/pkg/talking_leds/Makefile index ac27ea79eb..051b737835 100644 --- a/pkg/talking_leds/Makefile +++ b/pkg/talking_leds/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/fabriziop/TalkingLED PKG_VERSION=8ae4f2d0b736aa338f24e097dbaf876fbb385dbd PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.talking_leds - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/tiny-asn1/Makefile b/pkg/tiny-asn1/Makefile index e43e99289c..11a19be1b8 100644 --- a/pkg/tiny-asn1/Makefile +++ b/pkg/tiny-asn1/Makefile @@ -3,9 +3,7 @@ PKG_URL = https://gitlab.com/mtausig/tiny-asn1.git PKG_VERSION = 5155ee9c8f0908af955ca2026c349ba8a5e12bc2 PKG_LICENSE = LGPL-3 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/tinycbor/Makefile b/pkg/tinycbor/Makefile index d863a53086..fbba4605ef 100644 --- a/pkg/tinycbor/Makefile +++ b/pkg/tinycbor/Makefile @@ -4,9 +4,7 @@ PKG_URL=https://github.com/intel/tinycbor PKG_VERSION=d94ca09aa91f5b3c581527aa8bca179a82b79874 PKG_LICENSE=MIT -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/src -f $(CURDIR)/Makefile.tinycbor - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/tinycrypt/Makefile b/pkg/tinycrypt/Makefile index f7fb9961dd..1f189f723a 100644 --- a/pkg/tinycrypt/Makefile +++ b/pkg/tinycrypt/Makefile @@ -3,10 +3,8 @@ PKG_URL=https://github.com/01org/tinycrypt PKG_VERSION=6a22712bebbf2fc60d9fc6192dddefd5ad1933e3 PKG_LICENSE=BSD-3-Clause -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BUILDDIR)/lib/source/ \ -f $(RIOTPKG)/tinycrypt/Makefile.$(PKG_NAME) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/tinydtls/Makefile b/pkg/tinydtls/Makefile index cfe35f946a..6722bc15bd 100644 --- a/pkg/tinydtls/Makefile +++ b/pkg/tinydtls/Makefile @@ -3,21 +3,19 @@ PKG_URL=https://github.com/eclipse/tinydtls.git PKG_VERSION=7a0420bfe3c041789cc0fe87822832f2fd12d0c3 PKG_LICENSE=EPL-1.0,EDL-1.0 +include $(RIOTBASE)/pkg/pkg.mk + CFLAGS += -Wno-implicit-fallthrough # following is require due to known issue with newlib 2.4.x, see bug report: # http://lists-archives.com/cygwin/97008-gettimeofday-not-defined.html CFLAGS += -D_XOPEN_SOURCE=600 -.PHONY: all - all: @cp $(PKG_BUILDDIR)/Makefile.riot $(PKG_BUILDDIR)/Makefile @cp $(PKG_BUILDDIR)/aes/Makefile.riot $(PKG_BUILDDIR)/aes/Makefile @cp $(PKG_BUILDDIR)/ecc/Makefile.riot $(PKG_BUILDDIR)/ecc/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) -include $(RIOTBASE)/pkg/pkg.mk - ifeq (llvm,$(TOOLCHAIN)) CFLAGS += -Wno-format-nonliteral endif diff --git a/pkg/tlsf/Makefile b/pkg/tlsf/Makefile index 8ccdebf817..cd7e3278ac 100644 --- a/pkg/tlsf/Makefile +++ b/pkg/tlsf/Makefile @@ -3,11 +3,8 @@ PKG_URL=https://github.com/mattconte/tlsf PKG_VERSION=a1f743ffac0305408b39e791e0ffb45f6d9bc777 PKG_LICENSE=BSD -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: Makefile.tlsf @cp Makefile.tlsf $(PKG_BUILDDIR)/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) - - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/tweetnacl/Makefile b/pkg/tweetnacl/Makefile index f946c4dd75..b902e43543 100644 --- a/pkg/tweetnacl/Makefile +++ b/pkg/tweetnacl/Makefile @@ -3,9 +3,7 @@ PKG_URL=https://github.com/RIOT-OS/tweetnacl PKG_VERSION=7ea05c7098a16c87fa66e9166ce301666f3f2623 PKG_LICENSE=PD -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: $(Q)"$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.riot - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/u8g2/Makefile b/pkg/u8g2/Makefile index 53b3bdbb62..f4c23e36ee 100644 --- a/pkg/u8g2/Makefile +++ b/pkg/u8g2/Makefile @@ -3,14 +3,12 @@ PKG_URL=https://github.com/olikraus/u8g2 PKG_VERSION=f08ff974c03e5c848bc5d2ae3fddb6a97897881a PKG_LICENSE=BSD-2-Clause -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: - cp $(RIOTBASE)/pkg/u8g2/src/Makefile $(PKG_BUILDDIR)/Makefile - cp $(RIOTBASE)/pkg/u8g2/src/csrc/Makefile $(PKG_BUILDDIR)/csrc/Makefile - cp $(RIOTBASE)/pkg/u8g2/src/csrc/u8g2_riotos.c $(PKG_BUILDDIR)/csrc/u8g2_riotos.c - cp $(RIOTBASE)/pkg/u8g2/src/sys/sdl/common/Makefile $(PKG_BUILDDIR)/sys/sdl/common/Makefile - cp $(RIOTBASE)/pkg/u8g2/src/sys/utf8/common/Makefile $(PKG_BUILDDIR)/sys/utf8/common/Makefile + cp -u src/Makefile $(PKG_BUILDDIR)/Makefile + cp -u src/csrc/Makefile $(PKG_BUILDDIR)/csrc/Makefile + cp -u src/csrc/u8g2_riotos.c $(PKG_BUILDDIR)/csrc/u8g2_riotos.c + cp -u src/sys/sdl/common/Makefile $(PKG_BUILDDIR)/sys/sdl/common/Makefile + cp -u src/sys/utf8/common/Makefile $(PKG_BUILDDIR)/sys/utf8/common/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/ubasic/Makefile b/pkg/ubasic/Makefile index 73b7f40743..b054cb66ed 100644 --- a/pkg/ubasic/Makefile +++ b/pkg/ubasic/Makefile @@ -3,10 +3,12 @@ PKG_URL=https://github.com/adamdunkels/ubasic PKG_VERSION=cc07193c231e21ecb418335aba5b199a08d4685c PKG_LICENSE=BSD-3-Clause +include $(RIOTBASE)/pkg/pkg.mk + UBASIC_MODULES = ubasic_tests UBASIC_USEMODULE = $(filter $(UBASIC_MODULES),$(USEMODULE)) -.PHONY: all ubasic ubasic% +.PHONY: ubasic ubasic% all: ubasic @@ -17,5 +19,3 @@ ubasic: $(UBASIC_USEMODULE) ubasic%: $(call make_module,$@,$(PKG_BUILDDIR)) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/ucglib/Makefile b/pkg/ucglib/Makefile index 898f96e60f..76fe1824d5 100644 --- a/pkg/ucglib/Makefile +++ b/pkg/ucglib/Makefile @@ -3,13 +3,11 @@ PKG_URL=https://github.com/olikraus/ucglib PKG_VERSION=bf48515702dd7c87cbacdd17989738f33f003df2 PKG_LICENSE=BSD-2-Clause -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: - cp $(RIOTBASE)/pkg/ucglib/src/Makefile $(PKG_BUILDDIR)/Makefile - cp $(RIOTBASE)/pkg/ucglib/src/csrc/Makefile $(PKG_BUILDDIR)/csrc/Makefile - cp $(RIOTBASE)/pkg/ucglib/src/csrc/ucg_riotos.c $(PKG_BUILDDIR)/csrc/ucg_riotos.c - cp $(RIOTBASE)/pkg/ucglib/src/sys/sdl/dev/Makefile $(PKG_BUILDDIR)/sys/sdl/dev/Makefile + cp -u src/Makefile $(PKG_BUILDDIR)/Makefile + cp -u src/csrc/Makefile $(PKG_BUILDDIR)/csrc/Makefile + cp -u src/csrc/ucg_riotos.c $(PKG_BUILDDIR)/csrc/ucg_riotos.c + cp -u src/sys/sdl/dev/Makefile $(PKG_BUILDDIR)/sys/sdl/dev/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/umorse/Makefile b/pkg/umorse/Makefile index a4a728bbbe..d460d12c92 100644 --- a/pkg/umorse/Makefile +++ b/pkg/umorse/Makefile @@ -3,12 +3,10 @@ PKG_URL=https://github.com/smlng/uMorse PKG_VERSION=1dc14abdba22cca2f7efc053b2bce327bc7db97e PKG_LICENSE=MIT -CFLAGS += -D_XOPEN_SOURCE=600 +include $(RIOTBASE)/pkg/pkg.mk -.PHONY: all +CFLAGS += -D_XOPEN_SOURCE=600 all: @cp Makefile.umorse $(PKG_BUILDDIR)/Makefile "$(MAKE)" -C $(PKG_BUILDDIR) - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/utensor/Makefile b/pkg/utensor/Makefile index de34ac9732..ecaa66b2e1 100644 --- a/pkg/utensor/Makefile +++ b/pkg/utensor/Makefile @@ -5,12 +5,9 @@ PKG_LICENSE=Apache2.0 PKG_BASEDIR = $(PKG_BUILDDIR)/src/uTensor -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk all: "$(MAKE)" -C $(PKG_BASEDIR)/core -f $(CURDIR)/Makefile.$(PKG_NAME) "$(MAKE)" -C $(PKG_BASEDIR)/util -f $(CURDIR)/Makefile.$(PKG_NAME).util "$(MAKE)" -C $(PKG_BASEDIR)/ops -f $(CURDIR)/Makefile.$(PKG_NAME).ops - - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/wakaama/Makefile b/pkg/wakaama/Makefile index 1a94ddee31..551154d1ad 100644 --- a/pkg/wakaama/Makefile +++ b/pkg/wakaama/Makefile @@ -3,12 +3,13 @@ PKG_URL=https://github.com/eclipse/wakaama.git PKG_VERSION=da74b3c91570b9716fbb424e90935806b2b29814 PKG_LICENSE=EDL-1.0,EPL-1.0 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk -all: patch +all: "$(MAKE)" -C $(PKG_BUILDDIR) -patch: git-download +$(PKG_PREPARED): $(PKG_BUILDDIR)/copied +$(PKG_BUILDDIR)/copied: $(PKG_PATCHED) FORCE mkdir -p "$(PKG_BUILDDIR)" # copy the Wakaama core files cp $(PKG_BUILDDIR)/core/*.c $(PKG_BUILDDIR)/core/*.h $(PKG_BUILDDIR) @@ -20,6 +21,4 @@ patch: git-download cp $(PKG_BUILDDIR)/examples/client/object_access_control.c $(PKG_BUILDDIR) echo 'MODULE:=wakaama' > $(PKG_BUILDDIR)/Makefile - echo 'include $$(RIOTBASE)/Makefile.base' >> $(PKG_BUILDDIR)/Makefile - -include $(RIOTBASE)/pkg/pkg.mk + echo 'include $$(RIOTBASE)/Makefile.base' >> $(PKG_BUILDDIR)/Makefile \ No newline at end of file diff --git a/pkg/wolfssl/Makefile b/pkg/wolfssl/Makefile index e493ae89aa..fab9dc3d34 100644 --- a/pkg/wolfssl/Makefile +++ b/pkg/wolfssl/Makefile @@ -1,11 +1,10 @@ PKG_NAME=wolfssl PKG_URL=https://github.com/wolfssl/wolfssl.git - -# Current version: v4.1.0+ -PKG_VERSION=eaeaaf12c11dd52ab0cd6833252ed559656e9826 +PKG_VERSION=eaeaaf12c11dd52ab0cd6833252ed559656e9826 # v4.1.0+ PKG_LICENSE=GPLv2 -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk + all: # Nothing to do here when building prepare: @@ -14,5 +13,3 @@ prepare: touch $(PKG_BUILDDIR)/wolfssl.a cp Makefile.wolfcrypt-test $(PKG_BUILDDIR)/wolfcrypt/test/Makefile cp Makefile.wolfcrypt-benchmark $(PKG_BUILDDIR)/wolfcrypt/benchmark/Makefile - -include $(RIOTBASE)/pkg/pkg.mk From f08116f3ce546a5ffc029334d3f9aa801852ae5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gae=CC=88tan=20Harter?= Date: Wed, 2 Oct 2019 12:47:02 +0200 Subject: [PATCH 6/6] dist/tools/*: adapt to new state file targets Prepare for handling pkg state with files. So it requires having the path defined before declaring targets. In addition, it cleans up the old git-download target. --- dist/tools/bossa/Makefile | 6 ++---- dist/tools/edbg/Makefile | 6 ++---- dist/tools/kconfiglib/Makefile | 6 ++---- dist/tools/mosquitto_rsmb/Makefile | 8 +++----- dist/tools/pic32prog/Makefile | 6 +++--- dist/tools/setsid/Makefile | 6 ++---- dist/tools/teensy-loader-cli/Makefile | 17 +++-------------- 7 files changed, 17 insertions(+), 38 deletions(-) diff --git a/dist/tools/bossa/Makefile b/dist/tools/bossa/Makefile index 345ee63580..72736876b7 100644 --- a/dist/tools/bossa/Makefile +++ b/dist/tools/bossa/Makefile @@ -4,14 +4,12 @@ PKG_VERSION = 26154375695f345491bba158d57177aa231d6765 PKG_LICENSE = BSD-3-Clause PKG_BUILDDIR = $(CURDIR)/bin -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk -all: git-download +all: @echo "[INFO] compiling bossac from source now" @env -u CXX COMMON_CXXFLAGS="-std=c++11" $(MAKE) BINDIR=$(PKG_BUILDDIR) -C $(PKG_BUILDDIR) strip-bossac @mv $(PKG_BUILDDIR)/bossac $(CURDIR)/bossac distclean:: @rm -f $(CURDIR)/bossac - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/dist/tools/edbg/Makefile b/dist/tools/edbg/Makefile index ca0cce6046..19fdcd2653 100644 --- a/dist/tools/edbg/Makefile +++ b/dist/tools/edbg/Makefile @@ -4,13 +4,11 @@ PKG_VERSION=4f5d490bfffc7fd10855e513e6e88be5a9a3f789 PKG_LICENSE=BSD-3-Clause PKG_BUILDDIR=$(CURDIR)/bin -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk -all: git-download +all: # Start edbg build in a clean environment, so variables set by RIOT's build process # for cross compiling a specific target platform are reset and edbg can # be built cleanly for the native platform. env -i PATH="$(PATH)" TERM="$(TERM)" "$(MAKE)" -C "$(PKG_BUILDDIR)" mv $(PKG_BUILDDIR)/edbg . - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/dist/tools/kconfiglib/Makefile b/dist/tools/kconfiglib/Makefile index 520c2f505f..3ee8d233d3 100644 --- a/dist/tools/kconfiglib/Makefile +++ b/dist/tools/kconfiglib/Makefile @@ -4,11 +4,9 @@ PKG_VERSION=82f59179b1b35fcd8b6d188453b283599ea70518 PKG_LICENSE=ISC PKG_BUILDDIR=$(CURDIR)/bin -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk -all: git-download +all: cp $(PKG_BUILDDIR)/kconfiglib.py $(PKG_BUILDDIR)/menuconfig.py \ $(PKG_BUILDDIR)/genconfig.py $(PKG_BUILDDIR)/examples/merge_config.py \ . - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/dist/tools/mosquitto_rsmb/Makefile b/dist/tools/mosquitto_rsmb/Makefile index 5aecfb36e9..3f12b06c1f 100644 --- a/dist/tools/mosquitto_rsmb/Makefile +++ b/dist/tools/mosquitto_rsmb/Makefile @@ -4,6 +4,8 @@ PKG_VERSION = 9b99a3be9a26635b93aec8fa2ed744e8c49e7262 PKG_LICENSE = EPL-1.0 PKG_BUILDDIR = $(CURDIR)/bin +include $(RIOTBASE)/pkg/pkg.mk + # set default configuration file RSMB_CFG ?= $(CURDIR)/config.cnf @@ -14,9 +16,7 @@ GITCACHE ?= $(RIOTTOOLS)/git/git-cache $(info $(RIOTBASE)) -.PHONY: all clean - -all: git-download +all: # Start mosquitto_rsmb build in a clean environment, so variables set by RIOT's # build process for cross compiling a specific target platform are reset and # mosquitto_rsmb can be built cleanly for the host platform. @@ -32,5 +32,3 @@ clean:: @rm -f $(CURDIR)/mosquitto_rsmb @rm -f $(CURDIR)/Messages.1.* @rm -f $(CURDIR)/FFDC.CWNAN.*.dmp - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/dist/tools/pic32prog/Makefile b/dist/tools/pic32prog/Makefile index d308c88f1d..3fc9b0a1ff 100644 --- a/dist/tools/pic32prog/Makefile +++ b/dist/tools/pic32prog/Makefile @@ -4,16 +4,16 @@ PKG_VERSION = b9f8db3b352804392b02b42475fc42874ac8bf04 PKG_LICENSE = GPL-2 PKG_BUILDDIR = bin +include $(RIOTBASE)/pkg/pkg.mk + # Building it requires some dependencies, on ubuntu: # # sudo apt-get install libusb-dev libusb-1.0-0-dev libudev-dev -all: git-download +all: @echo "[INFO] compiling pic32prog from source now" @env -i PATH=$(PATH) TERM=$(TERM) make -C $(PKG_BUILDDIR) @mv $(PKG_BUILDDIR)/pic32prog pic32prog distclean:: @rm -f pic32prog - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/dist/tools/setsid/Makefile b/dist/tools/setsid/Makefile index 164392026f..4798aa6d12 100644 --- a/dist/tools/setsid/Makefile +++ b/dist/tools/setsid/Makefile @@ -4,14 +4,12 @@ PKG_VERSION = e5b851df41591021baf5cf88d4e41572baf8e08b PKG_LICENSE = BSD-2-Clause PKG_BUILDDIR = $(CURDIR)/bin -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk -all: git-download +all: @echo "[INFO] compiling setsid from source now" $(MAKE) BINDIR=$(PKG_BUILDDIR) -C $(PKG_BUILDDIR) @mv $(PKG_BUILDDIR)/setsid $(CURDIR)/setsid distclean:: @rm -f $(CURDIR)/setsid - -include $(RIOTBASE)/pkg/pkg.mk diff --git a/dist/tools/teensy-loader-cli/Makefile b/dist/tools/teensy-loader-cli/Makefile index eec2e614c6..9508b14992 100644 --- a/dist/tools/teensy-loader-cli/Makefile +++ b/dist/tools/teensy-loader-cli/Makefile @@ -2,17 +2,8 @@ PKG_NAME=teensy-loader-cli PKG_LICENSE=GPL-3 PKG_BUILDDIR=$(CURDIR)/bin -# resolv build host in a hacky way -UNAME=$(shell uname) -TARGET=WINDOWS -ifeq ("$(UNAME)","Linux") - TARGET=LINUX -else ifeq ("$(UNAME)","Darwin") - TARGET=MACOSX -endif - # get sources from repository -ifeq ("$(TARGET)","MACOSX") +ifeq ($(OS),Darwin) # hacked version to make it work on MACOSX PKG_URL=https://github.com/alswl/teensy_loader_cli.git PKG_VERSION=9c16bb0add3ba847df5509328ad6bd5bc09d9ecd @@ -21,10 +12,8 @@ else PKG_VERSION=76921edbdd81ae99b869b104404c16c06b0a266f endif -.PHONY: all +include $(RIOTBASE)/pkg/pkg.mk -all: git-download +all: env -i PATH=$(PATH) TERM=$(TERM) "$(MAKE)" -C $(PKG_BUILDDIR) mv $(PKG_BUILDDIR)/teensy_loader_cli ./teensy_loader - -include $(RIOTBASE)/pkg/pkg.mk