aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 77f176b2fc70e041a4631a8d7d1ab120eb4132fe (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
72
73
74
75
76
77
78
NAME=plock
CC = gcc
CFLAGS = -Isrc
LIBS = -lX11

PREFIX = /usr/local
MANPREFIX = $(PREFIX)/man

all: bin/$(NAME)

debug: CFLAGS += -Wall -DEBUG -g
debug: bin/$(NAME)

app_sources = $(wildcard src/*.c src/io/*.c src/pattern/*.c src/utils/*.c)
app_objects = $(patsubst src/%.c, bin/%.o, $(app_sources))

bin/$(NAME): bin/main.o bin/args.o bin/utils/utilities.o bin/utils/args.o bin/pattern/pattern.o bin/pattern/next.o bin/io/io.o bin/io/text.o bin/io/svg.o # $(app_objects)
	$(CC) $(CFLAGS) $^ -o $@ $(LIBS)

bin/main.o: src/main.c bin
	$(CC) $(CFLAGS) -c $< -o $@

bin/args.o: src/args.c bin
	$(CC) $(CFLAGS) -c $< -o $@

bin/utils/utilities.o: src/utils/utilities.c bin bin/utils
	$(CC) $(CFLAGS) -c $< -o $@

bin/utils/args.o: src/utils/args.c bin bin/utils
	$(CC) $(CFLAGS) -c $< -o $@

bin/pattern/pattern.o: src/pattern/pattern.c bin bin/pattern
	$(CC) $(CFLAGS) -c $< -o $@

bin/pattern/next.o: src/pattern/next.c bin bin/pattern
	$(CC) $(CFLAGS) -c $< -o $@

bin/io/io.o: src/io/io.c bin bin/io
	$(CC) $(CFLAGS) -c $< -o $@

bin/io/text.o: src/io/text.c bin bin/io
	$(CC) $(CFLAGS) -c $< -o $@

bin/io/svg.o: src/io/svg.c bin bin/io
	$(CC) $(CFLAGS) -c $< -o $@

bin:
	mkdir -p $@

bin/io:
	mkdir -p $@

bin/pattern:
	mkdir -p $@

bin/utils:
	mkdir -p $@

clean:
	rm -rf bin/*

install: bin/$(NAME)
	@echo INSTALL execuatble
	mkdir -p $(PREFIX)/bin
	cp $< $(PREFIX)/bin/$(NAME)
	chmod 755 $(PREFIX)/bin/$(NAME)
	@echo INSTALL man page
	mkdir -p $(MANPREFIX)/man1
	gzip -c doc/$(NAME).1  > $(MANPREFIX)/man1/$(NAME).1.gz
	chmod 644 $(MANPREFIX)/man1/$(NAME).1.gz

uninstall:
	@echo REMOVE execuatble
	rm -f $(PREFIX)/bin/$(NAME)
	@echo REMOVE man page
	rm -f $(MANPREFIX)/man1/$(NAME).1.gz

.PHONY: clean install uninstall