You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
4.7KB

  1. RACK_DIR ?= ../..
  2. FLAGS += -Idep/include
  3. CFLAGS +=
  4. CXXFLAGS +=
  5. LDFLAGS +=
  6. SOURCES += src/Prototype.cpp
  7. DISTRIBUTABLES += res examples
  8. DISTRIBUTABLES += $(wildcard LICENSE*)
  9. include $(RACK_DIR)/arch.mk
  10. DUKTAPE ?= 0
  11. QUICKJS ?= 1
  12. PYTHON ?= 0
  13. # Entropia File System Watcher
  14. efsw := dep/lib/libefsw-static-release.a
  15. DEPS += $(efsw)
  16. OBJECTS += $(efsw)
  17. $(efsw):
  18. cd dep && $(WGET) "https://bitbucket.org/SpartanJ/efsw/get/e6afbec564e2.zip"
  19. cd dep && $(SHA256) e6afbec564e2.zip 8589dbedac7434f1863637af696354a9f1fcc28c6397c37b492a797ae62976be
  20. cd dep && $(UNZIP) e6afbec564e2.zip
  21. cd dep/SpartanJ-efsw-e6afbec564e2 && premake4 gmake
  22. cd dep/SpartanJ-efsw-e6afbec564e2 && $(MAKE) -C make/* config=release efsw-static-lib
  23. mkdir -p dep/lib dep/include
  24. cd dep/SpartanJ-efsw-e6afbec564e2 && cp lib/libefsw-static-release.a $(DEP_PATH)/lib/
  25. cd dep/SpartanJ-efsw-e6afbec564e2 && cp -R include/efsw $(DEP_PATH)/include/
  26. # Duktape
  27. ifeq ($(DUKTAPE), 1)
  28. SOURCES += src/DuktapeEngine.cpp
  29. duktape := dep/duktape-2.4.0/src/duktape.c
  30. DEPS += $(duktape)
  31. SOURCES += $(duktape)
  32. FLAGS += -Idep/duktape-2.4.0/src
  33. $(duktape):
  34. $(WGET) "https://duktape.org/duktape-2.4.0.tar.xz"
  35. $(SHA256) duktape-2.4.0.tar.xz 86a89307d1633b5cedb2c6e56dc86e92679fc34b05be551722d8cc69ab0771fc
  36. cd dep && $(UNTAR) ../duktape-2.4.0.tar.xz
  37. endif
  38. # QuickJS
  39. ifeq ($(QUICKJS), 1)
  40. SOURCES += src/QuickJSEngine.cpp
  41. quickjs := dep/lib/quickjs/libquickjs.a
  42. DEPS += $(quickjs)
  43. OBJECTS += $(quickjs)
  44. QUICKJS_MAKE_FLAGS += prefix="$(DEP_PATH)"
  45. ifdef ARCH_WIN
  46. QUICKJS_MAKE_FLAGS += CONFIG_WIN32=y
  47. endif
  48. $(quickjs):
  49. cd QuickJS && $(MAKE) $(QUICKJS_MAKE_FLAGS)
  50. cd QuickJS && $(MAKE) $(QUICKJS_MAKE_FLAGS) install
  51. endif
  52. # Python
  53. ifeq ($(PYTHON), 1)
  54. SOURCES += src/PythonEngine.cpp
  55. python := dep/lib/libpython3.7m.so
  56. DEPS += $(python) $(numpy)
  57. # OBJECTS += $(python)
  58. FLAGS += -Idep/include/python3.7m
  59. # TODO Test these flags on all platforms
  60. LDFLAGS += -Ldep/lib -lpython3.7m
  61. LDFLAGS += -lcrypt -lpthread -ldl -lutil -lm
  62. $(python):
  63. $(WGET) "https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz"
  64. $(SHA256) Python-3.7.4.tar.xz fb799134b868199930b75f26678f18932214042639cd52b16da7fd134cd9b13f
  65. cd dep && $(UNTAR) ../Python-3.7.4.tar.xz
  66. cd dep/Python-3.7.4 && $(CONFIGURE) --build=$(MACHINE) --enable-shared --enable-optimizations
  67. cd dep/Python-3.7.4 && $(MAKE) build_all
  68. cd dep/Python-3.7.4 && $(MAKE) install
  69. numpy := dep/lib/python3.7/site-packages/numpy-1.17.2-py3.7-linux-x86_64.egg
  70. FLAGS += -Idep/lib/python3.7/site-packages/numpy-1.17.2-py3.7-linux-x86_64.egg/numpy/core/include
  71. $(numpy): $(python)
  72. $(WGET) "https://github.com/numpy/numpy/releases/download/v1.17.2/numpy-1.17.2.tar.gz"
  73. $(SHA256) numpy-1.17.2.tar.gz 81a4f748dcfa80a7071ad8f3d9f8edb9f8bc1f0a9bdd19bfd44fd42c02bd286c
  74. cd dep && $(UNTAR) ../numpy-1.17.2.tar.gz
  75. # Don't try to find an external BLAS and LAPACK library.
  76. cd dep/numpy-1.17.2 && NPY_BLAS_ORDER= NPY_LAPACK_ORDER= "$(DEP_PATH)"/bin/python3.7 setup.py build -j4 install install_headers
  77. # scipy: $(numpy)
  78. # $(WGET) "https://github.com/scipy/scipy/releases/download/v1.3.1/scipy-1.3.1.tar.xz"
  79. # $(SHA256) scipy-1.3.1.tar.xz 326ffdad79f113659ed0bca80f5d0ed5e28b2e967b438bb1f647d0738073a92e
  80. # cd dep && $(UNTAR) ../scipy-1.3.1.tar.xz
  81. # cd dep/scipy-1.3.1 && "$(DEP_PATH)"/bin/python3.7 setup.py build -j4 install
  82. endif
  83. # # LuaJIT
  84. # luajit := dep/lib/luajit.a
  85. # DEPS += $(luajit)
  86. # $(luajit):
  87. # cd dep && $(WGET) "http://luajit.org/download/LuaJIT-2.0.5.tar.gz"
  88. # cd dep && $(SHA256) LuaJIT-2.0.5.tar.gz 874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979
  89. # cd dep && $(UNTAR) LuaJIT-2.0.5.tar.gz
  90. # cd dep/LuaJIT-2.0.5 && $(MAKE)
  91. # # Julia
  92. # julia := dep/lib/libjulia.a
  93. # DEPS += $(julia)
  94. # $(julia):
  95. # $(WGET) "https://github.com/JuliaLang/julia/releases/download/v1.2.0/julia-1.2.0-full.tar.gz"
  96. # $(SHA256) julia-1.2.0-full.tar.gz 2419b268fc5c3666dd9aeb554815fe7cf9e0e7265bc9b94a43957c31a68d9184
  97. # cd dep && $(UNTAR) ../julia-1.2.0-full.tar.gz
  98. # # Csound
  99. # csound := dep/lib/libcsound.a
  100. # DEPS += $(csound)
  101. # $(csound):
  102. # $(WGET) "https://github.com/csound/csound/archive/6.13.0.tar.gz"
  103. # $(SHA256) 6.13.0.tar.gz 183beeb3b720bfeab6cc8af12fbec0bf9fef2727684ac79289fd12d0dfee728b
  104. # cd dep && $(UNTAR) ../6.13.0.tar.gz
  105. # # LLVM
  106. # llvm := dep/lib/libllvm.a
  107. # DEPS += $(llvm)
  108. # $(llvm):
  109. # $(WGET) "https://github.com/llvm/llvm-project/releases/download/llvmorg-8.0.1/llvm-8.0.1.src.tar.xz"
  110. # $(SHA256) llvm-8.0.1.src.tar.xz 44787a6d02f7140f145e2250d56c9f849334e11f9ae379827510ed72f12b75e7
  111. # cd dep && $(UNTAR) ../llvm-8.0.1.src.tar.xz
  112. # cd dep/llvm-8.0.1.src && mkdir -p build
  113. # cd dep/llvm-8.0.1.src/build && $(CMAKE) ..
  114. # cd dep/llvm-8.0.1.src/build && $(MAKE)
  115. # cd dep/llvm-8.0.1.src/build && $(MAKE) install
  116. include $(RACK_DIR)/plugin.mk