| @@ -23,7 +23,7 @@ | |||
| # the value specified here will be ignored. | |||
| EM_DEBUG ?= 0 | |||
| ifneq ($(EM_DEBUG), 1) | |||
| CXXFLAGS+=-O3 | |||
| CXXFLAGS+=-O3 | |||
| endif | |||
| @@ -34,7 +34,7 @@ endif | |||
| # NOTE: sanity check | |||
| ifndef EMSCRIPTEN | |||
| $(error EMSCRIPTEN var not set. You must use emmake to run this Makefile!) | |||
| $(error EMSCRIPTEN var not set. You must use emmake to run this Makefile!) | |||
| endif | |||
| # NOTE: in the emscripten virtual FS, | |||
| @@ -47,8 +47,14 @@ EM_VIRTUAL_PATH_ESPEAKNG_DATA=/usr/share/espeak-ng-data | |||
| EM_WEBIDL_BINDER=python $(EMSCRIPTEN)/tools/webidl_binder.py | |||
| EM_FILE_PACKAGER=python $(EMSCRIPTEN)/tools/file_packager.py | |||
| # NOTE: libespeak-ng.so compiled to LLVM IR code | |||
| EM_LIBESPEAKNG_SO=../src/.libs/libespeak-ng.so | |||
| # NOTE: libespeak-ng.so (Linux) or libespeak-ng.dylib (macOS) compiled to LLVM IR code | |||
| EM_LIBESPEAKNG_SO=$(wildcard ../src/.libs/libespeak-ng.so) | |||
| EM_LIBESPEAKNG_DYLIB=$(wildcard ../src/.libs/libespeak-ng.dylib) | |||
| ifneq ($(EM_LIBESPEAKNG_DYLIB),) | |||
| EM_LIBESPEAKNG=$(EM_LIBESPEAKNG_DYLIB) | |||
| else ifneq ($(EM_LIBESPEAKNG_SO),) | |||
| EM_LIBESPEAKNG=$(EM_LIBESPEAKNG_SO) | |||
| endif | |||
| # NOTE: glue code files | |||
| EM_GLUE_PREFIX=glue | |||
| @@ -74,7 +80,6 @@ EM_WORKER_JS=js/espeakng.worker.js | |||
| EM_PTHREAD_MAIN_JS=js/pthread-main.js | |||
| # NOTE: intermediate objects | |||
| EM_OBJS=$(EM_GLUE_OBJ) $(EM_LIBESPEAKNG_SO) | |||
| EM_ALL_PRE_JS=$(EM_PRE_JS) $(EM_ESPEAKNG_DATA_PACKAGE_JS) | |||
| EM_ALL_POST_JS=$(EM_GLUE_AUTOGEN_JS) $(EM_POST_JS) | |||
| @@ -107,9 +112,9 @@ all: $(EM_WORKER_JS) | |||
| $(EM_WORKER_DATA): | |||
| $(EM_FILE_PACKAGER) $@ \ | |||
| --js-output=$(EM_ESPEAKNG_DATA_PACKAGE_JS) \ | |||
| --preload $(EM_DATA_DIR)@$(EM_VIRTUAL_PATH_ESPEAKNG_DATA) \ | |||
| $(patsubst %,--exclude %,$(EM_EXCLUDE_DATA)) | |||
| --js-output=$(EM_ESPEAKNG_DATA_PACKAGE_JS) \ | |||
| --preload $(EM_DATA_DIR)@$(EM_VIRTUAL_PATH_ESPEAKNG_DATA) \ | |||
| $(patsubst %,--exclude %,$(EM_EXCLUDE_DATA)) | |||
| $(EM_ESPEAKNG_DATA_PACKAGE_JS): $(EM_WORKER_DATA) | |||
| @@ -120,13 +125,17 @@ $(EM_GLUE_AUTOGEN_JS): $(EM_GLUE_AUTOGEN_CPP) | |||
| $(EM_GLUE_OBJ): $(EM_GLUE_CPP) | |||
| $(EM_WORKER_JS): $(EM_GLUE_AUTOGEN_CPP) $(EM_OBJS) $(EM_ALL_PRE_JS) $(EM_ALL_POST_JS) | |||
| $(EM_WORKER_JS): $(EM_GLUE_AUTOGEN_CPP) $(EM_GLUE_OBJ) $(EM_ALL_PRE_JS) $(EM_ALL_POST_JS) | |||
| ifeq ($(EM_LIBESPEAKNG),) | |||
| $(error Unable to find ../src/.libs/libespeak-ng .so or .dylib. Aborting!) | |||
| endif | |||
| $(CXX) $(CXXFLAGS) \ | |||
| $(EM_CXXFLAGS) \ | |||
| $(EM_OBJS) \ | |||
| $(patsubst %,--pre-js %,$(EM_ALL_PRE_JS)) \ | |||
| $(patsubst %,--post-js %,$(EM_ALL_POST_JS)) \ | |||
| -o $@ | |||
| $(EM_CXXFLAGS) \ | |||
| $(EM_GLUE_OBJ) \ | |||
| $(EM_LIBESPEAKNG) \ | |||
| $(patsubst %,--pre-js %,$(EM_ALL_PRE_JS)) \ | |||
| $(patsubst %,--post-js %,$(EM_ALL_POST_JS)) \ | |||
| -o $@ | |||
| clean-intermediate: | |||
| rm -f *.o *.out *.pkl $(EM_GLUE_AUTOGEN_CPP) $(EM_GLUE_AUTOGEN_JS) $(EM_ESPEAKNG_DATA_PACKAGE_JS) | |||