jack2 codebase
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.

174 lines
9.1KB

  1. # Type "make" or "make all" to compile ALSA driver, "make freebob" to compile FREEBOB driver and "make firewire" to compile FFADO driver.
  2. # Choose the installation location
  3. prefix := /usr/local
  4. prefix := ${DESTDIR}${prefix}
  5. libdir := lib
  6. subprojects := ../common ../common/jack ../tests ../example-clients alsa freebob firewire ../linux ..
  7. sources := $(wildcard *.cpp) $(wildcard */*.cpp) $(wildcard ../common/*.cpp) $(wildcard ../tests/*.cpp)
  8. TARGET_LINUX_SERVER := jackdmp
  9. TARGET_LINUX_SERVER_LIB := libjackdmp.so
  10. TARGET_LINUX_CLIENT_LIB := libjackmp.so
  11. TARGET_LINUX_WRAPPER_LIB := libjackwrapper.so
  12. TARGET_LINUX_ALSA := jack_alsa.so
  13. TARGET_LINUX_FREEBOB := jack_freebob.so
  14. TARGET_LINUX_FIREWIRE := jack_firewire.so
  15. TARGET_LINUX_DUMMY := jack_dummy.so
  16. VPATH := $(subprojects)
  17. LIB_LINUX := -lpthread -lrt -lasound
  18. objects_common_server_lib := JackActivationCount.o JackAPI.o JackAudioDriver.o JackClient.o JackConnectionManager.o \
  19. JackDriver.o JackEngine.o JackEngineControl.o JackError.o JackExternalClient.o JackFrameTimer.o \
  20. JackFreewheelDriver.o JackGlobalsServer.o JackGraphManager.o JackInternalClient.o JackPort.o JackPosixSemaphore.o \
  21. JackPosixThread.o JackFifo.o JackLoopbackDriver.o JackPortType.o JackAudioPort.o JackMidiPort.o JackMidiAPI.o \
  22. JackServer.o JackShmMem.o JackThreadedDriver.o shm.o JackSocket.o JackSocketServerChannel.o JackSocketNotifyChannel.o \
  23. JackSocketServerNotifyChannel.o JackTime.o JackServerAPI.o JackGlobals.o JackDriverLoader.o internal_metro.o JackDebugClient.o \
  24. JackTransportEngine.o JackServerGlobals.o JackServerLaunch.o timestamps.o JackTools.o ringbuffer.o
  25. objects_common_client_lib := JackActivationCount.o JackAPI.o JackClient.o JackConnectionManager.o ringbuffer.o JackServerLaunch.o\
  26. JackError.o JackFrameTimer.o JackGlobalsClient.o JackGraphManager.o JackLibClient.o JackLibAPI.o JackPort.o JackPosixSemaphore.o \
  27. JackFifo.o JackPortType.o JackAudioPort.o JackMidiPort.o JackMidiAPI.o JackEngineControl.o JackPosixThread.o JackShmMem.o \
  28. shm.o JackSocket.o JackSocketClientChannel.o JackTime.o JackGlobals.o JackDebugClient.o JackTransportEngine.o timestamps.o JackTools.o
  29. objects_linux_server := Jackdmp.o
  30. objects_linux_alsamidi := alsa_rawmidi.o alsa_seqmidi.o alsa_midi_jackmp.o
  31. objects_linux_alsa := JackAlsaDriver.o memops.o generic_hw.o hdsp.o hammerfall.o ice1712.o $(objects_linux_alsamidi)
  32. objects_linux_freebob := JackFreebobDriver.o
  33. objects_linux_firewire := JackFFADODriver.o
  34. objects_linux_dummy := JackDummyDriver.o
  35. CFLAGS := -g -fPIC -DJACKMP -DUSE_POSIX_SHM $(addprefix -I, $(subprojects)) $(CFLAGS)
  36. CXXFLAGS := -g -fPIC -DJACKMP -DSOCKET_RPC_FIFO_SEMA -D__SMP__ -DADDON_DIR=\"$(prefix)\" -DLIB_DIR=\"$(libdir)\" -DJACK_LOCATION=\"$(prefix)/bin\" $(addprefix -I, $(subprojects)) $(CXXFLAGS)
  37. #CFLAGS := -g -fPIC -DUSE_POSIX_SHM $(addprefix -I, $(subprojects)) $(CFLAGS)
  38. #CXXFLAGS := -g -fPIC -DSOCKET_RPC_FIFO_SEMA -D__SMP__ -DADDON_DIR=\"$(prefix)\" -DLIB_DIR=\"$(libdir)\" -DJACK_LOCATION=\"$(prefix)/bin\" $(addprefix -I, $(subprojects)) $(CXXFLAGS)
  39. # Use this line to compile with POSIX names semaphore
  40. #CXXFLAGS := -g -O3 -fPIC -DSOCKET_RPC_POSIX_SEMA -D__SMP__ -DADDON_DIR=\"$(prefix)\" -DLIB_DIR=\"$(libdir)\" -DJACK_LOCATION=\"$(prefix)/bin\" $(addprefix -I, $(subprojects)) $(CXXFLAGS)
  41. all : $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_WRAPPER_LIB) \
  42. $(TARGET_LINUX_SERVER) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_DUMMY) \
  43. synchroClient synchroServer synchroServerClient testSem jack_test inprocess jack_load jack_unload
  44. freebob : $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_WRAPPER_LIB) \
  45. $(TARGET_LINUX_SERVER) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_FREEBOB) $(TARGET_LINUX_DUMMY) \
  46. synchroClient synchroServer synchroServerClient testSem jack_test inprocess jack_load jack_unload
  47. firewire : $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_WRAPPER_LIB) \
  48. $(TARGET_LINUX_SERVER) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_FIREWIRE) $(TARGET_LINUX_DUMMY) \
  49. synchroClient synchroServer synchroServerClient testSem jack_test
  50. synchroClient: JackPosixSemaphore.o testSynchroClient.o JackPosixThread.o JackError.o JackFifo.o
  51. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSynchroClient.o JackPosixThread.o JackError.o JackFifo.o $(LIB_LINUX) -o synchroClient
  52. synchroServer: JackPosixSemaphore.o testSynchroServer.o JackPosixThread.o JackError.o JackFifo.o
  53. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSynchroServer.o JackPosixThread.o JackError.o JackFifo.o $(LIB_LINUX) -o synchroServer
  54. synchroServerClient: JackPosixSemaphore.o testSynchroServerClient.o JackPosixThread.o JackError.o JackFifo.o JackShmMem.o shm.o
  55. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSynchroServerClient.o JackPosixThread.o JackError.o JackFifo.o JackShmMem.o shm.o $(LIB_LINUX) -o synchroServerClient
  56. testSem: JackPosixSemaphore.o testSem.o JackPosixThread.o JackError.o JackFifo.o
  57. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSem.o JackPosixThread.o JackError.o JackFifo.o $(LIB_LINUX) -o testSem
  58. jack_test: jack_test.o
  59. $(CXX) $(CXXFLAGS) jack_test.o -L. -ljackmp -o jack_test
  60. inprocess: inprocess.o
  61. $(CXX) $(CXXFLAGS) -shared inprocess.o -L. -ljackmp -o inprocess.so
  62. jack_load: ipload.o
  63. $(CXX) $(CXXFLAGS) ipload.o -L. -ljackmp -o jack_load
  64. jack_unload: ipunload.o
  65. $(CXX) $(CXXFLAGS) ipunload.o -L. -ljackmp -o jack_unload
  66. $(TARGET_LINUX_SERVER_LIB) : $(objects_common_server_lib)
  67. $(CXX) $(CXXFLAGS) -shared $(objects_common_server_lib) $(LIB_LINUX) -o $(TARGET_LINUX_SERVER_LIB)
  68. $(TARGET_LINUX_CLIENT_LIB) : $(objects_common_client_lib) $(objects_linux_lib)
  69. $(CXX) $(CXXFLAGS) -shared $(objects_common_client_lib) $(objects_linux_lib) $(LIB_LINUX) -o $(TARGET_LINUX_CLIENT_LIB)
  70. $(TARGET_LINUX_WRAPPER_LIB) : JackAPIWrapper.o ringbuffer.o
  71. $(CXX) $(CXXFLAGS) -shared JackAPIWrapper.o ringbuffer.o -o $(TARGET_LINUX_WRAPPER_LIB)
  72. $(TARGET_LINUX_SERVER) : $(objects_linux_server)
  73. $(CXX) $(CXXFLAGS) $(objects_linux_server) $(LIB_LINUX) libjackdmp.so -o $(TARGET_LINUX_SERVER)
  74. $(TARGET_LINUX_ALSA) : $(objects_linux_alsa)
  75. $(CXX) $(CXXFLAGS) -shared $(objects_linux_alsa) $(LIB_LINUX) libjackmp.so libjackdmp.so -o $(TARGET_LINUX_ALSA)
  76. $(TARGET_LINUX_FREEBOB) : $(objects_linux_freebob)
  77. $(CXX) $(CXXFLAGS) -shared $(objects_linux_freebob) $(LIB_LINUX) -lfreebob libjackdmp.so -o $(TARGET_LINUX_FREEBOB)
  78. $(TARGET_LINUX_FIREWIRE) : $(objects_linux_firewire)
  79. $(CXX) $(CXXFLAGS) -shared $(objects_linux_firewire) $(LIB_LINUX) -lffado libjackdmp.so -o $(TARGET_LINUX_FIREWIRE)
  80. $(TARGET_LINUX_DUMMY) : $(objects_linux_dummy)
  81. $(CXX) $(CXXFLAGS) -shared $(objects_linux_dummy) $(LIB_LINUX) libjackdmp.so -o $(TARGET_LINUX_DUMMY)
  82. # Install jackdmp and overwrite jack installation
  83. install:
  84. cp jackdmp $(prefix)/bin
  85. cp libjackmp.so $(prefix)/$(libdir)
  86. cp libjackdmp.so $(prefix)/$(libdir)
  87. install -d $(prefix)/$(libdir)/jackmp/
  88. cp jack_alsa.so $(prefix)/$(libdir)/jackmp
  89. cp jack_dummy.so $(prefix)/$(libdir)/jackmp
  90. [ -f jack_freebob.so ] && cp jack_freebob.so $(prefix)/$(libdir)/jackmp || echo "freebob driver not installed"
  91. [ -f jack_firewire.so ] && cp jack_firewire.so $(prefix)/$(libdir)/jackmp || echo "firewire driver not installed"
  92. cd $(prefix)/bin && [ -f jackd ] && mv -f jackd tmp_jackd || echo "jackd server not found, continue..."
  93. cd $(prefix)/$(libdir) && [ -f libjack.so.0.0.28 ] && mv -f libjack.so.0.0.28 tmp_libjack.so.0.0.28 || echo "libjack not found, continue..."
  94. cd $(prefix)/include && [ -d jack ] && mv -f jack tmp_jack || echo "jack headers not found, continue..."
  95. install -d $(prefix)/include/jack/
  96. cp ../common/jack/*.h $(prefix)/include/jack/
  97. cd $(prefix)/$(libdir) && rm -f libjack.so*
  98. cd $(prefix)/$(libdir) && ln -s libjackmp.so libjack.so
  99. cd $(prefix)/$(libdir) && ln -s libjackmp.so libjack.so.0
  100. cd $(prefix)/bin && ln -s jackdmp jackd
  101. /sbin/ldconfig
  102. # Remove jackdmp and tries to restore jack
  103. uninstall: remove
  104. remove:
  105. rm $(prefix)/bin/jackdmp
  106. rm $(prefix)/$(libdir)/libjackmp.so
  107. rm $(prefix)/$(libdir)/libjackdmp.so
  108. rm -r $(prefix)/$(libdir)/jackmp
  109. rm -r $(prefix)/include/jack
  110. cd $(prefix)/$(libdir) && rm -f libjack.so*
  111. cd $(prefix)/bin && [ -f tmp_jackd ] && mv -f tmp_jackd jackd || echo "jackd server not restored, continue.."
  112. cd $(prefix)/$(libdir) && [ -f tmp_libjack.so.0.0.28 ] && mv -f tmp_libjack.so.0.0.28 libjack.so.0.0.28 \
  113. && ln -s libjack.so.0.0.28 libjack.so && ln -s libjack.so.0.0.28 libjack.so.0 || echo "libjack not restored, continue.."
  114. cd $(prefix)/include && [ -d tmp_jack ] && mv -f tmp_jack jack || echo "jack headers not restored, continue..."
  115. /sbin/ldconfig
  116. clean :
  117. rm -f *.o
  118. rm -f $(TARGET_LINUX_SERVER) $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_WRAPPER_LIB) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_FREEBOB) $(TARGET_LINUX_FIREWIRE) $(TARGET_LINUX_DUMMY) \
  119. synchroClient synchroServer synchroServerClient testSem jack_test jack_load jack_unload inprocess.so
  120. depend :
  121. #makedepend -w120 -Y -- $(CXXFLAGS) -- $(sources)
  122. dox:
  123. doxygen
  124. # DO NOT DELETE