1
0

Makefile 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #
  2. # Copyright (c) 2016-present, Facebook, Inc.
  3. # All rights reserved.
  4. #
  5. # This source code is licensed under the MIT license found in the
  6. # LICENSE file in the root directory of this source tree.
  7. #
  8. CXX = c++
  9. CXXFLAGS = -pthread -std=c++17 -march=native
  10. OBJS = args.o autotune.o matrix.o dictionary.o loss.o productquantizer.o densematrix.o quantmatrix.o vector.o model.o utils.o meter.o fasttext.o
  11. INCLUDES = -I.
  12. opt: CXXFLAGS += -O3 -funroll-loops -DNDEBUG
  13. opt: fasttext
  14. coverage: CXXFLAGS += -O0 -fno-inline -fprofile-arcs --coverage
  15. coverage: fasttext
  16. debug: CXXFLAGS += -g -O0 -fno-inline
  17. debug: fasttext
  18. wasm: webassembly/fasttext_wasm.js
  19. wasmdebug: export EMCC_DEBUG=1
  20. wasmdebug: webassembly/fasttext_wasm.js
  21. args.o: src/args.cc src/args.h
  22. $(CXX) $(CXXFLAGS) -c src/args.cc
  23. autotune.o: src/autotune.cc src/autotune.h
  24. $(CXX) $(CXXFLAGS) -c src/autotune.cc
  25. matrix.o: src/matrix.cc src/matrix.h
  26. $(CXX) $(CXXFLAGS) -c src/matrix.cc
  27. dictionary.o: src/dictionary.cc src/dictionary.h src/args.h
  28. $(CXX) $(CXXFLAGS) -c src/dictionary.cc
  29. loss.o: src/loss.cc src/loss.h src/matrix.h src/real.h
  30. $(CXX) $(CXXFLAGS) -c src/loss.cc
  31. productquantizer.o: src/productquantizer.cc src/productquantizer.h src/utils.h
  32. $(CXX) $(CXXFLAGS) -c src/productquantizer.cc
  33. densematrix.o: src/densematrix.cc src/densematrix.h src/utils.h src/matrix.h
  34. $(CXX) $(CXXFLAGS) -c src/densematrix.cc
  35. quantmatrix.o: src/quantmatrix.cc src/quantmatrix.h src/utils.h src/matrix.h
  36. $(CXX) $(CXXFLAGS) -c src/quantmatrix.cc
  37. vector.o: src/vector.cc src/vector.h src/utils.h
  38. $(CXX) $(CXXFLAGS) -c src/vector.cc
  39. model.o: src/model.cc src/model.h src/args.h
  40. $(CXX) $(CXXFLAGS) -c src/model.cc
  41. utils.o: src/utils.cc src/utils.h
  42. $(CXX) $(CXXFLAGS) -c src/utils.cc
  43. meter.o: src/meter.cc src/meter.h
  44. $(CXX) $(CXXFLAGS) -c src/meter.cc
  45. fasttext.o: src/fasttext.cc src/*.h
  46. $(CXX) $(CXXFLAGS) -c src/fasttext.cc
  47. fasttext: $(OBJS) src/fasttext.cc src/main.cc
  48. $(CXX) $(CXXFLAGS) $(OBJS) src/main.cc -o fasttext
  49. clean:
  50. rm -rf *.o *.gcno *.gcda fasttext *.bc webassembly/fasttext_wasm.js webassembly/fasttext_wasm.wasm
  51. EMCXX = em++
  52. EMCXXFLAGS = --bind --std=c++11 -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=['addOnPostRun', 'FS']" -s "DISABLE_EXCEPTION_CATCHING=0" -s "EXCEPTION_DEBUG=1" -s "FORCE_FILESYSTEM=1" -s "MODULARIZE=1" -s "EXPORT_ES6=1" -s 'EXPORT_NAME="FastTextModule"' -Isrc/
  53. EMOBJS = args.bc autotune.bc matrix.bc dictionary.bc loss.bc productquantizer.bc densematrix.bc quantmatrix.bc vector.bc model.bc utils.bc meter.bc fasttext.bc main.bc
  54. main.bc: webassembly/fasttext_wasm.cc
  55. $(EMCXX) $(EMCXXFLAGS) webassembly/fasttext_wasm.cc -o main.bc
  56. args.bc: src/args.cc src/args.h
  57. $(EMCXX) $(EMCXXFLAGS) src/args.cc -o args.bc
  58. autotune.bc: src/autotune.cc src/autotune.h
  59. $(EMCXX) $(EMCXXFLAGS) src/autotune.cc -o autotune.bc
  60. matrix.bc: src/matrix.cc src/matrix.h
  61. $(EMCXX) $(EMCXXFLAGS) src/matrix.cc -o matrix.bc
  62. dictionary.bc: src/dictionary.cc src/dictionary.h src/args.h
  63. $(EMCXX) $(EMCXXFLAGS) src/dictionary.cc -o dictionary.bc
  64. loss.bc: src/loss.cc src/loss.h src/matrix.h src/real.h
  65. $(EMCXX) $(EMCXXFLAGS) src/loss.cc -o loss.bc
  66. productquantizer.bc: src/productquantizer.cc src/productquantizer.h src/utils.h
  67. $(EMCXX) $(EMCXXFLAGS) src/productquantizer.cc -o productquantizer.bc
  68. densematrix.bc: src/densematrix.cc src/densematrix.h src/utils.h src/matrix.h
  69. $(EMCXX) $(EMCXXFLAGS) src/densematrix.cc -o densematrix.bc
  70. quantmatrix.bc: src/quantmatrix.cc src/quantmatrix.h src/utils.h src/matrix.h
  71. $(EMCXX) $(EMCXXFLAGS) src/quantmatrix.cc -o quantmatrix.bc
  72. vector.bc: src/vector.cc src/vector.h src/utils.h
  73. $(EMCXX) $(EMCXXFLAGS) src/vector.cc -o vector.bc
  74. model.bc: src/model.cc src/model.h src/args.h
  75. $(EMCXX) $(EMCXXFLAGS) src/model.cc -o model.bc
  76. utils.bc: src/utils.cc src/utils.h
  77. $(EMCXX) $(EMCXXFLAGS) src/utils.cc -o utils.bc
  78. meter.bc: src/meter.cc src/meter.h
  79. $(EMCXX) $(EMCXXFLAGS) src/meter.cc -o meter.bc
  80. fasttext.bc: src/fasttext.cc src/*.h
  81. $(EMCXX) $(EMCXXFLAGS) src/fasttext.cc -o fasttext.bc
  82. webassembly/fasttext_wasm.js: $(EMOBJS) webassembly/fasttext_wasm.cc Makefile
  83. $(EMCXX) $(EMCXXFLAGS) $(EMOBJS) -o webassembly/fasttext_wasm.js