aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-05-01 16:26:24 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-05-01 16:26:24 -0700
commit6b739739968a0cc9b4d9909d8f4ffec30f4461dd (patch)
treebd30b31896b3c52292898bde404ce5dcbf76b04e /Makefile
parent5355432d71cb1e3347b73536ce5be4af1aefcadc (diff)
moved to static build with musl and integrated cscopes into dev tools
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile17
1 files changed, 12 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 0821ef6..2d6485c 100644
--- a/Makefile
+++ b/Makefile
@@ -10,16 +10,23 @@ BIN_DIR := bin
LIB_DIR := lib
OBJ_DIR := build
+# C runtime library
+CINIT := $(LIB_DIR)/crt/crt1.o $(LIB_DIR)/crt/x86_64/crti.o `gcc --print-file-name=crtbeginT.o`
+CFINI := `gcc --print-file-name=crtendS.o` $(LIB_DIR)/crt/x86_64/crtn.o
+
# Flags, Libraries and Includes
-CFLAGS := -g -O3 -march=native -ffast-math -fno-strict-aliasing -fwrapv -fms-extensions -Wno-microsoft-anon-tag -Wno-incompatible-function-pointer-types
+CFLAGS := -g -O3 -march=native \
+ -ffast-math -fno-strict-aliasing -fwrapv -fms-extensions \
+ -Wno-microsoft-anon-tag -Wno-incompatible-function-pointer-types
+STATIC := -static -nodefaultlibs -nostartfiles
AFLAGS := -f elf64
-INCS := -I$(INC_DIR)
-ELIBS :=
+INCS := -isystem $(INC_DIR)/vendor/libc -I $(INC_DIR)
+ELIBS := -L$(LIB_DIR) -lc
# Named generic rules (must be evaluated lazily)
COMPILE = $(CC) -MMD $(CFLAGS) $(TCFLAGS) $(INCS) $(TCINCS) -o $@ -c $<
-LINK = $(CC) -MMD $(CFLAGS) $(TCFLAGS) -o $@ $^ $(ELIBS) $(TCLIBS)
-COMPLINK = $(CC) -MMD $(CFLAGS) $(TCFLAGS) $(INCS) $(TCINCS) -o $@ $^ $(ELIBS) $(TCLIBS)
+LINK = $(CC) -MMD $(CFLAGS) $(STATIC) $(TCFLAGS) -o $@ $(CINIT) $^ $(CFINI) $(TCLIBS) $(ELIBS)
+COMPLINK = $(CC) -MMD $(CFLAGS) $(STATIC) $(TCFLAGS) $u$(INCS) $(TCINCS) -o $@ $(CINIT) $^ $(CFINI) $(TCLIBS) $(ELIBS)
ASSEMBLE = $(AS) $(AFLAGS) $(TCFLAGS) -o $@ $<
ARCHIVE = $(AR) crs $@ $^