.POSIX: 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 HOME_DIR = $$HOME CONFIG_DIR = /.config/dodo DB_FILE = $(CONFIG_DIR)/dodo.db DFLAGS = -DDB_PATH=\"$(DB_FILE)\" all: dodo $(OBJ): $(X_STRING_OBJ) $(CC) -c -o $(OBJ_DIR)/$(@F) -I./$(INC_DIRS)/ $(DFLAGS) $(SRC) $(X_STRING_OBJ): $(CC) -c -o $(OBJ_DIR)/$(@F) $(X_STRING_SRC) $(SQLITE_OBJ): $(CC) -c -o $(OBJ_DIR)/$(@F) $(SQLITE_SRC) dodo: $(OBJ) $(X_STRING_OBJ) $(SQLITE_OBJ) $(CC) -o $@ $(ALL_OBJS) install: mkdir -p $(HOME_DIR)$(CONFIG_DIR) sqlite3 $(HOME_DIR)$(DB_FILE) < $(SQLITE_DB_SCHEMA) uninstall: rm -rf $(HOME_DIR)$(CONFIG_DIR) clean_all: rm -f dodo $(ALL_OBJS) clean: rm -f dodo $(OBJ) $(X_STRING_OBJ) .PHONY: all clean_all clean install uninstall