Skip to content

Commit 561ca22

Browse files
committed
[Makefile] Add arm-gcc target
Signed-off-by: Frederic.Pillon <[email protected]>
1 parent e7ab652 commit 561ca22

File tree

4 files changed

+182
-1
lines changed

4 files changed

+182
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*.swp
22
STM32/src/*.json
33
STM32/src/*.tar.bz2
4+
STM32/src/download

STM32/src/Makefile

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ SHELL = /bin/sh
55
ROOT_PATH := .
66
TOOLS_PATH := ../tools
77
CORE_PATH := ../packages
8+
DOWNLOAD_PATH := download
89

910
OS ?=$(shell uname -s)
1011

@@ -28,11 +29,29 @@ ifeq (postpackaging_tools,$(findstring $(MAKECMDGOALS),postpackaging_tools))
2829
PACKAGE_LINUX_SIZE := $(firstword $(shell wc -c "$(PACKAGE_LINUX_FILENAME)"))
2930
PACKAGE_MAC_SIZE := $(firstword $(shell wc -c "$(PACKAGE_MAC_FILENAME)"))
3031
endif
32+
33+
ifeq (postpackaging_arm-gcc,$(findstring $(MAKECMDGOALS),postpackaging_arm-gcc))
34+
PACKAGE_WIN_FILENAME=$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-windows.tar.bz2
35+
PACKAGE_LINUX32_FILENAME=$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-linux32.tar.bz2
36+
PACKAGE_LINUX64_FILENAME=$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-linux64.tar.bz2
37+
PACKAGE_MAC_FILENAME=$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-mac.tar.bz2
38+
39+
PACKAGE_WIN_CHKSUM := $(firstword $(shell shasum -a 256 "$(DOWNLOAD_PATH)/$(PACKAGE_WIN_FILENAME)"))
40+
PACKAGE_LINUX32_CHKSUM := $(firstword $(shell shasum -a 256 "$(DOWNLOAD_PATH)/$(PACKAGE_LINUX32_FILENAME)"))
41+
PACKAGE_LINUX64_CHKSUM := $(firstword $(shell shasum -a 256 "$(DOWNLOAD_PATH)/$(PACKAGE_LINUX64_FILENAME)"))
42+
PACKAGE_MAC_CHKSUM := $(firstword $(shell shasum -a 256 "$(DOWNLOAD_PATH)/$(PACKAGE_MAC_FILENAME)"))
43+
44+
PACKAGE_WIN_SIZE := $(firstword $(shell wc -c "$(DOWNLOAD_PATH)/$(PACKAGE_WIN_FILENAME)"))
45+
PACKAGE_LINUX32_SIZE := $(firstword $(shell wc -c "$(DOWNLOAD_PATH)/$(PACKAGE_LINUX32_FILENAME)"))
46+
PACKAGE_LINUX64_SIZE := $(firstword $(shell wc -c "$(DOWNLOAD_PATH)/$(PACKAGE_LINUX64_FILENAME)"))
47+
PACKAGE_MAC_SIZE := $(firstword $(shell wc -c "$(DOWNLOAD_PATH)/$(PACKAGE_MAC_FILENAME)"))
48+
endif
49+
3150
# -----------------------------------------------------------------------------
3251

3352
.PHONY: all clean tools print_info postpackaging
3453

35-
all: core tools
54+
all: core tools arm-gcc
3655

3756
core: PACKAGE_NAME := STM32
3857
core: PACKAGE_FOLDER := Arduino_Core_STM32
@@ -96,10 +115,26 @@ tools: clean print_info
96115
$(MAKE) PACKAGE_NAME=$(PACKAGE_NAME) PACKAGE_VERSION=$(PACKAGE_VERSION) --no-builtin-rules postpackaging_tools -C .
97116
@echo ----------------------------------------------------------
98117

118+
arm-gcc: PACKAGE_NAME := arm-none-eabi-gcc
119+
arm-gcc: PACKAGE_FOLDER := $(DOWNLOAD_PATH)
120+
arm-gcc: PACKAGE_FILENAME := gcc-arm-none-eabi
121+
arm-gcc: PACKAGE_VERSION := $(shell ./github_cli.sh)
122+
arm-gcc: clean print_info
123+
@echo ----------------------------------------------------------
124+
@echo "Packaging $@..."
125+
@[ -d $(DOWNLOAD_PATH) ] || mkdir $(DOWNLOAD_PATH)
126+
@cd $(DOWNLOAD_PATH); wget https://github.com/stm32duino/$(PACKAGE_NAME)/releases/download/$(PACKAGE_VERSION)/$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-linux32.tar.bz2
127+
@cd $(DOWNLOAD_PATH); wget https://github.com/stm32duino/$(PACKAGE_NAME)/releases/download/$(PACKAGE_VERSION)/$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-linux64.tar.bz2
128+
@cd $(DOWNLOAD_PATH); wget https://github.com/stm32duino/$(PACKAGE_NAME)/releases/download/$(PACKAGE_VERSION)/$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-mac.tar.bz2
129+
@cd $(DOWNLOAD_PATH); wget https://github.com/stm32duino/$(PACKAGE_NAME)/releases/download/$(PACKAGE_VERSION)/$(PACKAGE_FILENAME)-$(PACKAGE_VERSION)-windows.tar.bz2
130+
$(MAKE) PACKAGE_NAME=$(PACKAGE_NAME) PACKAGE_VERSION=$(PACKAGE_VERSION) PACKAGE_FILENAME=$(PACKAGE_FILENAME) --no-builtin-rules postpackaging_arm-gcc -C .
131+
@echo ----------------------------------------------------------
132+
99133
clean:
100134
@echo ----------------------------------------------------------
101135
@echo Cleanup
102136
-$(RM) *.tar.bz2 package_*.json
137+
-$(RM) -r $(DOWNLOAD_PATH)
103138
@echo ----------------------------------------------------------
104139

105140
print_info:
@@ -136,3 +171,19 @@ postpackaging_tools:
136171
@cat templates/package_tools_index.json | sed s/%%PACKAGENAME%%/$(PACKAGE_NAME)/ | sed s/%%VERSION%%/$(PACKAGE_VERSION)/ | sed s/%%FILENAMEWIN%%/$(PACKAGE_WIN_FILENAME)/ | sed s/%%CHECKSUMWIN%%/$(PACKAGE_WIN_CHKSUM)/ | sed s/%%SIZEWIN%%/$(PACKAGE_WIN_SIZE)/ | sed s/%%FILENAMEMAC%%/$(PACKAGE_MAC_FILENAME)/ | sed s/%%CHECKSUMMAC%%/$(PACKAGE_MAC_CHKSUM)/ | sed s/%%SIZEMAC%%/$(PACKAGE_MAC_SIZE)/ | sed s/%%FILENAMELINUX%%/$(PACKAGE_LINUX_FILENAME)/ | sed s/%%CHECKSUMLINUX%%/$(PACKAGE_LINUX_CHKSUM)/ | sed s/%%SIZELINUX%%/$(PACKAGE_LINUX_SIZE)/ > package_$(PACKAGE_NAME)_$(PACKAGE_VERSION)_index.json
137172
@mv $(PACKAGE_WIN_FILENAME) $(PACKAGE_LINUX_FILENAME) $(PACKAGE_MAC_FILENAME) $(TOOLS_PATH)/
138173
@echo "package_$(PACKAGE_NAME)_$(PACKAGE_VERSION)_index.json created"
174+
175+
postpackaging_arm-gcc:
176+
@echo "PACKAGE_WIN_FILENAME = $(PACKAGE_WIN_FILENAME)"
177+
@echo "PACKAGE_WIN_SIZE = $(PACKAGE_WIN_SIZE)"
178+
@echo "PACKAGE_WIN_CHKSUM = $(PACKAGE_WIN_CHKSUM)"
179+
@echo "PACKAGE_LINUX32_FILENAME = $(PACKAGE_LINUX32_FILENAME)"
180+
@echo "PACKAGE_LINUX32_SIZE = $(PACKAGE_LINUX32_SIZE)"
181+
@echo "PACKAGE_LINUX32_CHKSUM = $(PACKAGE_LINUX32_CHKSUM)"
182+
@echo "PACKAGE_LINUX64_FILENAME = $(PACKAGE_LINUX64_FILENAME)"
183+
@echo "PACKAGE_LINUX64_SIZE = $(PACKAGE_LINUX64_SIZE)"
184+
@echo "PACKAGE_LINUX64_CHKSUM = $(PACKAGE_LINUX64_CHKSUM)"
185+
@echo "PACKAGE_MAC_FILENAME = $(PACKAGE_MAC_FILENAME)"
186+
@echo "PACKAGE_MAC_SIZE = $(PACKAGE_MAC_SIZE)"
187+
@echo "PACKAGE_MAC_CHKSUM = $(PACKAGE_MAC_CHKSUM)"
188+
@cat templates/package_arm_index.json | sed s/%%PACKAGENAME%%/$(PACKAGE_NAME)/ | sed s/%%VERSION%%/$(PACKAGE_VERSION)/ | sed s/%%FILENAMEWIN%%/$(PACKAGE_WIN_FILENAME)/ | sed s/%%CHECKSUMWIN%%/$(PACKAGE_WIN_CHKSUM)/ | sed s/%%SIZEWIN%%/$(PACKAGE_WIN_SIZE)/ | sed s/%%FILENAMEMAC%%/$(PACKAGE_MAC_FILENAME)/ | sed s/%%CHECKSUMMAC%%/$(PACKAGE_MAC_CHKSUM)/ | sed s/%%SIZEMAC%%/$(PACKAGE_MAC_SIZE)/ | sed s/%%FILENAMELINUX64%%/$(PACKAGE_LINUX64_FILENAME)/ | sed s/%%CHECKSUMLINUX64%%/$(PACKAGE_LINUX64_CHKSUM)/ | sed s/%%SIZELINUX64%%/$(PACKAGE_LINUX64_SIZE)/ | sed s/%%FILENAMELINUX32%%/$(PACKAGE_LINUX32_FILENAME)/ | sed s/%%CHECKSUMLINUX32%%/$(PACKAGE_LINUX32_CHKSUM)/ | sed s/%%SIZELINUX32%%/$(PACKAGE_LINUX32_SIZE)/ > package_$(PACKAGE_NAME)_$(PACKAGE_VERSION)_index.json
189+
@echo "package_$(PACKAGE_NAME)_$(PACKAGE_VERSION)_index.json created"

STM32/src/github_cli.sh

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#!/bin/bash -
2+
#===============================================================================
3+
#
4+
# FILE: github_cli.sh
5+
#
6+
# USAGE: ./github_cli.sh
7+
#
8+
# DESCRIPTION:
9+
#
10+
# OPTIONS: See usage()
11+
# REQUIREMENTS: ---
12+
# BUGS: ---
13+
# NOTES: ---
14+
# AUTHOR: Frederic Pillon (), [email protected]
15+
# ORGANIZATION: MCU Embedded Software
16+
# COPYRIGHT: Copyright (c) 2018, Frederic Pillon
17+
# CREATED: 08/14/2018 08:07:43
18+
# REVISION: ---
19+
#===============================================================================
20+
21+
set -o nounset # Treat unset variables as an error
22+
23+
VERSION="0.1"
24+
GITHUB_ACCOUNT="stm32duino"
25+
REPO_NAME="arm-none-eabi-gcc"
26+
LATEST_RELEASE=1
27+
28+
29+
###############################################################################
30+
## Help function
31+
usage()
32+
{
33+
echo "############################################################"
34+
echo "##"
35+
echo "## `basename $0`"
36+
echo "##"
37+
echo "############################################################"
38+
echo "##"
39+
echo "## `basename $0`"
40+
echo "## [-l] [-h] [-v] [-a <github account>] [-r <repo name>]"
41+
echo "##"
42+
echo "## Mandatory options:"
43+
echo "##"
44+
echo "## None"
45+
echo "##"
46+
echo "## Optionnal:"
47+
echo "##"
48+
echo "## -a <github account>: github account name. Default: '$GITHUB_ACCOUNT'"
49+
echo "## -r <repo name>: repository name. Default: '$REPO_NAME'"
50+
echo "## -l: get latest release"
51+
echo "## -v: print version"
52+
echo "##"
53+
echo "############################################################"
54+
exit 0
55+
}
56+
57+
get_latest_release() {
58+
# Get latest release from GitHub api
59+
curl --silent "https://api.github.com/repos/${GITHUB_ACCOUNT}/${REPO_NAME}/releases/latest" |
60+
grep '"tag_name":' | # Get tag line
61+
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
62+
}
63+
64+
65+
# parse command line arguments
66+
# options may be followed by one colon to indicate they have a required arg
67+
options=`getopt -o a:hlr:v -- "$@"`
68+
69+
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
70+
71+
eval set -- "$options"
72+
73+
while true ; do
74+
case "$1" in
75+
-a) GITHUB_ACCOUNT=$2
76+
shift 2;;
77+
-h|-\?) usage
78+
shift;;
79+
-l) LATEST_RELEASE=1
80+
shift;;
81+
-r) REPO_NAME=$2
82+
shift 2;;
83+
-v) echo "`basename $0`: $VERSION"
84+
exit 0
85+
shift;;
86+
--) shift;
87+
break;;
88+
*) break;;
89+
esac
90+
done
91+
92+
if [ $LATEST_RELEASE -eq 1 ]; then
93+
get_latest_release
94+
fi
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"name": "%%PACKAGENAME%%",
3+
"version": "%%VERSION%%",
4+
"systems":
5+
[
6+
{
7+
"host": "i686-mingw32",
8+
"url": "https://github.com/stm32duino/arm-none-eabi-gcc/releases/download/%%VERSION%%/%%FILENAMEWIN%%",
9+
"archiveFileName": "%%FILENAMEWIN%%",
10+
"checksum": "SHA-256:%%CHECKSUMWIN%%",
11+
"size": "%%SIZEWIN%%"
12+
},
13+
{
14+
"host": "x86_64-apple-darwin",
15+
"url": "https://github.com/stm32duino/arm-none-eabi-gcc/releases/download/%%VERSION%%/%%FILENAMEMAC%%",
16+
"archiveFileName": "%%FILENAMEMAC%%",
17+
"checksum": "SHA-256:%%CHECKSUMMAC%%",
18+
"size": "%%SIZEMAC%%"
19+
},
20+
{
21+
"host": "x86_64-pc-linux-gnu",
22+
"url": "https://github.com/stm32duino/arm-none-eabi-gcc/releases/download/%%VERSION%%/%%FILENAMELINUX64%%",
23+
"archiveFileName": "%%FILENAMELINUX64%%",
24+
"checksum": "SHA-256:%%CHECKSUMLINUX64%%",
25+
"size": "%%SIZELINUX64%%"
26+
},
27+
{
28+
"host": "i686-pc-linux-gnu",
29+
"url": "https://github.com/stm32duino/arm-none-eabi-gcc/releases/download/%%VERSION%%/%%FILENAMELINUX32%%",
30+
"archiveFileName": "%%FILENAMELINUX32%%",
31+
"checksum": "SHA-256:%%CHECKSUMLINUX32%%",
32+
"size": "%%SIZELINUX32%%"
33+
}
34+
]
35+
}

0 commit comments

Comments
 (0)