41 lines
1.1 KiB
Makefile
41 lines
1.1 KiB
Makefile
# Default value so one can compile i3-input standalone
|
|
TOPDIR=..
|
|
|
|
include $(TOPDIR)/common.mk
|
|
|
|
# Depend on the object files of all source-files in src/*.c and on all header files
|
|
AUTOGENERATED:=cfgparse.tab.c cfgparse.yy.c
|
|
FILES:=$(patsubst %.c,%.o,$(filter-out $(AUTOGENERATED),$(wildcard *.c)))
|
|
HEADERS:=$(wildcard *.h)
|
|
|
|
# Depend on the specific file (.c for each .o) and on all headers
|
|
%.o: %.c ${HEADERS}
|
|
echo "CC $<"
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
all: cfgparse.y.o cfgparse.yy.o ${FILES}
|
|
echo "LINK i3-config-wizard"
|
|
$(CC) -o i3-config-wizard $^ $(LDFLAGS)
|
|
|
|
cfgparse.yy.o: cfgparse.l cfgparse.y.o ${HEADERS}
|
|
echo "LEX $<"
|
|
flex -i -o$(@:.o=.c) $<
|
|
$(CC) $(CFLAGS) -c -o $@ $(@:.o=.c)
|
|
|
|
cfgparse.y.o: cfgparse.y ${HEADERS}
|
|
echo "YACC $<"
|
|
bison --debug --verbose -b $(basename $< .y) -d $<
|
|
$(CC) $(CFLAGS) -c -o $@ $(<:.y=.tab.c)
|
|
|
|
|
|
install: all
|
|
echo "INSTALL"
|
|
$(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/bin
|
|
$(INSTALL) -m 0755 i3-config-wizard $(DESTDIR)$(PREFIX)/bin/
|
|
|
|
clean:
|
|
rm -f *.o cfgparse.tab.{c,h} cfgparse.output cfgparse.yy.c
|
|
|
|
distclean: clean
|
|
rm -f i3-config-wizard
|