diff --git a/Makefile.dep b/Makefile.dep index 218e5aaa830c9a22e4b10afb851981f91dff8684..f1d20c5ca714f279b24af81872d6e4a9ca73e9d3 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -441,6 +441,7 @@ endif ifneq (,$(filter libfixmath-unittests,$(USEMODULE))) USEPKG += libfixmath + USEMODULE += libfixmath endif ifneq (,$(filter fib,$(USEMODULE))) diff --git a/pkg/libfixmath/.gitignore b/pkg/libfixmath/.gitignore deleted file mode 100644 index 5e660dc18ee09de767206f11ad044e132867bf21..0000000000000000000000000000000000000000 --- a/pkg/libfixmath/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/checkout diff --git a/pkg/libfixmath/Makefile b/pkg/libfixmath/Makefile index db72b672e769990d91a30f3e3282b856a8e70ee3..6668796eb9e01646a12c847724e857a99331bd91 100644 --- a/pkg/libfixmath/Makefile +++ b/pkg/libfixmath/Makefile @@ -1,67 +1,11 @@ -export PKG_NAME := libfixmath -export PKG_VERSION := 91 -export PKG_BRANCH := trunk -export PKG_URL := http://libfixmath.googlecode.com/svn/$(PKG_BRANCH)/ +PKG_NAME := libfixmath +PKG_VERSION := ad9ed940e57d43432b276e95aee6ca9df6f23ccd +PKG_URL := git://github.com/PetteriAimonen/libfixmath +PKG_BUILDDIR ?= $(BINDIRBASE)/pkg/$(BOARD)/$(PKG_NAME) -export CHECKOUT_FOLDER := $(CURDIR)/checkout/$(PKG_BRANCH)-r$(PKG_VERSION) -export SVN_INFO_FILE := $(CHECKOUT_FOLDER)/svn_info.xml +.PHONY: all -.PHONY: all clean distclean +all: git-download + $(AD)$(MAKE) -C $(PKG_BUILDDIR) -all: $(BINDIR)$(PKG_NAME).a - -all-unittests: $(BINDIR)$(PKG_NAME)-unittests.a - -ifneq (,$(filter libfixmath-unittests,$(USEMODULE))) - all: all-unittests -endif - -$(BINDIR)$(PKG_NAME).a: $(BINDIR)$(PKG_NAME)-src/Makefile $(BINDIR)$(PKG_NAME)-headers/fix16.h - "$(MAKE)" -C $(<D) - -$(BINDIR)$(PKG_NAME)-unittests.a: $(BINDIR)$(PKG_NAME)-unittests-src/Makefile $(BINDIR)$(PKG_NAME)-headers/fix16.h - "$(MAKE)" -C $(<D) - -$(BINDIR)$(PKG_NAME)-src/Makefile: $(CHECKOUT_FOLDER)/svn_info.xml - $(AD)rm -rf $(@D) - $(AD)mkdir -p $(@D) - $(AD)cp $(CURDIR)/Makefile.template $@ - $(AD)cp $(CHECKOUT_FOLDER)/libfixmath/*.[ch] $(@D) - $(AD)rm -f $(BINDIR)$(PKG_NAME)-src/fix16.h - - $(AD)cd $(@D) && sed -i -e 's/1 <</(uint32_t) 1 <</g' uint32.c - $(AD)cd $(@D) && sed -i -e 's/is\([a-z]*\)(\*buf)/is\1((unsigned char) *buf)/g' fix16_str.c - -$(BINDIR)$(PKG_NAME)-unittests-src/Makefile: $(CHECKOUT_FOLDER)/svn_info.xml - $(AD)rm -rf $(@D) - $(AD)mkdir -p $(@D) - $(AD)cp $(CURDIR)/Makefile.template-unittests $@ - $(AD)cp $(CHECKOUT_FOLDER)/unittests/*.[ch] $(@D) - - $(AD)cd $(@D) && for C_FILE in *.[ch]; do \ - sed -e "s/int main()/int $$(basename $${C_FILE} .c)(void)/" \ - -e '/fflush/d' \ - -e 's/fprintf(std[^,]*,/printf(/' \ - -i $${C_FILE}; \ - done - $(AD)cd $(@D) && patch -p1 --ignore-whitespace < $(CURDIR)/libfixmath-unittests-printf-format.patch - -$(BINDIR)$(PKG_NAME)-headers/fix16.h: $(CHECKOUT_FOLDER)/svn_info.xml - $(AD)rm -rf $(@D) - $(AD)mkdir -p $(@D) - $(AD)cp $(CHECKOUT_FOLDER)/libfixmath/fix16.h $(@D) - $(AD)echo $(patsubst %,'extern int %(void);',$(shell for f in $(CHECKOUT_FOLDER)/unittests/*.c; do basename $${f} .c; done )) \ - $(patsubst %,'%();',$(shell for f in $(CHECKOUT_FOLDER)/unittests/*.c; do basename $${f} .c; done)) | sed -e 's/;\s*/;\n/g' > $(@D)/fix16_unittests.inc - -$(SVN_INFO_FILE): - $(AD)mkdir -p $(@D) - $(AD)$(CURDIR)/checkout.sh - -clean:: - $(AD)rm -rf $(BINDIR)$(PKG_NAME)-src/ $(BINDIR)$(PKG_NAME)-headers/ - -distclean:: clean - $(AD)rm -rf $(CHECKOUT_FOLDER) - -Makefile.include: - @true +include $(RIOTBASE)/pkg/pkg.mk diff --git a/pkg/libfixmath/Makefile.include b/pkg/libfixmath/Makefile.include index 147ba409f3227491fee256445e7c1690d712ea17..0ce160429e914628f11306434d0e005ff32f52ea 100644 --- a/pkg/libfixmath/Makefile.include +++ b/pkg/libfixmath/Makefile.include @@ -1,4 +1,10 @@ +PKG_BUILDDIR ?= $(BINDIRBASE)/pkg/$(BOARD)/libfixmath + # The static cache is huge, disable it. CFLAGS += -DFIXMATH_NO_CACHE -INCLUDES += -I$(BINDIR)libfixmath-headers/ +INCLUDES += -I$(PKG_BUILDDIR)/libfixmath + +ifneq (,$(filter libfixmath-unittests,$(USEMODULE))) + INCLUDES += -I$(PKG_BUILDDIR)/unittests +endif diff --git a/pkg/libfixmath/Makefile.template b/pkg/libfixmath/Makefile.template deleted file mode 100644 index c875b98543056e36798107773db98d168438952a..0000000000000000000000000000000000000000 --- a/pkg/libfixmath/Makefile.template +++ /dev/null @@ -1,3 +0,0 @@ -MODULE = libfixmath - -include $(RIOTBASE)/Makefile.base diff --git a/pkg/libfixmath/Makefile.template-unittests b/pkg/libfixmath/Makefile.template-unittests deleted file mode 100644 index 245ffb94160cf667a7a2c29247317e49e21fda49..0000000000000000000000000000000000000000 --- a/pkg/libfixmath/Makefile.template-unittests +++ /dev/null @@ -1,3 +0,0 @@ -MODULE = libfixmath-unittests - -include $(RIOTBASE)/Makefile.base diff --git a/pkg/libfixmath/checkout.sh b/pkg/libfixmath/checkout.sh deleted file mode 100755 index 4578af79a4ded5976d71a49fefde1af774e3b5cf..0000000000000000000000000000000000000000 --- a/pkg/libfixmath/checkout.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -if [ -z "${CHECKOUT_FOLDER}" ]; then - echo 'export CHECKOUT_FOLDER before running this script' >&2 - exit 2 -fi - -: ${CHECKOUT_LOCKFILE:=${CHECKOUT_FOLDER}/.riot-svn-checkout-lockfile} -# Default timeout, in seconds -: ${LOCK_TIMEOUT:=120} - -# We need to protect SVN checkout with a lock to avoid parallel make runs from -# disrupting each other -if type flock >/dev/null 2>&1; then - # Try flock(1) command first, usually found on Linux - ( - flock -w "${LOCK_TIMEOUT}" 200 || ( - echo "Timed out waiting to acquire lock ${CHECKOUT_LOCKFILE}" >&2 - exit 1 - ) - $(dirname "$0")/perform-svn-checkout.sh - exit $? - ) 200>"${CHECKOUT_LOCKFILE}" -elif type lockf >/dev/null 2>&1; then - # lockf is usually installed on FreeBSD and OSX - lockf -t ${LOCK_TIMEOUT} ${CHECKOUT_LOCKFILE} $(dirname "$0")/perform-svn-checkout.sh - exit $? -else - # flock(1) and lockf(1) shell commands are missing from the system - echo 'Missing both flock(1) and lockf(1),' - echo 'flock is part of util-linux on most Linux systems, lockf is usually installed on FreeBSD.' - echo 'see https://github.com/discoteq/flock for a portable alternative.' - echo 'Proceeding with svn checkout without locking...' - $(dirname "$0")/perform-svn-checkout.sh - exit $? -fi diff --git a/pkg/libfixmath/libfixmath-unittests-printf-format.patch b/pkg/libfixmath/libfixmath-unittests-printf-format.patch deleted file mode 100644 index 88ee69c00e2b087de34da2e2dac35e14f4c28c16..0000000000000000000000000000000000000000 Binary files a/pkg/libfixmath/libfixmath-unittests-printf-format.patch and /dev/null differ diff --git a/pkg/libfixmath/patches/0001-Move-to-RIOT-Makefiles.patch b/pkg/libfixmath/patches/0001-Move-to-RIOT-Makefiles.patch new file mode 100644 index 0000000000000000000000000000000000000000..7075acd4a55f2a60b42faceb5227dad6a601a190 Binary files /dev/null and b/pkg/libfixmath/patches/0001-Move-to-RIOT-Makefiles.patch differ diff --git a/pkg/libfixmath/patches/0002-Fix-warnings.patch b/pkg/libfixmath/patches/0002-Fix-warnings.patch new file mode 100644 index 0000000000000000000000000000000000000000..b2f028273fa5b22c4b6fdf6015c5ebd1aa06c3a0 Binary files /dev/null and b/pkg/libfixmath/patches/0002-Fix-warnings.patch differ diff --git a/pkg/libfixmath/patches/0003-Adapt-unittests-for-RIOT.patch b/pkg/libfixmath/patches/0003-Adapt-unittests-for-RIOT.patch new file mode 100644 index 0000000000000000000000000000000000000000..329a8466aa1a4b12bcdfe1f02da5672ae67757fd Binary files /dev/null and b/pkg/libfixmath/patches/0003-Adapt-unittests-for-RIOT.patch differ diff --git a/pkg/libfixmath/perform-svn-checkout.sh b/pkg/libfixmath/perform-svn-checkout.sh deleted file mode 100755 index 426a42733ab589d9e3730a43e324eaa73fac31fc..0000000000000000000000000000000000000000 --- a/pkg/libfixmath/perform-svn-checkout.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -if [ -z "${PKG_URL}" ]; then - echo 'export PKG_URL before running this script' >&2 - exit 2 -fi -if [ -z "${CHECKOUT_FOLDER}" ]; then - echo 'export CHECKOUT_FOLDER before running this script' >&2 - exit 2 -fi - -: ${SVN_INFO_FILE:=${CHECKOUT_FOLDER}/svn_info.xml} - -if [ -s "${SVN_INFO_FILE}" ]; then - # svn checkout was completed by another thread while we waited for the lock - if [ "${QUIET}" -ne 1 ]; then - echo "File already exists: ${SVN_INFO_FILE}, skipping svn checkout" - fi - exit 0 -fi -if [ -n "${PKG_VERSION}" ]; then - svn checkout -q -r ${PKG_VERSION} ${PKG_URL} ${CHECKOUT_FOLDER} -else - svn checkout -q ${PKG_URL} ${CHECKOUT_FOLDER} -fi -svn info --xml ${CHECKOUT_FOLDER} > ${SVN_INFO_FILE}