WARNING_FLAGS = -Wunused -Wcomment -Wformat -Wparentheses
BIN=../bin/
INCLUDE=../include/
INCLUDE_SERVICE=../service/
NRAREAD= ../nraread/
KTREE= ../ktree/
SL=../sl/
MAP=../map/
UTILITY=../utility/
#QUANTIFY=quantify
QUANTIFY=
#PURIFY=purify
PURIFY=
CC= gcc
#CFLAGS= -c -g -Xs
CFLAGS= -c -g
SEARCHOBJS= idxsrch.o utl.o sony.o  idxread.o  idxutl.o idxdump.o disk.o
#DATE = -D_DATE_=\""`date` by `whoami`@`hostname` for `mach` `arch`"\"
DATE =

#Hybrid NRA simulation defines
HYBRID_LIB_DIR = ../../hybrid/geo
#HYBRID_LIBS = -lgc
HYBRID_LIBS =
#HYBRID_OBJS = $(HYBRID_LIB_DIR)/ek_adrs1.o $(HYBRID_LIB_DIR)/ek_adrs2.o
HYBRID_OBJS =
HYBRID_INC = ../../hybrid/include

#NRA_HEADERS PPM_LIBS PPM_HEADERS RGBDEF  are for service.o
PPM_LIBS = 	-lppm -lpgm -lpbm
PPM_HEADERS = 	ppm.h pbm.h pgm.h
RGBDEF =        -DRGB_DB=\"/usr/lib/X11/rgb\"

all: rep sd_rpl dpex format_l

sd_lex.c: sd_lex.l makefile
	flex -Psd_ -o$*.c $<
clean::
	-rm sd_lex.c
sd_yacc.c: sd_yacc.y sd_lex.c
	bison -p sd_ $< -o$@
clean::
	-rm sd_yacc.c
rep_ex_l.c: rep_ex_l.l
	flex -Prep_ex_ -o$*.c $<
clean::
	-rm rep_ex_l.c
rep_ex_y.c: rep_ex_y.y rep_ex_l.c
	bison -p rep_ex_ $< -o$@
clean::
	-rm rep_ex_y.c
rpldef_l.c: rpldef_l.l
	flex -Prpldef_ -o$*.c $<
clean::
	-rm rpldef_l.c
rpldef_y.c: rpldef_y.y rpldef_l.c
	bison -p rpldef_ $< -o$@
clean::
	-rm rpldef_y.c
sdl_l.c: sdl_l.l
	flex -Psdl_ -o$*.c $<
clean::
	-rm sdl_l.c
sdl_y.c: sdl_y.y sdl_l.c
	bison -p sdl_ $< -o$@
clean::
	-rm sdl_y.c
temp_l.c: temp_l.l
	flex -Ptemp_ -o$*.c $<
clean::
	-rm temp_l.c
temp_y.c: temp_y.y temp_l.c
	bison -p temp_ $< -o$@
clean::
	-rm temp_y.c
rich_l.c: rich_l.l
	flex -Prich_ -o$*.c $<
clean::
	-rm rich_l.c
hif_l.c: hif_l.l
	flex -Phif_ -o$*.c $<
clean::
	-rm hif_l.c
hif_y.c: hif_y.y hif_l.c rep_hif.h 
	bison -p hif_ $< -o$@
clean::
	-rm hif_y.c
richt.c: rich.c rich_l.c
	-rm -f richt.c
	sed -e "s/yy/rich_/g" rich.c > rout
	mv rout richt.c

sdl_y.o: sdl_y.c
	$(CC) $(CFLAGS) -I$(INCLUDE) sdl_y.c

richt.o: richt.c
	$(CC) $(CFLAGS) -I$(INCLUDE) richt.c

rpldef_y.o: rpldef_y.c
	$(CC) $(CFLAGS) rpldef_y.c

rep_ex_y.o: rep_ex_y.c
	$(CC) $(CFLAGS) -I$(INCLUDE) rep_ex_y.c

intstrng.o: intstrng.c
	$(CC) $(CFLAGS) -I$(INCLUDE) intstrng.c

sd_rpl.o: sd_rpl.c
	$(CC) $(CFLAGS) $(DATE) -I$(INCLUDE) sd_rpl.c

sd_rpl: sd_rpl.o rpldef_y.o sdl_y.o intstrng.o
	$(QUANTIFY) $(PURIFY) $(CC) -o sd_rpl -I$(INCLUDE) sd_rpl.o rpldef_y.o sdl_y.o intstrng.o -I$(INCLUDE)  -L../lib -lm

rep.o: rep.c rep_hif.h
	$(CC) $(CFLAGS) $(DATE) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I/usr/X11R6/include/X11/ rep.c

temp_y.o: temp_y.c
	$(CC) $(CFLAGS) temp_y.c

hif_y.o: hif_y.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(HYBRID_INC) -I/usr/openwin/include hif_y.c 

sd_cards.o: sd_cards.c  
	$(CC) $(CFLAGS) -I$(INCLUDE) sd_cards.o sd_cards.c

sd_parse.o: sd_parse.c $(INCLUDE)sd_parse.h sd_yacc.c sd_lex.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) sd_parse.o sd_parse.c

idxread.o: idxread.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(KTREE) -I/usr/openwin/include idxread.c 

idxutl.o: idxutl.c 
	$(CC) $(CFLAGS) -I$(NRAREAD) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(KTREE) -I/usr/openwin/include idxutl.c 

idxdump.o: idxdump.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(KTREE) -I/usr/openwin/include idxdump.c 

disk.o: $(NRAREAD)disk.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(KTREE) -I/usr/openwin/include $(NRAREAD)disk.c 

utl.o: $(NRAREAD)utl.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(KTREE) -I/usr/openwin/include $(NRAREAD)utl.c 

sony.o: $(NRAREAD)sony.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(KTREE) -I/usr/openwin/include $(NRAREAD)sony.c 

idxsrch.o: idxsrch.c 
	$(CC) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) -I$(KTREE) -I/usr/openwin/include idxsrch.c 

service.o: service.c
	$(CC) $(RGBDEF) $(CFLAGS) -I$(INCLUDE) -I$(INCLUDE_SERVICE) service.c

rep: rep.o rpldef_y.o temp_y.o rep_ex_y.o
	$(QUANTIFY) $(PURIFY) $(CC) -o rep rep.o rpldef_y.o temp_y.o rep_ex_y.o -L../lib -lm -L.

dpex.o: dpex.c
	$(CC)  $(CFLAGS) -I$(INCLUDE) -I/usr/openwin/include dpex.c

dpex: dpex.o  ../lib/libnrautil.a
	$(CC) -o dpex dpex.o -L../lib -lnrautil -L. -ltk -ltcl -lXpm -L/usr/openwin/lib -lX11 -lm
format.o: format.c format.h
	$(CC) $(CFLAGS) $(OPTIMIZE) -I$(INCLUDE) format.c
		 
format_l: format.o richt.o ../lib/libnrautil.a
	$(QUANTIFY) $(PURIFY) $(CC)  $(OPTIMIZE) -o format_l -I$(INCLUDE) format.o richt.o -I$(INCLUDE)  -L../lib -lnrautil -lm
clean::
	-rm format_l
clean::
	-rm *.o
rt1: richt_test.o richt.o 
	$(QUANTIFY) $(PURIFY) $(CC) -o richt_test -I$(INCLUDE) sd_rpl.o rpldef_y.o sdl_y.o intstrng.o richt.o -I$(INCLUDE)  -L../lib -lnrautil -lm
rt2: richt_test.o richt.o
	gcc -o $@ $^ -I../include -L../lib -lnrautil -lm