diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -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 $@ $^ |