build: Misc improvements wrt variable passing

This commit is contained in:
mintsuki
2024-11-28 00:42:36 +01:00
parent e287c9d1d0
commit 375360f4b9
4 changed files with 39 additions and 49 deletions

View File

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

View File

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

View File

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

View File

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