CHICKEN_C = csc CSC_FLAGS += -K prefix -static # Order matters, since module check correctness on compilation MODULES = utils macros reader module-system semen sex-fmt-c fmt-c-writer sexc OBJ = $(MODULES:%=%.o) IMPORTS = $(MODULES:%=%.import.scm) sexc: $(OBJ) main.o $(CHICKEN_C) $(CSC_FLAGS) $^ -o $@ main.o: main.scm $(CHICKEN_C) $(CSC_FLAGS) $< -c -o $@ module-system.o: module-system.scm reader.import.scm $(CHICKEN_C) $(CSC_FLAGS) module-system.scm -e -c -J -o module-system.o -unit module-system -uses macros -uses utils %.import.scm: %.o %.scm %.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