CC := emcc CXX := emcc CXXFLAGS := -c -fbracket-depth=4800 -Oz INCLUDES := -I src/nba/include/ -I src/nba/src -I external/fmtlib/include/ -I external/toml11/include/ LDFLAGS := -s ENVIRONMENT=web -s ASSERTIONS=0 -s FILESYSTEM=0 -s STANDALONE_WASM=1 -s ALLOW_MEMORY_GROWTH\ -s EXPORTED_FUNCTIONS=[_getRom,_getIRam,_getWRam,_go,_run,_main] --lto BUILD := build OBJECTS := $(BUILD)/000-serialization.o $(BUILD)/001-tablegen.o $(BUILD)/002-bus.o \ $(BUILD)/003-io.o $(BUILD)/004-serialization.o $(BUILD)/005-timing.o \ $(BUILD)/006-core.o $(BUILD)/007-apu.o $(BUILD)/008-callback.o \ $(BUILD)/009-noise_channel.o $(BUILD)/010-quad_channel.o $(BUILD)/011-wave_channel.o \ $(BUILD)/012-mp2k.o $(BUILD)/013-registers.o $(BUILD)/014-serialization.o \ $(BUILD)/015-dma.o $(BUILD)/016-serialization.o $(BUILD)/017-irq.o \ $(BUILD)/018-serialization.o $(BUILD)/019-keypad.o $(BUILD)/020-serialization.o \ $(BUILD)/021-background.o $(BUILD)/022-merge.o $(BUILD)/023-ppu.o \ $(BUILD)/024-registers.o $(BUILD)/025-serialization.o $(BUILD)/026-sprite.o \ $(BUILD)/027-window.o $(BUILD)/028-eeprom.o $(BUILD)/029-flash.o \ $(BUILD)/030-serialization.o $(BUILD)/031-sram.o $(BUILD)/032-gpio.o \ $(BUILD)/033-rtc.o $(BUILD)/034-serialization.o $(BUILD)/035-solar_sensor.o \ $(BUILD)/036-serialization.o $(BUILD)/037-timer.o $(BUILD)/038-serialization.o \ $(BUILD)/os.o $(BUILD)/module.o $(BUILD)/format.o $(BUILD)/bios.o SRCPATH := src/nba/src TARGETS := nba.html $(TARGETS): $(BUILD) $(OBJECTS) $(CXX) $(OBJECTS) -o $(TARGETS) $(LDFLAGS) $(BUILD): -mkdir $@ clean: -rm -rf $(BUILD) -rm -f $(TARGETS) nba.js nba.wasm $(BUILD)/000-serialization.o: src/nba/src/arm/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/001-tablegen.o: src/nba/src/arm/tablegen/tablegen.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/002-bus.o: src/nba/src/bus/bus.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/003-io.o: src/nba/src/bus/io.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/004-serialization.o: src/nba/src/bus/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/005-timing.o: src/nba/src/bus/timing.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/006-core.o: src/nba/src/core.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/007-apu.o: src/nba/src/hw/apu/apu.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/008-callback.o: src/nba/src/hw/apu/callback.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/009-noise_channel.o: src/nba/src/hw/apu/channel/noise_channel.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/010-quad_channel.o: src/nba/src/hw/apu/channel/quad_channel.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/011-wave_channel.o: src/nba/src/hw/apu/channel/wave_channel.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/012-mp2k.o: src/nba/src/hw/apu/hle/mp2k.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/013-registers.o: src/nba/src/hw/apu/registers.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/014-serialization.o: src/nba/src/hw/apu/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/015-dma.o: src/nba/src/hw/dma/dma.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/016-serialization.o: src/nba/src/hw/dma/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/017-irq.o: src/nba/src/hw/irq/irq.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/018-serialization.o: src/nba/src/hw/irq/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/019-keypad.o: src/nba/src/hw/keypad/keypad.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/020-serialization.o: src/nba/src/hw/keypad/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/021-background.o: src/nba/src/hw/ppu/background.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/022-merge.o: src/nba/src/hw/ppu/merge.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/023-ppu.o: src/nba/src/hw/ppu/ppu.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/024-registers.o: src/nba/src/hw/ppu/registers.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/025-serialization.o: src/nba/src/hw/ppu/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/026-sprite.o: src/nba/src/hw/ppu/sprite.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/027-window.o: src/nba/src/hw/ppu/window.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/028-eeprom.o: src/nba/src/hw/rom/backup/eeprom.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/029-flash.o: src/nba/src/hw/rom/backup/flash.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/030-serialization.o: src/nba/src/hw/rom/backup/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/031-sram.o: src/nba/src/hw/rom/backup/sram.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/032-gpio.o: src/nba/src/hw/rom/gpio/gpio.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/033-rtc.o: src/nba/src/hw/rom/gpio/rtc.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/034-serialization.o: src/nba/src/hw/rom/gpio/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/035-solar_sensor.o: src/nba/src/hw/rom/gpio/solar_sensor.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/036-serialization.o: src/nba/src/hw/timer/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/037-timer.o: src/nba/src/hw/timer/timer.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/038-serialization.o: src/nba/src/serialization.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/bios.o: src/wasm/bios.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/module.o: src/wasm/module.cpp $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/format.o: external/fmtlib/src/format.cc $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES) $(BUILD)/os.o: external/fmtlib/src/os.cc $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDES)