
MODULE_NAME	= stubs
HEADER		= $(MODULE_NAME).h
SOURCE		= $(MODULE_NAME).c
OTHER_CLEAN	= $(TEST_OUTPUT) $(GLUE).c $(SOURCE)

include ../Makefile.inc

MODULE_DEPS = $(GLUE).o stubs.o

$(MODULE): $(MODULE_DEPS)
	@echo
	$(ELF_LINK_CMD) -o $@ $(MODULE_DEPS) $(SLANGLIB)
	@echo

$(GLUE).o: $(GLUE).c
	@echo
	$(ELF_COMPILE) $(GLUE).c

$(GLUE).c: $(HEADER)
	@echo
	@echo Generating wrappers ...
	@echo
	$(SLIRP) $(HEADER)

$(SOURCE): $(HEADER)
	@echo
	@echo Generating stubs ...
	@echo
	$(SLIRP) -stubs -stdout $(HEADER) > $@

stubs.o: $(SOURCE)
	@echo
	$(ELF_COMPILE) $(SOURCE)

TEST_OUTPUT   = test.out
TEST_BASELINE = test.ref
TEST_SCRIPT   = ./test.sl

test: $(TEST_BASELINE) $(MODULE) $(TEST_OUTPUT)
	diff $(TEST_BASELINE) $(TEST_OUTPUT)

$(TEST_OUTPUT): $(MODULE) $(TEST_SCRIPT) ../examples-common.sl
	$(SLSH) $(TEST_SCRIPT) > $(TEST_OUTPUT) 2>&1
