-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathMakefile
43 lines (32 loc) · 1.05 KB
/
Makefile
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
.PHONY: all spec duktape libduktape update clean cleanlib
CRYSTAL_BIN := $(shell which crystal)
CRYSTAL_LOG_LEVEL ?= NONE
CRYSTAL_LOG_SOURCES ?= *
SOURCES := $(shell find src -name '*.cr')
SPEC_SOURCES := $(shell find spec -name '*.cr')
CURRENT := $(shell pwd)
EXT := $(CURRENT)/ext
OUTPUT := $(CURRENT)/.build
all: duktape
duktape: $(OUTPUT)/duktape
libduktape:
$(MAKE) -C $(EXT) libduktape
# use the following to update the native engine:
# VERSION=X.X.X make clean cleanlib update libduktape
update:
$(MAKE) -C $(EXT) -f Makefile.internal update-duktape
spec: all_spec
@LOG_LEVEL=$(CRYSTAL_LOG_LEVEL) LOG_SOURCES=$(CRYSTAL_LOG_SOURCES) $(OUTPUT)/all_spec
all_spec: $(OUTPUT)/all_spec
$(OUTPUT)/all_spec: $(SOURCES) $(SPEC_SOURCES)
@mkdir -p $(OUTPUT)
$(CRYSTAL_BIN) build -o $@ spec/all_spec.cr --warnings all
$(OUTPUT)/duktape: $(SOURCES)
@mkdir -p $(OUTPUT)
$(CRYSTAL_BIN) build -o $@ src/duktape.cr --warnings all
clean:
rm -rf $(OUTPUT)
rm -rf $(CURRENT)/.crystal
cleanlib:
$(MAKE) -C $(EXT) clean
$(MAKE) -C $(EXT) -f Makefile.internal clean