@@ -24,7 +24,7 @@ if [ "$1" == "-h" ] || [ "$1" == "--help" ] || [ "$1" == "-help" ]; then
2424 exit 1
2525fi
2626
27- if [ -z $EMSCRIPTEN ]; then
27+ if [ -z " $EMSCRIPTEN " ]; then
2828 if (which emcc > /dev/null); then
2929 # Found emcc in PATH -- set EMSCRIPTEN (we need this to access webidl_binder.py)
3030 EMSCRIPTEN=$( dirname " $( which emcc) " )
5757 # See https://gist.github.com/rsms/e33c61a25a31c08260161a087be03169
5858fi
5959
60+ # input sources relative to this script
61+ BINARYEN_SRC=" $( dirname $0 ) /src"
62+
63+ # output binaries relative to current working directory
64+ BINARYEN_BIN=" $PWD /bin"
65+
6066echo " building shared bitcode"
6167
6268" $EMSCRIPTEN /em++" \
6369 $EMCC_ARGS \
64- src /asmjs/asm_v_wasm.cpp \
65- src /asmjs/shared-constants.cpp \
66- src /cfg/Relooper.cpp \
67- src /emscripten-optimizer/optimizer-shared.cpp \
68- src /emscripten-optimizer/parser.cpp \
69- src /emscripten-optimizer/simple_ast.cpp \
70- src /ir/ExpressionAnalyzer.cpp \
71- src /ir/ExpressionManipulator.cpp \
72- src /ir/LocalGraph.cpp \
73- src /passes/pass.cpp \
74- src /passes/CoalesceLocals.cpp \
75- src /passes/CodeFolding.cpp \
76- src /passes/CodePushing.cpp \
77- src /passes/ConstHoisting.cpp \
78- src /passes/DeadCodeElimination.cpp \
79- src /passes/DuplicateFunctionElimination.cpp \
80- src /passes/ExtractFunction.cpp \
81- src /passes/Flatten.cpp \
82- src /passes/I64ToI32Lowering.cpp \
83- src /passes/Inlining.cpp \
84- src /passes/InstrumentLocals.cpp \
85- src /passes/InstrumentMemory.cpp \
86- src /passes/LegalizeJSInterface.cpp \
87- src /passes/LocalCSE.cpp \
88- src /passes/LogExecution.cpp \
89- src /passes/MemoryPacking.cpp \
90- src /passes/MergeBlocks.cpp \
91- src /passes/MergeLocals.cpp \
92- src /passes/Metrics.cpp \
93- src /passes/NameList.cpp \
94- src /passes/OptimizeInstructions.cpp \
95- src /passes/PickLoadSigns.cpp \
96- src /passes/PostEmscripten.cpp \
97- src /passes/Precompute.cpp \
98- src /passes/Print.cpp \
99- src /passes/PrintCallGraph.cpp \
100- src /passes/RedundantSetElimination.cpp \
101- src /passes/RelooperJumpThreading.cpp \
102- src /passes/RemoveImports.cpp \
103- src /passes/RemoveMemory.cpp \
104- src /passes/RemoveUnusedBrs.cpp \
105- src /passes/RemoveUnusedModuleElements.cpp \
106- src /passes/RemoveUnusedNames.cpp \
107- src /passes/ReorderFunctions.cpp \
108- src /passes/ReorderLocals.cpp \
109- src /passes/ReReloop.cpp \
110- src /passes/SafeHeap.cpp \
111- src /passes/SimplifyLocals.cpp \
112- src /passes/SpillPointers.cpp \
113- src /passes/SSAify.cpp \
114- src /passes/TrapMode.cpp \
115- src /passes/Untee.cpp \
116- src /passes/Vacuum.cpp \
117- src /support/bits.cpp \
118- src /support/colors.cpp \
119- src /support/safe_integer.cpp \
120- src /support/threads.cpp \
121- src /wasm/literal.cpp \
122- src /wasm/wasm-binary.cpp \
123- src /wasm/wasm-s-parser.cpp \
124- src /wasm/wasm-type.cpp \
125- src /wasm/wasm-validator.cpp \
126- src /wasm/wasm.cpp \
127- src /wasm-emscripten.cpp \
128- -Isrc/ \
70+ $BINARYEN_SRC /asmjs/asm_v_wasm.cpp \
71+ $BINARYEN_SRC /asmjs/shared-constants.cpp \
72+ $BINARYEN_SRC /cfg/Relooper.cpp \
73+ $BINARYEN_SRC /emscripten-optimizer/optimizer-shared.cpp \
74+ $BINARYEN_SRC /emscripten-optimizer/parser.cpp \
75+ $BINARYEN_SRC /emscripten-optimizer/simple_ast.cpp \
76+ $BINARYEN_SRC /ir/ExpressionAnalyzer.cpp \
77+ $BINARYEN_SRC /ir/ExpressionManipulator.cpp \
78+ $BINARYEN_SRC /ir/LocalGraph.cpp \
79+ $BINARYEN_SRC /passes/pass.cpp \
80+ $BINARYEN_SRC /passes/CoalesceLocals.cpp \
81+ $BINARYEN_SRC /passes/CodeFolding.cpp \
82+ $BINARYEN_SRC /passes/CodePushing.cpp \
83+ $BINARYEN_SRC /passes/ConstHoisting.cpp \
84+ $BINARYEN_SRC /passes/DeadCodeElimination.cpp \
85+ $BINARYEN_SRC /passes/DuplicateFunctionElimination.cpp \
86+ $BINARYEN_SRC /passes/ExtractFunction.cpp \
87+ $BINARYEN_SRC /passes/Flatten.cpp \
88+ $BINARYEN_SRC /passes/I64ToI32Lowering.cpp \
89+ $BINARYEN_SRC /passes/Inlining.cpp \
90+ $BINARYEN_SRC /passes/InstrumentLocals.cpp \
91+ $BINARYEN_SRC /passes/InstrumentMemory.cpp \
92+ $BINARYEN_SRC /passes/LegalizeJSInterface.cpp \
93+ $BINARYEN_SRC /passes/LocalCSE.cpp \
94+ $BINARYEN_SRC /passes/LogExecution.cpp \
95+ $BINARYEN_SRC /passes/MemoryPacking.cpp \
96+ $BINARYEN_SRC /passes/MergeBlocks.cpp \
97+ $BINARYEN_SRC /passes/MergeLocals.cpp \
98+ $BINARYEN_SRC /passes/Metrics.cpp \
99+ $BINARYEN_SRC /passes/NameList.cpp \
100+ $BINARYEN_SRC /passes/OptimizeInstructions.cpp \
101+ $BINARYEN_SRC /passes/PickLoadSigns.cpp \
102+ $BINARYEN_SRC /passes/PostEmscripten.cpp \
103+ $BINARYEN_SRC /passes/Precompute.cpp \
104+ $BINARYEN_SRC /passes/Print.cpp \
105+ $BINARYEN_SRC /passes/PrintCallGraph.cpp \
106+ $BINARYEN_SRC /passes/RedundantSetElimination.cpp \
107+ $BINARYEN_SRC /passes/RelooperJumpThreading.cpp \
108+ $BINARYEN_SRC /passes/RemoveImports.cpp \
109+ $BINARYEN_SRC /passes/RemoveMemory.cpp \
110+ $BINARYEN_SRC /passes/RemoveUnusedBrs.cpp \
111+ $BINARYEN_SRC /passes/RemoveUnusedModuleElements.cpp \
112+ $BINARYEN_SRC /passes/RemoveUnusedNames.cpp \
113+ $BINARYEN_SRC /passes/ReorderFunctions.cpp \
114+ $BINARYEN_SRC /passes/ReorderLocals.cpp \
115+ $BINARYEN_SRC /passes/ReReloop.cpp \
116+ $BINARYEN_SRC /passes/SafeHeap.cpp \
117+ $BINARYEN_SRC /passes/SimplifyLocals.cpp \
118+ $BINARYEN_SRC /passes/SpillPointers.cpp \
119+ $BINARYEN_SRC /passes/SSAify.cpp \
120+ $BINARYEN_SRC /passes/TrapMode.cpp \
121+ $BINARYEN_SRC /passes/Untee.cpp \
122+ $BINARYEN_SRC /passes/Vacuum.cpp \
123+ $BINARYEN_SRC /support/bits.cpp \
124+ $BINARYEN_SRC /support/colors.cpp \
125+ $BINARYEN_SRC /support/safe_integer.cpp \
126+ $BINARYEN_SRC /support/threads.cpp \
127+ $BINARYEN_SRC /wasm/literal.cpp \
128+ $BINARYEN_SRC /wasm/wasm-binary.cpp \
129+ $BINARYEN_SRC /wasm/wasm-s-parser.cpp \
130+ $BINARYEN_SRC /wasm/wasm-type.cpp \
131+ $BINARYEN_SRC /wasm/wasm-validator.cpp \
132+ $BINARYEN_SRC /wasm/wasm.cpp \
133+ $BINARYEN_SRC /wasm-emscripten.cpp \
134+ -I $BINARYEN_SRC \
129135 -o shared.bc
130136
131137echo " building wasm.js"
132138
133139" $EMSCRIPTEN /em++" \
134140 $EMCC_ARGS \
135- src /wasm-js.cpp \
141+ $BINARYEN_SRC /wasm-js.cpp \
136142 shared.bc \
137- -Isrc / \
138- -o bin /wasm${OUT_FILE_SUFFIX} .js \
143+ -I $BINARYEN_SRC / \
144+ -o $BINARYEN_BIN /wasm${OUT_FILE_SUFFIX} .js \
139145 -s MODULARIZE=1 \
140146 -s ' EXTRA_EXPORTED_RUNTIME_METHODS=["writeAsciiToMemory"]' \
141147 -s ' EXPORT_NAME="WasmJS"'
@@ -581,11 +587,11 @@ export_function "_BinaryenSetAPITracing"
581587
582588" $EMSCRIPTEN /em++" \
583589 $EMCC_ARGS \
584- src /binaryen-c.cpp \
590+ $BINARYEN_SRC /binaryen-c.cpp \
585591 shared.bc \
586- -Isrc / \
592+ -I $BINARYEN_SRC / \
587593 -s EXPORTED_FUNCTIONS=[${EXPORTED_FUNCTIONS} ] \
588- -o bin /binaryen${OUT_FILE_SUFFIX} .js \
594+ -o $BINARYEN_BIN /binaryen${OUT_FILE_SUFFIX} .js \
589595 -s MODULARIZE_INSTANCE=1 \
590596 -s ' EXPORT_NAME="Binaryen"' \
591- --post-js src /js/binaryen.js-post.js
597+ --post-js $BINARYEN_SRC /js/binaryen.js-post.js
0 commit comments