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.

129 lines
5.7KB

  1. subprojects := ../common ../tests ../example-clients alsa
  2. # WARNING: installation works correctly only when done in /usr/local
  3. prefix := /usr/local
  4. sources := $(wildcard *.cpp) $(wildcard */*.cpp) $(wildcard ../common/*.cpp) $(wildcard ../tests/*.cpp)
  5. TARGET_LINUX_SERVER := jackdmp
  6. TARGET_LINUX_SERVER_LIB := libjackdmp.so
  7. TARGET_LINUX_CLIENT_LIB := libjackmp.so
  8. TARGET_LINUX_ALSA := jack_alsa.so
  9. TARGET_LINUX_DUMMY := jack_dummy.so
  10. VPATH := $(subprojects)
  11. LIB_LINUX := -lpthread -lrt -lasound
  12. objects_common_server_lib := JackActivationCount.o JackAPI.o JackAudioDriver.o JackClient.o JackConnectionManager.o \
  13. JackDriver.o JackEngine.o JackEngineTiming.o JackError.o JackExternalClient.o JackFrameTimer.o \
  14. JackFreewheelDriver.o JackGlobalsServer.o JackGraphManager.o JackInternalClient.o JackPort.o JackPosixSemaphore.o JackPosixThread.o JackFifo.o JackLoopbackDriver.o\
  15. JackServer.o JackShmMem.o JackThreadedDriver.o shm.o JackSocket.o JackSocketServerChannel.o JackSocketNotifyChannel.o \
  16. JackSocketServerNotifyChannel.o JackTime.o JackServerAPI.o JackGlobals.o JackDriverLoader.o internal_metro.o JackDebugClient.o JackTransportEngine.o JackServerGlobals.o
  17. objects_common_client_lib := JackActivationCount.o JackAPI.o JackClient.o JackConnectionManager.o ringbuffer.o \
  18. JackError.o JackFrameTimer.o JackGlobalsClient.o JackGraphManager.o JackLibClient.o JackLibAPI.o JackPort.o JackPosixSemaphore.o JackFifo.o \
  19. JackPosixThread.o JackShmMem.o shm.o JackSocket.o JackSocketClientChannel.o JackTime.o JackGlobals.o JackDebugClient.o JackTransportEngine.o \
  20. objects_linux_server := Jackdmp.o
  21. objects_linux_alsa := JackAlsaDriver.o memops.o generic_hw.o hdsp.o hammerfall.o ice1712.o
  22. objects_linux_dummy := JackDummyDriver.o
  23. CFLAGS := -g -O3 -fPIC -DUSE_POSIX_SHM $(addprefix -I, $(subprojects)) $(CFLAGS)
  24. CXXFLAGS := -g -O3 -fPIC -DSOCKET_RPC_FIFO_SEMA -D__SMP__ $(addprefix -I, $(subprojects)) $(CXXFLAGS)
  25. #CFLAGS := -g -fPIC -DUSE_POSIX_SHM $(addprefix -I, $(subprojects)) $(CFLAGS)
  26. #CXXFLAGS := -g -fPIC -DSOCKET_RPC_FIFO_SEMA -D__SMP__ $(addprefix -I, $(subprojects)) $(CXXFLAGS)
  27. # Use this line to compile with POSIX names semaphore
  28. #CXXFLAGS := -g -03 -fPIC -DSOCKET_RPC_POSIX_SEMA -D__SMP__ $(addprefix -I, $(subprojects)) $(CXXFLAGS)
  29. # Add the -D__CLIENTDEBUG__ flag to activate client validation
  30. linux : $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_SERVER) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_DUMMY) \
  31. synchroClient synchroServer synchroServerClient testSem jack_test
  32. all : $(TARGET_LINUX_SERVER) $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_DUMMY)
  33. synchroClient: JackPosixSemaphore.o testSynchroClient.o JackPosixThread.o JackError.o JackFifo.o
  34. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSynchroClient.o JackPosixThread.o JackError.o JackFifo.o $(LIB_LINUX) -o synchroClient
  35. synchroServer: JackPosixSemaphore.o testSynchroServer.o JackPosixThread.o JackError.o JackFifo.o
  36. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSynchroServer.o JackPosixThread.o JackError.o JackFifo.o $(LIB_LINUX) -o synchroServer
  37. synchroServerClient: JackPosixSemaphore.o testSynchroServerClient.o JackPosixThread.o JackError.o JackFifo.o JackPthreadCond.o JackShmMem.o shm.o
  38. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSynchroServerClient.o JackPosixThread.o JackError.o JackFifo.o JackShmMem.o shm.o JackPthreadCond.o $(LIB_LINUX) -o synchroServerClient
  39. testSem: JackPosixSemaphore.o testSem.o JackPosixThread.o JackError.o JackFifo.o
  40. $(CXX) $(CXXFLAGS) JackPosixSemaphore.o testSem.o JackPosixThread.o JackError.o JackFifo.o $(LIB_LINUX) -o testSem
  41. jack_test: jack_test.o
  42. $(CXX) $(CXXFLAGS) jack_test.o -ljackmp -o jack_test
  43. $(TARGET_LINUX_SERVER_LIB) : $(objects_common_server_lib)
  44. $(CXX) $(CXXFLAGS) -shared $(objects_common_server_lib) $(LIB_LINUX) -o $(TARGET_LINUX_SERVER_LIB)
  45. $(TARGET_LINUX_CLIENT_LIB) : $(objects_common_client_lib) $(objects_linux_lib)
  46. $(CXX) $(CXXFLAGS) -shared $(objects_common_client_lib) $(objects_linux_lib) $(LIB_LINUX) -o $(TARGET_LINUX_CLIENT_LIB)
  47. $(TARGET_LINUX_SERVER) : $(objects_linux_server)
  48. $(CXX) $(CXXFLAGS) $(objects_linux_server) $(LIB_LINUX) libjackdmp.so -o $(TARGET_LINUX_SERVER)
  49. $(TARGET_LINUX_ALSA) : $(objects_linux_alsa)
  50. $(CXX) $(CXXFLAGS) -shared $(objects_linux_alsa) $(LIB_LINUX) libjackdmp.so -o $(TARGET_LINUX_ALSA)
  51. $(TARGET_LINUX_DUMMY) : $(objects_linux_dummy)
  52. $(CXX) $(CXXFLAGS) -shared $(objects_linux_dummy) $(LIB_LINUX) libjackdmp.so -o $(TARGET_LINUX_DUMMY)
  53. # Install jackdmp and overwrite jack installation
  54. install:
  55. cp jackdmp $(prefix)/bin
  56. cp libjackmp.so $(prefix)/lib
  57. cp libjackdmp.so $(prefix)/lib
  58. install -d $(prefix)/lib/jackmp/
  59. cp jack_alsa.so $(prefix)/lib/jackmp
  60. cp jack_dummy.so $(prefix)/lib/jackmp
  61. cd $(prefix)/lib && [ -f libjack.so.0.0.23 ] && mv -f libjack.so.0.0.23 tmp_libjack.so.0.0.23 || echo "Jack not found, continue..."
  62. cd $(prefix)/lib && rm -f libjack.so*
  63. cd $(prefix)/lib && ln -s libjackmp.so libjack.so
  64. cd $(prefix)/lib && ln -s libjackmp.so libjack.so.0
  65. /sbin/ldconfig
  66. # Remove jackdmp and tries to restore jack
  67. remove:
  68. rm $(prefix)/bin/jackdmp
  69. rm $(prefix)/lib/libjackmp.so
  70. rm $(prefix)/lib/libjackdmp.so
  71. rm -r $(prefix)/lib/jackmp
  72. cd $(prefix)/lib && rm -f libjack.so*
  73. cd $(prefix)/lib && [ -f tmp_libjack.so.0.0.23 ] && mv -f tmp_libjack.so.0.0.23 libjack.so.0.0.23 \
  74. && ln -s libjack.so.0.0.23 libjack.so && ln -s libjack.so.0.0.23 libjack.so.0 || echo "Jack not restored"
  75. /sbin/ldconfig
  76. clean :
  77. rm -f *.o
  78. rm -f $(TARGET_LINUX_SERVER) $(TARGET_LINUX_SERVER_LIB) $(TARGET_LINUX_CLIENT_LIB) $(TARGET_LINUX_ALSA) $(TARGET_LINUX_DUMMY) \
  79. synchroClient synchroServer synchroServerClient testSem
  80. depend :
  81. #makedepend -w120 -Y -- $(CXXFLAGS) -- $(sources)
  82. dox:
  83. doxygen
  84. # DO NOT DELETE