build: Sanitise variables before building reduced-gnu-efi

This commit is contained in:
mintsuki 2022-01-17 00:20:59 +01:00
parent accb58e11e
commit fd09538f48
3 changed files with 24 additions and 2 deletions

View File

@ -44,6 +44,7 @@ TOOLCHAIN ?= @TOOLCHAIN@
LIMINE_CC ?= @LIMINE_CC@ LIMINE_CC ?= @LIMINE_CC@
LIMINE_LD ?= @LIMINE_LD@ LIMINE_LD ?= @LIMINE_LD@
LIMINE_AR ?= @LIMINE_AR@ LIMINE_AR ?= @LIMINE_AR@
LIMINE_AS ?= @LIMINE_AS@
LIMINE_OBJCOPY ?= @LIMINE_OBJCOPY@ LIMINE_OBJCOPY ?= @LIMINE_OBJCOPY@
LIMINE_OBJDUMP ?= @LIMINE_OBJDUMP@ LIMINE_OBJDUMP ?= @LIMINE_OBJDUMP@
LIMINE_READELF ?= @LIMINE_READELF@ LIMINE_READELF ?= @LIMINE_READELF@
@ -57,6 +58,9 @@ endif
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AR) ; ), ) ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AR) ; ), )
override LIMINE_AR := ar override LIMINE_AR := ar
endif endif
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AS) ; ), )
override LIMINE_AS := as
endif
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_OBJCOPY) ; ), ) ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_OBJCOPY) ; ), )
override LIMINE_OBJCOPY := objcopy override LIMINE_OBJCOPY := objcopy
endif endif
@ -70,6 +74,7 @@ endif
export LIMINE_CC export LIMINE_CC
export LIMINE_LD export LIMINE_LD
export LIMINE_AR export LIMINE_AR
export LIMINE_AS
export LIMINE_OBJCOPY export LIMINE_OBJCOPY
export LIMINE_OBJDUMP export LIMINE_OBJDUMP
export LIMINE_READELF export LIMINE_READELF

View File

@ -24,6 +24,9 @@ test "x$LIMINE_LD" = "x" && LIMINE_LD='$(TOOLCHAIN)-ld'
AC_ARG_VAR(LIMINE_AR, [Archiver command for Limine [$(TOOLCHAIN)-ar]]) AC_ARG_VAR(LIMINE_AR, [Archiver command for Limine [$(TOOLCHAIN)-ar]])
test "x$LIMINE_AR" = "x" && LIMINE_AR='$(TOOLCHAIN)-ar' test "x$LIMINE_AR" = "x" && LIMINE_AR='$(TOOLCHAIN)-ar'
AC_ARG_VAR(LIMINE_AS, [Assembler command for Limine [$(TOOLCHAIN)-as]])
test "x$LIMINE_AS" = "x" && LIMINE_AS='$(TOOLCHAIN)-as'
AC_ARG_VAR(LIMINE_OBJCOPY, [Objcopy command for Limine [$(TOOLCHAIN)-objcopy]]) AC_ARG_VAR(LIMINE_OBJCOPY, [Objcopy command for Limine [$(TOOLCHAIN)-objcopy]])
test "x$LIMINE_OBJCOPY" = "x" && LIMINE_OBJCOPY='$(TOOLCHAIN)-objcopy' test "x$LIMINE_OBJCOPY" = "x" && LIMINE_OBJCOPY='$(TOOLCHAIN)-objcopy'

View File

@ -256,7 +256,14 @@ $(call MKESCAPE,$(BUILDDIR))/BOOTX64.EFI: $(call MKESCAPE,$(BUILDDIR))/limine_ef
$(LIMINE_OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc -j .sbat --target efi-app-x86_64 '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)' $(LIMINE_OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc -j .sbat --target efi-app-x86_64 '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi
$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' CC="$(LIMINE_CC) -m64 -march=x86-64 -mtune=generic" AR="$(LIMINE_AR)" ARCH=x86_64 unset ARFLAGS; unset ASFLAGS; unset LDFLAGS; unset CFLAGS; unset CPPFLAGS; \
$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' \
CC="$(LIMINE_CC) -m64 -march=x86-64 -mtune=generic" \
LD="$(LIMINE_LD)" \
AR="$(LIMINE_AR)" \
AS="$(LIMINE_AS)" \
OBJCOPY="$(LIMINE_OBJCOPY)" \
ARCH=x86_64
$(call MKESCAPE,$(BUILDDIR))/limine_efi_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a $(OBJ) $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o $(call MKESCAPE,$(BUILDDIR))/limine_efi_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-x86_64.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a $(OBJ) $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o
$(LIMINE_LD) \ $(LIMINE_LD) \
@ -280,7 +287,14 @@ $(call MKESCAPE,$(BUILDDIR))/BOOTIA32.EFI: $(call MKESCAPE,$(BUILDDIR))/limine_e
$(LIMINE_OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc -j .sbat --target efi-app-ia32 '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)' $(LIMINE_OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc -j .sbat --target efi-app-ia32 '$(call SHESCAPE,$<)' '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi
$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' CC="$(LIMINE_CC) -m32 -march=i686 -mtune=generic" AR="$(LIMINE_AR)" ARCH=ia32 unset ARFLAGS; unset ASFLAGS; unset LDFLAGS; unset CFLAGS; unset CPPFLAGS; \
$(MAKE) -C '$(call SHESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi' \
CC="$(LIMINE_CC) -m32 -march=i686 -mtune=generic" \
LD="$(LIMINE_LD)" \
AR="$(LIMINE_AR)" \
AS="$(LIMINE_AS)" \
OBJCOPY="$(LIMINE_OBJCOPY)" \
ARCH=ia32
$(call MKESCAPE,$(BUILDDIR))/limine_efi_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a $(OBJ) $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o $(call MKESCAPE,$(BUILDDIR))/limine_efi_nomap.elf: $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/crt0-efi-ia32.o $(call MKESCAPE,$(BUILDDIR))/reduced-gnu-efi/gnuefi/libgnuefi.a $(OBJ) $(call MKESCAPE,$(BUILDDIR))/tinf/tinfgzip.o $(call MKESCAPE,$(BUILDDIR))/tinf/tinflate.o $(call MKESCAPE,$(BUILDDIR))/font.o $(call MKESCAPE,$(BUILDDIR))/sys/smp_trampoline.o
$(LIMINE_LD) \ $(LIMINE_LD) \