]> git.sur5r.net Git - i3/i3/blob - i3-config-wizard/Makefile
Makefile: properly make 'clean'
[i3/i3] / i3-config-wizard / Makefile
1 # Default value so one can compile i3-input standalone
2 TOPDIR=..
3
4 include $(TOPDIR)/common.mk
5
6 # Depend on the object files of all source-files in src/*.c and on all header files
7 FILES:=$(patsubst %.c,%.o,$(wildcard *.c))
8 HEADERS:=$(wildcard *.h)
9
10 # Depend on the specific file (.c for each .o) and on all headers
11 %.o: %.c ${HEADERS}
12         echo "CC $<"
13         $(CC) $(CFLAGS) -c -o $@ $<
14
15 all: cfgparse.y.o cfgparse.yy.o ${FILES}
16         echo "LINK i3-config-wizard"
17         $(CC) -o i3-config-wizard $^ $(LDFLAGS)
18
19 cfgparse.yy.o: cfgparse.l cfgparse.y.o ${HEADERS}
20         echo "LEX $<"
21         flex -i -o$(@:.o=.c) $<
22         $(CC) $(CFLAGS) -c -o $@ $(@:.o=.c)
23
24 cfgparse.y.o: cfgparse.y ${HEADERS}
25         echo "YACC $<"
26         bison --debug --verbose -b $(basename $< .y) -d $<
27         $(CC) $(CFLAGS) -c -o $@ $(<:.y=.tab.c)
28
29
30 install: all
31         echo "INSTALL"
32         $(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/bin
33         $(INSTALL) -m 0755 i3-config-wizard $(DESTDIR)$(PREFIX)/bin/
34
35 clean:
36         rm -f *.o cfgparse.tab.{c,h} cfgparse.output cfgparse.yy.c
37
38 distclean: clean
39         rm -f i3-config-wizard