aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 5ceade20e0e701ac20188b6c33360adbdbcecf83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Temporary development value, real default will be /usr/local
export PREFIX           ?= $(shell pwd)/ftag_prefix
# Temporary development value, real default will be $HOME/.cache/ftag
export FTAG_CACHE_DIR   ?= $(shell pwd)/ftag_cache
# Temporary development value, real default will be $HOME/.config/ftag
export FTAG_CONFIG_DIR  ?= $(shell pwd)/ftag_config

export PROG             ?= ftag
export CFLAGS           ?= -O0 -g3
export LDFLAGS          ?=
export LIBS             ?=



export FTAG_VERSION := 0.1
FTAG_ARCHIVE_DIR    := ftag-$(FTAG_VERSION)
FTAG_ARCHIVE        := ftag-$(FTAG_VERSION).tar.gz

export __CFLAGS := -std=c99 -Wall \
                   -DFTAG_PREFIX=\"$(PREFIX)\" \
                   -DFTAG_CACHE_DIR=\"$(FTAG_CACHE_DIR)\" \
                   -DFTAG_CONFIG_DIR=\"$(FTAG_CONFIG_DIR)\" \
                   -DFTAG_VERSION=\"$(FTAG_VERSION)\" \
                   -D_POSIX_C_SOURCE=200809L \
                   $(shell pkg-config --cflags sqlite3)
export __LIBS   := $(shell pkg-config --libs sqlite3)

all: $(PROG)

$(PROG): src/main.o src/input.o src/system.o src/utils.o
	$(CC) -o $@ $^ $(__LIBS) $(LDFLAGS) $(LIBS)
# Create cache and config directories at compile time since they will be used by
# the user who compiled ftag
# TODO: create this directories from "ftag init"
	mkdir -p $(FTAG_CACHE_DIR)
	mkdir -p $(FTAG_CONFIG_DIR)

src/main.o: src/main.c src/input.h src/system.h src/utils.h
src/input.o: src/input.c src/input.h
src/system.o: src/system.c src/system.h
src/utils.o: src/utils.c src/system.h src/utils.h
.c.o:
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c $<

install: $(PROG)
	mkdir -p $(PREFIX)/bin
	install --mode=0755 $(PROG) $(PREFIX)/bin/

	mkdir -p $(PREFIX)/share/ftag/sql
	install --mode=0644 sql/init.sql $(PREFIX)/share/ftag/sql/

uninstall:
	rm -f  $(PREFIX)/bin/$(PROG)
	rm -rf $(PREFIX)/share/ftag $(FTAG_CACHE_DIR) $(FTAG_CONFIG_DIR)

clean:
	rm -rf $(PROG) $(FTAG_ARCHIVE_DIR) $(FTAG_ARCHIVE) src/*.o

fullclean: clean
	rm -rf $(FTAG_CACHE_DIR) $(FTAG_CONFIG_DIR)

dist:
	mkdir -p $(FTAG_ARCHIVE_DIR) \
                 $(FTAG_ARCHIVE_DIR)/src \
                 $(FTAG_ARCHIVE_DIR)/sql
	cp README.org COPYING Makefile $(FTAG_ARCHIVE_DIR)/
	cp src/main.c src/Makefile $(FTAG_ARCHIVE_DIR)/src/
	cp sql/init.sql $(FTAG_ARCHIVE_DIR)/sql/
	tar -czf $(FTAG_ARCHIVE) $(FTAG_ARCHIVE_DIR)

.PHONY: all clean dist fullclean install uninstall