diff --git a/stage23/Makefile b/stage23/Makefile index 304d7a30..1bdf09f8 100644 --- a/stage23/Makefile +++ b/stage23/Makefile @@ -13,8 +13,6 @@ else $(error Invalid target) endif -CC32 = i386-elf-gcc - CC = $(TOOLCHAIN)-gcc LD = $(TOOLCHAIN)-ld OBJCOPY = $(TOOLCHAIN)-objcopy @@ -82,11 +80,12 @@ endif C_FILES := $(shell find -L ./ -type f -name '*.c' | sort) ifeq ($(TARGET), bios) ASM_FILES := $(shell find -L ./ -type f -name '*.asm' | sort) +OBJ := $(addprefix $(BUILDDIR)/, $(ASM_FILES:.asm=.o) $(C_FILES:.c=.o)) endif ifeq ($(TARGET), uefi) -ASM_FILES := lib/do_32.asm +ASM_FILES := $(shell find -L ./ -type f -name '*.asm64' | sort) +OBJ := $(addprefix $(BUILDDIR)/, $(ASM_FILES:.asm64=.o) $(C_FILES:.c=.o)) endif -OBJ := $(addprefix $(BUILDDIR)/, $(ASM_FILES:.asm=.o) $(C_FILES:.c=.o)) HEADER_DEPS := $(addprefix $(BUILDDIR)/, $(C_FILES:.c=.d)) ifeq ($(TARGET), bios) @@ -153,7 +152,7 @@ endif ifeq ($(TARGET), uefi) $(BUILDDIR)/BOOTX64.EFI: $(BUILDDIR)/limine_efi.elf - $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc --target efi-app-x86_64 --subsystem=10 $< $@ + $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc --target efi-app-x86_64 --subsystem=10 $< $@ $(BUILDDIR)/limine_efi.elf: $(OBJ) $(BUILDDIR)/font.o $(BUILDDIR)/sys/smp_trampoline.o $(LD) -shared -Bsymbolic \ @@ -170,26 +169,27 @@ endif $(BUILDDIR)/%.o: %.c $(CC) $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@ +-include $(HEADER_DEPS) + ifeq ($(TARGET), bios) $(BUILDDIR)/%.s2.o: %.s2.c $(CC) $(S2CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@ endif +-include $(HEADER_DEPS) + ifeq ($(TARGET), uefi) $(BUILDDIR)/%.32.o: %.32.c - $(CC32) $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@.32 + $(CC) -m32 $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@.32 $(OBJCOPY) -I elf32-i386 -O elf64-x86-64 $@.32 $@ rm $@.32 endif -ifeq ($(TARGET), bios) $(BUILDDIR)/%.o: %.asm nasm $< -F dwarf -g -f elf32 -o $@ -endif -ifeq ($(TARGET), uefi) -$(BUILDDIR)/%.o: %.asm + +$(BUILDDIR)/%.o: %.asm64 nasm $< -F dwarf -g -f elf64 -o $@ -endif clean: rm -rf $(BUILDDIR) diff --git a/stage23/lib/do_32.asm b/stage23/lib/do_32.asm64 similarity index 100% rename from stage23/lib/do_32.asm rename to stage23/lib/do_32.asm64