Commit 6d093b6a42e53ae6b9382fadfb81fbaa9cbebf80

Authored by Stéphane Raimbault
1 parent bdbdf33f

Finished waf script (almost)

Showing 1 changed file with 38 additions and 13 deletions
@@ -6,7 +6,7 @@ APPNAME='libmodbus' @@ -6,7 +6,7 @@ APPNAME='libmodbus'
6 6
7 # these variables are mandatory ('/' are converted automatically) 7 # these variables are mandatory ('/' are converted automatically)
8 srcdir = '.' 8 srcdir = '.'
9 -blddir = '_build_' 9 +blddir = 'build'
10 10
11 def init(): 11 def init():
12 print "A groovy libmodbus for Linux!" 12 print "A groovy libmodbus for Linux!"
@@ -18,27 +18,52 @@ def set_options(opt): @@ -18,27 +18,52 @@ def set_options(opt):
18 def configure(conf): 18 def configure(conf):
19 conf.check_tool('compiler_cc') 19 conf.check_tool('compiler_cc')
20 conf.check_pkg('glib-2.0', destvar='GLIB', mandatory=True) 20 conf.check_pkg('glib-2.0', destvar='GLIB', mandatory=True)
  21 + conf.check_tool('misc')
21 22
22 - e = conf.create_header_enumerator()  
23 - e.mandatory = 1  
24 - # Add AC_CHECK_HEADERS([arpa/inet.h fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h termio.h termios.h unistd.h])  
25 - e.name = 'arpa/inet.h'  
26 - e.run() 23 + headers = 'arpa/inet.h fcntl.h netinet/in.h stdlib.h \
  24 + string.h sys/ioctl.h sys/socket.h sys/time.h \
  25 + termio.h termios.h unistd.h'
27 26
28 - # Add AC_CHECK_FUNCS([inet_ntoa memset select socket]) 27 + # check for headers and append found headers to headers_found for later use
  28 + headers_found = []
  29 + for header in headers.split():
  30 + if conf.check_header(header):
  31 + headers_found.append(header)
  32 +
  33 + functions_defines = (
  34 + ('inet_ntoa', 'HAVE_INET_NTOA'),
  35 + ('memset', 'HAVE_MEMSET'),
  36 + ('select', 'HAVE_SELECT'),
  37 + ('socket', 'HAVE_SOCKET'))
  38 +
  39 + for (function, define) in functions_defines:
  40 + e = conf.create_function_enumerator()
  41 + e.mandatory = True
  42 + e.function = function
  43 + e.headers = headers_found
  44 + e.define = define
  45 + e.run()
  46 +
29 conf.define('VERSION', VERSION) 47 conf.define('VERSION', VERSION)
30 conf.define('PACKAGE', 'libmodbus') 48 conf.define('PACKAGE', 'libmodbus')
31 49
32 conf.write_config_header() 50 conf.write_config_header()
33 51
34 def build(bld): 52 def build(bld):
35 - bld.add_subdirs('src'); 53 + import misc
  54 +
  55 + bld.add_subdirs('src')
36 56
37 -# Doesn't work I need some help from the WAF project  
38 -# obj = bld.create_obj('subst')  
39 -# obj.source = 'modbus.pc.in'  
40 -# obj.target = 'modbus.pc'  
41 -# obj.dict = {'VERSION' : VERSION } 57 + obj = bld.create_obj('subst')
  58 + obj.source = 'modbus.pc.in'
  59 + obj.target = 'modbus.pc'
  60 +
  61 + obj.dict = {'VERSION' : VERSION,
  62 + 'prefix': bld.env()['PREFIX'],
  63 + 'exec_prefix': bld.env()['PREFIX'],
  64 + 'libdir': bld.env()['PREFIX'] + '/lib',
  65 + 'includedir': bld.env()['PREFIX'] + '/include',
  66 + 'modbus_pkgdeps' : 'glib-2.0'}
42 67
43 def shutdown(): 68 def shutdown():
44 import UnitTest 69 import UnitTest