diff --git a/ChangeLog b/ChangeLog index 100833d7..f651bbf6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,9 +21,10 @@ Romain Moret Jackdmp changes log --------------------------- -2008-06-137Stephane Letz +2008-06-17 Stephane Letz * Driver class hierarchy simplification. + * Update waf for compilation on OSX. 2008-06-13 Stephane Letz diff --git a/common/JackServerGlobals.cpp b/common/JackServerGlobals.cpp index 480bde7f..3dae068a 100644 --- a/common/JackServerGlobals.cpp +++ b/common/JackServerGlobals.cpp @@ -29,7 +29,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #include "JackTools.h" #include "shm.h" #include -//#include #include static char* server_name = NULL; diff --git a/common/JackSocket.h b/common/JackSocket.h index a2b50694..04074b0b 100644 --- a/common/JackSocket.h +++ b/common/JackSocket.h @@ -28,9 +28,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include #include -//#include -//#include -//#include namespace Jack { diff --git a/common/JackTime.h b/common/JackTime.h index 3ff3a6e8..7b6b04a9 100644 --- a/common/JackTime.h +++ b/common/JackTime.h @@ -37,14 +37,16 @@ extern "C" extern EXPORT double __jack_time_ratio; - static inline jack_time_t GetMicroSeconds(void) { + static inline jack_time_t GetMicroSeconds(void) + { return (jack_time_t) (mach_absolute_time () * __jack_time_ratio); } /* This should only be called ONCE per process. */ extern void InitTime(); - static inline void JackSleep(int usec) { + static inline void JackSleep(int usec) + { usleep(usec); } @@ -58,7 +60,8 @@ extern "C" extern void InitTime(); - static void JackSleep(int usec) { + static void JackSleep(int usec) + { Sleep(usec / 1000); } @@ -68,7 +71,8 @@ extern "C" #include - static inline void JackSleep(long usec) { + static inline void JackSleep(long usec) + { usleep(usec); } @@ -77,13 +81,15 @@ extern "C" extern jack_time_t __jack_cpu_mhz; extern jack_time_t GetMhz(); extern void InitTime(); - static inline jack_time_t GetMicroSeconds(void) { + static inline jack_time_t GetMicroSeconds(void) + { return get_cycles() / __jack_cpu_mhz; } #else #include extern void InitTime(); - static inline jack_time_t GetMicroSeconds(void) { + static inline jack_time_t GetMicroSeconds(void) + { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); return (jack_time_t)ts.tv_sec * 1000000 + ts.tv_nsec / 1000; diff --git a/common/wscript b/common/wscript index 5fd717ab..645878f6 100644 --- a/common/wscript +++ b/common/wscript @@ -133,7 +133,8 @@ def build(bld): serverlib.vnum = bld.env()['JACK_API_VERSION'] serverlib.env.append_value("CPPFLAGS", "-fvisibility=hidden") if bld.env()['IS_MACOSX']: - serverlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib") + serverlib.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc") + serverlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib -single_module") clientlib = bld.create_obj('cpp', 'shlib') clientlib.features.append('cc') @@ -166,7 +167,8 @@ def build(bld): clientlib.vnum = bld.env()['JACK_API_VERSION'] clientlib.env.append_value("CPPFLAGS", "-fvisibility=hidden") if bld.env()['IS_MACOSX']: - clientlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib") + clientlib.env.append_value("CPPFLAGS", "-mmacosx-version-min=10.4 -arch i386 -arch ppc") + clientlib.env.append_value("LINKFLAGS", "-framework CoreAudio -framework vecLib -single_module") netmanagerlib = bld.create_obj('cpp', 'shlib') netmanagerlib.env['shlib_PATTERN'] = '%s.so' diff --git a/example-clients/wscript b/example-clients/wscript index 7f0119fa..e0e83b26 100644 --- a/example-clients/wscript +++ b/example-clients/wscript @@ -58,7 +58,8 @@ def build(bld): prog = bld.create_obj('cc', 'program') prog.includes = ['../common/jack', '../common'] prog.source = example_program_source - prog.uselib = 'RT' + if bld.env()['IS_LINUX']: + prog.uselib = 'RT' prog.uselib_local = 'clientlib' prog.target = example_program @@ -66,7 +67,10 @@ def build(bld): prog = bld.create_obj('cc', 'program') prog.includes = ['../common/jack', '../common'] prog.source = 'transport.c' - prog.uselib = 'RT READLINE NCURSES' + if bld.env()['IS_LINUX']: + prog.uselib = 'RT READLINE NCURSES' + if bld.env()['IS_MACOSX']: + prog.uselib = 'READLINE NCURSES' prog.uselib_local = 'clientlib' prog.target = 'jack_transport' @@ -74,7 +78,10 @@ def build(bld): prog = bld.create_obj('cc', 'program') prog.includes = ['../common/jack', '../common'] prog.source = 'capture_client.c' - prog.uselib = 'RT SNDFILE' + if bld.env()['IS_LINUX']: + prog.uselib = 'RT SNDFILE' + if bld.env()['IS_MACOSX']: + prog.uselib = 'SNDFILE' prog.uselib_local = 'clientlib' prog.target = 'jack_rec' @@ -84,6 +91,7 @@ def build(bld): lib.includes = ['../common/jack', '../common'] lib.target = example_lib lib.source = example_lib_source + lib.uselib_local = 'clientlib' lib.inst_var = bld.env()['ADDON_DIR'] lib.inst_dir = '/' diff --git a/macosx/JackMachNotifyChannel.cpp b/macosx/JackMachNotifyChannel.cpp index 070abd1a..83dc202e 100644 --- a/macosx/JackMachNotifyChannel.cpp +++ b/macosx/JackMachNotifyChannel.cpp @@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "JackRPCClient.h" #include "JackError.h" #include "JackConstants.h" +#include namespace Jack { diff --git a/macosx/JackMachServerNotifyChannel.cpp b/macosx/JackMachServerNotifyChannel.cpp index a9344692..9412e405 100644 --- a/macosx/JackMachServerNotifyChannel.cpp +++ b/macosx/JackMachServerNotifyChannel.cpp @@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "JackRPCEngineUser.c" #include "JackConstants.h" #include "JackError.h" +#include namespace Jack { diff --git a/macosx/wscript b/macosx/wscript new file mode 100644 index 00000000..f0eb35b9 --- /dev/null +++ b/macosx/wscript @@ -0,0 +1,33 @@ +#! /usr/bin/env python +# encoding: utf-8 + +def create_jack_driver_obj(bld, target, sources, uselib = None): + driver = bld.create_obj('cpp', 'shlib') + driver.features.append('cc') + driver.env['shlib_PATTERN'] = 'jack_%s.so' + driver.defines = 'HAVE_CONFIG_H' + driver.includes = ['.', '../common', '../common/jack'] + driver.target = target + driver.source = sources + driver.inst_var = bld.env()['ADDON_DIR'] + driver.inst_dir = '/' + driver.uselib_local = 'serverlib' + if uselib: + driver.uselib = uselib + return driver + +def build(bld): + jackd = bld.create_obj('cpp', 'program') + jackd.includes = ['.', '../common/jack', '../common'] + jackd.defines = 'HAVE_CONFIG_H' + jackd.source = ['../common/Jackdmp.cpp'] + jackd.uselib = 'PTHREAD DL' + jackd.uselib_local = 'serverlib' + jackd.target = 'jackd' + + create_jack_driver_obj(bld, 'dummy', '../common/JackDummyDriver.cpp') + + #create_jack_driver_obj(bld, 'coreaudio', 'JackCoreAudioDriver.cpp', ) + + create_jack_driver_obj(bld, 'net', '../common/JackNetDriver.cpp') + diff --git a/tests/wscript b/tests/wscript index 802c4e8a..6e586e0a 100644 --- a/tests/wscript +++ b/tests/wscript @@ -13,9 +13,10 @@ def build(bld): for test_program, test_program_sources in test_programs.items(): prog = bld.create_obj('cpp', 'program') prog.features.append('cc') - prog.includes = ['../common/jack', '../common'] + prog.includes = ['../macosx', '../common/jack', '../common'] prog.source = test_program_sources - prog.uselib = 'RT' + if bld.env()['IS_LINUX']: + prog.uselib = 'RT' prog.uselib_local = 'clientlib' prog.target = test_program if test_program != 'jack_test': diff --git a/wscript b/wscript index 562d73db..78105a36 100644 --- a/wscript +++ b/wscript @@ -128,6 +128,10 @@ def build(bld): bld.add_subdirs('linux/dbus') bld.add_subdirs('example-clients') bld.add_subdirs('tests') + if bld.env()['IS_MACOSX']: + bld.add_subdirs('macosx') + bld.add_subdirs('example-clients') + bld.add_subdirs('tests') if bld.env()['BUILD_DOXYGEN_DOCS'] == True: share_dir = Params.g_build.env()['PREFIX'] + '/share/jack-audio-connection-kit'