aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2021-04-22 09:48:30 -0700
committerNicholas Noll <nbnoll@eml.cc>2021-04-22 09:48:30 -0700
commit4bee1c911c0a710da47b62a31e84535d2e0b7c76 (patch)
tree05e86e31bfa55eebeb8b698e5e56590c66ab34ac /Makefile
parent1f312a24606b09cf1a41aa79946b1963a242f648 (diff)
chore(organize): restructured build to allow for parallel projects to sys functionality
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile17
1 files changed, 9 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index c518063..13473fa 100644
--- a/Makefile
+++ b/Makefile
@@ -6,11 +6,12 @@ PKG := pkg-config
# All needed build directories
INC_DIR := include
-SRC_DIR := sys
BIN_DIR := bin
+SYS_DIR := sys
LIB_DIR := lib
-OBJ_DIR := build
-TST_DIR := test
+SRC_DIR := src
+OBJ_DIR := .build
+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`
@@ -24,15 +25,15 @@ INCS := -I $(INC_DIR) -isystem $(INC_DIR)/vendor/libc
ELIBS := -L$(LIB_DIR) -lc
# Named generic rules (must be evaluated lazily)
-COMPILE = @echo "CC "$@;\
+COMPILE = @echo "CC "$(@:$(OBJ_DIR)/%=%);\
$(CC) -MD $(CFLAGS) $(TCFLAGS) $(INCS) $(TCINCS) -o $@ -c $<
-LINK = @echo "LD "$@;\
+LINK = @echo "LD "$(@:$(OBJ_DIR)/%=%);\
$(CC) -MD $(CFLAGS) $(STATIC) $(TCFLAGS) -o $@ $(CINIT) $< $(CFINI) $(TCLIBS) $(ELIBS)
-COMPLINK = @echo "CC "$@;\
+COMPLINK = @echo "CC "$(@:$(OBJ_DIR)/%=%);\
$(CC) -MD $(CFLAGS) $(STATIC) $(TCFLAGS) $(INCS) $(TCINCS) -o $@ $(CINIT) $^ $(CFINI) $(TCLIBS) $(ELIBS)
-ASSEMBLE = @echo "AS "$@;\
+ASSEMBLE = @echo "AS "$(@:$(OBJ_DIR)/%=%);\
$(AS) $(AFLAGS) $(TCFLAGS) -o $@ $<
-ARCHIVE = @echo "AR "$@;\
+ARCHIVE = @echo "AR "$(@:$(OBJ_DIR)/%=%);\
$(AR) crs $@ $^
include rules.mk