DISTRHO ProM
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.

170 lines
6.3KB

  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. # Use local copy if needed
  20. ifneq ($(HAVE_PROJECTM),true)
  21. FILES_UI += \
  22. projectM/src/libprojectM/ConfigFile.cpp \
  23. projectM/src/libprojectM/FileScanner.cpp \
  24. projectM/src/libprojectM/KeyHandler.cpp \
  25. projectM/src/libprojectM/PCM.cpp \
  26. projectM/src/libprojectM/PipelineMerger.cpp \
  27. projectM/src/libprojectM/Preset.cpp \
  28. projectM/src/libprojectM/PresetChooser.cpp \
  29. projectM/src/libprojectM/PresetFactory.cpp \
  30. projectM/src/libprojectM/PresetFactoryManager.cpp \
  31. projectM/src/libprojectM/PresetLoader.cpp \
  32. projectM/src/libprojectM/TimeKeeper.cpp \
  33. projectM/src/libprojectM/fftsg.cpp \
  34. projectM/src/libprojectM/projectM.cpp \
  35. projectM/src/libprojectM/timer.cpp \
  36. projectM/src/libprojectM/wipemalloc.cpp \
  37. projectM/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp \
  38. projectM/src/libprojectM/MilkdropPresetFactory/BuiltinParams.cpp \
  39. projectM/src/libprojectM/MilkdropPresetFactory/CustomShape.cpp \
  40. projectM/src/libprojectM/MilkdropPresetFactory/CustomWave.cpp \
  41. projectM/src/libprojectM/MilkdropPresetFactory/Eval.cpp \
  42. projectM/src/libprojectM/MilkdropPresetFactory/Expr.cpp \
  43. projectM/src/libprojectM/MilkdropPresetFactory/Func.cpp \
  44. projectM/src/libprojectM/MilkdropPresetFactory/IdlePreset.cpp \
  45. projectM/src/libprojectM/MilkdropPresetFactory/InitCond.cpp \
  46. projectM/src/libprojectM/MilkdropPresetFactory/MilkdropPreset.cpp \
  47. projectM/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp \
  48. projectM/src/libprojectM/MilkdropPresetFactory/Param.cpp \
  49. projectM/src/libprojectM/MilkdropPresetFactory/Parser.cpp \
  50. projectM/src/libprojectM/MilkdropPresetFactory/PerFrameEqn.cpp \
  51. projectM/src/libprojectM/MilkdropPresetFactory/PerPixelEqn.cpp \
  52. projectM/src/libprojectM/MilkdropPresetFactory/PerPointEqn.cpp \
  53. projectM/src/libprojectM/MilkdropPresetFactory/PresetFrameIO.cpp \
  54. projectM/src/libprojectM/NativePresetFactory/NativePresetFactory.cpp \
  55. projectM/src/libprojectM/Renderer/BeatDetect.cpp \
  56. projectM/src/libprojectM/Renderer/Renderable.cpp \
  57. projectM/src/libprojectM/Renderer/Filters.cpp \
  58. projectM/src/libprojectM/Renderer/Renderer.cpp \
  59. projectM/src/libprojectM/Renderer/MilkdropWaveform.cpp \
  60. projectM/src/libprojectM/Renderer/Shader.cpp \
  61. projectM/src/libprojectM/Renderer/PerPixelMesh.cpp \
  62. projectM/src/libprojectM/Renderer/ShaderEngine.cpp \
  63. projectM/src/libprojectM/Renderer/PerlinNoise.cpp \
  64. projectM/src/libprojectM/Renderer/StaticGlShaders.cpp \
  65. projectM/src/libprojectM/Renderer/PerlinNoiseWithAlpha.cpp \
  66. projectM/src/libprojectM/Renderer/Texture.cpp \
  67. projectM/src/libprojectM/Renderer/Pipeline.cpp \
  68. projectM/src/libprojectM/Renderer/TextureManager.cpp \
  69. projectM/src/libprojectM/Renderer/PipelineContext.cpp \
  70. projectM/src/libprojectM/Renderer/VideoEcho.cpp \
  71. projectM/src/libprojectM/Renderer/RenderItemDistanceMetric.cpp \
  72. projectM/src/libprojectM/Renderer/Waveform.cpp \
  73. projectM/src/libprojectM/Renderer/RenderItemMatcher.cpp \
  74. projectM/src/libprojectM/Renderer/hlslparser/src/CodeWriter.cpp \
  75. projectM/src/libprojectM/Renderer/hlslparser/src/HLSLParser.cpp \
  76. projectM/src/libprojectM/Renderer/hlslparser/src/Engine.cpp \
  77. projectM/src/libprojectM/Renderer/hlslparser/src/HLSLTokenizer.cpp \
  78. projectM/src/libprojectM/Renderer/hlslparser/src/GLSLGenerator.cpp \
  79. projectM/src/libprojectM/Renderer/hlslparser/src/HLSLTree.cpp \
  80. projectM/src/libprojectM/Renderer/SOIL2/SOIL2.c \
  81. projectM/src/libprojectM/Renderer/SOIL2/image_DXT.c \
  82. projectM/src/libprojectM/Renderer/SOIL2/etc1_utils.c \
  83. projectM/src/libprojectM/Renderer/SOIL2/image_helper.c
  84. endif
  85. # --------------------------------------------------------------
  86. # Do some magic
  87. include ../../dpf/Makefile.plugins.mk
  88. # --------------------------------------------------------------
  89. # Extra flags
  90. ifeq ($(HAVE_PROJECTM),true)
  91. BASE_FLAGS += -DPROJECTM_DATA_DIR='"$(shell pkg-config --variable=pkgdatadir libprojectM)"'
  92. BASE_FLAGS += $(shell pkg-config --cflags libprojectM)
  93. LINK_FLAGS += $(shell pkg-config --libs libprojectM)
  94. else
  95. # include dirs
  96. BASE_FLAGS += -IprojectM/src
  97. BASE_FLAGS += -IprojectM/src/libprojectM
  98. BASE_FLAGS += -IprojectM/src/libprojectM/Renderer
  99. BASE_FLAGS += -IprojectM/src/libprojectM/Renderer/hlslparser/src
  100. BASE_FLAGS += -IprojectM/src/libprojectM/MilkdropPresetFactory
  101. BASE_FLAGS += -IprojectM/src/libprojectM/NativePresetFactory
  102. BASE_FLAGS += -IprojectM/vendor
  103. # compiler macros
  104. BASE_FLAGS += -Dprojectm_mac=1
  105. BASE_FLAGS += -DHAVE_ALIGNED_ALLOC=1
  106. BASE_FLAGS += -DHAVE_DLFCN_H=1
  107. BASE_FLAGS += -DHAVE_FTS_H=1
  108. BASE_FLAGS += -DHAVE_GL=1
  109. # BASE_FLAGS += -DHAVE_GLES_GL_H=1
  110. BASE_FLAGS += -DHAVE_GL_GL_H=1
  111. BASE_FLAGS += -DHAVE_INTTYPES_H=1
  112. # BASE_FLAGS += -DHAVE_LLVM=1
  113. BASE_FLAGS += -DHAVE_MEMORY_H=1
  114. BASE_FLAGS += -DHAVE_OPENGL_GL_H=1
  115. BASE_FLAGS += -DHAVE_POSIX_MEMALIGN=1
  116. BASE_FLAGS += -DHAVE_PTHREAD_PRIO_INHERIT=1
  117. BASE_FLAGS += -DHAVE_STDINT_H=1
  118. BASE_FLAGS += -DHAVE_STDLIB_H=1
  119. BASE_FLAGS += -DHAVE_STRINGS_H=1
  120. BASE_FLAGS += -DHAVE_STRING_H=1
  121. BASE_FLAGS += -DHAVE_SYS_STAT_H=1
  122. BASE_FLAGS += -DHAVE_SYS_TYPES_H=1
  123. BASE_FLAGS += -DHAVE_UNISTD_H=1
  124. BASE_FLAGS += -DHAVE_WINDOWS_H=1
  125. BASE_FLAGS += -DSTDC_HEADERS=1
  126. # BASE_FLAGS += -DUSE_GLES=1
  127. BASE_FLAGS += -DUSE_THREADS=1
  128. # self-contained build
  129. # FIXME
  130. BASE_FLAGS += -DDATADIR_PATH='"./plugins/ProM/projectM/"'
  131. # silence projectM warnings
  132. BASE_FLAGS += -Wno-constant-conversion
  133. BASE_FLAGS += -Wno-delete-non-abstract-non-virtual-dtor
  134. BASE_FLAGS += -Wno-ignored-qualifiers
  135. BASE_FLAGS += -Wno-mismatched-tags
  136. BASE_FLAGS += -Wno-sign-compare
  137. BASE_FLAGS += -Wno-unused-parameter
  138. BASE_FLAGS += -Wno-unused-variable
  139. # maybe maybe
  140. # projectm_mac
  141. # -fopenmp
  142. # -DPROJECTM_STATIC_DEFINE
  143. endif
  144. LINK_FLAGS += -lpthread
  145. # --------------------------------------------------------------
  146. # Enable all possible plugin types
  147. TARGETS += jack
  148. TARGETS += lv2
  149. TARGETS += vst
  150. all: $(TARGETS)
  151. # --------------------------------------------------------------