From a3085f5b9309c659c58282b4e50d955dcb0c0b7f Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Thu, 28 Aug 2025 08:36:42 -0500 Subject: bootstrap: update build configs Update the build configuration files for the included bootloader to match the formatting requirements of the main build configs. Signed-off-by: Danny Holman --- bootstrap/stage1/Makefile | 59 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 9 deletions(-) (limited to 'bootstrap/stage1/Makefile') diff --git a/bootstrap/stage1/Makefile b/bootstrap/stage1/Makefile index b09f1ad..7c3bf81 100644 --- a/bootstrap/stage1/Makefile +++ b/bootstrap/stage1/Makefile @@ -1,16 +1,57 @@ -SUBDIRS:=efi \ +# Copyright (C) 2025 Danny Holman +# +# This file is part of BoxOS, a free and open-source Unix-like operating +# system. +# +# BoxOS is free software; you can redistribute it and/or modify under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# BoxOS is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; +# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# BoxOS; if not, see . -export ARCH VERSION DESTDIR SYS_INCLUDE +include $(ROOTDIR)/common.mk -.PHONY: all clean $(SUBDIRS) +INCLUDE+=-I$(ARCHDIR)/include -Iinclude -I$(ROOTDIR)kernel/include -I$(ROOTDIR)kernel/arch/$(ARCH)/include +CFLAGS+=-ffreestanding -fno-stack-protector $(BS_OPLVL) -all: $(SUBDIRS) +BINARY=bootstrap-stage1 -subdirs: $(SUBDIRS) +include $(ARCHDIR)/make.conf +FIRMWARE_DIR=firmware/$(FIRMWARE) +include $(FIRMWARE_DIR)/make.conf +COMMON_DIR=firmware/common -$(SUBDIRS): - $(MAKE) $(MAKECMDGOALS) -C $@ +COMMON_OBJS=$(COMMON_DIR)/bprintf.o \ + $(COMMON_DIR)/elf_load.o \ + $(COMMON_DIR)/exception.o \ + $(COMMON_DIR)/rescue.o \ + $(COMMON_DIR)/string.o \ -clean: $(SUBDIRS) +OBJS=$(ARCH_OBJS) \ + $(COMMON_OBJS) \ + $(FIRMWARE_OBJS) \ -install: $(SUBDIRS) +.PHONY: all clean install + +all: $(BINARY) + +$(BINARY): $(OBJS) + @$(LD) $(LDFLAGS) $^ + +%.o: %.c + @$(CC) -MD -c $< -o $@ $(CFLAGS) $(INCLUDE) + @echo [CC] $@ + +%.o: %.s + @$(CC) -c $< -o $@ $(AFLAGS) $(INCLUDE) + +clean: + $(RM) $(BINARY) $(OBJS) $(OBJS:.o=.d) + +-include $(OBJS:.o=.d) -- cgit v1.2.3