CC ?= gcc
#CFLAGS = -Wall
#CFLAGS += -Wall -O
CFLAGS += -Wall -O2

LIBPARSIFAL = ./libparsifal
LIBPARSIFAL_INC = $(LIBPARSIFAL)/include
LIBPARSIFAL_LIB = $(LIBPARSIFAL)/libparsifal.a

INC = -I$(LIBPARSIFAL_INC)
LIB_XML = $(LIBPARSIFAL)/libparsifal.a
LIB_THREAD = -lpthread
LIBS = $(LIB_THREAD) $(LIB_XML)

PARSIFAL = libparsifal/include libparsifal/libparsifal.a
OBJS = viverrc.o getpaclist.o inrole.o parseinfo.o dependency.o applypaclist.o paclist.o $(LIBPARSIFAL_LIB)

all: viverrc

viverrc: $(LIBPARSIFAL_INC) $(OBJS) $(LIBPARSIFAL_LIB)
	$(CC) $(CFLAGS) $(OBJS) $(LIBS) -o $@
	strip $@

$(LIBPARSIFAL_LIB):
	make -C $(LIBPARSIFAL)
$(LIBPARSIFAL_INC):
	make -C $(LIBPARSIFAL)

test: viverrc
	./viverrc ./ disk,phycow rootserver boot

.c.o:
	$(CC) -c $(CFLAGS) $(INC) $<

.PHONY: clean libclean
clean:
	rm -f *.o viverrc

libclean: clean
	make -C libparsifal clean

