56 lines
1.0 KiB
Makefile
56 lines
1.0 KiB
Makefile
|
.POSIX:
|
||
|
|
||
|
SRC_DIR = src
|
||
|
OBJ_DIR = obj
|
||
|
|
||
|
ALL_OBJS = $(wildcard $(OBJ_DIR)/*.o)
|
||
|
|
||
|
SRC = $(wildcard $(SRC_DIR)/*.c)
|
||
|
OBJ = $(addprefix $(OBJ)
|
||
|
|
||
|
|
||
|
X_STRING_DIR = $(SRC_DIR)/xlibc/x_string
|
||
|
X_STRING_SRC = $(wildcard $(X_STRING_DIR)/src/*.c)
|
||
|
X_STRING_OBJ = $(X_STRING_SRC:.c=.o)
|
||
|
|
||
|
SQLITE_DIR = $(SRC_DIR)/sqlite3
|
||
|
SQLITE_SRC = $(wildcard $(SQLITE_DIR)/src/*.c)
|
||
|
SQLITE_OBJ = $(SQLITE_SRC:.c=.o)
|
||
|
|
||
|
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) < dodo.schema
|
||
|
|
||
|
uninstall:
|
||
|
rm -rf $(HOME_DIR)$(CONFIG_DIR)
|
||
|
|
||
|
clean_all:
|
||
|
rm -f dodo $(OBJ)
|
||
|
|
||
|
clean:
|
||
|
rm -f dodo dodo.o x_string.o
|
||
|
|
||
|
.PHONY: all clean_all clean install uninstall
|