Collection of tools useful for audio production
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.

123 lines
3.7KB

  1. #!/usr/bin/make -f
  2. # Makefile for carla-backend #
  3. # ------------------------------------- #
  4. # Created by falkTX
  5. #
  6. CC ?= gcc
  7. CXX ?= g++
  8. # HAVE_ALSA = $(shell pkg-config --exists alsa && echo true)
  9. HAVE_JACK = $(shell pkg-config --exists jack && echo true)
  10. # HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true)
  11. HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true)
  12. HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true)
  13. HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true)
  14. HAVE_SUIL = $(shell pkg-config --exists suil-0 && echo true)
  15. BASE_FLAGS = -O2 -ffast-math -fomit-frame-pointer -fPIC -mtune=generic -msse -mfpmath=sse -Wall -I. -I../carla-includes -I../carla-jackbridge
  16. CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS)
  17. CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS)
  18. CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui)
  19. CARLA_CXX_FLAGS += -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT -DNDEBUG
  20. CARLA_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST
  21. CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header
  22. CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS)
  23. CARLA_LD_FLAGS += $(shell pkg-config --libs liblo QtCore QtGui)
  24. ifeq ($(HAVE_ALSA),true)
  25. WANT_RTAUDIO = true
  26. CARLA_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__
  27. CARLA_LD_FLAGS += $(shell pkg-config --libs alsa)
  28. endif
  29. ifeq ($(HAVE_JACK),true)
  30. CARLA_CXX_FLAGS += $(shell pkg-config --cflags jack) -DCARLA_ENGINE_JACK
  31. CARLA_LD_FLAGS += $(shell pkg-config --libs jack)
  32. endif
  33. ifeq ($(HAVE_PULSEAUDIO),true)
  34. WANT_RTAUDIO = true
  35. CARLA_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__
  36. CARLA_LD_FLAGS += $(shell pkg-config --libs libpulse-simple)
  37. endif
  38. ifeq ($(HAVE_FLUIDSYNTH),true)
  39. CARLA_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH
  40. CARLA_LD_FLAGS += $(shell pkg-config --libs fluidsynth)
  41. endif
  42. ifeq ($(HAVE_LINUXSAMPLER),true)
  43. CARLA_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER
  44. CARLA_LD_FLAGS += $(shell pkg-config --libs linuxsampler)
  45. endif
  46. ifeq ($(HAVE_ZYN_DEPS),true)
  47. CARLA_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) -DWANT_ZYNADDSUBFX -Iplugins/zynaddsubfx
  48. CARLA_LD_FLAGS += $(shell pkg-config --libs fftw3 mxml)
  49. endif
  50. ifeq ($(HAVE_SUIL),true)
  51. CARLA_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DHAVE_SUIL
  52. CARLA_LD_FLAGS += $(shell pkg-config --libs suil-0)
  53. endif
  54. OBJS = \
  55. carla_backend_standalone.o \
  56. carla_bridge.o \
  57. carla_engine.o \
  58. carla_engine_jack.o \
  59. carla_engine_rtaudio.o \
  60. carla_native.o \
  61. carla_osc.o \
  62. carla_shared.o \
  63. carla_threads.o \
  64. ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o \
  65. ../carla-lilv/carla_lilv.a \
  66. ../carla-rtmempool/carla_rtmempool.a
  67. OBJS += \
  68. plugins/bypass.o \
  69. plugins/midi-split.o
  70. ifeq ($(WANT_RTAUDIO),true)
  71. CARLA_CXX_FLAGS += -Irtaudio-4.0.11 -Irtmidi-2.0.1 -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D_FORTIFY_SOURCE=2
  72. OBJS += rtaudio-4.0.11/RtAudio.o
  73. OBJS += rtmidi-2.0.1/RtMidi.o
  74. endif
  75. ifeq ($(HAVE_ZYN_DEPS),true)
  76. OBJS += plugins/zynaddsubfx.o
  77. endif
  78. # --------------------------------------------------------------
  79. all: carla_backend.so
  80. doc: carla_backend.doxygen
  81. doxygen $<
  82. carla_backend.so: $(OBJS)
  83. $(CXX) $^ $(CARLA_LD_FLAGS) -o $@ && strip $@
  84. # --------------------------------------------------------------
  85. .c.o:
  86. $(CC) -c $< $(CARLA_C_FLAGS) -o $@
  87. .cpp.o:
  88. $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@
  89. ../carla-lilv/carla_lilv.a:
  90. $(MAKE) -C ../carla-lilv
  91. ../carla-rtmempool/carla_rtmempool.a:
  92. $(MAKE) -C ../carla-rtmempool
  93. clean:
  94. rm -f $(OBJS) *.a *.so *.dll