include ../../../Config.mk
override CROSS =
override FW_INCLUDES = -I$(FW_TOPDIR)/include/kernel -I$(FW_TOPDIR)/include
override FW_CFLAGS = $(FW_DEFINES) -DCD_TEST -I../include -O -g
override FW_LDFLAGS =

SRCDIR = ..

LSRCS =         $(SRCDIR)/cd.c \
		$(SRCDIR)/as_op_print.c \
		$(SRCDIR)/as_op_semcheck.c \
		$(SRCDIR)/as_op_tagsec.c \
                $(SRCDIR)/as_op_validate.c \
		cdlparser.tab.c \
		lex.pp_cd_yy.c

LOBJS =		$(sort $(patsubst %.c,%.o,$(LSRCS:$(SRCDIR)/%.c=%.o)))
FLEX = $(FW_TOPDIR)/bin/flex

include $(PP_BUILD_SYS_DIR)/Top.mk

all-local:: libcd.a cdl

libcd.a: $(LOBJS) 
	$(AR) r $@ $^

../../../libpp_base/src/test/libbase.a: FORCE
	make -C ../../../libpp_base/src/test

cdl: main.o libcd.a ../../../libpp_base/src/test/libbase.a
	$(CC) $(LDFLAGS) -o $@ $^ -lpthread

cdlparser.tab.c cdlparser.tab.h: $(SRCDIR)/cdlparser.y
	bison -p pp_cd_yy -d --output-file=$@ $<

lex.pp_cd_yy.c: cdlparser.tab.h $(SRCDIR)/cdlparser.l
	$(FLEX) -Ppp_cd_yy $(SRCDIR)/cdlparser.l

install-local:: all-local
	./cdl all.cdl

clean-local::
	rm -f lex.pp_cd_yy.c cdlparser.tab.c cdlparser.tab.h cdl *.a *.o *~

$(DEPDIR)/%.Po: $(SRCDIR)/%.c
	@if [ ! -d '$(DEPDIR)' ]; then mkdir '$(DEPDIR)'; fi
	@dir="`dirname '$(DEPDIR)/$*'`"; \
	if [ ! -d "$$dir" ]; then mkdir -p "$$dir"; fi
	@if [ ! -r '$@' ]; then touch '$@'; fi

%.o: $(SRCDIR)/%.c
	@if [ ! -d '$(DEPDIR)' ]; then mkdir '$(DEPDIR)'; fi
	source='$<' object='$@' libtool=no \
	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.Tpo' \
	depmode=$(DEPMODE) \
	$(DEPCOMP) $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@

FORCE:
