| 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 |