about summary refs log tree commit diff stats
path: root/Makefile
blob: d2a10031f43866d1bcc3987721e2e95b055cac22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Automatically generated by scramble

NAME = jimmy
CSC = /usr/bin/csc
CSC_OPTIONS = -setup-mode -host -I $(PWD) -C -I$(BUILD)
CSC_LIB_OPTIONS = -D compiling-extension -emit-all-import-libraries -dynamic -regenerate-import-libraries
CSC_OPTIONS_EXTRA = -X utf8 -X module-declarations
CSI = /usr/bin/csi
BUILD = $(PWD)/build
TESTS = $(PWD)/tests
TEST_ENV = env BUILD=$(BUILD) TESTS=$(TESTS)
TEST_ENV_EXTRA = TEST_USE_ANSI=0

.PHONY: all test clean install uninstall
all: build/jimmy.util.so build/jimmy.read.so build/jimmy.emit.so build/jimmy.html.so build/jimmy.wrap.so build/jimmy.main.so build/jimmy
test: all
	cd $(BUILD) && $(TEST_ENV) $(TEST_ENV_EXTRA) $(CSI) -setup-mode -s $(TESTS)/run.scm $(NAME)
clean:
	-rm -rf $(BUILD) *.build.sh *.install.sh $(NAME) *.import.scm *.so *.link *.static.o
install:
	chicken-install -s
uninstall:
	chicken-uninstall -s

# jimmy

build/jimmy.util.so: lib/util.scm
	@mkdir -p $(BUILD)
	$(CSC) $(CSC_OPTIONS) $(CSC_LIB_OPTIONS) $(CSC_OPTIONS_EXTRA) $< -o $@
	@test -f jimmy.util.import.scm &&mv jimmy.util.import.scm $(BUILD)/||true

build/jimmy.read.so: lib/read.scm lib/util.scm
	@mkdir -p $(BUILD)
	$(CSC) $(CSC_OPTIONS) $(CSC_LIB_OPTIONS) $(CSC_OPTIONS_EXTRA) $< -o $@
	@test -f jimmy.read.import.scm &&mv jimmy.read.import.scm $(BUILD)/||true

build/jimmy.emit.so: lib/emit.scm lib/util.scm
	@mkdir -p $(BUILD)
	$(CSC) $(CSC_OPTIONS) $(CSC_LIB_OPTIONS) $(CSC_OPTIONS_EXTRA) $< -o $@
	@test -f jimmy.emit.import.scm &&mv jimmy.emit.import.scm $(BUILD)/||true

build/jimmy.html.so: lib/html.scm lib/util.scm lib/emit.scm
	@mkdir -p $(BUILD)
	$(CSC) $(CSC_OPTIONS) $(CSC_LIB_OPTIONS) $(CSC_OPTIONS_EXTRA) $< -o $@
	@test -f jimmy.html.import.scm &&mv jimmy.html.import.scm $(BUILD)/||true

build/jimmy.wrap.so: lib/wrap.scm lib/util.scm lib/emit.scm
	@mkdir -p $(BUILD)
	$(CSC) $(CSC_OPTIONS) $(CSC_LIB_OPTIONS) $(CSC_OPTIONS_EXTRA) $< -o $@
	@test -f jimmy.wrap.import.scm &&mv jimmy.wrap.import.scm $(BUILD)/||true

build/jimmy.main.so: lib/main.scm lib/util.scm lib/emit.scm lib/read.scm lib/wrap.scm
	@mkdir -p $(BUILD)
	$(CSC) $(CSC_OPTIONS) $(CSC_LIB_OPTIONS) $(CSC_OPTIONS_EXTRA) $< -o $@
	@test -f jimmy.main.import.scm &&mv jimmy.main.import.scm $(BUILD)/||true

build/jimmy: bin/jimmy.scm lib/main.scm
	@mkdir -p $(BUILD)
	$(CSC) $(CSC_OPTIONS) $(CSC_OPTIONS_EXTRA) $< -o $@
	@test -f jimmy.import.scm &&mv jimmy.import.scm $(BUILD)/||true