:: limine / GNUmakefile.in 18.2 KB raw

1
.SUFFIXES:
2
3
override SOURCE_DATE_EPOCH := @SOURCE_DATE_EPOCH@
4
export SOURCE_DATE_EPOCH
5
6
override SOURCE_DATE_EPOCH_TOUCH := @SOURCE_DATE_EPOCH_TOUCH@
7
8
override PACKAGE_TARNAME := @PACKAGE_TARNAME@
9
override PACKAGE_VERSION := @PACKAGE_VERSION@
10
override DIST_OUTPUT := $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
11
12
override prefix := @prefix@
13
override exec_prefix := @exec_prefix@
14
15
override bindir := @bindir@
16
override datarootdir := @datarootdir@
17
override mandir := @mandir@
18
override docdir := @docdir@
19
20
override BUILDDIR := @BUILDDIR@
21
override BINDIR := $(BUILDDIR)/bin
22
23
override SRCDIR := @SRCDIR@
24
25
override SPACE := $(subst ,, )
26
override COMMA := ,
27
28
override MKESCAPE = $(subst $(SPACE),\ ,$(1))
29
override SHESCAPE = $(subst ','\'',$(1))
30
override NASMESCAPE = $(subst ','"'$(COMMA) \"'\"$(COMMA) '"',$(1))
31
32
override BUILD_BIOS := @BUILD_BIOS@
33
override BUILD_UEFI_X86_64 := @BUILD_UEFI_X86_64@
34
override BUILD_UEFI_IA32 := @BUILD_UEFI_IA32@
35
override BUILD_UEFI_AARCH64 := @BUILD_UEFI_AARCH64@
36
override BUILD_UEFI_RISCV64 := @BUILD_UEFI_RISCV64@
37
override BUILD_UEFI_LOONGARCH64 := @BUILD_UEFI_LOONGARCH64@
38
override BUILD_UEFI_CD := @BUILD_UEFI_CD@
39
override BUILD_BIOS_PXE := @BUILD_BIOS_PXE@
40
override BUILD_BIOS_CD := @BUILD_BIOS_CD@
41
42
INSTALL := @INSTALL@
43
INSTALL_PROGRAM := @INSTALL_PROGRAM@
44
INSTALL_DATA := @INSTALL_DATA@
45
STRIP := @STRIP@
46
47
MKDIR_P := @MKDIR_P@
48
export MKDIR_P
49
GREP := @GREP@
50
export GREP
51
SED := @SED@
52
export SED
53
AWK := @AWK@
54
export AWK
55
56
CC := @CC@
57
CC_FOR_BUILD := @CC_FOR_BUILD@
58
CFLAGS_FOR_BUILD := @CFLAGS_FOR_BUILD@
59
60
CPPFLAGS := @CPPFLAGS@
61
CFLAGS := @CFLAGS@
62
LDFLAGS := @LDFLAGS@
63
LIBS := @LIBS@
64
65
CC_FOR_TARGET := @CC_FOR_TARGET@
66
export CC_FOR_TARGET
67
LD_FOR_TARGET := @LD_FOR_TARGET@
68
export LD_FOR_TARGET
69
OBJCOPY_FOR_TARGET := @OBJCOPY_FOR_TARGET@
70
export OBJCOPY_FOR_TARGET
71
OBJDUMP_FOR_TARGET := @OBJDUMP_FOR_TARGET@
72
export OBJDUMP_FOR_TARGET
73
READELF_FOR_TARGET := @READELF_FOR_TARGET@
74
export READELF_FOR_TARGET
75
76
override WERROR_FLAG := @WERROR_FLAG@
77
export WERROR_FLAG
78
79
CFLAGS_FOR_TARGET := @CFLAGS_FOR_TARGET@
80
export CFLAGS_FOR_TARGET
81
CPPFLAGS_FOR_TARGET := @CPPFLAGS_FOR_TARGET@
82
export CPPFLAGS_FOR_TARGET
83
LDFLAGS_FOR_TARGET := @LDFLAGS_FOR_TARGET@
84
export LDFLAGS_FOR_TARGET
85
NASMFLAGS_FOR_TARGET := @NASMFLAGS_FOR_TARGET@
86
export NASMFLAGS_FOR_TARGET
87
88
override STAGE1_FILES := $(shell find '$(call SHESCAPE,$(SRCDIR))/stage1' -type f -name '*.asm' | LC_ALL=C sort)
89
90
.PHONY: all
91
all: $(call MKESCAPE,$(BINDIR))/Makefile
92
	$(MAKE) all1
93
94
.PHONY: all1
95
all1: $(BUILD_UEFI_X86_64) $(BUILD_UEFI_IA32) $(BUILD_UEFI_AARCH64) $(BUILD_UEFI_RISCV64) $(BUILD_UEFI_LOONGARCH64) $(BUILD_BIOS)
96
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/limine'
97
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/limine-uefi-cd.bin'
98
99
$(call MKESCAPE,$(BINDIR))/limine-bios-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-bios-hdd.bin
100
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
101
	cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(SRCDIR))/host/hgen.sh' >limine-bios-hdd.h
