STRCFLAGS = \
	-la stratego-lib \
	-la stratego-sglr \
	-I syntax \
	-I ~/.nix-profile/share \
	--format-check 0 \
    -Xcc -O2 -Xcc -mtune=generic

# I don't care much for nullary constructor warnings unless it's about lowercase ones, such as 'start'
STRCSTFU=2>&1 | grep -vE 'warning ] Nullary constructor .*[A-Z]|warning ] multiple external| \[ExtSDef\(|stratego-trm|module-name-checked|module-name-checked"' \
                 >&2

all : syntax/REC.tbl syntax/REC.str trans/recgen # trans/recrun

check : all
	$(MAKE) -C tests check
	
full-check : all
	$(MAKE) -C tests full-check

clean :
	$(MAKE) -C tests clean

	# rm -rf REC

% : %.str $(wildcard trans/*.str) syntax/REC.tbl syntax/REC.str
	@rm -f $@.c
	strc -i $< -o $@ -m main-`basename $*` $(STRCFLAGS) $(STRCSTFU)
	@rm $@.c

%.rtg : %.def
	sdf2rtg -i $< -m `basename $*` -o $@

%.str : %.rtg
	rtg2sig -i $< -o $@	

%.def : %.sdf
	pack-sdf -i $< -o $@  -I syntax

%.tbl : %.def
	sdf2table -m `basename $*` -i $< -o $@

