Collection of DPF-based plugins for packaging
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.

213 lines
7.2KB

  1. #!/usr/bin/make -f
  2. # Makefile for DISTRHO Plugins #
  3. # ---------------------------- #
  4. # Created by falkTX
  5. #
  6. # --------------------------------------------------------------
  7. # Project name, used for binaries
  8. NAME = ProM
  9. # --------------------------------------------------------------
  10. # Files to build
  11. FILES_DSP = \
  12. DistrhoPluginProM.cpp
  13. FILES_UI = \
  14. DistrhoUIProM.cpp
  15. # --------------------------------------------------------------
  16. # Check for system-wide projectM
  17. HAVE_PROJECTM = $(shell pkg-config --exists libprojectM && echo true)
  18. # --------------------------------------------------------------
  19. # Import base definitions
  20. FILE_BROWSER_DISABLED = true
  21. include ../../dpf/Makefile.base.mk
  22. # --------------------------------------------------------------
  23. # Use local copy if needed
  24. ifneq ($(HAVE_PROJECTM),true)
  25. FILES_UI += \
  26. projectM/src/libprojectM/ConfigFile.cpp \
  27. projectM/src/libprojectM/FileScanner.cpp \
  28. projectM/src/libprojectM/KeyHandler.cpp \
  29. projectM/src/libprojectM/PCM.cpp \
  30. projectM/src/libprojectM/PipelineMerger.cpp \
  31. projectM/src/libprojectM/Preset.cpp \
  32. projectM/src/libprojectM/PresetChooser.cpp \
  33. projectM/src/libprojectM/PresetFactory.cpp \
  34. projectM/src/libprojectM/PresetFactoryManager.cpp \
  35. projectM/src/libprojectM/PresetLoader.cpp \
  36. projectM/src/libprojectM/TimeKeeper.cpp \
  37. projectM/src/libprojectM/fftsg.cpp \
  38. projectM/src/libprojectM/projectM.cpp \
  39. projectM/src/libprojectM/timer.cpp \
  40. projectM/src/libprojectM/wipemalloc.cpp \
  41. projectM/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp \
  42. projectM/src/libprojectM/MilkdropPresetFactory/BuiltinParams.cpp \
  43. projectM/src/libprojectM/MilkdropPresetFactory/CustomShape.cpp \
  44. projectM/src/libprojectM/MilkdropPresetFactory/CustomWave.cpp \
  45. projectM/src/libprojectM/MilkdropPresetFactory/Eval.cpp \
  46. projectM/src/libprojectM/MilkdropPresetFactory/Expr.cpp \
  47. projectM/src/libprojectM/MilkdropPresetFactory/Func.cpp \
  48. projectM/src/libprojectM/MilkdropPresetFactory/IdlePreset.cpp \
  49. projectM/src/libprojectM/MilkdropPresetFactory/InitCond.cpp \
  50. projectM/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.cpp \
  51. projectM/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp \
  52. projectM/src/libprojectM/MilkdropPresetFactory/Param.cpp \
  53. projectM/src/libprojectM/MilkdropPresetFactory/Parser.cpp \
  54. projectM/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.cpp \
  55. projectM/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.cpp \
  56. projectM/src/libprojectM/MilkdropPresetFactory/PerPointEqn.cpp \
  57. projectM/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.cpp \
  58. projectM/src/libprojectM/NativePresetFactory/NativePresetFactory.cpp \
  59. projectM/src/libprojectM/Renderer/BeatDetect.cpp \
  60. projectM/src/libprojectM/Renderer/Renderable.cpp \
  61. projectM/src/libprojectM/Renderer/Filters.cpp \
  62. projectM/src/libprojectM/Renderer/Renderer.cpp \
  63. projectM/src/libprojectM/Renderer/MilkdropWaveform.cpp \
  64. projectM/src/libprojectM/Renderer/Shader.cpp \
  65. projectM/src/libprojectM/Renderer/PerPixelMesh.cpp \
  66. projectM/src/libprojectM/Renderer/ShaderEngine.cpp \
  67. projectM/src/libprojectM/Renderer/PerlinNoise.cpp \
  68. projectM/src/libprojectM/Renderer/StaticGlShaders.cpp \
  69. projectM/src/libprojectM/Renderer/PerlinNoiseWithAlpha.cpp \
  70. projectM/src/libprojectM/Renderer/Texture.cpp \
  71. projectM/src/libprojectM/Renderer/Pipeline.cpp \
  72. projectM/src/libprojectM/Renderer/TextureManager.cpp \
  73. projectM/src/libprojectM/Renderer/PipelineContext.cpp \
  74. projectM/src/libprojectM/Renderer/VideoEcho.cpp \
  75. projectM/src/libprojectM/Renderer/RenderItemDistanceMetric.cpp \
  76. projectM/src/libprojectM/Renderer/Waveform.cpp \
  77. projectM/src/libprojectM/Renderer/RenderItemMatcher.cpp \
  78. projectM/src/libprojectM/Renderer/hlslparser/src/CodeWriter.cpp \
  79. projectM/src/libprojectM/Renderer/hlslparser/src/HLSLParser.cpp \
  80. projectM/src/libprojectM/Renderer/hlslparser/src/Engine.cpp \
  81. projectM/src/libprojectM/Renderer/hlslparser/src/HLSLTokenizer.cpp \
  82. projectM/src/libprojectM/Renderer/hlslparser/src/GLSLGenerator.cpp \
  83. projectM/src/libprojectM/Renderer/hlslparser/src/HLSLTree.cpp \
  84. projectM/src/libprojectM/Renderer/SOIL2/SOIL2.c \
  85. projectM/src/libprojectM/Renderer/SOIL2/image_DXT.c \
  86. projectM/src/libprojectM/Renderer/SOIL2/etc1_utils.c \
  87. projectM/src/libprojectM/Renderer/SOIL2/image_helper.c
  88. ifeq ($(WINDOWS),true)
  89. FILES_UI += \
  90. projectM/msvc/dlfcn.c \
  91. projectM/msvc/GL/glew.c
  92. endif # WINDOWS
  93. endif # !HAVE_PROJECTM
  94. # --------------------------------------------------------------
  95. # Do some magic
  96. UI_TYPE = opengl3
  97. USE_VST2_BUNDLE = true
  98. include ../../dpf/Makefile.plugins.mk
  99. # --------------------------------------------------------------
  100. # Extra flags
  101. ifeq ($(HAVE_PROJECTM),true)
  102. BASE_FLAGS += -DPROJECTM_DATA_DIR='"$(shell pkg-config --variable=pkgdatadir libprojectM)"'
  103. BASE_FLAGS += $(shell pkg-config --cflags libprojectM)
  104. LINK_FLAGS += $(shell pkg-config --libs libprojectM)
  105. ifeq ($(shell pkg-config --atleast-version=3.1.8 libprojectM && echo true),true)
  106. BASE_FLAGS += -DHAVE_PROJECTM_TEXT_FUNCTIONS
  107. endif
  108. else # HAVE_PROJECTM
  109. # custom macros for ProM
  110. BASE_FLAGS += -DHAVE_PROJECTM_TEXT_FUNCTIONS
  111. # compiler macros from projectM
  112. BASE_FLAGS += -DUSE_TEXT_MENU=1
  113. BASE_FLAGS += -DUSE_THREADS=1
  114. # GLES stuff
  115. # BASE_FLAGS += -DUSE_GLES=1
  116. # Experimental
  117. # BASE_FLAGS += -DHAVE_LLVM=1
  118. ifeq ($(WINDOWS),true)
  119. BASE_FLAGS += -DDLLEXPORT=
  120. BASE_FLAGS += -DprojectM_FONT_TITLE='"fonts/Vera.tff"'
  121. BASE_FLAGS += -DprojectM_FONT_MENU='"fonts/VeraMono.ttf"'
  122. BASE_FLAGS += -DSTBI_NO_DDS=1
  123. else # WINDOWS
  124. BASE_FLAGS += -DDATADIR_PATH='"."'
  125. BASE_FLAGS += -DHAVE_ALIGNED_ALLOC=1
  126. BASE_FLAGS += -DHAVE_FTS_H=1
  127. BASE_FLAGS += -DHAVE_POSIX_MEMALIGN=1
  128. endif # WINDOWS
  129. # include dirs
  130. BASE_FLAGS += -IprojectM/src
  131. BASE_FLAGS += -IprojectM/src/libprojectM
  132. BASE_FLAGS += -IprojectM/src/libprojectM/Renderer
  133. BASE_FLAGS += -IprojectM/src/libprojectM/Renderer/hlslparser/src
  134. BASE_FLAGS += -IprojectM/src/libprojectM/MilkdropPresetFactory
  135. BASE_FLAGS += -IprojectM/src/libprojectM/NativePresetFactory
  136. BASE_FLAGS += -IprojectM/vendor
  137. ifeq ($(WINDOWS),true)
  138. BASE_FLAGS += -IprojectM/msvc
  139. endif # WINDOWS
  140. # silence projectM warnings
  141. BASE_FLAGS += -Wno-ignored-qualifiers
  142. BASE_FLAGS += -Wno-implicit-fallthrough
  143. BASE_FLAGS += -Wno-overflow
  144. BASE_FLAGS += -Wno-shift-negative-value
  145. BASE_FLAGS += -Wno-sign-compare
  146. BASE_FLAGS += -Wno-unused-parameter
  147. BASE_FLAGS += -Wno-unused-variable
  148. ifeq ($(MACOS),true)
  149. BASE_FLAGS += -Wno-constant-conversion
  150. BASE_FLAGS += -Wno-delete-non-abstract-non-virtual-dtor
  151. BASE_FLAGS += -Wno-mismatched-tags
  152. else
  153. BASE_FLAGS += -Wno-maybe-uninitialized
  154. BASE_FLAGS += -Wno-unused-but-set-variable
  155. endif # MACOS
  156. ifeq ($(WINDOWS),true)
  157. BASE_FLAGS += -Wno-cast-function-type
  158. BASE_FLAGS += -Wno-unknown-pragmas
  159. else
  160. BASE_FLAGS += -Wno-unused-function
  161. endif # WINDOWS
  162. # openmp (optional)
  163. ifeq ($(DISABLE_OPENMP),)
  164. ifneq ($(MACOS),true)
  165. CUSTOM_BUILD_FLAGS += -D_OPENMP -fopenmp
  166. CUSTOM_LINK_FLAGS += -fopenmp
  167. endif # MACOS
  168. endif # DISABLE_OPENMP
  169. # extra linker flags
  170. ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
  171. LINK_FLAGS += -ldl
  172. endif
  173. ifeq ($(WINDOWS),true)
  174. LINK_FLAGS += -lpsapi
  175. endif
  176. endif # HAVE_PROJECTM
  177. LINK_FLAGS += -lpthread
  178. # --------------------------------------------------------------
  179. # Enable all possible plugin types
  180. TARGETS = lv2 vst2 vst3
  181. all: $(TARGETS)
  182. # --------------------------------------------------------------