]> Pileus Git - ~andy/lamechat/blob - makefile
c64feaf83f2c43426e561730c6f6ade9fe893e3f
[~andy/lamechat] / makefile
1 # lamechat - curses chat program
2 # See COPYING file for 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 LDFLAGS   ?= -lncursesw -lexpat -lcrypto -lssl
15
16 # Sources
17 PROG      ?= lamechat
18 SOURCES   ?= main util args conf view chat net irc xmpp 
19
20 # Targets
21 all: $(PROG)
22
23 clean:
24         rm -f *.o $(PROG)
25
26 dist:
27         tar -czf $(PROG)-$(VERSION).tar.gz --transform s::$(PROG)-$(VERSION)/: \
28                 README COPYING config.mk.example makefile */*.txt */*.1 */*.c */*.h
29
30 install: all
31         install -m 755 -D $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
32         install -m 644 -D doc/$(PROG).1 $(DESTDIR)$(MANPREFIX)/man1/$(PROG).1
33
34 uninstall:
35         rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG)
36         rm -f $(DESTDIR)$(MANPREFIX)/man1/$(PROG).1
37
38 memcheck: $(PROG)
39         valgrind --log-file=valgrind.out \
40                  --track-origins=yes     \
41                  --leak-check=full       \
42                  --leak-resolution=high  \
43                  ./$(PROG)
44
45 # Rules
46 $(PROG): $(SOURCES:%=%.o)
47         $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS)
48
49 %.o: %.c $(wildcard *.h makefile config.mk)
50         $(GCC) $(CFLAGS) -c -o $@ $<
51
52 .PHONY: all clean dist install uninstall