From 514812fc7cff93d03817e21ff981842c48717aae Mon Sep 17 00:00:00 2001
From: Dylan Laduranty <dylan.laduranty@mesotic.com>
Date: Thu, 6 Dec 2018 14:11:08 +0100
Subject: [PATCH] pkg/cmsis-dsp: update to V5.4.0 from ARM repo

Signed-off-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
---
 pkg/cmsis-dsp/Makefile                        |  11 ++---
 pkg/cmsis-dsp/Makefile.cmsis-dsp              |  43 ++++++++++++++++++
 pkg/cmsis-dsp/Makefile.include                |   2 +-
 pkg/cmsis-dsp/README.md                       |   3 +-
 ...dd-clang-branch-for-optimization-mac.patch | Bin 0 -> 951 bytes
 ...clang-branch-for-optimization-macros.patch | Bin 927 -> 0 bytes
 .../patches/0001-include-cpu_conf.h.patch     | Bin 590 -> 0 bytes
 .../0002-PATCH-include-cpu_conf.h.patch       | Bin 0 -> 629 bytes
 8 files changed, 51 insertions(+), 8 deletions(-)
 create mode 100644 pkg/cmsis-dsp/Makefile.cmsis-dsp
 create mode 100644 pkg/cmsis-dsp/patches/0001-PATCH-arm_math-add-clang-branch-for-optimization-mac.patch
 delete mode 100644 pkg/cmsis-dsp/patches/0001-arm_math-add-clang-branch-for-optimization-macros.patch
 delete mode 100644 pkg/cmsis-dsp/patches/0001-include-cpu_conf.h.patch
 create mode 100644 pkg/cmsis-dsp/patches/0002-PATCH-include-cpu_conf.h.patch

diff --git a/pkg/cmsis-dsp/Makefile b/pkg/cmsis-dsp/Makefile
index 6584d149d4..b5ace34db1 100644
--- a/pkg/cmsis-dsp/Makefile
+++ b/pkg/cmsis-dsp/Makefile
@@ -1,13 +1,12 @@
 PKG_NAME=cmsis-dsp
-PKG_URL=https://github.com/gebart/CMSIS-DSP.git
-PKG_VERSION=v1.4.5a-riot2
-PKG_LICENSE=BSD-3-Clause
-
-CFLAGS += -Wno-strict-aliasing
+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: git-download
-	"$(MAKE)" -C $(PKG_BUILDDIR)
+	"$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.$(PKG_NAME)
 
 include $(RIOTBASE)/pkg/pkg.mk
