CHICKEN_C = csc
CSC_FLAGS += -K prefix

# Order matters
MODULES = utils macros reader module-system semen sex-fmt-c fmt-c-writer sexc
OBJ = $(MODULES:%=%.o)

sexc: $(OBJ) main.o
	$(CHICKEN_C) $(CSC_FLAGS) $^ -o $@

main.o: main.scm
	$(CHICKEN_C) $(CSC_FLAGS) $< -c -o $@

%.o: %.scm
	$(CHICKEN_C) $(CSC_FLAGS) $< -e -c -J -o $@ -unit $(@:%.o=%)

sex-tests: $(OBJ) tests/*.scm
	cd ./tests && $(CHICKEN_C) $(CSC_FLAGS) run.scm -c -o sex-tests.o
	$(CHICKEN_C) $(CSC_FLAGS) $(OBJ) ./tests/sex-tests.o -o sex-tests

clean:
	rm -f $(OBJ) main.o ./tests/sex-tests.o
	rm -f $(IMPORTS)
	rm -f sexc sex-tests
