wasm-openFPGALoader-port/Makefile

42 lines
3.3 KiB
Makefile
Raw Normal View History

2024-01-27 06:55:57 +00:00
EMSCRIPTEN_DIR=/usr/lib/emscripten
all: wasmFPGALoader.js
build_libusb:
cd libusb && \
autoreconf -fiv && \
$(EMSCRIPTEN_DIR)/emconfigure ./configure -host=wasm32-emscripten -prefix=$(PWD)/installed && \
$(EMSCRIPTEN_DIR)/emmake make install
build_libftdi:
cp libftdi_CMakeLists.txt libftdi/CMakeLists.txt && \
cd libftdi && \
mkdir -p build && cd build && \
$(EMSCRIPTEN_DIR)/emcmake cmake -DFTDI_EEPROM=OFF .. && \
$(EMSCRIPTEN_DIR)/emmake make && \
cp src/libftdi1.a ../../installed/lib/ && \
mkdir -p ../../installed/include/libftdi1 && \
cp ../src/ftdi.h ../../installed/include/libftdi1/
# TODO: let cmake install to corrrect directory
EMCC=${EMSCRIPTEN_DIR}/emcc
INCLUDES=-I./installed/include/libftdi1 -I./installed/include/libusb-1.0
DEFINES=-DBLASTERII_DIR=\"\" -DDATA_DIR=\"/usr/local/share\" -DFTDI_VERSION=105 -DISE_DIR=\"/opt/Xilinx/14.7\" -DUSE_DEVICE_ARG -DVERSION=\"v0.11.0-wasm\"
2024-01-27 07:34:41 +00:00
OPTIMIZE=-O3 # release, takes 30 mins
#OPTIMIZE=-O1 # iteration
2024-01-27 06:55:57 +00:00
#OPTIMIZE=-g # debug
CFLAGS=$(OPTIMIZE) -pthread -fexceptions $(INCLUDES) $(DEFINES)
LDFLAGS=$(OPTIMIZE) --bind -fexceptions installed/lib/libusb-1.0.a installed/lib/libftdi1.a -s "EXPORTED_RUNTIME_METHODS=['callMain']" -s ASYNCIFY -s ASYNCIFY_STACK_SIZE=512000 -s ALLOW_MEMORY_GROWTH -s INVOKE_RUN=0 -s USE_PTHREADS=1 # -s TOTAL_MEMORY=2048MB -s ASSERTIONS=1 --shell-file wasmFPGAloader_shell.html -s NO_EXIT_RUNTIME=1 #-s NO_DISABLE_EXCEPTION_CATCHING -s DISABLE_EXCEPTION_CATCHING=0 # -s SAFE_HEAP=0 -s NO_DISABLE_EXCEPTION_CATCHING -s MEMORY64=0
SOURCES=openFPGALoader/src/altera.cpp openFPGALoader/src/anlogicBitParser.cpp openFPGALoader/src/anlogicCable.cpp openFPGALoader/src/anlogic.cpp openFPGALoader/src/bitparser.cpp openFPGALoader/src/ch347jtag.cpp openFPGALoader/src/ch552_jtag.cpp openFPGALoader/src/colognechipCfgParser.cpp openFPGALoader/src/colognechip.cpp openFPGALoader/src/common.cpp openFPGALoader/src/configBitstreamParser.cpp openFPGALoader/src/device.cpp openFPGALoader/src/dfu.cpp openFPGALoader/src/dfuFileParser.cpp openFPGALoader/src/dirtyJtag.cpp openFPGALoader/src/display.cpp openFPGALoader/src/efinix.cpp openFPGALoader/src/efinixHexParser.cpp openFPGALoader/src/epcq.cpp openFPGALoader/src/feaparser.cpp openFPGALoader/src/fsparser.cpp openFPGALoader/src/ftdiJtagBitbang.cpp openFPGALoader/src/ftdiJtagMPSSE.cpp openFPGALoader/src/ftdipp_mpsse.cpp openFPGALoader/src/ftdispi.cpp openFPGALoader/src/fx2_ll.cpp openFPGALoader/src/gowin.cpp openFPGALoader/src/ice40.cpp openFPGALoader/src/ihexParser.cpp openFPGALoader/src/jedParser.cpp openFPGALoader/src/jlink.cpp openFPGALoader/src/jtag.cpp openFPGALoader/src/latticeBitParser.cpp openFPGALoader/src/lattice.cpp openFPGALoader/src/libusb_ll.cpp openFPGALoader/src/main.cpp openFPGALoader/src/mcsParser.cpp openFPGALoader/src/pathHelper.cpp openFPGALoader/src/pofParser.cpp openFPGALoader/src/progressBar.cpp openFPGALoader/src/rawParser.cpp openFPGALoader/src/remoteBitbang_client.cpp openFPGALoader/src/spiFlash.cpp openFPGALoader/src/spiInterface.cpp openFPGALoader/src/svf_jtag.cpp openFPGALoader/src/usbBlaster.cpp openFPGALoader/src/xilinx.cpp openFPGALoader/src/xilinxMapParser.cpp openFPGALoader/src/xvc_client.cpp openFPGALoader/src/xvc_server.cpp
OBJECTS=$(SOURCES:.cpp=.o)
%.o:%.cpp
$(EMCC) $(CFLAGS) -c $< -o $@
wasmFPGALoader.js: $(OBJECTS)
$(EMCC) $(LDFLAGS) $(OBJECTS) -o $@
clean:
2024-01-27 07:34:41 +00:00
-rm wasmFPGALoader.{js,wasm} $(OBJECTS)