102
103
override LIMINE_NO_BIOS :=
104
ifneq ($(BUILD_BIOS),limine-bios)
105
override LIMINE_NO_BIOS := -DLIMINE_NO_BIOS
106
endif
107
108
$(call MKESCAPE,$(BINDIR))/limine: $(call MKESCAPE,$(BINDIR))/Makefile $(call MKESCAPE,$(SRCDIR))/host/limine.c $(if $(filter $(BUILD_BIOS),limine-bios),$(call MKESCAPE,$(BINDIR))/limine-bios-hdd.h)
109
	$(SED) 's/%VERSION%/@PACKAGE_VERSION@/g;s/%COPYRIGHT%/@LIMINE_COPYRIGHT@/g' <'$(call SHESCAPE,$(SRCDIR))/host/limine.c' >'$(call SHESCAPE,$(BINDIR))/limine.c'
110
	$(MAKE) -C '$(call SHESCAPE,$(BINDIR))' limine \
111
		CC="$(CC)" \
112
		CFLAGS="$(CFLAGS) -Wall -Wextra $(WERROR_FLAG)" \
113
		CPPFLAGS='$(CPPFLAGS) $(LIMINE_NO_BIOS) -DLIMINE_DATADIR=\"$(call SHESCAPE,$(datarootdir))/limine\"' \
114
		LDFLAGS="$(LDFLAGS)" \
115
		LIBS="$(LIBS)"
116
117
$(call MKESCAPE,$(BINDIR))/Makefile: $(call MKESCAPE,$(SRCDIR))/host/host.mk
118
	mkdir -p '$(call SHESCAPE,$(BINDIR))'
119
	cp '$(call SHESCAPE,$(SRCDIR))/host/host.mk' '$(call SHESCAPE,$(BINDIR))/Makefile'
120
121
.PHONY: limine
122
limine:
123
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/limine'
124
125
.PHONY: clean
126
clean: tools-clean limine-bios-clean limine-uefi-ia32-clean limine-uefi-x86-64-clean limine-uefi-aarch64-clean limine-uefi-riscv64-clean limine-uefi-loongarch64-clean
127
	rm -rf '$(call SHESCAPE,$(BINDIR))' '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
128
129
.PHONY: install
130
install: all
131
	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(docdir))'
132
	$(INSTALL_DATA) '$(call SHESCAPE,$(SRCDIR))/COPYING' '$(call SHESCAPE,$(DESTDIR)$(docdir))/'
133
	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(docdir))/LICENSES'
134
	$(INSTALL_DATA) '$(call SHESCAPE,$(SRCDIR))/LICENSES/LicenseRef-scancode-bsd-no-disclaimer-unmodified.txt' '$(call SHESCAPE,$(DESTDIR)$(docdir))/LICENSES/'
135
	$(INSTALL_DATA) '$(call SHESCAPE,$(SRCDIR))/3RDPARTY.md' '$(call SHESCAPE,$(DESTDIR)$(docdir))/'
136
	$(INSTALL_DATA) '$(call SHESCAPE,$(SRCDIR))/CONFIG.md' '$(call SHESCAPE,$(DESTDIR)$(docdir))/'
137
	$(INSTALL_DATA) '$(call SHESCAPE,$(SRCDIR))/FAQ.md' '$(call SHESCAPE,$(DESTDIR)$(docdir))/'
