
MAKE 		= make
CC		= gcc
LIBS		= libapol_extras.a -ltcl8.3 -ltk8.3 -lm -lfl
INCLUDES	= -I../../

CFLAGS		= -Wall -g $(INCLUDES)

APOL_SRC	= ../../
APOL_EXTRAS_SRC	= $(APOL_SRC)analysis.c $(APOL_SRC)apol_tcl.c $(APOL_SRC)avl-util.c   $(APOL_SRC)clone.c \
	 	  $(APOL_SRC)lex.yy.c  $(APOL_SRC)perm-map.c  $(APOL_SRC)policy-avl.c  $(APOL_SRC)policy.c \
	          $(APOL_SRC)queue.c  $(APOL_SRC)render.c  $(APOL_SRC)util.c $(APOL_SRC)y.tab.c test.c

APOL_EXTRAS_OBJ	= analysis.o apol_tcl.o avl-util.o clone.o lex.yy.o  perm-map.o  policy-avl.o  policy.o \
	          queue.o  render.o  util.o y.tab.o test.o

all:	transitive_flow obj_perms perm_map_reload template

apol_extras: libapol_extras.a

libapol_extras.a: $(APOL_EXTRAS_SRC)
	$(CC) $(CFLAGS) $(APOL_EXTRAS_SRC) -c
	ar cr libapol_extras.a $(APOL_EXTRAS_OBJ)

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

transitive_flow: apol_extras transitive_flow.o
	$(CC) transitive_flow.o $(CFLAGS) $(LIBS) -o transitive_flow

obj_perms: apol_extras obj_perms.o
	$(CC) obj_perms.o $(CFLAGS) $(LIBS) -o obj_perms

perm_map_reload: apol_extras perm_map_reload.o
	$(CC) perm_map_reload.o $(CFLAGS) $(LIBS) -o perm_map_reload

template: apol_extras template.o
	$(CC) template.o $(CFLAGS) $(LIBS) -o template

clean:
	rm -f transitive_flow
	rm -f template
	rm -f *.o libapol_extras.a *~ core core.* a.out