BUILTINS =
NPROC = 1
CC = cc
CFLAGS = -g
DS = ../../src

%.o: %.c nidr.h
	$CC -c $CFLAGS $stem.c

#NIDR_keywds.H: nidrgen zap
all:N: NIDR_keywds.H $DS/dakota.input.txt

NIDR_keywds.H: nidrgen dakota.input.nspec
	./$prereq >$target

$DS/dakota.input.txt: nidrgen dakota.input.nspec
	./nidrgen -f dakota.input.nspec >$target
#	sed 's/{[^}]*}//g' $prereq >$target

zap: dakota.input.nspec
	sed '/^##GOT_TO_HERE/q' $prereq >$target

nidrgen: nidrgen.c
	$CC $CFLAGS -I$DS -o $target $prereq -lm

test1a.c: nidrgen test1a.spec
	./nidrgen -h- -n- test1a.spec >$target

test1a: test1.c test1a.c nidr-scanner.o nidr-parser.o nidr.o avltree.o
	$CC $CFLAGS -o $target -DINCLUDENAME='"test1a.c"' test1.c nidr-scanner.o nidr-parser.o nidr.o avltree.o

test1b.c: test1b.spec
	./nidrgen -f -h- -n- test1b.spec >$target

test1b: test1.c test1b.c nidr-scanner.o nidr-parser.o nidr.o avltree.o
	$CC $CFLAGS -o $target -DINCLUDENAME='"test1b.c"' test1.c nidr-scanner.o nidr-parser.o nidr.o avltree.o

nidrgen.c: nidrgen.l0
	sed "s/YYYYMMDD/`Dt -8 nidrgen.l0`/" $prereq >nidrgen.l
	lex nidrgen.l
	sed 's/lex.yy.c/nidrgen.c/;s!#line.*!/* & */!;s/yyparse/nidrparse/g' lex.yy.c >$target
	rm lex.yy.c

### The sed line above replaces YYYYMMDD with a string such as 20090212
### derived from the current date of nidrgen.l0 .

test1: test1.o nidr-scanner.o nidr-parser.o nidr.o avltree.o
	$CC -o $target $prereq

#all:N: nidr-scanner.c nidr-parser.c

nidr-scanner.c: nidrscan.l
	lex $prereq
	sed 's/lex.yy.c/nidr-scanner.c/;s!#line.*!/* & */!
	s/yy/nidr/g;s/reset_lex_state/reset_nidrlex_state/' lex.yy.c >$target
	rm lex.yy.c

nidr-parser.c: nidrparse.y
	bison -y -d $prereq
	sed 's/y.tab.c/nidr-parser.c/;s!#line.*!/* & */!
	s/yy/nidr/g;s/reset_lex_state/reset_nidrlex_state/' y.tab.c >$target
	sed 's/yy/nidr/' y.tab.h >y.tab.hzap
	cmp y.tab.hzap nidr-parser.h || cp y.tab.hzap nidr-parser.h
	rm y.tab.c y.tab.h y.tab.hzap

o:N: nidr-scanner.o nidr-parser.o nidr.o

run_test1: test1
	for i in t1.in*; do ./test1 $i >zap 2>&1; cmp zap out/$i; done

dakreorder.o: dakreorder.c NIDR_keywds0.h

NIDR_keywds0.h: dakota.input.nspec nidrgen
	./nidrgen -ftn- dakota.input.nspec >$target

dakreorder: dakreorder.o nidr.o nidr-parser.o nidr-scanner.o avltree.o
	$CC -o $target $prereq
