# 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 . include $(ROOTDIR)/common.mk INCLUDE+=-I$(ARCHDIR)/include -Iinclude -I$(ROOTDIR)kernel/include -I$(ROOTDIR)kernel/arch/$(ARCH)/include CFLAGS+=-ffreestanding -fno-stack-protector $(BS_OPLVL) BINARY=bootstrap-stage1 include $(ARCHDIR)/make.conf FIRMWARE_DIR=firmware/$(FIRMWARE) include $(FIRMWARE_DIR)/make.conf COMMON_DIR=firmware/common COMMON_OBJS=$(COMMON_DIR)/bprintf.o \ $(COMMON_DIR)/elf_load.o \ $(COMMON_DIR)/exception.o \ $(COMMON_DIR)/rescue.o \ $(COMMON_DIR)/string.o \ OBJS=$(ARCH_OBJS) \ $(COMMON_OBJS) \ $(FIRMWARE_OBJS) \ .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)