diff --git a/Makefile b/Makefile index c6a5caf..ebc37f0 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,30 @@ .POSIX: +# DIRECTORIES SRC_DIR = src OBJ_DIR = obj - -ALL_OBJS = $(wildcard $(OBJ_DIR)/*.o) - -SRC = $(wildcard $(SRC_DIR)/*.c) -OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(SRC:.c=.o))) - - X_STRING_DIR = $(SRC_DIR)/xlibc/x_string -X_STRING_SRC = $(wildcard $(X_STRING_DIR)/src/*.c) -X_STRING_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(X_STRING_SRC:.c=.o))) - SQLITE_DIR = $(SRC_DIR)/sqlite3 -SQLITE_SRC = $(wildcard $(SQLITE_DIR)/src/*.c) -SQLITE_OBJ = $(addprefix $(OBJ_DIR)/, $(notdir $(SQLITE_SRC:.c=.o))) -SQLITE_DB_SCHEMA = $(SRC_DIR)/dodo.schema -INC_DIRS=$(X_STRING_DIR)/src +# Sources +SRC = $(wildcard $(SRC_DIR)/*.c) +X_STRING_SRC = $(wildcard $(X_STRING_DIR)/src/*.c) +SQLITE_SRC = $(wildcard $(SQLITE_DIR)/src/*.c) + +# Headers +HEADERS = $(wildcard $(SRC_DIR)/*.h) +X_STRING_HEADERS = $(wildcard $(X_STRING_DIR)/src/*.h) +SQLITE_HEADERS = $(wildcard $(SQLITE_DIR)/src/*.h) + +# Objects +OBJ = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRC)) +X_STRING_OBJ = $(patsubst $(X_STRING_DIR)/src/%.c, $(OBJ_DIR)/%.o, $(X_STRING_SRC)) +SQLITE_OBJ = $(patsubst $(SQLITE_DIR)/src/%.c, $(OBJ_DIR)/%.o, $(SQLITE_SRC)) +ALL_OBJS = $(wildcard $(OBJ_DIR)/*.o) + + +SQLITE_DB_SCHEMA = $(SRC_DIR)/dodo.schema +INC_DIRS=-I./$(X_STRING_DIR)/src/ -I./$(SQLITE_DIR)/src/ HOME_DIR = $$HOME CONFIG_DIR = /.config/dodo @@ -28,16 +34,16 @@ DFLAGS = -DDB_PATH=\"$(DB_FILE)\" all: dodo -$(OBJ): $(X_STRING_OBJ) - $(CC) -c -o $(OBJ_DIR)/$(@F) -I./$(INC_DIRS)/ $(DFLAGS) $(SRC) +$(OBJ): $(X_STRING_OBJ) $(SQLITE_OBJ) $(HEADERS) + $(CC) -c -o $(OBJ_DIR)/$(@F) $(INC_DIRS) $(DFLAGS) $(SRC_DIR)/$(@F:.o=.c) -$(X_STRING_OBJ): +$(X_STRING_OBJ): $(X_STRING_HEADERS) $(CC) -c -o $(OBJ_DIR)/$(@F) $(X_STRING_SRC) -$(SQLITE_OBJ): +$(SQLITE_OBJ): $(SQLITE_HEADERS) $(CC) -c -o $(OBJ_DIR)/$(@F) $(SQLITE_SRC) -dodo: $(OBJ) $(X_STRING_OBJ) $(SQLITE_OBJ) +dodo: $(OBJ) $(CC) -o $@ $(ALL_OBJS) install: