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.

97 lines
3.1KB

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