diff --git a/pkg/cmsis-dsp/Makefile.cmsis-dsp b/pkg/cmsis-dsp/Makefile.cmsis-dsp
new file mode 100644
index 0000000000..7bd5831e6b
--- /dev/null
+++ b/pkg/cmsis-dsp/Makefile.cmsis-dsp
@@ -0,0 +1,43 @@
+PKG_NAME=cmsis-dsp
+
+# A list of all the directories to build for CMSIS-DSP
+CMSIS_DIRS += \
+  CMSIS/DSP/Source/BasicMathFunctions \
+  CMSIS/DSP/Source/CommonTables \
+  CMSIS/DSP/Source/ComplexMathFunctions \
+  CMSIS/DSP/Source/ControllerFunctions \
+  CMSIS/DSP/Source/FastMathFunctions \
+  CMSIS/DSP/Source/FilteringFunctions \
+  CMSIS/DSP/Source/MatrixFunctions \
+  CMSIS/DSP/Source/StatisticsFunctions \
+  CMSIS/DSP/Source/SupportFunctions \
+  CMSIS/DSP/Source/TransformFunctions \
+#
+
+INCLUDES += -I$(CURDIR)/CMSIS/DSP/Include
+CMSIS_BINDIRS = $(addprefix $(BINDIR)/$(PKG_NAME)/,$(CMSIS_DIRS))
+
+# Override default RIOT search path for sources to include all of the CMSIS-DSP
+# sources in one library instead of one library per subdirectory.
+SRC := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.c))
+SRCXX := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.cpp))
+ASMSRC := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.s))
+ASSMSRC := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.S))
+
+OBJC    := $(SRC:%.c=$(BINDIR)/$(PKG_NAME)/%.o)
+OBJCXX  := $(SRCXX:%.cpp=$(BINDIR)/$(PKG_NAME)/%.o)
+ASMOBJ  := $(ASMSRC:%.s=$(BINDIR)/$(PKG_NAME)/%.o)
+ASSMOBJ := $(ASSMSRC:%.S=$(BINDIR)/$(PKG_NAME)/%.o)
+OBJ = $(OBJC) $(OBJCXX) $(ASMOBJ) $(ASSMOBJ)
+
+# Create subdirectories if they do not already exist
+$(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/cmsis-dsp/Makefile.include b/pkg/cmsis-dsp/Makefile.include
index d76141ecfc..c60a187ebc 100644
--- a/pkg/cmsis-dsp/Makefile.include
+++ b/pkg/cmsis-dsp/Makefile.include
@@ -1 +1 @@
-INCLUDES += -I$(PKGDIRBASE)/cmsis-dsp/include
+INCLUDES += -I$(PKGDIRBASE)/cmsis-dsp/CMSIS/DSP/Include
diff --git a/pkg/cmsis-dsp/README.md b/pkg/cmsis-dsp/README.md
index ad0392fa97..8d81a73e80 100644
--- a/pkg/cmsis-dsp/README.md
+++ b/pkg/cmsis-dsp/README.md
@@ -1 +1,2 @@
-Since there is no official public repository for the CMSIS-DSP library, we are using our own repo.
+This package uses DSP ARM CMSIS header from the official
+[ARM github repo](https://github.com/ARM-software/CMSIS_5)
diff --git a/pkg/cmsis-dsp/patches/0001-PATCH-arm_math-add-clang-branch-for-optimization-mac.patch b/pkg/cmsis-dsp/patches/0001-PATCH-arm_math-add-clang-branch-for-optimization-mac.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ed67f6a9805406962c32675b0dab0d1984876044
GIT binary patch
literal 951
zcma))ZEu?}6otS0R~)rph*Ag!3JIE~L`l0L<xLIKUMtIByYa+JMaVQw`|&e$(>keZ
zY9X-T@|<(-^>tI15Ih=lpGVZsy}+l+_rmd|;BM}Xv&$&RR5tN55oB1^6?XC-G=l5K
z{RPi;DY-V77%Seix{_GRO33DbSEW-tY^UmIXR;}D<p}wjEO;wpr2FFqLM&u%Aao2G
z#O}mUF?6ZxlHD=;D)TnR=j|+=zXct6x4-wd;7!R&-tJ>?A&?imx<l6RD&IrZ4eI+=
zm-+{9bzKpZJa6g)A+~K3%vZZ)H(Knrqom4<qmZLNEN73O#?P={1Qbda68YY+rRbdM
z>L5+Rx;j|H0U<&w1>3&UE%@kJZ1(JDqD{NLL-L6bUdSCMl!2H~8p5<841&)02?b(2
z<Alm|3OjP6;KD@gpVWhS_pR2VZ)c-a%M?GDo9|f!z`2mBn`bh+VVm{xBU^6Xv&}Y5
zR>`MXnrznWYMox)ys-2`k`j>Nxh%B816f#%^|NDaK!$$>pVk3myloqu9b3tmWpz`o
zYU6Kk;^$8J5&cx0mzDNVf`8(`G9KTo-_04r;Bj026X;7<)2}C@bq82lXZD7k4Z4Wt
M5D?FykwXdj1-VKZ1poj5

literal 0
HcmV?d00001

