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.

114 lines
3.3KB

  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_SUIL = $(shell pkg-config --exists suil-0 && echo true)
  14. BASE_FLAGS = -O0 -g -fPIC -Wall -I. -I../carla-includes -I../carla-jackbridge
  15. CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS)
  16. CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS)
  17. CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui)
  18. CARLA_CXX_FLAGS += -DDEBUG
  19. CARLA_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST
  20. CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header
  21. CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS)
  22. CARLA_LD_FLAGS += $(shell pkg-config --libs liblo QtCore QtGui)
  23. ifeq ($(HAVE_ALSA),true)
  24. WANT_RTAUDIO = true
  25. CARLA_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__
  26. CARLA_LD_FLAGS += $(shell pkg-config --libs alsa)
  27. endif
  28. ifeq ($(HAVE_JACK),true)
  29. CARLA_CXX_FLAGS += $(shell pkg-config --cflags jack) -DCARLA_ENGINE_JACK
  30. CARLA_LD_FLAGS += $(shell pkg-config --libs jack)
  31. endif
  32. ifeq ($(HAVE_PULSEAUDIO),true)
  33. WANT_RTAUDIO = true
  34. CARLA_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__
  35. CARLA_LD_FLAGS += $(shell pkg-config --libs libpulse-simple)
  36. endif
  37. ifeq ($(HAVE_FLUIDSYNTH),true)
  38. CARLA_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH
  39. CARLA_LD_FLAGS += $(shell pkg-config --libs fluidsynth)
  40. endif
  41. ifeq ($(HAVE_LINUXSAMPLER),true)
  42. CARLA_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER
  43. CARLA_LD_FLAGS += $(shell pkg-config --libs linuxsampler)
  44. endif
  45. ifeq ($(HAVE_SUIL),true)
  46. CARLA_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DHAVE_SUIL
  47. CARLA_LD_FLAGS += $(shell pkg-config --libs suil-0)
  48. endif
  49. OBJS = \
  50. carla_backend_standalone.o \
  51. carla_bridge.o \
  52. carla_engine.o \
  53. carla_engine_jack.o \
  54. carla_engine_rtaudio.o \
  55. carla_native.o \
  56. carla_osc.o \
  57. carla_shared.o \
  58. carla_threads.o \
  59. ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o \
  60. ../carla-jackbridge/carla_jackbridge.o \
  61. ../carla-lilv/carla_lilv.a \
  62. ../carla-rtmempool/carla_rtmempool.a
  63. OBJS += \
  64. plugins/bypass.o \
  65. plugins/midi-split.o
  66. ifeq ($(WANT_RTAUDIO),true)
  67. CARLA_CXX_FLAGS += -Irtaudio-4.0.11 -Irtmidi-2.0.0 -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__
  68. OBJS += rtaudio-4.0.11/RtAudio.o
  69. OBJS += rtmidi-2.0.0/RtMidi.o
  70. endif
  71. # --------------------------------------------------------------
  72. all: carla_backend.so
  73. doc: carla_backend.doxygen
  74. doxygen $<
  75. carla_backend.so: $(OBJS)
  76. $(CXX) $^ $(CARLA_LD_FLAGS) -o $@
  77. # --------------------------------------------------------------
  78. .c.o:
  79. $(CC) -c $< $(CARLA_C_FLAGS) -o $@
  80. .cpp.o:
  81. $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@
  82. ../carla-lilv/carla_lilv.a:
  83. $(MAKE) -C ../carla-lilv
  84. ../carla-rtmempool/carla_rtmempool.a:
  85. $(MAKE) -C ../carla-rtmempool
  86. clean:
  87. rm -f $(OBJS) *.a *.so *.dll