diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..05ef562 --- /dev/null +++ b/Makefile @@ -0,0 +1,41 @@ +SRC_DIR = src +CMD_DIR = cmd +TST_DIR = test + +OBJ_DIR = obj + +CMD_SRC = $(wildcard $(CMD_DIR)/*.c) +CMD_OBJ = $(CMD_SRC:%=$(OBJ_DIR)/%.o) + +TST_SRC = $(wildcard $(TST_DIR)/*.c) +TST_RUN = $(TST_SRC:$(TST_DIR)/%.c=$(OBJ_DIR)/test_runner/%) + +CC_SRC = $(wildcard $(SRC_DIR)/*.c) +CC_OBJ = $(CC_SRC:%=$(OBJ_DIR)/%.o) + +CFLAGS = -Wall -I$(SRC_DIR) +CFLAGS += -g +LDFLAGS = + +$(OBJ_DIR)/%.c.o: %.c + @mkdir -p $(@D) + $(CC) $(CFLAGS) -o $@ -c $< + +app: $(CC_OBJ) $(CMD_OBJ) + @mkdir -p $(@D) + $(CC) $(LDFLAGS) $(CC_OBJ) $(CMD_OBJ) -o $@ + +$(OBJ_DIR)/test_runner/%: $(OBJ_DIR)/$(TST_DIR)/%.c.o $(CC_OBJ) + @mkdir -p $(@D) + $(CC) $(LDFLAGS) $(CC_OBJ) $< -o $@ + +.PHONY: test +test: $(TST_RUN) + $(foreach var,$(TST_RUN),./$(var) &&) true + +.PHONY: all +all: app $(TST_RUN) + +.PHONY: clean +clean: + @$(RM) -rf obj/ |
