build: Misc improvements wrt variable passing
diff --git a/GNUmakefile.in b/GNUmakefile.in
index 94831f59..7a1d23da 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -104,6 +104,7 @@ $(call MKESCAPE,$(BINDIR))/limine-bios-hdd.h: $(call MKESCAPE,$(BINDIR))/limine-
$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
cd '$(call SHESCAPE,$(BINDIR))' && '$(call SHESCAPE,$(SRCDIR))/host/hgen.sh' >limine-bios-hdd.h
+override LIMINE_NO_BIOS :=
ifneq ($(BUILD_BIOS),limine-bios)
override LIMINE_NO_BIOS := -DLIMINE_NO_BIOS
endif
@@ -113,7 +114,10 @@ $(call MKESCAPE,$(BINDIR))/limine: $(call MKESCAPE,$(BINDIR))/Makefile $(call MK
$(MAKE) -C '$(call SHESCAPE,$(BINDIR))' limine \
CC="$(CC)" \
CFLAGS="$(CFLAGS)" \
- CPPFLAGS='$(CPPFLAGS) $(LIMINE_NO_BIOS) -DLIMINE_DATADIR=\"$(call SHESCAPE,$(datarootdir))/limine\"'
+ CPPFLAGS='$(CPPFLAGS) $(LIMINE_NO_BIOS) -DLIMINE_DATADIR=\"$(call SHESCAPE,$(datarootdir))/limine\"' \
+ LDFLAGS="$(LDFLAGS)" \
+ LIBS="$(LIBS)" \
+ WERROR_FLAG="$(WERROR_FLAG)"
$(call MKESCAPE,$(BINDIR))/Makefile: $(call MKESCAPE,$(SRCDIR))/host/host.mk $(call MKESCAPE,$(SRCDIR))/host/.gitignore
mkdir -p '$(call SHESCAPE,$(BINDIR))'
@@ -336,10 +340,10 @@ maintainer-clean: distclean
.PHONY: common-uefi-x86-64
common-uefi-x86-64:
- $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-x86_64-toolchain.mk' \
- TARGET=uefi-x86-64 \
- BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64'
+ TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-x86_64-toolchain.mk' \
+ TARGET=uefi-x86-64 \
+ BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64' \
+ $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk
.PHONY: common-uefi-x86-64-clean
common-uefi-x86-64-clean:
@@ -347,10 +351,10 @@ common-uefi-x86-64-clean:
.PHONY: common-uefi-aarch64
common-uefi-aarch64:
- $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-aarch64-toolchain.mk' \
- TARGET=uefi-aarch64 \
- BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64'
+ TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-aarch64-toolchain.mk' \
+ TARGET=uefi-aarch64 \
+ BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64' \
+ $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk
.PHONY: common-uefi-aarch64-clean
common-uefi-aarch64-clean:
@@ -358,10 +362,10 @@ common-uefi-aarch64-clean:
.PHONY: common-uefi-riscv64
common-uefi-riscv64:
- $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-riscv64-toolchain.mk' \
- TARGET=uefi-riscv64 \
- BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-riscv64'
+ TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-riscv64-toolchain.mk' \
+ TARGET=uefi-riscv64 \
+ BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-riscv64' \
+ $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk
.PHONY: common-uefi-riscv64-clean
common-uefi-riscv64-clean:
@@ -369,10 +373,10 @@ common-uefi-riscv64-clean:
.PHONY: common-uefi-loongarch64
common-uefi-loongarch64:
- $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-loongarch64-toolchain.mk' \
- TARGET=uefi-loongarch64 \
- BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-loongarch64'
+ TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-loongarch64-toolchain.mk' \
+ TARGET=uefi-loongarch64 \
+ BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-loongarch64' \
+ $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk
.PHONY: common-uefi-loongarch64-clean
common-uefi-loongarch64-clean:
@@ -380,10 +384,10 @@ common-uefi-loongarch64-clean:
.PHONY: common-uefi-ia32
common-uefi-ia32:
- $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-i686-toolchain.mk' \
- TARGET=uefi-ia32 \
- BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32'
+ TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/uefi-i686-toolchain.mk' \
+ TARGET=uefi-ia32 \
+ BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32' \
+ $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk
.PHONY: common-uefi-ia32-clean
common-uefi-ia32-clean:
@@ -391,10 +395,10 @@ common-uefi-ia32-clean:
.PHONY: common-bios
common-bios:
- $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/bios-i686-toolchain.mk' \
- TARGET=bios \
- BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-bios'
+ TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/bios-i686-toolchain.mk' \
+ TARGET=bios \
+ BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/common-bios' \
+ $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/common' -f common.mk
.PHONY: common-bios-clean
common-bios-clean:
@@ -402,9 +406,9 @@ common-bios-clean:
.PHONY: decompressor
decompressor:
- $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/decompressor' -f decompressor.mk all \
- TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/bios-i686-toolchain.mk' \
- BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/decompressor-build'
+ TOOLCHAIN_FILE='$(call SHESCAPE,$(BUILDDIR))/toolchain-files/bios-i686-toolchain.mk' \
+ BUILDDIR='$(call SHESCAPE,$(BUILDDIR))/decompressor-build' \
+ $(MAKE) -C '$(call SHESCAPE,$(SRCDIR))/decompressor' -f decompressor.mk
.PHONY: decompressor-clean
decompressor-clean:
diff --git a/common/common.mk b/common/common.mk
index 06cd0a21..862f9d22 100644
--- a/common/common.mk
+++ b/common/common.mk
@@ -9,9 +9,6 @@ export OBJDUMP_FOR_TARGET
export OBJCOPY_FOR_TARGET
export READELF_FOR_TARGET
-TARGET :=
-BUILDDIR :=
-
override SRCDIR := $(shell pwd -P)
override SPACE := $(subst ,, )
@@ -20,10 +17,6 @@ override MKESCAPE = $(subst $(SPACE),\ ,$(1))
override SHESCAPE = $(subst ','\'',$(1))
override OBJESCAPE = $(subst .a ,.a' ',$(subst .o ,.o' ',$(call SHESCAPE,$(1))))
-ifeq ($(call MKESCAPE,$(BUILDDIR)),)
- $(error BUILDDIR not specified)
-endif
-
COM_OUTPUT := false
E9_OUTPUT := false
diff --git a/decompressor/decompressor.mk b/decompressor/decompressor.mk
index 0741eee6..35ad45b9 100644
--- a/decompressor/decompressor.mk
+++ b/decompressor/decompressor.mk
@@ -2,14 +2,6 @@ MAKEFLAGS += -rR
.SUFFIXES:
include $(TOOLCHAIN_FILE)
-export AR_FOR_TARGET
-export CC_FOR_TARGET
-export LD_FOR_TARGET
-export OBJDUMP_FOR_TARGET
-export OBJCOPY_FOR_TARGET
-export READELF_FOR_TARGET
-
-BUILDDIR :=
override SRCDIR := $(shell pwd -P)
@@ -19,10 +11,6 @@ override MKESCAPE = $(subst $(SPACE),\ ,$(1))
override SHESCAPE = $(subst ','\'',$(1))
override OBJESCAPE = $(subst .a ,.a' ',$(subst .o ,.o' ',$(call SHESCAPE,$(1))))
-ifeq ($(call MKESCAPE,$(BUILDDIR)),)
- $(error BUILDDIR not specified)
-endif
-
override CFLAGS_FOR_TARGET += \
-Os \
-Wall \
diff --git a/host/host.mk b/host/host.mk
index 65b41196..8f599080 100644
--- a/host/host.mk
+++ b/host/host.mk
@@ -1,13 +1,18 @@
SHELL = /bin/sh
CC = cc
+CFLAGS = -g -O2 -pipe
+CPPFLAGS =
+LDFLAGS =
+LIBS =
+
+WERROR_FLAG =
+
STRIP = strip
INSTALL = ./install-sh
PREFIX = /usr/local
-CFLAGS = -g -O2 -pipe
-
.PHONY: all
all: limine
