@@ -2,7 +2,9 @@ PREFIX_FULL = $(abspath ./prefix-full)
2
2
PREFIX_LITE = $(abspath ./prefix-lite)
3
3
DIST_FOLDER = $(abspath ./dist)
4
4
5
- VIZ_VERSION ?= $(shell node -p "require('./package.json') .version")
5
+ NODE ?= node
6
+
7
+ VIZ_VERSION ?= $(shell $(NODE ) -p "require('./package.json') .version")-$(shell git rev-parse HEAD)
6
8
EXPAT_VERSION = 2.2.9
7
9
GRAPHVIZ_VERSION = 2.44.0
8
10
EMSCRIPTEN_VERSION = 1.39.12
@@ -18,9 +20,9 @@ CC = $(EMCC)
18
20
CC_FLAGS = --bind -s ALLOW_MEMORY_GROWTH=1 -s DYNAMIC_EXECUTION=0 -s ENVIRONMENT=node,worker --closure 0 -g1
19
21
CC_INCLUDES = -I$(PREFIX_FULL ) /include -I$(PREFIX_FULL ) /include/graphviz -L$(PREFIX_FULL ) /lib -L$(PREFIX_FULL ) /lib/graphviz -lgvplugin_core -lgvplugin_dot_layout -lgvplugin_neato_layout -lcgraph -lgvc -lgvpr -lpathplan -lexpat -lxdot -lcdt
20
22
21
- YARN_PATH = $(shell awk '{ if($$1 == "yarnPath:") print $$2; }' .yarnrc.yml)
23
+ YARN_PATH = $(shell $( NODE ) -p 'path.resolve( $( shell awk '{ if($$1 == "yarnPath:") print $$2; }' .yarnrc.yml) )' )
22
24
YARN_DIR = $(shell dirname $(YARN_PATH ) )
23
- YARN ?= node $(YARN_PATH )
25
+ YARN ?= $( NODE ) $(YARN_PATH )
24
26
25
27
TSC ?= $(YARN ) tsc
26
28
TS_FLAGS = --lib esnext,WebWorker
@@ -65,13 +67,17 @@ test: all
65
67
deno-test : test/deno-files/render.wasm.arraybuffer.js test/deno-files/index.d.ts
66
68
$(DENO ) --importmap test/deno-files/importmap.json test/deno.ts
67
69
70
+ .PHONY : pack
71
+ pack : all
72
+ $(YARN ) pack -o sources/viz.js-v$(VIZ_VERSION ) .tar.gz
73
+
68
74
.PHONY : publish
69
75
publish :
70
76
npm version $(VIZ_VERSION )
71
77
$(MAKE ) clean
72
78
$(MAKE ) test -j4 || (git reset HEAD^ --hard && git tag -d v$( VIZ_VERSION) && exit 1)
73
- $(YARN ) pack -o sources/viz.js-v $( VIZ_VERSION ) .tar.gz
74
- npm publish --access public
79
+ $(MAKE ) pack
80
+ $( YARN ) npm publish --access public
75
81
git push && git push --tags
76
82
77
83
.PHONY : debug
90
96
rm -rf build dist
91
97
rm -f wasm worker
92
98
rm -f test/deno-files/render.wasm.uint8.js test/deno-files/index.d.ts
93
- mkdir build dist
94
99
95
100
.PHONY : clobber
96
101
clobber : | clean
@@ -99,11 +104,11 @@ clobber: | clean
99
104
wasm worker :
100
105
echo " throw new Error('The bundler you are using does not support package.json#exports.')" > $@
101
106
102
- build/worker.js : src/worker.ts
103
- $(TSC ) $(TS_FLAGS ) --outDir build -m es6 --target esnext $^
107
+ build/worker.js : src/worker.ts build
108
+ $(TSC ) $(TS_FLAGS ) --outDir build -m es6 --target esnext $<
104
109
105
- build/index.js : src/index.ts
106
- $(TSC ) $(TS_FLAGS ) --outDir build -m es6 --target esnext $^
110
+ build/index.js : src/index.ts build
111
+ $(TSC ) $(TS_FLAGS ) --outDir build -m es6 --target esnext $<
107
112
108
113
dist/index.d.ts : src/index.ts
109
114
$(TSC ) $(TS_FLAGS ) --outDir $(DIST_FOLDER ) -d --emitDeclarationOnly $^
@@ -161,7 +166,7 @@ build/render.wasm: build/render.js
161
166
dist/render.wasm : build/render.wasm
162
167
cp $< $@
163
168
164
- build/render.js : src/viz.cpp
169
+ build/render.js : src/viz.cpp build
165
170
$(CC ) --version | grep $(EMSCRIPTEN_VERSION )
166
171
$(CC ) $(CC_FLAGS ) -Oz -o $@ $< $(CC_INCLUDES )
167
172
@@ -170,7 +175,7 @@ test/deno-files/render.wasm.arraybuffer.js: dist/render.wasm
170
175
hexdump -v -x $< | awk ' $$1=" "' OFS=" ,0x" >> $@ && \
171
176
echo " ]).buffer.slice(2$( shell stat -f%z $< | awk ' {if (int($$1) % 2) print ",-1"}' ) )" >> $@
172
177
173
- $(PREFIX_FULL ) dist sources $(YARN_DIR ) :
178
+ $(PREFIX_FULL ) build dist sources $(YARN_DIR ) :
174
179
mkdir -p $@
175
180
176
181
.PHONY : expat–full
0 commit comments