]> Pileus Git - lackey/blob - makefile
Rename CC variable to GCC
[lackey] / makefile
1 # lackey - curses calendar program
2 # See COPYING file for copyright and license details.
3
4 -include config.mk
5
6 # Settings
7 VERSION   ?= 0.1-rc1
8 PREFIX    ?= /usr/local
9 MANPREFIX ?= $(PREFIX)/share/man
10
11 # Compiler
12 GCC       ?= gcc
13 CFLAGS    ?= -Wall --std=c99
14 CPPFLAGS  ?= -Isrc
15 LDFLAGS   ?= -lncursesw -lical
16
17 # Sources
18 PROG      ?= lackey
19 PROG_SRC  ?= main view date cal util 
20 TEST      ?= test
21 TEST_SRC  ?= test date util
22 VIEWS     ?= day week month year events todo settings help
23 CALS      ?= dummy ical
24
25 # Targets
26 all: $(PROG)
27
28 clean:
29         rm -f src/*.o views/*.o cals/*.o $(PROG) $(TEST) 
30
31 dist:
32         tar -czf $(PROG)-$(VERSION).tar.gz --transform s::$(PROG)-$(VERSION)/: \
33                 README COPYING config.mk.example makefile */*.txt */*.1 */*.c */*.h
34
35 install: all
36         install -m 755 -D $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
37         install -m 644 -D doc/$(PROG).1 $(DESTDIR)$(MANPREFIX)/man1/$(PROG).1
38
39 uninstall:
40         rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG)
41         rm -f $(DESTDIR)$(MANPREFIX)/man1/$(PROG).1
42
43 # Rules
44 $(PROG): $(PROG_SRC:%=src/%.o) $(VIEWS:%=views/%.o) $(CALS:%=cals/%.o)
45         $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
46
47 $(TEST): $(TEST_SRC:%=src/%.o) $(CALS:%=cals/%.o)
48         $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
49
50 %.o: %.c $(wildcard src/*.h) makefile
51         $(GCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
52
53 .PHONY: all clean dist install uninstall