path: root/waftools
diff options
authorbugmen0t <@>2013-12-07 16:58:22 +0100
committerStefano Pigozzi <>2013-12-07 17:04:34 +0100
commit20d1fc132e7226b2c9d313d51c6c56b1c12a7e7b (patch)
tree2e1f1ae3fb51941eef9483f38426ddc184e9b7d9 /waftools
parenta066dae19e83ef08187a612f8a2c474dff38c2d4 (diff)
build: prefer 4Front OSS to native implementations
If sys/soundcard.h is actually linux/soundcard.h then it supports only OSSv3 API. This may happen when OSSLIBDIR == /usr while forgetting to replace sys/soundcard.h from glibc. However, after fa620ff waf prefers native implementation which is inferior on Linux. To fix try making waf prefer oss-audio-4front. It's quite unusual to have 4Front OSS installed where native implementation is superior, anyway. Signed-off-by: bugmen0t <@> Make the false positives path also undef the 4Front define. Signed-off-by: Stefano Pigozzi <> Fixes #396
Diffstat (limited to 'waftools')
1 files changed, 7 insertions, 0 deletions
diff --git a/waftools/checks/ b/waftools/checks/
index 09a5c01018..1b698ec086 100644
--- a/waftools/checks/
+++ b/waftools/checks/
@@ -1,3 +1,4 @@
+from waftools.inflectors import DependencyInflector
from waftools.checks.generic import *
from waflib import Utils
import os
@@ -84,6 +85,12 @@ def __get_osslibdir():
def check_oss_4front(ctx, dependency_identifier):
oss_libdir = __get_osslibdir()
+ # avoid false positive from native sys/soundcard.h
+ if not oss_libdir:
+ defkey = DependencyInflector(dependency_identifier).define_key()
+ ctx.undefine(defkey)
+ return False
soundcard_h = os.path.join(oss_libdir, "include/sys/soundcard.h")
include_dir = os.path.join(oss_libdir, "include")