# 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