
#
#
#
YACC = bison -dk
LEX = flex

#
# compiler specific
#
CC = gcc
CFLAGS = -O -Wall -Wmissing-prototypes
#CFLAGS = -O -Wall -Wmissing-prototypes -DYYDEBUG=1
LIBS = -lfl

#
# the syscall generator program
#

COBJS = check.o generate.o list.o main.o pars.o scan.o
DEPENDENCIES = $(addprefix ./.deps/, $(patsubst %.o,%.P,$(COBJS)))

%.o: %.c
	@echo "$(CC) $(CFLAGS) $(MODEL) -c $< -o $@"; \
	$(CC) -Wp,-MD,.deps/$(@:.o=.P) $(CFLAGS) $(MODEL) -c $< -o $@


gen-syscall: $(COBJS)
	$(CC) $(CFLAGS) -o $@ $(COBJS) $(LIBS)


pars.c pars.h: pars.y
	$(YACC) --output=pars.c pars.y

scan.c: scan.l pars.y
	$(LEX) -oscan.c scan.l

#
# macros for cleaning up
#
clean:
	$(RM) $(COBJS)
	$(RM) gen-syscall

distclean:
	$(MAKE) clean
	$(RM) -r .deps
	$(RM) *~

#
# dependencies
#
DEPS_MAGIC := $(shell mkdir ./.deps > /dev/null 2>&1 || :)

-include $(DEPENDENCIES)
