FW_TOPDIR = ../../..

#CC = gcc -m32
CFLAGS = -I$(FW_TOPDIR)/include -I../include -W -Wall -g -D_REENTRANT -D_GNU_SOURCE -DPP_CFG_DEBUG -DPP_CFG_NO_VALIDATION_DEBUG #-DPP_BOARD_PEMX #-DPP_B_STATS
LDFLAGS = -g -L$(FW_TOPDIR)/libpp_base/src/test -L$(FW_TOPDIR)/libpp_cd/src/test -L.

SRCDIR = ..

LSRCS =         $(SRCDIR)/acl_cache.c \
                $(SRCDIR)/acl.c \
                $(SRCDIR)/profile.c \
		$(SRCDIR)/profile_cache.c \
		$(SRCDIR)/cfg.c \
		$(SRCDIR)/as_op_codeprofile.c \
		$(SRCDIR)/cfg_ntfy.c \
		$(SRCDIR)/cfg_tx.c

SRCS =      main.c \
            eric_pthread.c \
            config.c \
            xdefs.c
#            $(FW_TOPDIR)/liberic_config/src/config.c

LIBOBJS  = $(LSRCS:$(SRCDIR)/%.c=%.o) 
#config.o eric_pthread.o
OBJS     = $(SRCS:.c=.o) 

all: libcfg.a cfgtest !config

!config:
	touch \!config

xdefs.c:
	ln -s $(FW_TOPDIR)/eric/src/xdefs.c xdefs.c

libcfg.a: $(LIBOBJS)
	$(AR) r $@ $(LIBOBJS)

$(FW_TOPDIR)/libpp_base/src/test/libbase.a:
	make -C $(FW_TOPDIR)/libpp_base/src/test

$(FW_TOPDIR)/libpp_cd/src/test/libcd.a:
	make -C $(FW_TOPDIR)/libpp_cd/src/test

cfgtest: $(FW_TOPDIR)/libpp_base/src/test/libbase.a $(FW_TOPDIR)/libpp_cd/src/test/libcd.a libcfg.a $(OBJS)
	$(CC) -o $@ $(OBJS) $(LDFLAGS) -lcfg -lcd -lbase -lpthread

install: all

clean:
	rm -f cfgtest libcfg.a *.o *~ .depend
        
veryclean: clean
	rm -f $(FW_TOPDIR)/libpp_base/src/test/.depend
	rm -f $(FW_TOPDIR)/libpp_cd/src/test/.depend
	make -C $(FW_TOPDIR)/libpp_base/src/test clean
	make -C $(FW_TOPDIR)/libpp_cd/src/test clean

%.o: $(SRCDIR)/%.c
	$(CC) $(CFLAGS) -c $< -o $@

.depend: $(LSRCS) $(SRCS)
	$(CC) -M $(CFLAGS) $(LSRCS) $(SRCS) | sed 's/^.*\.o/& $@/g' > $@

-include .depend

