Makefile: bikesheddingly replace ${} with $()
[dmenu.git] / Makefile
1 # dmenu - dynamic menu
2 # See LICENSE file for copyright and license details.
3
4 include config.mk
5
6 SRC = drw.c dmenu.c stest.c util.c
7 OBJ = $(SRC:.c=.o)
8
9 all: options dmenu stest
10
11 options:
12         @echo dmenu build options:
13         @echo "CFLAGS   = $(CFLAGS)"
14         @echo "LDFLAGS  = $(LDFLAGS)"
15         @echo "CC       = $(CC)"
16
17 .c.o:
18         @echo CC $<
19         @$(CC) -c $(CFLAGS) $<
20
21 config.h:
22         @echo creating $@ from config.def.h
23         @cp config.def.h $@
24
25 $(OBJ): arg.h config.h config.mk drw.h
26
27 dmenu: dmenu.o drw.o util.o
28         @echo CC -o $@
29         @$(CC) -o $@ dmenu.o drw.o util.o $(LDFLAGS)
30
31 stest: stest.o
32         @echo CC -o $@
33         @$(CC) -o $@ stest.o $(LDFLAGS)
34
35 clean:
36         @echo cleaning
37         @rm -f dmenu stest $(OBJ) dmenu-$(VERSION).tar.gz
38
39 dist: clean
40         @echo creating dist tarball
41         @mkdir -p dmenu-$(VERSION)
42         @cp LICENSE Makefile README arg.h config.def.h config.mk dmenu.1 \
43                 drw.h util.h dmenu_path dmenu_run stest.1 $(SRC) \
44                 dmenu-$(VERSION)
45         @tar -cf dmenu-$(VERSION).tar dmenu-$(VERSION)
46         @gzip dmenu-$(VERSION).tar
47         @rm -rf dmenu-$(VERSION)
48
49 install: all
50         @echo installing executables to $(DESTDIR)$(PREFIX)/bin
51         @mkdir -p $(DESTDIR)$(PREFIX)/bin
52         @cp -f dmenu dmenu_path dmenu_run stest $(DESTDIR)$(PREFIX)/bin
53         @chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu
54         @chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_path
55         @chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_run
56         @chmod 755 $(DESTDIR)$(PREFIX)/bin/stest
57         @echo installing manual pages to $(DESTDIR)$(MANPREFIX)/man1
58         @mkdir -p $(DESTDIR)$(MANPREFIX)/man1
59         @sed "s/VERSION/$(VERSION)/g" < dmenu.1 > $(DESTDIR)$(MANPREFIX)/man1/dmenu.1
60         @sed "s/VERSION/$(VERSION)/g" < stest.1 > $(DESTDIR)$(MANPREFIX)/man1/stest.1
61         @chmod 644 $(DESTDIR)$(MANPREFIX)/man1/dmenu.1
62         @chmod 644 $(DESTDIR)$(MANPREFIX)/man1/stest.1
63
64 uninstall:
65         @echo removing executables from $(DESTDIR)$(PREFIX)/bin
66         @rm -f $(DESTDIR)$(PREFIX)/bin/dmenu
67         @rm -f $(DESTDIR)$(PREFIX)/bin/dmenu_path
68         @rm -f $(DESTDIR)$(PREFIX)/bin/dmenu_run
69         @rm -f $(DESTDIR)$(PREFIX)/bin/stest
70         @echo removing manual page from $(DESTDIR)$(MANPREFIX)/man1
71         @rm -f $(DESTDIR)$(MANPREFIX)/man1/dmenu.1
72         @rm -f $(DESTDIR)$(MANPREFIX)/man1/stest.1
73
74 .PHONY: all options clean dist install uninstall