Skip to content
Snippets Groups Projects
Commit ee41b98e authored by Martine Lenders's avatar Martine Lenders
Browse files

libmathfix: move to git repository and adapt

parent 1788d592
No related branches found
No related tags found
No related merge requests found
...@@ -441,6 +441,7 @@ endif ...@@ -441,6 +441,7 @@ endif
ifneq (,$(filter libfixmath-unittests,$(USEMODULE))) ifneq (,$(filter libfixmath-unittests,$(USEMODULE)))
USEPKG += libfixmath USEPKG += libfixmath
USEMODULE += libfixmath
endif endif
ifneq (,$(filter fib,$(USEMODULE))) ifneq (,$(filter fib,$(USEMODULE)))
......
/checkout
export PKG_NAME := libfixmath PKG_NAME := libfixmath
export PKG_VERSION := 91 PKG_VERSION := ad9ed940e57d43432b276e95aee6ca9df6f23ccd
export PKG_BRANCH := trunk PKG_URL := git://github.com/PetteriAimonen/libfixmath
export PKG_URL := http://libfixmath.googlecode.com/svn/$(PKG_BRANCH)/ PKG_BUILDDIR ?= $(BINDIRBASE)/pkg/$(BOARD)/$(PKG_NAME)
export CHECKOUT_FOLDER := $(CURDIR)/checkout/$(PKG_BRANCH)-r$(PKG_VERSION) .PHONY: all
export SVN_INFO_FILE := $(CHECKOUT_FOLDER)/svn_info.xml
.PHONY: all clean distclean all: git-download
$(AD)$(MAKE) -C $(PKG_BUILDDIR)
all: $(BINDIR)$(PKG_NAME).a include $(RIOTBASE)/pkg/pkg.mk
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
PKG_BUILDDIR ?= $(BINDIRBASE)/pkg/$(BOARD)/libfixmath
# The static cache is huge, disable it. # The static cache is huge, disable it.
CFLAGS += -DFIXMATH_NO_CACHE 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
MODULE = libfixmath
include $(RIOTBASE)/Makefile.base
MODULE = libfixmath-unittests
include $(RIOTBASE)/Makefile.base
#!/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
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
#!/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}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment