aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile20
1 files changed, 10 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 1a48db3..793d888 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ MAKEFLAGS += --no-builtin-variables
# Compiler, Linker, and Assembler
CC := gcc
AR := ar
-AS := nasm
+AS := gcc
PKG := PKG_CONFIG_PATH=lib/pkgconfig pkg-config
OS := linux
@@ -22,26 +22,26 @@ SRC_DIR := src
OBJ_DIR := obj
TST_DIR := test
-# C runtime library
-CINIT := $(LIB_DIR)/crt/crt1.o $(LIB_DIR)/crt/x86_64/crti.o `gcc --print-file-name=crtbeginS.o`
-CFINI := `gcc --print-file-name=crtendS.o` $(LIB_DIR)/crt/x86_64/crtn.o
+# runtime library
+INIT = $(RT1) $(RTI) `gcc --print-file-name=crtbeginT.o`
+FINI = `gcc --print-file-name=crtend.o` $(RTN) $(RT3)
# Flags, Libraries and Includes
CFLAGS := -g -march=native -fno-strict-aliasing -fwrapv -fms-extensions -Wno-microsoft-anon-tag
-STATIC := -nodefaultlibs -nostartfiles -nostdinc -static
-AFLAGS := -f elf64
+STATIC := -ffreestanding -nodefaultlibs -nostartfiles -nostdinc -static
+AFLAGS := -g
INCS := -I $(SYS_DIR)/$(OS)/$(ARCH) -I $(SYS_DIR)/$(OS)/port -I $(INC_DIR) -isystem $(INC_DIR)/vendor/libc
ELIBS := -L$(LIB_DIR) -lc
# Named generic rules (must be evaluated lazily)
COMPILE = @echo "CC "$(@:$(OBJ_DIR)/%=%);\
- $(CC) -MD $(CFLAGS) $(TCFLAGS) $(INCS) $(TINCS) -o $@ -c $<
+ $(CC) -MD $(CFLAGS) $(STATIC) $(TCFLAGS) $(INCS) $(TINCS) -o $@ -c $<
LINK = @echo "LD "$(@:$(OBJ_DIR)/%=%);\
- $(CC) -MD $(CFLAGS) $(STATIC) $(TCFLAGS) -o $@ $(CINIT) $< $(CFINI) $(TLIBS) $(ELIBS)
+ $(CC) -MD $(CFLAGS) $(STATIC) $(TCFLAGS) -o $@ $(INIT) $< $(TLIBS) $(ELIBS) $(FINI)
COMPLINK = @echo "CC "$(@:$(OBJ_DIR)/%=%);\
- $(CC) -MD $(CFLAGS) $(STATIC) $(TCFLAGS) $(INCS) $(TINCS) -o $@ $(CINIT) $^ $(CFINI) $(TLIBS) $(ELIBS)
+ $(CC) -MD $(CFLAGS) $(STATIC) $(TCFLAGS) $(INCS) $(TINCS) -o $@ $(INIT) $^ $(TLIBS) $(ELIBS) $(FINI)
ASSEMBLE = @echo "AS "$(@:$(OBJ_DIR)/%=%);\
- $(AS) $(AFLAGS) $(TCFLAGS) -o $@ $<
+ $(AS) $(AFLAGS) -o $@ -c $<
ARCHIVE = @echo "AR "$(@:$(OBJ_DIR)/%=%);\
$(AR) crs $@ $^