2018-02-07 05:42:59 +00:00
|
|
|
CROSS_DIR = ~/opt/cross/bin
|
|
|
|
AS = nasm
|
|
|
|
CC = $(CROSS_DIR)/x86_64-elf-gcc
|
|
|
|
LD = $(CROSS_DIR)/x86_64-elf-gcc
|
|
|
|
DAS = $(CROSS_DIR)/x86_64-elf-objdump
|
2018-01-31 19:10:24 +00:00
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
INCLUDE_DIR = include
|
|
|
|
MK = mk
|
2018-02-06 21:25:47 +00:00
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
LD_SCRIPT = $(MK)/linker.ld
|
|
|
|
GRUB_CFG = $(MK)/grub.cfg
|
2018-02-06 21:25:47 +00:00
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
C_WARNINGS = -Wall \
|
2018-01-31 19:10:24 +00:00
|
|
|
-Werror \
|
|
|
|
-Wextra \
|
|
|
|
-Wpedantic \
|
|
|
|
-Winit-self \
|
|
|
|
-Wunused-parameter \
|
|
|
|
-Wuninitialized \
|
|
|
|
-Wfloat-equal \
|
|
|
|
-Wshadow \
|
|
|
|
-Wcast-qual \
|
|
|
|
-Wcast-align \
|
|
|
|
-Wstrict-prototypes \
|
|
|
|
-Wpointer-arith \
|
|
|
|
-Wno-comment
|
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
C_FLAGS = -std=c11 \
|
2018-01-31 19:10:24 +00:00
|
|
|
-g \
|
|
|
|
-c \
|
|
|
|
-O2 \
|
|
|
|
-mcmodel=kernel \
|
|
|
|
-fno-exceptions \
|
|
|
|
-ffreestanding \
|
|
|
|
-mno-red-zone \
|
|
|
|
-mno-mmx \
|
|
|
|
-mno-sse \
|
|
|
|
-mno-sse2 \
|
|
|
|
-masm=intel \
|
|
|
|
$(C_WARNINGS) \
|
2018-02-06 21:25:47 +00:00
|
|
|
$(addprefix -I, $(INCLUDE_DIR))
|
2018-01-31 19:10:24 +00:00
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
AS_FLAGS = -w+all \
|
2018-01-31 19:10:24 +00:00
|
|
|
-f elf64 \
|
|
|
|
-F dwarf \
|
|
|
|
-g \
|
2018-02-07 05:42:59 +00:00
|
|
|
$(addprefix -I, $(INCLUDE_DIR)/)
|
2018-01-31 19:10:24 +00:00
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
LD_FLAGS = -lgcc \
|
2018-01-31 19:10:24 +00:00
|
|
|
-nodefaultlibs \
|
|
|
|
-nostartfiles \
|
|
|
|
-nostdlib \
|
|
|
|
-Wl,-n \
|
|
|
|
-Wl,--build-id=none
|
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
COMP = $(CC) $(C_FLAGS) $^ -o $@
|
|
|
|
COMPAS = $(AS) $(AS_FLAGS) $^ -o $@
|
|
|
|
LINK = $(LD) $(LD_FLAGS) $^ -o $@
|
|
|
|
DUMP = $(DAS) -M intel -D $^ > $@
|
2018-01-31 19:10:24 +00:00
|
|
|
|
2018-02-07 05:42:59 +00:00
|
|
|
include Rules.top
|