138
	$(INSTALL_DATA) '$(call SHESCAPE,$(SRCDIR))/USAGE.md' '$(call SHESCAPE,$(DESTDIR)$(docdir))/'
139
	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1'
140
	$(INSTALL_DATA) '$(call SHESCAPE,$(BUILDDIR))/man/man1/limine.1' '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/'
141
	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(datarootdir))'
142
	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine'
143
ifeq ($(BUILD_BIOS),limine-bios)
144
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/limine-bios.sys' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
145
endif
146
ifneq ($(BUILD_BIOS_CD),no)
147
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/limine-bios-cd.bin' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
148
endif
149
ifneq ($(BUILD_UEFI_CD),no)
150
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/limine-uefi-cd.bin' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
151
endif
152
ifneq ($(BUILD_BIOS_PXE),no)
153
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/limine-bios-pxe.bin' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
154
endif
155
ifeq ($(BUILD_UEFI_AARCH64),limine-uefi-aarch64)
156
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/BOOTAA64.EFI' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
157
endif
158
ifeq ($(BUILD_UEFI_RISCV64),limine-uefi-riscv64)
159
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/BOOTRISCV64.EFI' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
160
endif
161
ifeq ($(BUILD_UEFI_LOONGARCH64),limine-uefi-loongarch64)
162
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/BOOTLOONGARCH64.EFI' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
163
endif
164
ifeq ($(BUILD_UEFI_X86_64),limine-uefi-x86-64)
165
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/BOOTX64.EFI' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
166
endif
167
ifeq ($(BUILD_UEFI_IA32),limine-uefi-ia32)
168
	$(INSTALL_DATA) '$(call SHESCAPE,$(BINDIR))/BOOTIA32.EFI' '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine/'
169
endif
170
	$(INSTALL) -d '$(call SHESCAPE,$(DESTDIR)$(bindir))'
171
	$(INSTALL_PROGRAM) '$(call SHESCAPE,$(BINDIR))/limine' '$(call SHESCAPE,$(DESTDIR)$(bindir))/'
172
173
.PHONY: install-strip
174
install-strip: install
175
	$(STRIP) '$(call SHESCAPE,$(DESTDIR)$(bindir))/limine'
176
177
.PHONY: uninstall
178
uninstall:
179
	rm -f '$(call SHESCAPE,$(DESTDIR)$(docdir))/COPYING'
180
	rm -rf '$(call SHESCAPE,$(DESTDIR)$(docdir))/LICENSES'
181
	rm -f '$(call SHESCAPE,$(DESTDIR)$(docdir))/3RDPARTY.md'
182
	rm -f '$(call SHESCAPE,$(DESTDIR)$(docdir))/CONFIG.md'
183
	rm -f '$(call SHESCAPE,$(DESTDIR)$(docdir))/FAQ.md'
184
	rm -f '$(call SHESCAPE,$(DESTDIR)$(docdir))/USAGE.md'
185
	rm -f '$(call SHESCAPE,$(DESTDIR)$(mandir))/man1/limine.1'
186
	rm -f '$(call SHESCAPE,$(DESTDIR)$(bindir))/limine'
187
	rm -rf '$(call SHESCAPE,$(DESTDIR)$(datarootdir))/limine'
188
189
$(call MKESCAPE,$(BUILDDIR))/stage1.stamp: $(STAGE1_FILES) $(call MKESCAPE,$(BUILDDIR))/common-bios/stage2.bin.limlz
190
	$(MKDIR_P) '$(call SHESCAPE,$(BUILDDIR))/decompressor-build'
191
	cd '$(call SHESCAPE,$(SRCDIR))/stage1' && nasm decompressor.asm -Wall -w-unknown-warning -w-reloc $(WERROR_FLAG) -fbin -o '$(call SHESCAPE,$(BUILDDIR))/decompressor-build/decompressor.bin'
192
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
193
	cd '$(call SHESCAPE,$(SRCDIR))/stage1/hdd' && nasm bootsect.asm -Wall -w-unknown-warning -w-reloc $(WERROR_FLAG) -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-bios-hdd.bin'
194
ifneq ($(BUILD_BIOS_CD),no)
195
	cd '$(call SHESCAPE,$(SRCDIR))/stage1/cd'  && nasm bootsect.asm -Wall -w-unknown-warning -w-reloc $(WERROR_FLAG) -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-bios-cd.bin'
