src/aubiopitch~.c: refix aubiopitch_tilde_del
[pd-aubio.git] / wscript
diff --git a/wscript b/wscript
index 973dd97..e1afe5f 100644 (file)
--- a/wscript
+++ b/wscript
@@ -1,44 +1,65 @@
 #! /usr/bin/python
+
 # build puredata external
 
-srcdir = '.'
-blddir = 'build'
+top = '.'
+out = 'build'
+APPNAME = 'pd-aubio'
+
+# source VERSION
+for l in open('VERSION').readlines(): exec (l.strip())
+VERSION = '.'.join ([str(x) for x in [
+    PD_AUBIO_MAJOR_VERSION,
+    PD_AUBIO_MINOR_VERSION,
+    ]]) + PD_AUBIO_VERSION_STATUS
+
+def options(ctx):
+    ctx.load('compiler_c')
 
-def set_options(opt):
-  opt.tool_options('compiler_cc')
+def configure(ctx):
+    ctx.load('compiler_c')
+
+    if ctx.env['DEST_OS'] == 'linux':
+        ctx.env.cshlib_PATTERN = '%s.pd_linux'
+    elif ctx.env['DEST_OS'] == 'darwin':
+        ctx.env.cshlib_PATTERN = '%s.pd_darwin'
+        # add default include path for both pd and pd-extended
+        # set CFLAGS for custom location
+        ctx.env.CFLAGS += ['-I/Applications/Pd-0.47-1.app/Contents/Resources/src']
+        ctx.env.CFLAGS += ['-I/Applications/Pd-extended.app/Contents/Resources/include']
+        ctx.env.CFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
+        ctx.env.LINKFLAGS += ['-arch', 'i386', '-arch', 'x86_64']
+        ctx.env.LINKFLAGS_cshlib = ['-bundle', '-undefined', 'suppress', '-flat_namespace']
+    elif ctx.env['DEST_OS'] in ['win32', 'win64']:
+        ctx.env.cshlib_PATTERN = '%s.dll'
+        # do not use -fPIC -DPIC on windows
+        ctx.env.CFLAGS_cshlib = []
+        ctx.env.LINKFLAGS_cshlib +=  ['-export_dynamic', '-lpd']
+    else:
+        ctx.start_msg("Checking for platform")
+        ctx.end_msg("no idea how to build for %s yet, assuming linux"
+                % ctx.env['DEST_OS'], 'YELLOW')
+        ctx.env.cshlib_PATTERN = '%s.pd_linux'
+        ctx.env.LINKFLAGS_cshlib += ['--export_dynamic']
 
-def configure(conf):
-  conf.check_tool('compiler_cc')
-  # required dependancies
-  conf.check_cfg(package = 'aubio', atleast_version = '0.4.0',
-    args = '--cflags --libs')
+    # check for puredata header
+    ctx.check(header_name='m_pd.h')
+
+    # required dependencies
+    ctx.check_cfg(package = 'aubio', atleast_version = '0.4.0',
+            args = '--cflags --libs')
 
 def build(bld):
-    aubio_pd = bld.new_task_gen(
-        features = 'cc cshlib',
+
+    bld(features = 'c cshlib',
+        source = bld.path.ant_glob('src/*.c'),
         uselib = ['AUBIO'],
-        defines = ['PD'],
-        install_path = '${PREFIX}/lib/pd/extra')
+        target = 'aubio',
+        defines = ['PD', 'PACKAGE_VERSION=\"'+repr(VERSION)+"\""],
+        install_path = '${PREFIX}/lib/pd/extra/aubio')
 
-    if bld.env['DEST_OS'] == 'win32':
-        aubio_pd.target = 'aubio.dll'
-        # do not use -fPIC -DPIC on windows
-        aubio_pd.env.shlib_CCFLAGS.remove('-fPIC')
-        aubio_pd.env.shlib_CCFLAGS.remove('-DPIC')
-        aubio_pd.env.append_unique('shlib_LINKFLAGS', ['-export_dynamic', '-lpd'])
-    elif bld.env['DEST_OS'] == 'darwin':
-        aubio_pd.target = 'aubio.pd_darwin'
-        aubio_pd.env.append_unique('shlib_LINKFLAGS', 
-            ['-bundle', '-undefined suppres', '-flat_namespace'])
-    else: #if bld.env['DEST_OS'] == 'linux':
-        aubio_pd.target = 'aubio.pd_linux'
-        aubio_pd.env.append_unique('shlib_LINKFLAGS', ['--export_dynamic'])
-
-    # do not rename the shlib at all
-    aubio_pd.env.shlib_PATTERN = '%s'
-    # get the source files
-    aubio_pd.find_sources_in_dirs('.')
-
-    bld.install_files('${PREFIX}/lib/pd/doc/5.reference', 'help/*.pd')
-
-    bld.install_files('${PREFIX}/lib/pd/doc/aubio', 'examples/*.pd')
+    bld.install_files('${PREFIX}/lib/pd/extra/aubio',
+            bld.path.ant_glob('help/**.pd'))
+
+    bld.install_files('${PREFIX}/lib/pd/extra/aubio/examples',
+            bld.path.ant_glob('examples/**.pd'))