mirror of
https://gitee.com/Lamdonn/varch.git
synced 2025-12-06 16:56:42 +08:00
69 lines
2.5 KiB
Makefile
69 lines
2.5 KiB
Makefile
##################################################################################
|
|
### config
|
|
##################################################################################
|
|
CC = gcc
|
|
BUILT_DIR = built
|
|
TARGET = app
|
|
|
|
##################################################################################
|
|
### source locations
|
|
##################################################################################
|
|
WORKSPACE = source
|
|
TESTSPACE = test
|
|
APPLICATION_PATH = $(WORKSPACE)/00_application
|
|
GENDATA_PATH = $(WORKSPACE)/01_general
|
|
VSTD_PATH = $(WORKSPACE)/02_vstd
|
|
CONTAINER_PATH = $(WORKSPACE)/03_container
|
|
ALGORITHM_PATH = $(WORKSPACE)/04_algorithm
|
|
PARSER_PATH = $(WORKSPACE)/05_parser
|
|
|
|
##################################################################################
|
|
### sources and head path
|
|
##################################################################################
|
|
include $(TESTSPACE)/test.mk
|
|
|
|
INCLUDE += -I $(APPLICATION_PATH)
|
|
INCLUDE += -I $(GENDATA_PATH)
|
|
INCLUDE += -I $(VSTD_PATH)
|
|
INCLUDE += -I $(CONTAINER_PATH)
|
|
INCLUDE += -I $(ALGORITHM_PATH)
|
|
INCLUDE += -I $(PARSER_PATH)
|
|
|
|
SOURCES += $(APPLICATION_PATH)/init.c
|
|
SOURCES += $(APPLICATION_PATH)/main.c
|
|
SOURCES += $(wildcard $(APPLICATION_PATH)/console/*.c)
|
|
SOURCES += $(wildcard $(GENDATA_PATH)/*.c)
|
|
SOURCES += $(wildcard $(VSTD_PATH)/*.c)
|
|
SOURCES += $(wildcard $(CONTAINER_PATH)/*.c)
|
|
SOURCES += $(wildcard $(ALGORITHM_PATH)/*.c)
|
|
SOURCES += $(wildcard $(PARSER_PATH)/*.c)
|
|
SOURCES += $(TEST_SRC)
|
|
|
|
##################################################################################
|
|
### targets and recipes
|
|
##################################################################################
|
|
OBJ_PATH = $(BUILT_DIR)/obj
|
|
BIN_PATH = $(BUILT_DIR)/bin
|
|
OBJS = $(patsubst %.c, $(OBJ_PATH)/%.o, $(SOURCES))
|
|
TAR_PATH = $(BIN_PATH)/$(TARGET)
|
|
|
|
# link
|
|
${TAR_PATH}:$(OBJS)
|
|
$(shell mkdir -p $(dir $@))
|
|
# @ $(CC) $(OBJS) -o $(TAR_PATH) -lm -lX11 -lpthread
|
|
@ $(CC) $(CFLAG) $(OBJS) -o $(TAR_PATH) -lm -lpthread
|
|
|
|
# compile
|
|
$(OBJ_PATH)/%.o:%.c
|
|
$(shell mkdir -p $(dir $@))
|
|
@ echo "compiling $(notdir $<)"
|
|
@ $(CC) $(CFLAG) $(INCLUDE) -c $< -o $@
|
|
|
|
.PHONY:clean
|
|
clean:
|
|
@echo "remove app and objs files ..."
|
|
$(shell rm $(BUILT_DIR)/$(WORKSPACE) -rf)
|
|
$(shell rm $(BUILT_DIR)/* -rf)
|
|
|
|
|