# Simple test of dynamically loaded keywords.
# See README for details

# Settings for Linux; adding -Wl,-rpath,. to the link line for dakreord
# would make the following LD_LIBRARY_PATH assignment unnecessary.

LD_LIBRARY_PATH = .

# For MacOSX, the LD_LIBRARY_PATH assignment is not required,
# and "-shared" must be changed to "-bundle" in the "RLIB = ..."
# assignment below.

CC = gcc
S = ../../../src
RLIB = -fPIC -I$S -shared

# In the following, we use "diff -b" rather than "cmp"
# so the test will succeed with MinGW on MS Windows systems,
# where \r gets added to the ends of lines.

test: zap mylib.dll mylib2.dll morstuf.dll mooss
	../dakreord zap doo0.in >doo0.out 2>doo0.out2
	../dakreord zap doo01.in >doo01.out
	../dakreord zap doo.in >doo.out
	for i in 1 2 3 4; do ../dakreord mooss moo$$i.in >moo$$i.out; done
	diff -b doo0.out doo0.out0
	diff -b doo0.out2 doo0.out20
	diff -b doo01.out doo01.out0
	diff -b doo.out doo.out0
	diff -b moo1.out moo1.out0
	diff -b moo2.out moo2.out0
	diff -b moo3.out moo3.out0
	diff -b moo4.out moo4.out0
	rm doo0.out doo0.out2 doo01.out doo.out moo[1234].out

mylib.dll: doo1
	../nidrgen -fln- -h nidr.h doo1 >mylib.c
	$(CC) $(RLIB) -o mylib.dll mylib.c

morstuf.dll: doo2
	../nidrgen -fln- -h nidr.h doo2 >morstuf.c
	$(CC) $(RLIB) -o morstuf.dll morstuf.c

mylib2.dll: doo3
	../nidrgen -fln- -h nidr.h doo3 >mylib2.c
	$(CC) $(RLIB) -o mylib2.dll mylib2.c

zap: doo
	../nidrgen -j zap doo

mooss: moo
	../nidrgen -j mooss moo

clean:
	rm -f *.out doo0.out2 m*.c *.dll zap mooss moo[1234].out
