| CLOSURE=~/closure/closure-compiler/build/compiler.jar |
| CPP=cpp |
| |
| |
| all: v86_all.js |
| browser: v86_all.js |
| node: v86_node.js |
| |
| src/cpu.js: src/*.macro.js |
| # build cpu.macro.js using cpp |
| $(CPP) -P -undef -Wundef -std=c99 -nostdinc -Wtrigraphs -fdollars-in-identifiers -C src/cpu.macro.js src/cpu.js |
| |
| |
| |
| # Used for nodejs builds and in order to profile code. |
| # `debug` gives identifiers a readable name, make sure it doesn't have any side effects. |
| CLOSURE_READABLE=--formatting PRETTY_PRINT --debug |
| |
| CLOSURE_SOURCE_MAP=\ |
| --source_map_format V3\ |
| --create_source_map |
| |
| CLOSURE_FLAGS=\ |
| --compilation_level ADVANCED_OPTIMIZATIONS\ |
| --externs externs.js\ |
| --warning_level VERBOSE\ |
| --jscomp_off uselessCode\ |
| --use_types_for_optimization\ |
| --summary_detail_level 3\ |
| --language_in ECMASCRIPT5_STRICT |
| |
| |
| CORE_FILES=const.js io.js cpu.js main.js disk.js pci.js floppy.js memory.js dma.js pit.js vga.js ps2.js pic.js rtc.js uart.js |
| BROWSER_FILES=browser/main.js browser/screen.js browser/keyboard.js browser/mouse.js |
| NODE_FILES=node/main.js node/keyboard.js node/screen.js |
| |
| v86_all.js: src/*.js src/browser/*.js src/cpu.js |
| -ls -lh v86_all.js |
| cd src &&\ |
| java -jar $(CLOSURE) \ |
| --js_output_file "../v86_all.js"\ |
| --define=DEBUG=false\ |
| $(CLOSURE_SOURCE_MAP) v86_all.js.map\ |
| $(CLOSURE_FLAGS)\ |
| --js $(CORE_FILES)\ |
| --js $(BROWSER_FILES) |
| |
| echo "//# sourceMappingURL=src/v86_all.js.map" >> v86_all.js |
| ls -lh v86_all.js |
| |
| |
| v86_node.js: src/*.js src/node/*.js |
| cd src &&\ |
| java -jar $(CLOSURE) \ |
| --js_output_file "../v86_node.js"\ |
| --define=DEBUG=false\ |
| $(CLOSURE_FLAGS)\ |
| --js $(CORE_FILES) $(NODE_FILES) |
| |
| |
| pack: |
| rm -f ../v86-latest.tar.gz |
| # Not sure if legally necessary |
| #--exclude "qemu" |
| tar -zcvf ../v86-latest.tar.gz ../v86/ \ |
| --exclude "images" \ |
| --exclude ".git" |
| |
| |
| |
| clean: |
| rm -f v86-latest.tar.gz v86_all.js src/v86_all.js.map src/cpu.js |