GLIB_CFLAGS=`pkg-config --cflags glib-2.0`
GLIB_LINK_FLAGS=`pkg-config --libs glib-2.0`

%.exe: %.il
	ilasm2 -out:$@ $<

gen-md-tests: gen-md-tests.c
	gcc $(GLIB_CFLAGS) $(GLIB_LINK_FLAGS) gen-md-tests.c -g -Wall -o gen-md-tests

header-tests.ok: gen-md-tests header-tests.md simple-assembly.exe
	./gen-md-tests header-tests.md
	touch header-tests.ok

generate-stamp: header-tests.ok
	touch generate-stamp

clean-stamps:
	rm -f *.ok
	rm -f generate-stamp

run-test: generate-stamp
	@for i in *.exe; do \
		RES=99; \
		FIRST=`echo $$i | cut -d '-' -f 1`; \
		if [ "$$FIRST" == "invalid" ];	then \
			RES=1; \
		fi; \
		if [ "$$FIRST" == "valid" ]; then \
			RES=0; \
		fi; \
		if [ $$RES != 99 ]; then \
			../../metadata/pedump --verify metadata $$i >/dev/null 2>/dev/null; \
			R=$$?; \
			if [ $$R != $$RES ]; then \
				echo "$$i failed expected $$RES but got $$R"; \
			fi; \
		fi; \
	done



check_with_peverify: generate-stamp
	@for i in *.exe; do \
		RES=99; \
		FIRST=`echo $$i | cut -d '-' -f 1`; \
		if [ "$$FIRST" == "invalid" ];	then \
			RES=1; \
		fi; \
		if [ "$$FIRST" == "valid" ]; then \
			RES=0; \
		fi; \
		if [ $$RES != 99 ]; then \
			peverify $$i >/dev/null 2>/dev/null; \
			R=$$?; \
			if [ $$R != $$RES ]; then \
				echo "$$i failed expected $$RES but got $$R"; \
			fi; \
		fi; \
	done
