2 # Choose the installation location
5 subprojects
:= ..
/common ..
/tests ..
/example-clients alsa
7 sources
:= $(wildcard *.
cpp) $(wildcard */*.
cpp) $(wildcard ..
/common
/*.
cpp) $(wildcard ..
/tests
/*.
cpp)
9 TARGET_LINUX_SERVER
:= jackdmp
11 TARGET_LINUX_SERVER_LIB
:= libjackdmp.so
13 TARGET_LINUX_CLIENT_LIB
:= libjackmp.so
15 TARGET_LINUX_WRAPPER_LIB
:= libjackwrapper.so
17 TARGET_LINUX_ALSA
:= jack_alsa.so
19 TARGET_LINUX_DUMMY
:= jack_dummy.so
21 VPATH
:= $(subprojects
)
23 LIB_LINUX
:= -lpthread
-lrt
-lasound
26 objects_common_server_lib
:= JackActivationCount.o JackAPI.o JackAudioDriver.o JackClient.o JackConnectionManager.o \
27 JackDriver.o JackEngine.o JackEngineTiming.o JackError.o JackExternalClient.o JackFrameTimer.o \
28 JackFreewheelDriver.o JackGlobalsServer.o JackGraphManager.o JackInternalClient.o JackPort.o JackPosixSemaphore.o JackPosixThread.o JackFifo.o JackLoopbackDriver.o\
29 JackServer.o JackShmMem.o JackThreadedDriver.o shm.o JackSocket.o JackSocketServerChannel.o JackSocketNotifyChannel.o \
30 JackSocketServerNotifyChannel.o JackTime.o JackServerAPI.o JackGlobals.o JackDriverLoader.o internal_metro.o JackDebugClient.o JackTransportEngine.o JackServerGlobals.o
32 objects_common_client_lib
:= JackActivationCount.o JackAPI.o JackClient.o JackConnectionManager.o ringbuffer.o \
33 JackError.o JackFrameTimer.o JackGlobalsClient.o JackGraphManager.o JackLibClient.o JackLibAPI.o JackPort.o JackPosixSemaphore.o JackFifo.o \
34 JackPosixThread.o JackShmMem.o shm.o JackSocket.o JackSocketClientChannel.o JackTime.o JackGlobals.o JackDebugClient.o JackTransportEngine.o
37 objects_linux_server
:= Jackdmp.o
39 objects_linux_alsa
:= JackAlsaDriver.o memops.o generic_hw.o hdsp.o hammerfall.o ice1712.o
41 objects_linux_dummy
:= JackDummyDriver.o
43 CFLAGS
:= -g
-O3
-fPIC
-DUSE_POSIX_SHM
$(addprefix -I
, $(subprojects
)) $(CFLAGS
)
44 CXXFLAGS
:= -g
-O3
-fPIC
-DSOCKET_RPC_FIFO_SEMA
-D__SMP__
-DADDON_DIR
=\"$(prefix)\" $(addprefix -I
, $(subprojects
)) $(CXXFLAGS
)
46 #CFLAGS := -g -fPIC -DUSE_POSIX_SHM $(addprefix -I, $(subprojects)) $(CFLAGS)
47 #CXXFLAGS := -g -fPIC -DSOCKET_RPC_FIFO_SEMA -D__SMP__ -DADDON_DIR=\"$(prefix)\" $(addprefix -I, $(subprojects)) $(CXXFLAGS)
49 # Use this line to compile with POSIX names semaphore
50 #CXXFLAGS := -g -03 -fPIC -DSOCKET_RPC_POSIX_SEMA -D__SMP__ -DADDON_DIR=\"$(prefix)\" $(addprefix -I, $(subprojects)) $(CXXFLAGS)
52 # Add the -D__CLIENTDEBUG__ flag to activate client validation
55 linux
: $(TARGET_LINUX_SERVER_LIB
) $(TARGET_LINUX_CLIENT_LIB
) $(TARGET_LINUX_WRAPPER_LIB
) $(TARGET_LINUX_SERVER
) $(TARGET_LINUX_ALSA
) $(TARGET_LINUX_DUMMY
) \
56 synchroClient synchroServer synchroServerClient testSem jack_test
58 all : $(TARGET_LINUX_SERVER
) $(TARGET_LINUX_SERVER_LIB
) $(TARGET_LINUX_ALSA
) $(TARGET_LINUX_DUMMY
)
60 synchroClient
: JackPosixSemaphore.o testSynchroClient.o JackPosixThread.o JackError.o JackFifo.o
61 $(CXX
) $(CXXFLAGS
) JackPosixSemaphore.o testSynchroClient.o JackPosixThread.o JackError.o JackFifo.o
$(LIB_LINUX
) -o synchroClient
63 synchroServer
: JackPosixSemaphore.o testSynchroServer.o JackPosixThread.o JackError.o JackFifo.o
64 $(CXX
) $(CXXFLAGS
) JackPosixSemaphore.o testSynchroServer.o JackPosixThread.o JackError.o JackFifo.o
$(LIB_LINUX
) -o synchroServer
66 synchroServerClient
: JackPosixSemaphore.o testSynchroServerClient.o JackPosixThread.o JackError.o JackFifo.o JackPthreadCond.o JackShmMem.o shm.o
67 $(CXX
) $(CXXFLAGS
) JackPosixSemaphore.o testSynchroServerClient.o JackPosixThread.o JackError.o JackFifo.o JackShmMem.o shm.o JackPthreadCond.o
$(LIB_LINUX
) -o synchroServerClient
69 testSem
: JackPosixSemaphore.o testSem.o JackPosixThread.o JackError.o JackFifo.o
70 $(CXX
) $(CXXFLAGS
) JackPosixSemaphore.o testSem.o JackPosixThread.o JackError.o JackFifo.o
$(LIB_LINUX
) -o testSem
72 jack_test
: jack_test.o
73 $(CXX
) $(CXXFLAGS
) jack_test.o
-L.
-ljackmp
-o jack_test
76 $(TARGET_LINUX_SERVER_LIB
) : $(objects_common_server_lib
)
77 $(CXX
) $(CXXFLAGS
) -shared
$(objects_common_server_lib
) $(LIB_LINUX
) -o
$(TARGET_LINUX_SERVER_LIB
)
79 $(TARGET_LINUX_CLIENT_LIB
) : $(objects_common_client_lib
) $(objects_linux_lib
)
80 $(CXX
) $(CXXFLAGS
) -shared
$(objects_common_client_lib
) $(objects_linux_lib
) $(LIB_LINUX
) -o
$(TARGET_LINUX_CLIENT_LIB
)
82 $(TARGET_LINUX_WRAPPER_LIB
) : JackAPIWrapper.o ringbuffer.o
83 $(CXX
) $(CXXFLAGS
) -shared JackAPIWrapper.o ringbuffer.o
-o
$(TARGET_LINUX_WRAPPER_LIB
)
85 $(TARGET_LINUX_SERVER
) : $(objects_linux_server
)
86 $(CXX
) $(CXXFLAGS
) $(objects_linux_server
) $(LIB_LINUX
) libjackdmp.so
-o
$(TARGET_LINUX_SERVER
)
88 $(TARGET_LINUX_ALSA
) : $(objects_linux_alsa
)
89 $(CXX
) $(CXXFLAGS
) -shared
$(objects_linux_alsa
) $(LIB_LINUX
) libjackdmp.so
-o
$(TARGET_LINUX_ALSA
)
91 $(TARGET_LINUX_DUMMY
) : $(objects_linux_dummy
)
92 $(CXX
) $(CXXFLAGS
) -shared
$(objects_linux_dummy
) $(LIB_LINUX
) libjackdmp.so
-o
$(TARGET_LINUX_DUMMY
)
95 # Install jackdmp and overwrite jack installation
97 cp jackdmp
$(prefix)/bin
98 cp libjackmp.so
$(prefix)/lib
99 cp libjackdmp.so
$(prefix)/lib
100 install -d
$(prefix)/lib
/jackmp
/
101 cp jack_alsa.so
$(prefix)/lib
/jackmp
102 cp jack_dummy.so
$(prefix)/lib
/jackmp
103 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..."
104 cd
$(prefix)/lib
&& rm -f libjack.so
*
105 cd
$(prefix)/lib
&& ln
-s libjackmp.so libjack.so
106 cd
$(prefix)/lib
&& ln
-s libjackmp.so libjack.so
.0
109 # Remove jackdmp and tries to restore jack
111 rm $(prefix)/bin
/jackdmp
112 rm $(prefix)/lib
/libjackmp.so
113 rm $(prefix)/lib
/libjackdmp.so
114 rm -r
$(prefix)/lib
/jackmp
115 cd
$(prefix)/lib
&& rm -f libjack.so
*
116 cd
$(prefix)/lib
&& [ -f tmp_libjack.so
.0.0.23 ] && mv
-f tmp_libjack.so
.0.0.23 libjack.so
.0.0.23 \
117 && ln
-s libjack.so
.0.0.23 libjack.so
&& ln
-s libjack.so
.0.0.23 libjack.so
.0 || echo
"Jack not restored"
123 rm -f
$(TARGET_LINUX_SERVER
) $(TARGET_LINUX_SERVER_LIB
) $(TARGET_LINUX_CLIENT_LIB
) $(TARGET_LINUX_WRAPPER_LIB
) $(TARGET_LINUX_ALSA
) $(TARGET_LINUX_DUMMY
) \
124 synchroClient synchroServer synchroServerClient testSem jack_test
127 #makedepend -w120 -Y -- $(CXXFLAGS) -- $(sources)