WARN += -Wall -Werror
OPT += -O2
DEBUG += -g3
-ABI += -freg-struct-return
+TFLAGS += -freg-struct-return # Target and ABI flags
ifeq ($(V),)
V := @
else
override V :=
endif
-CXXFLAGS += $(DEFS) $(CXXINCS) $(CXXWARN) $(OPT) $(DEBUG) $(ABI)
+CXXFLAGS += $(DEFS) $(CXXINCS) $(CXXWARN) $(OPT) $(DEBUG) $(TFLAGS)
BUILDCXXFLAGS += $(BUILDDEFS) $(CXXWARN) $(OPT) $(DEBUG)
-CFLAGS += $(CINCS) $(DEFS) $(CWARN) $(OPT) $(DEBUG) $(ABI)
+CFLAGS += $(CINCS) $(DEFS) $(CWARN) $(OPT) $(DEBUG) $(TFLAGS)
BUILDCFLAGS += $(BUILDDEFS) $(CWARN) $(OPT) $(DEBUG)
+ASFLAGS += $(TFLAGS)
+LDFLAGS += $(TFLAGS)
+
.PHONY: all default rerun dep servers clean distclean
.SUFFIXES:
ifeq ($(ARCH),x86)
CROSS := i686-polintos-
DEFS += -DBITFIELD_LE -D__LITTLE_ENDIAN
+TFLAGS += -m32
VALIDARCH := yes
endif
ifeq ($(ARCH),x64)
CROSS := x86_64-polintos-
DEFS += -DBITFIELD_LE -D__LITTLE_ENDIAN
+TFLAGS += -m64
VALIDARCH := yes
endif
$(BUILDDIR)/kernel: $(OBJS) $(DIR)linker-script
@echo $(COMP): Linking kernel: $@
- @$(MKDIR) $(dir $@)
- @$(LD) $(OBJS) -o "$@" -T$(DIR)linker-script
+ $(V)$(MKDIR) $(dir $@)
+ $(V)$(LD) $(LDFLAGS) $(OBJS) -o "$@" -T$(DIR)linker-script
$(BUILDDIR)/kernel.stripped: $(BUILDDIR)/kernel
@echo $(COMP): Stripping kernel: $@
- @$(STRIP) $(BUILDDIR)/kernel -o "$@"
+ $(V)$(STRIP) $(BUILDDIR)/kernel -o "$@"
$(BUILDDIR)/kernel: $(OBJS) $(LIBS) $(DIR)linker-script
@echo $(COMP): Linking kernel: $@
- @$(MKDIR) $(dir $@)
- @$(CXX) $(OBJS) $(LIBS) -lgcc -lsupc++ -nostdlib -o "$@" -Wl,-T$(DIR)linker-script
+ $(V)$(MKDIR) $(dir $@)
+ $(V)$(CXX) $(LDFLAGS) $(OBJS) $(LIBS) -lgcc -lsupc++ \
+ -nostdlib -o "$@" -Wl,-T$(DIR)linker-script
# GRUB refuses to use the addresses in the multiboot header if it
# finds a valid ELF header, so the dd hacks a zero into the high byte
$(BUILDDIR)/kernel.stripped: $(BUILDDIR)/kernel
@echo $(COMP): Stripping kernel: $@
- @$(STRIP) $(BUILDDIR)/kernel -o "$@"
- @dd if=/dev/zero of=$(BUILDDIR)/kernel.stripped conv=notrunc \
- bs=1 count=1 seek=67
+ $(V)$(STRIP) $(BUILDDIR)/kernel -o "$@"
+ $(V)dd if=/dev/zero of=$(BUILDDIR)/kernel.stripped conv=notrunc \
+ bs=1 count=1 seek=67