196
endif
197
ifneq ($(BUILD_BIOS_PXE),no)
198
	cd '$(call SHESCAPE,$(SRCDIR))/stage1/pxe' && nasm bootsect.asm -Wall -w-unknown-warning -w-reloc $(WERROR_FLAG) -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-bios-pxe.bin'
199
endif
200
	cp '$(call SHESCAPE,$(BUILDDIR))/common-bios/limine-bios.sys' '$(call SHESCAPE,$(BINDIR))/'
201
	touch '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
202
203
.PHONY: limine-bios
204
limine-bios: common-bios
205
	$(MAKE) '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
206
207
$(call MKESCAPE,$(BINDIR))/limine-uefi-cd.bin: $(if $(BUILD_UEFI_IA32),$(call MKESCAPE,$(BUILDDIR))/common-uefi-ia32/BOOTIA32.EFI) $(if $(BUILD_UEFI_X86_64),$(call MKESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI) $(if $(BUILD_UEFI_AARCH64),$(call MKESCAPE,$(BUILDDIR))/common-uefi-aarch64/BOOTAA64.EFI) $(if $(BUILD_UEFI_RISCV64),$(call MKESCAPE,$(BUILDDIR))/common-uefi-riscv64/BOOTRISCV64.EFI) $(if $(BUILD_UEFI_LOONGARCH64),$(call MKESCAPE,$(BUILDDIR))/common-uefi-loongarch64/BOOTLOONGARCH64.EFI)
208
ifneq ($(BUILD_UEFI_CD),no)
209
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
210
	rm -f '$(call SHESCAPE,$(BINDIR))/limine-uefi-cd.bin'
211
	LIMINE_UEFI_CD_TMP="$$(mktemp -d)"; \
212
		mkdir -p "$$LIMINE_UEFI_CD_TMP"/EFI/BOOT; \
213
		cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64/BOOTAA64.EFI' "$$LIMINE_UEFI_CD_TMP"/EFI/BOOT/ 2>/dev/null; \
214
		cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-riscv64/BOOTRISCV64.EFI' "$$LIMINE_UEFI_CD_TMP"/EFI/BOOT/ 2>/dev/null; \
215
		cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-loongarch64/BOOTLOONGARCH64.EFI' "$$LIMINE_UEFI_CD_TMP"/EFI/BOOT/ 2>/dev/null; \
216
		cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI' "$$LIMINE_UEFI_CD_TMP"/EFI/BOOT/ 2>/dev/null; \
217
		cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32/BOOTIA32.EFI' "$$LIMINE_UEFI_CD_TMP"/EFI/BOOT/ 2>/dev/null; \
218
		find "$$LIMINE_UEFI_CD_TMP" -exec touch -t $(SOURCE_DATE_EPOCH_TOUCH) '{}' + && \
219
		LIMINE_UEFI_CD_SIZE="$$(du -sk "$$LIMINE_UEFI_CD_TMP" | $(AWK) '{ print $$1 }')" && \
220
		LIMINE_UEFI_CD_SECTORS="$$(( (($$LIMINE_UEFI_CD_SIZE + 1023) / 1024 + 1) * 2048 ))" && \
221
		mformat -C -i '$(call SHESCAPE,$(BINDIR))/limine-uefi-cd.bin' -T "$$LIMINE_UEFI_CD_SECTORS" -N 12345678 :: && \
222
		mcopy -D o -s -m -i '$(call SHESCAPE,$(BINDIR))/limine-uefi-cd.bin' "$$LIMINE_UEFI_CD_TMP"/EFI :: && \
223
		rm -rf "$$LIMINE_UEFI_CD_TMP"
224
endif
225
226
.PHONY: limine-uefi-cd
227
limine-uefi-cd:
228
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/limine-uefi-cd.bin'
229
230
$(call MKESCAPE,$(BINDIR))/BOOTX64.EFI: $(call MKESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI
231
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
232
	cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI' '$(call SHESCAPE,$(BINDIR))/'
233
234
.PHONY: limine-uefi-x86-64
235
limine-uefi-x86-64:
236
	$(MAKE) common-uefi-x86-64
237
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/BOOTX64.EFI'
238
239
$(call MKESCAPE,$(BINDIR))/BOOTIA32.EFI: $(call MKESCAPE,$(BUILDDIR))/common-uefi-ia32/BOOTIA32.EFI
240
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
241
	cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32/BOOTIA32.EFI' '$(call SHESCAPE,$(BINDIR))/'
242
243
.PHONY: limine-uefi-ia32
244
limine-uefi-ia32:
245
	$(MAKE) common-uefi-ia32
246
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/BOOTIA32.EFI'
247
248
$(call MKESCAPE,$(BINDIR))/BOOTAA64.EFI: $(call MKESCAPE,$(BUILDDIR))/common-uefi-aarch64/BOOTAA64.EFI
249
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
250
	cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64/BOOTAA64.EFI' '$(call SHESCAPE,$(BINDIR))/'
251
252
.PHONY: limine-uefi-aarch64
253
limine-uefi-aarch64:
254
	$(MAKE) common-uefi-aarch64
255
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/BOOTAA64.EFI'
256
257
$(call MKESCAPE,$(BINDIR))/BOOTRISCV64.EFI: $(call MKESCAPE,$(BUILDDIR))/common-uefi-riscv64/BOOTRISCV64.EFI
258
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
259
	cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-riscv64/BOOTRISCV64.EFI' '$(call SHESCAPE,$(BINDIR))/'
260
261
.PHONY: limine-uefi-riscv64
262
limine-uefi-riscv64:
263
	$(MAKE) common-uefi-riscv64
264
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/BOOTRISCV64.EFI'
265
266
$(call MKESCAPE,$(BINDIR))/BOOTLOONGARCH64.EFI: $(call MKESCAPE,$(BUILDDIR))/common-uefi-loongarch64/BOOTLOONGARCH64.EFI
267
	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
268
	cp '$(call SHESCAPE,$(BUILDDIR))/common-uefi-loongarch64/BOOTLOONGARCH64.EFI' '$(call SHESCAPE,$(BINDIR))/'
269
270
.PHONY: limine-uefi-loongarch64
271
limine-uefi-loongarch64:
272
	$(MAKE) common-uefi-loongarch64
273
	$(MAKE) '$(call SHESCAPE,$(BINDIR))/BOOTLOONGARCH64.EFI'
274
275
.PHONY: limine-bios-clean
276
limine-bios-clean: common-bios-clean decompressor-clean
277
278
.PHONY: limine-uefi-x86-64-clean
279
limine-uefi-x86-64-clean: common-uefi-x86-64-clean
280
281
.PHONY: limine-uefi-ia32-clean
282
limine-uefi-ia32-clean: common-uefi-ia32-clean
283
284
.PHONY: limine-uefi-aarch64-clean
285
limine-uefi-aarch64-clean: common-uefi-aarch64-clean
286
287
.PHONY: limine-uefi-riscv64-clean
288
limine-uefi-riscv64-clean: common-uefi-riscv64-clean
289
290
.PHONY: limine-uefi-loongarch64-clean
291
limine-uefi-loongarch64-clean: common-uefi-loongarch64-clean
292
293
.PHONY: dist
294
dist:
295
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)"
296
	$(MKDIR_P) '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)"
297
	cp -r '$(call SHESCAPE,$(SRCDIR))'/.git '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)"/
298
	cd '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)" && git checkout .
299
	cd '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)" && ./bootstrap
300
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/contrib"
301
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/flanterm/.git"
302
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/flanterm/.gitignore"
303
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/freestnd-c-hdrs/.git"
304
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/limine-protocol/.git"
305
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/picoefi/.git"
306
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/picoefi/.gitignore"
307
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/cc-runtime"
308
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/libfdt/.git"
309
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/stbi-hardened"
310
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/pdgzip"
311
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/.git"
312
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/.gitignore"
313
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/.github"
314
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/README.md"
315
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/autom4te.cache"
316
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/test"
317
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/test.mk"
318
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/logo.png"
319
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/screenshot.png"
320
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/bochsrc"
321
	echo "$(PACKAGE_VERSION)" > '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)/version"
322
	cd '$(call SHESCAPE,$(BUILDDIR))' && tar -cf "$(DIST_OUTPUT).tar" "$(DIST_OUTPUT)"
323
	cd '$(call SHESCAPE,$(BUILDDIR))' && gzip < "$(DIST_OUTPUT).tar" > "$(DIST_OUTPUT).tar.gz"
324
	cd '$(call SHESCAPE,$(BUILDDIR))' && ( bzip2 < "$(DIST_OUTPUT).tar" > "$(DIST_OUTPUT).tar.bz2" || rm -f "$(DIST_OUTPUT).tar.bz2" )
325
	cd '$(call SHESCAPE,$(BUILDDIR))' && ( xz < "$(DIST_OUTPUT).tar" > "$(DIST_OUTPUT).tar.xz" || rm -f "$(DIST_OUTPUT).tar.xz" )
326
	cd '$(call SHESCAPE,$(BUILDDIR))' && rm "$(DIST_OUTPUT).tar"
327
	rm -rf '$(call SHESCAPE,$(BUILDDIR))'/"$(DIST_OUTPUT)"
328
329
.PHONY: distclean
330
distclean: clean
331
	rm -rf .cache compile_commands.json edk2-ovmf config.log config.status GNUmakefile config.h man/man1/limine.1
332
333
.PHONY: maintainer-clean
334
maintainer-clean: distclean
335
	cd '$(call SHESCAPE,$(SRCDIR))' && rm -rf flanterm stbi-hardened common/lib/stb_image.h pdgzip common/compress/pdgzip.c common/compress/pdgzip.h libfdt freestnd-c-hdrs cc-runtime common/cc-runtime.s2.c limine-protocol picoefi configure timestamps build-aux *'~' autom4te.cache aclocal.m4 *.tar*
336
337
.PHONY: common-uefi-x86-64
338
common-uefi-x86-64:
339
	$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk \
340
		TARGET=uefi-x86-64 \
341
		BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64'
342
343
.PHONY: common-uefi-x86-64-clean
344
common-uefi-x86-64-clean:
345
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64'
346
347
.PHONY: common-uefi-aarch64
348
common-uefi-aarch64:
349
	$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk \
350
		TARGET=uefi-aarch64 \
351
		BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64'
352
353
.PHONY: common-uefi-aarch64-clean
354
common-uefi-aarch64-clean:
355
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64'
356
357
.PHONY: common-uefi-riscv64
358
common-uefi-riscv64:
359
	$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk \
360
		TARGET=uefi-riscv64 \
361
		BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-riscv64'
362
363
.PHONY: common-uefi-riscv64-clean
364
common-uefi-riscv64-clean:
365
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/common-uefi-riscv64'
366
367
.PHONY: common-uefi-loongarch64
368
common-uefi-loongarch64:
369
	$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk \
370
		TARGET=uefi-loongarch64 \
371
		BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-loongarch64'
372
373
.PHONY: common-uefi-loongarch64-clean
374
common-uefi-loongarch64-clean:
375
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/common-uefi-loongarch64'
376
377
.PHONY: common-uefi-ia32
378
common-uefi-ia32:
379
	$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk \
380
		TARGET=uefi-ia32 \
381
		BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32'
382
383
.PHONY: common-uefi-ia32-clean
384
common-uefi-ia32-clean:
385
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32'
386
387
.PHONY: common-bios
388
common-bios: $(call MKESCAPE,$(BUILDDIR))/tools-build/limlzpack
389
	$(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk \
390
		TARGET=bios \
391
		BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-bios' \
392
		LIMLZPACK='$(call SHESCAPE,$(BUILDDIR))/tools-build/limlzpack'
393
394
.PHONY: common-bios-clean
395
common-bios-clean:
396
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/common-bios'
397
398
$(call MKESCAPE,$(BUILDDIR))/tools-build/limlzpack: $(call MKESCAPE,$(SRCDIR))/tools/limlzpack.c
399
	$(MKDIR_P) '$(call SHESCAPE,$(BUILDDIR))/tools-build'
400
	$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -std=c99 -Wall -Wextra $(WERROR_FLAG) '$(call SHESCAPE,$<)' -o '$(call SHESCAPE,$@)'
401
402
.PHONY: decompressor-clean
403
decompressor-clean:
404
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/decompressor-build'
405
406
.PHONY: tools-clean
407
tools-clean:
408
	rm -rf '$(call SHESCAPE,$(BUILDDIR))/tools-build'
409
410
-include test.mk
tab: 248 wrap: offon