Limine Bare Bones: Difference between revisions

Jump to navigation Jump to search
no edit summary
[unchecked revision][unchecked revision]
No edit summary
No edit summary
Line 268:
# We are using the standard "cc" here, it may work by using
# the host system's toolchain, but this is not guaranteed.
override DEFAULT_CCDEFAULT_KCC := cc
$(eval $(call DEFAULT_VAR,CCKCC,$(DEFAULT_CCDEFAULT_KCC)))
 
# Same thing for "ld" (the linker).
override DEFAULT_LDDEFAULT_KLD := ld
$(eval $(call DEFAULT_VAR,LDKLD,$(DEFAULT_LDDEFAULT_KLD)))
 
# User controllable C flags.
override DEFAULT_CFLAGSDEFAULT_KCFLAGS := -g -O2 -pipe
$(eval $(call DEFAULT_VAR,CFLAGSKCFLAGS,$(DEFAULT_CFLAGSDEFAULT_KCFLAGS)))
 
# User controllable C preprocessor flags. We set none by default.
override DEFAULT_CPPFLAGSDEFAULT_KCPPFLAGS :=
$(eval $(call DEFAULT_VAR,CPPFLAGSKCPPFLAGS,$(DEFAULT_CPPFLAGSDEFAULT_KCPPFLAGS)))
 
# User controllable nasm flags.
override DEFAULT_NASMFLAGSDEFAULT_KNASMFLAGS := -F dwarf -g
$(eval $(call DEFAULT_VAR,NASMFLAGSKNASMFLAGS,$(DEFAULT_NASMFLAGSDEFAULT_KNASMFLAGS)))
 
# User controllable linker flags. We set none by default.
override DEFAULT_LDFLAGSDEFAULT_KLDFLAGS :=
$(eval $(call DEFAULT_VAR,LDFLAGSKLDFLAGS,$(DEFAULT_LDFLAGSDEFAULT_KLDFLAGS)))
 
# Internal C flags that should not be changed by the user.
override CFLAGSKCFLAGS += \
-Wall \
-Wextra \
Line 310:
 
# Internal C preprocessor flags that should not be changed by the user.
override CPPFLAGSKCPPFLAGS := \
-I src \
$(CPPFLAGSKCPPFLAGS) \
-MMD \
-MP
 
# Internal linker flags that should not be changed by the user.
override LDFLAGSKLDFLAGS += \
-m elf_x86_64 \
-nostdlib \
Line 328:
 
# Internal nasm flags that should not be changed by the user.
override NASMFLAGSKNASMFLAGS += \
-Wall \
-f elf64
Line 347:
bin/$(KERNEL): GNUmakefile linker.ld $(OBJ)
mkdir -p "$$(dirname $@)"
$(LDKLD) $(OBJ) $(LDFLAGSKLDFLAGS) -o $@
 
# Include header dependencies.
Line 355:
obj/%.c.o: src/%.c GNUmakefile
mkdir -p "$$(dirname $@)"
$(CCKCC) $(CFLAGSKCFLAGS) $(CPPFLAGSKCPPFLAGS) -c $< -o $@
 
# Compilation rules for *.S files.
obj/%.S.o: src/%.S GNUmakefile
mkdir -p "$$(dirname $@)"
$(CCKCC) $(CFLAGSKCFLAGS) $(CPPFLAGSKCPPFLAGS) -c $< -o $@
 
# Compilation rules for *.asm (nasm) files.
obj/%.asm.o: src/%.asm GNUmakefile
mkdir -p "$$(dirname $@)"
nasm $(NASMFLAGSKNASMFLAGS) $< -o $@
 
# Remove object files and the final executable.
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu