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.

103 lines
3.2KB

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