# 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
FILES:=$(patsubst %.c,%.o,$(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 ${FILES} $(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

distclean: clean
	rm -f i3-config-wizard