1# functions to support third party libraries 2 3import os 4from waflib import Utils, Build, Context 5from waflib.Configure import conf 6 7@conf 8def CHECK_FOR_THIRD_PARTY(conf): 9 return os.path.exists(os.path.join(Context.g_module.top, 'third_party')) 10 11Build.BuildContext.CHECK_FOR_THIRD_PARTY = CHECK_FOR_THIRD_PARTY 12 13@conf 14def CHECK_ZLIB(conf): 15 version_check=''' 16 #if (ZLIB_VERNUM >= 0x1230) 17 #else 18 #error "ZLIB_VERNUM < 0x1230" 19 #endif 20 z_stream *z; 21 inflateInit2(z, -15); 22 ''' 23 return conf.CHECK_BUNDLED_SYSTEM('z', minversion='1.2.3', pkg='zlib', 24 checkfunctions='zlibVersion', 25 headers='zlib.h', 26 checkcode=version_check, 27 implied_deps='replace') 28 29Build.BuildContext.CHECK_ZLIB = CHECK_ZLIB 30 31@conf 32def CHECK_POPT(conf): 33 return conf.CHECK_BUNDLED_SYSTEM('popt', checkfunctions='poptGetContext', headers='popt.h') 34 35Build.BuildContext.CHECK_POPT = CHECK_POPT 36 37@conf 38def CHECK_CMOCKA(conf): 39 return conf.CHECK_BUNDLED_SYSTEM_PKG('cmocka', minversion='1.1.3') 40 41Build.BuildContext.CHECK_CMOCKA = CHECK_CMOCKA 42 43@conf 44def CHECK_SOCKET_WRAPPER(conf): 45 return conf.CHECK_BUNDLED_SYSTEM_PKG('socket_wrapper', minversion='1.2.1') 46Build.BuildContext.CHECK_SOCKET_WRAPPER = CHECK_SOCKET_WRAPPER 47 48@conf 49def CHECK_NSS_WRAPPER(conf): 50 return conf.CHECK_BUNDLED_SYSTEM_PKG('nss_wrapper', minversion='1.1.5') 51Build.BuildContext.CHECK_NSS_WRAPPER = CHECK_NSS_WRAPPER 52 53@conf 54def CHECK_RESOLV_WRAPPER(conf): 55 return conf.CHECK_BUNDLED_SYSTEM_PKG('resolv_wrapper', minversion='1.1.4') 56Build.BuildContext.CHECK_RESOLV_WRAPPER = CHECK_RESOLV_WRAPPER 57 58@conf 59def CHECK_UID_WRAPPER(conf): 60 return conf.CHECK_BUNDLED_SYSTEM_PKG('uid_wrapper', minversion='1.2.4') 61Build.BuildContext.CHECK_UID_WRAPPER = CHECK_UID_WRAPPER 62 63@conf 64def CHECK_PAM_WRAPPER(conf): 65 return conf.CHECK_BUNDLED_SYSTEM_PKG('pam_wrapper', minversion='1.0.7') 66Build.BuildContext.CHECK_PAM_WRAPPER = CHECK_PAM_WRAPPER 67