diff --git a/pkg/cmsis-dsp/patches/0001-arm_math-add-clang-branch-for-optimization-macros.patch b/pkg/cmsis-dsp/patches/0001-arm_math-add-clang-branch-for-optimization-macros.patch
deleted file mode 100644
index fe462365530e3b72030fb60bb92277562ff5ffee..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 927
zcma))ZEu?}6otS0R~)rp5+x9z1R69=iMn)+l$WZ_v^Pzb!Pki=0+9n-H|@vI5bdQ~
zv=t#R#(wTO$M@QlJNWW43RLWkvXK;?9FAxhk{BvAqBIWuIQ3;Z3PgxSS>T@b@MCyh
z(%uL>&u7;blVBlCr3=EG3Q6XGXFE4P4#%o?QZl(NTuIN_3sF&mbxnQ5nA95!@h{;A
z$wip>5qh45vimyyNLiKO{q1CZb@Ktj?D$Sp+XO;NWVt9dNR246EmUbx?km01Uqz*@
z%ALqed0@<O90pxvc`a%11K@7)4Zero&x^r_(m5g9S}MtY^II1OvWCjy(CKv<lUgY_
z&PG=dgA>T~#3a);i3d=a1}X|%HyV!O3l&+q7lmP??j(y@VK~VfkKx2aKkD0*+P96%
z&V4GiZ1XWnRa}XKeOv?`hQVO^U<K#p=g0XN+B7ja*ykc6NNsG?`4<RPk%2ullnSaY
zvNlagN*B5rG63i8Ct)_Z<E!QTEuXJm^VRKowwS$}tY@nwpT3!`8CdU}a;<P&E<2pJ
zXU2J#^;qv0=kM*y_4E#$i>fj@tt;ZZ(`ob<rR}cnf44W)A658=(x%jt7azg+)7H!7
gtE<KpeoyD=u9~i;&Y83F&$^8}+Y~HtV>e{%I|iH@LI3~&

diff --git a/pkg/cmsis-dsp/patches/0001-include-cpu_conf.h.patch b/pkg/cmsis-dsp/patches/0001-include-cpu_conf.h.patch
deleted file mode 100644
index 7064e4624dc8e91613a144ef9cbbdfa55f71186e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 590
zcmZutU2EGw5PZL1F(fZZE|R5_EGwoI87HpupirWamr}&(KH_WQld+`GK!1GKPMx;k
z<6ybD-I>{0Y}+-)iHY*eSS6xF>fFRxnvF%OCW#p5xfT;C8>_|%%GRSY8^jYt(R6<y
zq9|qyqM72+d1ZW$>tWMU`Skk!F4|r`o3}1h?fNsjmc5zom@a7)3)4^`zW8d-mxD)f
z6tQY(ei+qH@$KvEVZQthqIwy$f!YkUYP}6tj0Hi!4j&`AUDs>bufi36L4b3H7}mYe
z$V&Prqe+jNJG1Rw>$@|4&X{)AA_$&b4>|gy@Gntw1Z2)@^Ajd*gv~@4DouGc7UVih
z)19ZIT#R#$qkKhyK;-#l2EHpfih|+PS(34+XZK}Y&K{Qal0ZV7H~)i-pB}O~`5Vp&
zqy0bn>v>t-R`r*gyPNylISyxZ0qr{3P)2u;giEhcy>-1)&#;46`=D?!V%QtPySzU8
R@H8(c=d>}H2(Q9~vENeXt(*V=

diff --git a/pkg/cmsis-dsp/patches/0002-PATCH-include-cpu_conf.h.patch b/pkg/cmsis-dsp/patches/0002-PATCH-include-cpu_conf.h.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0e7ec01ed7860e507fe55b2b10d417fef834a5f3
GIT binary patch
literal 629
zcmaixU2EGg7=`ckD-P{VTgM-=9mh6fI5?Da5GZrl%_v5)q(ogUn^+zj?8i@OHpXsR
z5WLcnbRNA&_otzU5+cn-vRsKyMMaS$JmFHtIbYH!$uqv{c#-oY#cnWY<OsS#6qT<7
zaTHN<?`%qZ(WaBeVl$6}D<8gJ*41FyH~Di4x}pC_Hq6Qr`&lkPm-xhtbD)K@ER(og
zX7C~!MWmVev+Qh%uaE0}y+s_xPk-i5aJDbAkm$y_?FOTQBO$);6V$urp$Rw5WB716
z60%d@_RJoGBYq)<=MhjS{o*bknK?+YaH=+wJXt-M>BhSyL};bp`v+~o!Z$7Xo7+Si
zA%7r~sVFGTf*@lmPC4Un9cF2Ie)Bs7;&~q4p;Q(8I4>41x^u}<RRq^sIk-Z*{=92<
z>;1OfI?*ZG$p1y+UH{GV>R+H&#3dEpp&t6trFFtI%1$fYL1=a`!(`o*iRXE;{rSu9
c!dE7M3q#-rZClr8K5hwIuOM+iR{<sDH(B|(umAu6

literal 0
HcmV?d00001

-- 
GitLab