@@ -21,21 +21,32 @@ define epilogue
2121endef
2222
2323# $(1): compressed source URL
24+ # if URL contains git command, then use git
2425define download
25- $(eval _ := $(shell wget -q --show-progress --continue "$(strip $(1 ) ) ") )
26+ $(eval _ := \
27+ $(if $(findstring git,$(1 ) ) , \
28+ ($(eval _ := $(shell $(1 ) ) ) ) , \
29+ ($(eval _ := $(shell wget -q --show-progress --continue "$(strip $(1 ) ) ") ) ) \
30+ ))
2631endef
2732
2833# $(1): destination directory
2934# $(2): compressed source(.zip or.gz)
35+ # For Buildroot and Linux kernel, no need to extract
3036define extract
3137 $(eval COMPRESSED_SUFFIX := $(suffix $(2 ) ) )
3238 $(eval COMPRESSED_IS_ZIP := $(filter $(COMPRESSED_SUFFIX ) ,.zip) )
33- $(eval _ := \
34- $(if $(COMPRESSED_IS_ZIP ) , \
35- ($(eval EXTRACTOR := unzip -d $(1 ) $(2 ) ) ) , \
36- ($(eval EXTRACTOR := tar -xf $(2 ) -C $(1 ) ) ) \
37- ))
38- $(eval _ := $(shell $(EXTRACTOR ) ) )
39+ $(eval _ := \
40+ $(if $(findstring git,$(2 ) ) , \
41+ (# git is used, do nothing) ,
42+ ($(eval _ := \
43+ $(if $(COMPRESSED_IS_ZIP ) , \
44+ ($(eval EXTRACTOR := unzip -d $(1 ) $(2 ) ) ) , \
45+ ($(eval EXTRACTOR := tar -xf $(2 ) -C $(1 ) ) ) \
46+ ) )
47+ $(eval _ := $(shell $(EXTRACTOR ) ) ) )
48+ ) \
49+ )
3950endef
4051
4152# $(1): correct SHA1 value
@@ -51,7 +62,7 @@ define verify
5162 $(if $(filter 1,$(COMPRESSED_IS_DIR ) ) , \
5263 ($(eval VERIFIER := \
5364 echo $(1 ) > $(SHA1_FILE1 ) \
54- | find $(2 ) -type f -print0 \
65+ | find $(2 ) -type f -not -path ' * /.git/ * ' - print0 \
5566 | sort -z \
5667 | xargs -0 $(SHA1SUM ) \
5768 | sort \
@@ -78,19 +89,31 @@ endef
7889# Doom
7990# https://tipsmake.com/how-to-run-doom-on-raspberry-pi-without-emulator
8091DOOM_DATA_URL = http://www.doomworld.com/3ddownloads/ports/shareware_doom_iwad.zip
81- DOOM_DATA = $(OUT ) /DOOM1.WAD
92+ DOOM_DATA = $(DOOM_OUT ) /DOOM1.WAD
8293DOOM_DATA_SHA1 = 5b2e249b9c5133ec987b3ea77596381dc0d6bc1d
8394
8495# Quake
8596QUAKE_DATA_URL = https://www.libsdl.org/projects/quake/data/quakesw-1.0.6.zip
86- QUAKE_DATA = $(OUT ) /id1/pak0.pak
97+ QUAKE_DATA = $(QUAKE_OUT ) /id1/pak0.pak
8798QUAKE_DATA_SHA1 = 36b42dc7b6313fd9cabc0be8b9e9864840929735
8899
89100# Timidity software synthesizer configuration for SDL2_mixer
90101TIMIDITY_DATA_URL = http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz
91- TIMIDITY_DATA = $(OUT ) /timidity
102+ TIMIDITY_DATA = $(TIMIDITY_OUT ) /timidity
92103TIMIDITY_DATA_SHA1 = cf6217a5d824b717ec4a07e15e6c129a4657ca25
93104
105+ # Buildroot
106+ BUILDROOT_VERSION = 2024.05.2
107+ BUILDROOT_DATA = /tmp/buildroot
108+ BUILDROOT_DATA_URL = git clone https://github.com/buildroot/buildroot $(BUILDROOT_DATA ) -b $(BUILDROOT_VERSION ) --depth=1
109+ BUILDROOT_DATA_SHA1 = e6677825313cdb47f6e62e4dc09a22ae30699b69
110+
111+ # Linux kernel
112+ LINUX_VERSION = linux-6.1.y
113+ LINUX_DATA = /tmp/linux
114+ LINUX_DATA_URL = git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git $(LINUX_DATA ) -b $(LINUX_VERSION ) --depth=1
115+ LINUX_DATA_SHA1 = 30e95c62e8264aba948bb52d75af57d435bb6b8e
116+
94117define download-extract-verify
95118$($(T ) _DATA) :
96119 $(Q )$$(call prologue,$$@ )
@@ -100,5 +123,5 @@ $($(T)_DATA):
100123 $(Q )$$(call epilogue,$(notdir $($(T ) _DATA_URL) ) ,$(SHA1_FILE1 ) ,$(SHA1_FILE2 ) )
101124endef
102125
103- EXTERNAL_DATA = DOOM QUAKE TIMIDITY
126+ EXTERNAL_DATA = DOOM QUAKE TIMIDITY BUILDROOT LINUX
104127$(foreach T,$(EXTERNAL_DATA),$(eval $(download-extract-verify)))
0 commit comments