6 BOOST_ROOT = [ os.environ BOOST_ROOT ] ;
8 rule debug-message ( txt * )
10 if --debug-build in [ modules.peek : ARGV ]
12 echo [luabind DEBUG] $(txt) ;
16 debug-message figuring out which libraries to link to... ;
17 debug-message os.name is [ os.name ] ;
23 errors.user-error "*** BOOST_ROOT must be set to a Boost installation." ;
26 LUA_PATH = [ os.environ LUA_PATH ] ;
30 errors.user-error "*** LUA_PATH must be set." ;
33 local includes = [ GLOB $(LUA_PATH)/include $(LUA_PATH)/src : lua.h ] ;
37 errors.user-error "*** Unable to determine Lua include directory." ;
40 includes = $(includes:D) ;
42 debug-message found include directory in $(includes) ;
44 if [ GLOB $(LUA_PATH) : lib ]
46 lib lua : : <link>static <name>lua5.1 <search>$(LUA_PATH)/lib/static : : <include>$(includes) ;
47 lib lua : : <link>shared <name>lua5.1 <search>$(LUA_PATH)/lib : : <include>$(includes) ;
49 else if [ GLOB $(LUA_PATH) : lua5.1.dll ]
51 lib lua : : <name>lua5.1 <search>$(LUA_PATH) : : <include>$(includes) ;
54 else if [ os.name ] in LINUX MACOSX FREEBSD
56 LUA_PATH = [ os.environ LUA_PATH ] ;
57 HOME = [ os.environ HOME ] ;
59 local possible-prefixes =
60 $(LUA_PATH) $(HOME)/Library/Frameworks /Library/Frameworks /usr /usr/local /opt/local /opt ;
62 local possible-suffixes =
63 include/lua5.1 include/lua51 include/lua include ;
65 local includes = [ GLOB $(possible-prefixes)/$(possible-suffixes) : lua.h ] ;
69 errors.user-error "*** Unable to determine Lua include directory." ;
72 local includes = $(includes[1]:D) ;
73 local prefix = $(includes:D) ;
75 if $(prefix:B) = "include"
77 prefix = $(prefix:D) ;
80 local lib = $(prefix)/lib ;
82 local names = liblua5.1 liblua51 liblua ;
83 local extensions = .a .so ;
85 library = [ GLOB $(lib)/lua51 $(lib)/lua5.1 $(lib)/lua $(lib) :
86 $(names)$(extensions) ] ;
87 lib-name = [ MATCH "lib(.*)" : $(library[1]:B) ] ;
89 debug-message prefix: $(prefix) ;
90 debug-message includes: $(includes) ;
91 debug-message lib: $(library:D) ;
92 debug-message candidates: $(library) ;
93 debug-message linking to: $(lib-name) ;
97 errors.user-error "*** Unable to find Lua library." ;
100 lib m : : <link>shared ;
101 if [ os.name ] = LINUX
103 lib dl : : <link>shared ;
109 lib lua : m dl : <name>$(lib-name) <search>$(library:D) : : <include>$(includes) ;
122 link_compatibility.cpp
129 stack_content_by_name.cpp
135 <toolset>msvc,<link>shared:<define>LUABIND_IMPORT=__declspec(dllimport)
136 <toolset>msvc,<link>shared:<define>LUABIND_EXPORT=__declspec(dllexport)
137 <toolset>msvc,<link>shared:<cxxflags>/wd4251 ;
142 : <define>LUABIND_BUILDING
143 <include>. <include>$(BOOST_ROOT)
144 $(usage-requirements)
148 : <include>. <include>$(BOOST_ROOT)
149 $(usage-requirements)
157 : <link>static <link>shared release debug ;
161 rule git-describe ( )
163 local result = [ SHELL "git describe HEAD 2>&1" : exit-status ] ;
167 return [ MATCH "^v([a-zA-Z.0-9\\-]+)" : $(result[1]) ] ;
171 version-tag = [ git-describe ] ;
175 actions make-version-file
177 echo ".. |version| replace:: $(version-tag)" > doc/version.rst
180 notfile make-version-file : @make-version-file ;
184 alias make-version-file ;
187 if docs in [ modules.peek : ARGV ]
189 local result = [ SHELL "rst2html.py --version 2>&1" : exit-status ] ;
192 found-rst2html = rst2html.py ;
198 : <dependency>make-version-file
199 <docutils-cmd>$(found-rst2html)
200 <docutils-html>"--traceback -gdt --stylesheet=style.css --link-stylesheet" ;
202 stage docs : docs.html : <location>doc ;
203 explicit docs docs.html make-version-file ;