build: Minor misc fixes
diff --git a/GNUmakefile.in b/GNUmakefile.in
index d5d5b10d..78ea3387 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -30,6 +30,8 @@ CC := @CC@
endif
export CC
+HOST_CC ?= @HOST_CC@
+
INSTALL ?= @INSTALL@
export INSTALL
@@ -53,18 +55,17 @@ LIMINE_READELF ?= @LIMINE_READELF@
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_CC) ; ), )
override LIMINE_CC := $(CC)
endif
+
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_LD) ; ), )
override LIMINE_LD := gld
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_LD) ; ), )
-override LIMINE_LD := ld.bfd
-ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_LD) ; ), )
override LIMINE_LD := /usr/local/bin/ld
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_LD) ; ), )
override LIMINE_LD := ld
endif
endif
endif
-endif
+
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AR) ; ), )
override LIMINE_AR := gar
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AR) ; ), )
@@ -74,6 +75,7 @@ override LIMINE_AR := ar
endif
endif
endif
+
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AS) ; ), )
override LIMINE_AS := gas
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_AS) ; ), )
@@ -83,6 +85,7 @@ override LIMINE_AS := as
endif
endif
endif
+
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_OBJCOPY) ; ), )
override LIMINE_OBJCOPY := gobjcopy
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_OBJCOPY) ; ), )
@@ -92,6 +95,7 @@ override LIMINE_OBJCOPY := objcopy
endif
endif
endif
+
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_OBJDUMP) ; ), )
override LIMINE_OBJDUMP := gobjdump
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_OBJDUMP) ; ), )
@@ -101,6 +105,7 @@ override LIMINE_OBJDUMP := objdump
endif
endif
endif
+
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_READELF) ; ), )
override LIMINE_READELF := greadelf
ifeq ($(shell PATH='$(call SHESCAPE,$(PATH))' command -v $(LIMINE_READELF) ; ), )
@@ -200,7 +205,7 @@ all: limine-uefi limine-bios
$(call MKESCAPE,$(BUILDDIR))/hgen: $(call MKESCAPE,$(SRCDIR))/limine-install/hgen.c
mkdir -p '$(call SHESCAPE,$(BUILDDIR))'
- $(CC) $(CFLAGS) -std=c11 '$(call SHESCAPE,$(SRCDIR))/limine-install/hgen.c' -o '$(call SHESCAPE,$(BUILDDIR))/hgen'
+ $(HOST_CC) $(CFLAGS) -std=c11 '$(call SHESCAPE,$(SRCDIR))/limine-install/hgen.c' -o '$(call SHESCAPE,$(BUILDDIR))/hgen'
.PHONY: limine-hdd.h
limine-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-hdd.h
diff --git a/configure.ac b/configure.ac
index 552b4e44..c8f4f908 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,6 +19,9 @@ fi
AC_PROG_CC
AC_PROG_INSTALL
+AC_ARG_VAR(HOST_CC, [C compiler for the build host [$(CC)]])
+test "x$HOST_CC" = "x" && HOST_CC='$(CC)'
+
AC_ARG_VAR(TOOLCHAIN, [Alternative toolchain prefix [limine]])
test "x$TOOLCHAIN" = "x" && TOOLCHAIN='limine'
diff --git a/stage23/GNUmakefile b/stage23/GNUmakefile
index 69603d8b..2c430252 100644
--- a/stage23/GNUmakefile
+++ b/stage23/GNUmakefile
@@ -364,31 +364,31 @@ endif
ifeq ($(TARGET), bios)
$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm32
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- nasm '$(call SHESCAPE,$<)' -F dwarf -g -Werror -f elf32 -o '$(call SHESCAPE,$@)'
+ nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/%.o: %.asmb
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- nasm '$(call SHESCAPE,$<)' -F dwarf -g -Werror -f elf32 -o '$(call SHESCAPE,$@)'
+ nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
endif
ifeq ($(TARGET), uefi64)
$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm64
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- nasm '$(call SHESCAPE,$<)' -F dwarf -g -Werror -f elf64 -o '$(call SHESCAPE,$@)'
+ nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf64 -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm64u
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- nasm '$(call SHESCAPE,$<)' -F dwarf -g -Werror -f elf64 -o '$(call SHESCAPE,$@)'
+ nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf64 -o '$(call SHESCAPE,$@)'
endif
ifeq ($(TARGET), uefi32)
$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm32
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- nasm '$(call SHESCAPE,$<)' -F dwarf -g -Werror -f elf32 -o '$(call SHESCAPE,$@)'
+ nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm32u
mkdir -p "$$(dirname '$(call SHESCAPE,$@)')"
- nasm '$(call SHESCAPE,$<)' -F dwarf -g -Werror -f elf32 -o '$(call SHESCAPE,$@)'
+ nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
endif
clean:
