Merge lp:~mordred/drizzle/various-build-fixes into lp:~drizzle-trunk/drizzle/development
- various-build-fixes
- Merge into development
Status: | Superseded | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Proposed branch: | lp:~mordred/drizzle/various-build-fixes | ||||||||||||||||||||
Merge into: | lp:~drizzle-trunk/drizzle/development | ||||||||||||||||||||
Diff against target: |
929 lines (+277/-242) 14 files modified
.quickly (+5/-0) config/autorun.sh (+1/-1) config/make-lint.py (+3/-0) config/pandora-plugin (+155/-127) config/pandora-plugin.ini (+6/-32) config/uncrustify.cfg (+1/-1) m4/ac_cxx_header_stdcxx_98.m4 (+22/-6) m4/acx_pthread.m4 (+68/-73) m4/pandora_canonical.m4 (+1/-1) plugin/archive/plugin.am (+2/-0) plugin/heap/plugin.am (+3/-0) plugin/innobase/plugin.am (+5/-1) plugin/myisam/plugin.am (+3/-0) plugin/pbxt/plugin.am (+2/-0) |
||||||||||||||||||||
To merge this branch: | bzr merge lp:~mordred/drizzle/various-build-fixes | ||||||||||||||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Approve | ||
Brian Aker | Pending | ||
Review via email: mp+24992@code.launchpad.net |
This proposal supersedes a proposal from 2010-05-06.
This proposal has been superseded by a proposal from 2010-05-13.
Commit message
Description of the change
Fixes several build issues. Also, adds the build requirement on the boost::
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal | # |
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal | # |
On 04/30/2010 02:57 PM, Brian Aker wrote:
> Review: Needs Fixing
> Broken on a number of platforms (including FreeBSD).
> http://
>
Weird. I merged up with trunk and re-ran with no problems (well, other
than the usual rabbitmq failure)
http://
Specifically freebsd 8.0 is fine here:
Perhaps there was a merge weirdness?
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal | # |
Merged up with current trunk and re-ran on param-build. All good. This contains the lcov fix and the dtrace fix. Also, this contains the requirement that hosts have libboost_
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal | # |
Build problems (as reported on IRC)
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal | # |
Found the error on opensolaris. doh. Re-running through param build (esp. now that eric fixed the solaris param-build builders)
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal | # |
Ok. Re-ran on param-build, this time including the solaris builders. All seems happy now. Running through valgrind and sysbench,
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal | # |
Please tell me when you get this all worked out.
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal | # |
On 05/07/2010 11:08 AM, Brian Aker wrote:
> Review: Needs Information
> Please tell me when you get this all worked out.
Whoops. Forgot to follow up - valgrind and sysbench both also reported
fine. Good to go.
- 1527. By Brian Aker <brian@gaz>
-
Merge Monty.
Stewart Smith (stewart) wrote : | # |
With this branch, we can have innobase or embedded_innodb builds.
- 1528. By Monty Taylor
-
Merged in some stuff from pandora-build.
- 1529. By Monty Taylor
-
Updated pandora version number.
- 1530. By Monty Taylor
-
Enables the disabling of a static plugin at compile time. Incidentally,
fixes all --enable options. - 1531. By Monty Taylor
-
We don't need to wrap this in '.
- 1532. By Monty Taylor
-
Wrap the libraries in if BUILD_*_PLUGIN so that they don't build when we're
disabling. - 1533. By Monty Taylor
-
Fixed the --disable-*-plugin not working. It's enablevar - not withvar.
- 1534. By Monty Taylor
-
Fix typos.
- 1535. By Monty Taylor
-
Fixes stewart's uncleanliness.
- 1536. By Monty Taylor
-
Consistent naming would be nice.
- 1537. By Monty Taylor
-
typtypoo
- 1538. By Monty Taylor
-
Added .quickly file so that we can update things properly.
- 1539. By Monty Taylor
-
Added pandora-version.
- 1540. By Monty Taylor
-
Updated pandora-build files to version 0.127
Unmerged revisions
- 1540. By Monty Taylor
-
Updated pandora-build files to version 0.127
- 1539. By Monty Taylor
-
Added pandora-version.
- 1538. By Monty Taylor
-
Added .quickly file so that we can update things properly.
- 1537. By Monty Taylor
-
typtypoo
- 1536. By Monty Taylor
-
Consistent naming would be nice.
- 1535. By Monty Taylor
-
Fixes stewart's uncleanliness.
- 1534. By Monty Taylor
-
Fix typos.
- 1533. By Monty Taylor
-
Fixed the --disable-*-plugin not working. It's enablevar - not withvar.
- 1532. By Monty Taylor
-
Wrap the libraries in if BUILD_*_PLUGIN so that they don't build when we're
disabling. - 1531. By Monty Taylor
-
We don't need to wrap this in '.
Preview Diff
1 | === added file '.quickly' |
2 | --- .quickly 1970-01-01 00:00:00 +0000 |
3 | +++ .quickly 2010-05-13 12:03:27 +0000 |
4 | @@ -0,0 +1,5 @@ |
5 | +project = drizzle |
6 | +version = 0.4.2 |
7 | +template = pandora-build |
8 | +project-type = application |
9 | +pandora-version = 0.127 |
10 | |
11 | === modified file 'config/autorun.sh' |
12 | --- config/autorun.sh 2009-12-03 18:30:10 +0000 |
13 | +++ config/autorun.sh 2010-05-13 12:03:27 +0000 |
14 | @@ -35,7 +35,7 @@ |
15 | LIBTOOLIZE_FLAGS=" --automake --copy --force" |
16 | # --add-missing instructs automake to install missing auxiliary files |
17 | # and --force to overwrite them if they already exist |
18 | -AUTOMAKE_FLAGS="--add-missing --copy --force" |
19 | +AUTOMAKE_FLAGS="--add-missing --copy --force --foreign" |
20 | ACLOCAL_FLAGS="-I m4" |
21 | |
22 | ARGV0=$0 |
23 | |
24 | === modified file 'config/make-lint.py' |
25 | --- config/make-lint.py 2010-04-22 04:24:24 +0000 |
26 | +++ config/make-lint.py 2010-05-13 12:03:27 +0000 |
27 | @@ -123,6 +123,9 @@ |
28 | if not (path.startswith('plugin/') or path.startswith('drizzled/') or |
29 | path.startswith('client/')): |
30 | return False |
31 | + # Let's not lint emacs autosave files |
32 | + if (os.path.split(path)[-1].startswith('.#')): |
33 | + return False |
34 | for exclude in ['innobase', 'pbxt', 'gnulib', '.pb.', 'bak-header', 'm4', |
35 | 'sql_yacc', 'gperf', 'drizzled/probes.h', |
36 | 'drizzled/function_hash.h', 'drizzled/symbol_hash.h', |
37 | |
38 | === modified file 'config/pandora-plugin' |
39 | --- config/pandora-plugin 2010-04-16 05:36:53 +0000 |
40 | +++ config/pandora-plugin 2010-05-13 12:03:27 +0000 |
41 | @@ -15,14 +15,16 @@ |
42 | # along with this program; if not, write to the Free Software |
43 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
44 | |
45 | +pandora_plugin_file = 'config/pandora-plugin.ini' |
46 | |
47 | -# Find plugins in the tree and add them to the build system |
48 | +# Find plugins in the tree and add them to the build system |
49 | |
50 | import ConfigParser, os, sys |
51 | import datetime, time |
52 | import subprocess |
53 | |
54 | -from pandora_plugin_config import * |
55 | +plugin_am_file=None |
56 | +plugin_ac_file=None |
57 | |
58 | class ChangeProtectedFile(object): |
59 | |
60 | @@ -40,7 +42,7 @@ |
61 | self.new_file.write(text) |
62 | |
63 | # We've written all of this out into .new files, now we only copy them |
64 | - # over the old ones if they are different, so that we don't cause |
65 | + # over the old ones if they are different, so that we don't cause |
66 | # unnecessary recompiles |
67 | def close(self): |
68 | """Return True if the file had changed.""" |
69 | @@ -111,6 +113,8 @@ |
70 | echo " * Debug enabled: $with_debug" |
71 | echo " * Warnings as failure: $ac_cv_warnings_as_errors" |
72 | echo " * C++ cstdint location: $ac_cv_cxx_cstdint" |
73 | +echo " * C++ hash_map location: $ac_cv_cxx_hash_map" |
74 | +echo " * C++ hash namespace: $ac_cv_cxx_hash_namespace" |
75 | echo " * C++ shared_ptr namespace: $ac_cv_shared_ptr_namespace" |
76 | echo "" |
77 | echo "---" |
78 | @@ -139,12 +143,11 @@ |
79 | %(libname)s_la_LDFLAGS=-avoid-version -rpath $(pkgplugindir) $(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS) |
80 | %(libname)s_la_LIBADD=%(libs)s |
81 | %(libname)s_la_DEPENDENCIES=%(libs)s |
82 | -%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s %(cppflags)s |
83 | +%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s %(cppflags)s |
84 | %(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s |
85 | %(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s |
86 | - |
87 | %(libname)s_la_SOURCES=%(sources)s |
88 | - |
89 | +check_PROGRAMS += %(tests)s |
90 | """ % plugin) |
91 | plugin_am_file=os.path.join(plugin['rel_path'],'plugin.am') |
92 | if os.path.exists(plugin_am_file): |
93 | @@ -169,23 +172,22 @@ |
94 | if plugin['writing_status'] == 'done': |
95 | return |
96 | else: |
97 | - print "Dependency loop detected with " % plugin['name'] |
98 | + print "Dependency loop detected with %s" % plugin['name'] |
99 | exit(1) |
100 | |
101 | plugin['writing_status'] = 'dependencies' |
102 | |
103 | # Write all dependencies first to get around annoying automake bug |
104 | - if plugin['dependency_list'] is not None: |
105 | - for dependency in plugin['dependency_list']: |
106 | - found = False |
107 | - for find_plugin in plugin_ini_list: |
108 | - if find_plugin['name'] == dependency: |
109 | - found = True |
110 | - write_plugin(find_plugin, plugin_ini_list) |
111 | - break |
112 | - if found is False: |
113 | - print "Could not find dependency %s" % dependency |
114 | - exit(1) |
115 | + for dependency in plugin['dependency_list']: |
116 | + found = False |
117 | + for find_plugin in plugin_ini_list: |
118 | + if find_plugin['module_name'] == dependency: |
119 | + found = True |
120 | + write_plugin(find_plugin, plugin_ini_list) |
121 | + break |
122 | + if found is False: |
123 | + print "Could not find dependency %s: %s" % (plugin['name'], dependency) |
124 | + exit(1) |
125 | |
126 | write_plugin_ac(plugin, plugin_ac_file) |
127 | write_plugin_am(plugin, plugin_am_file) |
128 | @@ -209,22 +211,7 @@ |
129 | plugin_ac.write('m4_sinclude([%s])\n' % m4_file) |
130 | plugin['plugin_dep_libs']=" ".join(["\${top_builddir}/%s" % f for f in plugin['libs'].split()]) |
131 | |
132 | - if plugin['static']: |
133 | - plugin_ac.write(""" |
134 | -dnl This plugin is staticly built, which means we cannot live without and it is not |
135 | -dnl possible to disable it. Once it is disableable, we will make it non-static. |
136 | -with_%(name)s_plugin=yes |
137 | -pandora_builtin_list="_drizzled_%(name)s_plugin_,${pandora_builtin_list}" |
138 | -pandora_plugin_libs="${pandora_plugin_libs} \${top_builddir}/%(root_plugin_dir)s/%(libname)s.la" |
139 | -PANDORA_PLUGIN_DEP_LIBS="${PANDORA_PLUGIN_DEP_LIBS} %(plugin_dep_libs)s" |
140 | - |
141 | -""" % plugin) |
142 | - if plugin['testsuite']: |
143 | - plugin_ac.write(""" |
144 | -pandora_plugin_test_list="%(name)s,${pandora_plugin_test_list}" |
145 | -""" % plugin) |
146 | - else: |
147 | - plugin_ac.write(""" |
148 | + plugin_ac.write(""" |
149 | AC_ARG_WITH([%(name_with_dashes)s-plugin],[ |
150 | dnl indented wierd to make the help output correct |
151 | AS_HELP_STRING([--with-%(name_with_dashes)s-plugin],[Build %(title)s. @<:@default=%(enabled)s@:>@]) |
152 | @@ -245,14 +232,14 @@ |
153 | AS_HELP_STRING([--enable-%(name_with_dashes)s-plugin],[Build %(title)s. @<:@default=%(default_yesno)s@:>@]) |
154 | AS_HELP_STRING([--disable-%(name_with_dashes)s-plugin],[Disable building %(title)s]) |
155 | ], |
156 | - [enable_%(name)s_plugin="$withval"], |
157 | + [enable_%(name)s_plugin="$enableval"], |
158 | [enable_%(name)s_plugin=%(default_yesno)s]) |
159 | |
160 | """ % plugin) |
161 | if os.path.exists(plugin_ac_file): |
162 | - plugin_ac.write('m4_sinclude([%s])\n' % plugin_ac_file) |
163 | + plugin_ac.write('m4_sinclude([%s])\n' % plugin_ac_file) |
164 | # The plugin author has specified some check to make to determine |
165 | - # if the plugin can be built. If the plugin is turned on and this |
166 | + # if the plugin can be built. If the plugin is turned on and this |
167 | # check fails, then configure should error out. If the plugin is not |
168 | # turned on, then the normal conditional build stuff should just let |
169 | # it silently not build |
170 | @@ -272,23 +259,46 @@ |
171 | AM_CONDITIONAL([%(build_conditional_tag)s], |
172 | [test %(build_conditional)s]) |
173 | """ % plugin) |
174 | - if not plugin['static']: |
175 | - plugin_ac.write(""" |
176 | + |
177 | + plugin_ac.write(""" |
178 | AS_IF([test "x$with_%(name)s_plugin" = "xyes"], |
179 | - [ |
180 | + [ |
181 | """ % plugin) |
182 | - if plugin['testsuite']: |
183 | - plugin_ac.write(""" |
184 | - pandora_plugin_test_list="%(name)s,${pandora_plugin_test_list}" |
185 | - """ % plugin) |
186 | + if plugin['testsuite']: |
187 | + plugin_ac.write(""" |
188 | + pandora_plugin_test_list="%(name)s,${pandora_plugin_test_list}" |
189 | + """ % plugin) |
190 | + if plugin['static']: |
191 | + plugin_ac.write(""" |
192 | + AS_IF([test "x$enable_%(name)s_plugin" = "xyes"],[ |
193 | + pandora_builtin_list="_drizzled_%(module_name)s_plugin_,${pandora_builtin_list}" |
194 | + pandora_plugin_libs="${pandora_plugin_libs} \${top_builddir}/%(root_plugin_dir)s/%(libname)s.la" |
195 | + PANDORA_PLUGIN_DEP_LIBS="${PANDORA_PLUGIN_DEP_LIBS} %(plugin_dep_libs)s" |
196 | + ]) |
197 | + """ % plugin) |
198 | |
199 | + else: |
200 | plugin_ac.write(""" |
201 | AS_IF([test "x$enable_%(name)s_plugin" = "xyes"],[ |
202 | pandora_default_plugin_list="%(name)s,${pandora_default_plugin_list}" |
203 | ]) |
204 | """ % plugin) |
205 | - plugin_ac.write(" ])\n") |
206 | + plugin_ac.write(" ])\n") |
207 | |
208 | +def fix_file_paths(plugin, files): |
209 | + # TODO: determine path to plugin dir relative to top_srcdir... append it to |
210 | + # source files if they don't already have it |
211 | + new_files="" |
212 | + if plugin['plugin_dir'] != ".": |
213 | + for file in files.split(): |
214 | + if not file.startswith(plugin['rel_path']): |
215 | + file= os.path.join(plugin['rel_path'], file) |
216 | + new_files= "%s %s" % (new_files, file) |
217 | + else: |
218 | + new_files= " ".join(plugin['sources'].split()) |
219 | + if new_files != "": |
220 | + return new_files |
221 | + return files |
222 | |
223 | def expand_plugin_ini(plugin): |
224 | if plugin['name'] == "**OUT-OF-TREE**": |
225 | @@ -299,53 +309,22 @@ |
226 | plugin['rel_path']= plugin['plugin_dir'] |
227 | plugin['unconditional']=True |
228 | else: |
229 | - plugin['rel_path']= plugin['plugin_dir'][len(top_srcdir)+len(os.path.sep):] |
230 | + plugin['rel_path']= plugin['plugin_dir'][len(config['top_srcdir'])+len(os.path.sep):] |
231 | plugin['unconditional']=False |
232 | - # TODO: determine path to plugin dir relative to top_srcdir... append it to |
233 | - # source files if they don't already have it |
234 | - if plugin['sources'] == "": |
235 | - plugin['sources']="%s.cc" % plugin['name'] |
236 | - new_sources="" |
237 | - if plugin['plugin_dir'] != ".": |
238 | - for src in plugin['sources'].split(): |
239 | - if not src.startswith(plugin['rel_path']): |
240 | - src= os.path.join(plugin['rel_path'], src) |
241 | - new_sources= "%s %s" % (new_sources, src) |
242 | - else: |
243 | - new_sources= " ".join(plugin['sources'].split()) |
244 | - if new_sources != "": |
245 | - plugin['sources']= new_sources |
246 | + |
247 | + plugin['sources']= fix_file_paths(plugin, plugin['sources']) |
248 | plugin['main_source']= plugin['sources'].split()[0] |
249 | - |
250 | - new_headers="" |
251 | - if plugin['plugin_dir'] != ".": |
252 | - for header in plugin['headers'].split(): |
253 | - if not header.startswith(plugin['rel_path']): |
254 | - header= os.path.join(plugin['rel_path'], header) |
255 | - new_headers= "%s %s" % (new_headers, header) |
256 | - else: |
257 | - new_headers= " ".join(plugin['headers'].split()) |
258 | - if new_headers != "": |
259 | - plugin['headers']= new_headers |
260 | - |
261 | - new_install_headers="" |
262 | - if plugin['plugin_dir'] != ".": |
263 | - for header in plugin['install_headers'].split(): |
264 | - if not header.startswith(plugin['rel_path']): |
265 | - header= os.path.join(plugin['rel_path'], header) |
266 | - new_install_headers= "%s %s" % (new_install_headers, header) |
267 | - else: |
268 | - new_install_headers= " ".join(plugin['install_headers'].split()) |
269 | - if new_install_headers != "": |
270 | - plugin['install_headers']= new_install_headers |
271 | - |
272 | + plugin['headers']= fix_file_paths(plugin, plugin['headers']) |
273 | + plugin['install_headers']= fix_file_paths(plugin, plugin['install_headers']) |
274 | + plugin['tests']= fix_file_paths(plugin, plugin['tests']) |
275 | + |
276 | # Make a yes/no version for autoconf help messages |
277 | - if plugin['load_by_default']: |
278 | + if plugin['load_by_default'] or plugin['static']: |
279 | plugin['default_yesno']="yes" |
280 | else: |
281 | plugin['default_yesno']="no" |
282 | |
283 | - |
284 | + |
285 | plugin['build_conditional_tag']= "BUILD_%s_PLUGIN" % plugin['name'].upper() |
286 | plugin['name_with_dashes']= plugin['name'].replace('_','-') |
287 | if plugin.has_key('build_conditional'): |
288 | @@ -356,9 +335,9 @@ |
289 | plugin['build_conditional']='"x${with_%(name)s_plugin}" = "xyes"' %plugin |
290 | |
291 | if plugin['install']: |
292 | - plugin['library_type']= 'pkgplugin'; |
293 | + plugin['library_type']= 'pkgplugin' |
294 | else: |
295 | - plugin['library_type']= 'noinst'; |
296 | + plugin['library_type']= 'noinst' |
297 | |
298 | def find_testsuite(plugin_dir): |
299 | for testdir in ['drizzle-tests','tests']: |
300 | @@ -372,10 +351,14 @@ |
301 | if plugin_dir == ".": |
302 | plugin_name="**OUT-OF-TREE**" |
303 | else: |
304 | - plugin_name=os.path.basename(plugin_dir) |
305 | - |
306 | - plugin_file= os.path.join(plugin_dir,plugin_ini_fname) |
307 | - plugin_defaults= dict(sources="", |
308 | + short_name=os.path.basename(plugin_dir) |
309 | + plugin_name = plugin_dir[plugin_dir.index(config['root_plugin_dir']) + len(config['root_plugin_dir']) + 1:] |
310 | + module_name = plugin_name.replace("/", config['module_name_separator']).replace("\\", config['module_name_separator']) |
311 | + plugin_name = plugin_name.replace("/", config['plugin_name_separator']).replace("\\", config['plugin_name_separator']) |
312 | + |
313 | + |
314 | + plugin_file= os.path.join(plugin_dir,config['plugin_ini_fname']) |
315 | + plugin_defaults= dict(sources="%s.cc" % short_name, |
316 | headers="", |
317 | install_headers="", |
318 | cflags="", |
319 | @@ -388,12 +371,14 @@ |
320 | description="", |
321 | license="PLUGIN_LICENSE_GPL", |
322 | name=plugin_name, |
323 | - load_by_default="False", |
324 | + module_name=module_name, |
325 | + load_by_default=config['default_load_by_default'], |
326 | disabled="False", |
327 | static="False", |
328 | dependencies="", |
329 | dependency_aliases="", |
330 | - install=default_install) |
331 | + tests="", |
332 | + install=config['default_install']) |
333 | parser=ConfigParser.ConfigParser(defaults= plugin_defaults) |
334 | parser.read(plugin_file) |
335 | plugin=dict(parser.items('plugin')) |
336 | @@ -407,8 +392,8 @@ |
337 | print "External Plugins are required to specifiy a version" |
338 | sys.exit(1) |
339 | if not plugin.has_key('version'): |
340 | - plugin['version'] = default_plugin_version |
341 | - |
342 | + plugin['version'] = config['default_plugin_version'] |
343 | + |
344 | if plugin.has_key('load_by_default'): |
345 | plugin['load_by_default']=parser.getboolean('plugin','load_by_default') |
346 | if plugin.has_key('disabled'): |
347 | @@ -432,30 +417,32 @@ |
348 | else: |
349 | plugin['testsuite']=False |
350 | |
351 | - plugin['cflags']+= extra_cflags |
352 | - plugin['cppflags']+= extra_cppflags |
353 | - plugin['cxxflags']+= extra_cxxflags |
354 | + plugin['cflags']+= ' ' + config['extra_cflags'] |
355 | + plugin['cppflags']+= ' ' + config['extra_cppflags'] |
356 | + plugin['cxxflags']+= ' ' + config['extra_cxxflags'] |
357 | |
358 | - plugin['libname']= "lib%s%s%s" % (plugin_prefix, plugin['name'], plugin_suffix) |
359 | - if force_lowercase_libname: |
360 | + plugin['libname']= "lib%s%s%s" % (config['plugin_prefix'], |
361 | + plugin['name'], |
362 | + config['plugin_suffix']) |
363 | + if config['force_lowercase_libname']: |
364 | plugin['libname']= plugin['libname'].lower() |
365 | |
366 | - plugin['root_plugin_dir']= root_plugin_dir |
367 | - plugin['plugin_prefix']= plugin_prefix |
368 | - plugin['plugin_suffix']= plugin_suffix |
369 | - plugin['pkgplugindir']= pkgplugindir |
370 | + plugin['root_plugin_dir']= config['root_plugin_dir'] |
371 | + plugin['plugin_prefix']= config['plugin_prefix'] |
372 | + plugin['plugin_suffix']= config['plugin_suffix'] |
373 | + plugin['pkgplugindir']= config['pkgplugindir'] |
374 | |
375 | # Dependencies must have a module but dependency aliases are simply added |
376 | # to the variable passed during compile. |
377 | - plugin['dependencies'] = plugin['dependencies'].replace(' ', '') |
378 | - plugin['dependency_aliases'] = plugin['dependency_aliases'].replace(' ', '') |
379 | - if plugin['dependencies'] == '': |
380 | - plugin['dependency_list'] = None |
381 | - plugin['dependencies'] = plugin['dependency_aliases'] |
382 | - else: |
383 | - plugin['dependency_list'] = plugin['dependencies'].split(',') |
384 | - if plugin['dependency_aliases'] != '': |
385 | - plugin['dependencies'] = ','.join([plugin['dependencies'], plugin['dependency_aliases']]) |
386 | + plugin['dependency_list'] = plugin['dependencies'].split() |
387 | + dependency_aliases = plugin['dependency_aliases'].split() |
388 | + plugin['dependencies'] = ','.join(plugin['dependency_list'] + |
389 | + plugin['dependency_aliases'].split()) |
390 | + dependency_libs = ["%s/lib%s%s.la" % (config['root_plugin_dir'], |
391 | + dependency.lower().replace('::', '_'), |
392 | + config['plugin_suffix']) |
393 | + for dependency in plugin['dependency_list']] |
394 | + plugin['libs'] = " ".join(plugin['libs'].split() + dependency_libs); |
395 | |
396 | # Libtool is going to expand: |
397 | # -DPANDORA_MODULE_AUTHOR='"Padraig O'"'"'Sullivan"' |
398 | @@ -470,7 +457,7 @@ |
399 | |
400 | def write_plugin_am(plugin, plugin_am): |
401 | """Write an automake fragment for this plugin. |
402 | - |
403 | + |
404 | :param plugin: The plugin dict. |
405 | :param plugin_am: The file to write to. |
406 | """ |
407 | @@ -499,11 +486,11 @@ |
408 | %(root_plugin_dir)s_%(libname)s_la_LIBADD=%(libs)s |
409 | %(root_plugin_dir)s_%(libname)s_la_DEPENDENCIES=%(libs)s |
410 | %(root_plugin_dir)s_%(libname)s_la_LDFLAGS=$(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS) |
411 | - %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_MODULE_NAME=%(name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='"%(dependencies)s"' %(cppflags)s |
412 | + %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='"%(dependencies)s"' %(cppflags)s |
413 | %(root_plugin_dir)s_%(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s |
414 | %(root_plugin_dir)s_%(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s |
415 | - |
416 | %(root_plugin_dir)s_%(libname)s_la_SOURCES=%(sources)s |
417 | + check_PROGRAMS += %(tests)s |
418 | PANDORA_DYNAMIC_LDADDS+=${top_builddir}/%(root_plugin_dir)s/%(libname)s.la |
419 | endif |
420 | """ % plugin) |
421 | @@ -516,27 +503,55 @@ |
422 | %(root_plugin_dir)s_%(libname)s_la_LDFLAGS=-avoid-version -rpath $(pkgplugindir) $(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS) |
423 | %(root_plugin_dir)s_%(libname)s_la_LIBADD=%(libs)s |
424 | %(root_plugin_dir)s_%(libname)s_la_DEPENDENCIES=%(libs)s |
425 | - %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='"%(dependencies)s"' %(cppflags)s |
426 | + %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='"%(author)s"' -DPANDORA_MODULE_TITLE='"%(title)s"' -DPANDORA_MODULE_VERSION='"%(version)s"' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='"%(dependencies)s"' %(cppflags)s |
427 | %(root_plugin_dir)s_%(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s |
428 | %(root_plugin_dir)s_%(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s |
429 | - |
430 | %(root_plugin_dir)s_%(libname)s_la_SOURCES=%(sources)s |
431 | + check_PROGRAMS += %(tests)s |
432 | endif |
433 | """ % plugin) |
434 | plugin_am_file=os.path.join(plugin['rel_path'],'plugin.am') |
435 | if os.path.exists(plugin_am_file): |
436 | plugin_am.write('include %s\n' % plugin_am_file) |
437 | |
438 | -#MAIN STARTS HERE: |
439 | +# |
440 | +# MAIN STARTS HERE: |
441 | +# |
442 | + |
443 | +# Parse the pandora-plugin config file |
444 | + |
445 | +config_defaults= dict( |
446 | + top_srcdir='.', |
447 | + top_builddir='.', |
448 | + plugin_ini_fname='plugin.ini', |
449 | + plugin_prefix='', |
450 | + plugin_suffix='', |
451 | + extra_cflags='', |
452 | + extra_cppflags='', |
453 | + extra_cxxflags='', |
454 | + root_plugin_dir='', |
455 | + pkgplugindir='', |
456 | + default_install='True', |
457 | + default_plugin_version='', |
458 | + default_load_by_default='False', |
459 | + force_lowercase_libname='True', |
460 | + plugin_name_separator='_', |
461 | + module_name_separator='::' |
462 | +) |
463 | + |
464 | +config_parser = ConfigParser.ConfigParser(defaults=config_defaults) |
465 | +config_parser.read(pandora_plugin_file) |
466 | +config = dict(config_parser.items('pandora-plugin')) |
467 | +config['force_lowercase_libname']=config_parser.getboolean('pandora-plugin','force_lowercase_libname') |
468 | |
469 | # I'm 3 seconds away from writing a comprehensive build solution |
470 | if not os.path.exists('config/pandora_vc_revinfo'): |
471 | if os.path.exists('.bzr'): |
472 | bzr_revno= subprocess.Popen(["bzr", "revno"], stdout=subprocess.PIPE).communicate()[0].strip() |
473 | rev_date= datetime.date.fromtimestamp(time.time()) |
474 | - default_plugin_version = "%d.%02d.%s" % (rev_date.year, rev_date.month, bzr_revno) |
475 | + config['default_plugin_version'] = "%d.%02d.%s" % (rev_date.year, rev_date.month, bzr_revno) |
476 | else: |
477 | - default_plugin_version=datetime.date.fromtimestamp(time.time()).isoformat() |
478 | + config['default_plugin_version']=datetime.date.fromtimestamp(time.time()).isoformat() |
479 | else: |
480 | # need to read config/pandora_vc_revno |
481 | pandora_vc_revno=open('config/pandora_vc_revinfo','r').read().split() |
482 | @@ -549,14 +564,14 @@ |
483 | elif revno_key == 'PANDORA_RELEASE_DATE': |
484 | rev_date=revno_val.strip() |
485 | |
486 | - default_plugin_version = "%s.%s" % (rev_date, bzr_revno) |
487 | + config['default_plugin_version'] = "%s.%s" % (rev_date, bzr_revno) |
488 | |
489 | actions=[] |
490 | for arg in sys.argv: |
491 | if arg.startswith('--top_srcdir='): |
492 | - top_srcdir=arg[12:] |
493 | + config['top_srcdir']=arg[12:] |
494 | elif arg.startswith('--top_builddir='): |
495 | - top_builddir=arg[14:] |
496 | + config['top_builddir']=arg[14:] |
497 | elif arg == "--force-all": |
498 | actions=['plugin-list','pandora-plugin.am','write'] |
499 | break |
500 | @@ -565,11 +580,17 @@ |
501 | if len(actions) == 0: |
502 | actions.append('write') |
503 | |
504 | +plugin_list=[] |
505 | + |
506 | def accumulate_plugins(arg, dirname, fnames): |
507 | # plugin_ini_fname is a name in dirname indicating dirname is a plugin. |
508 | - if plugin_ini_fname in fnames: |
509 | + if config['plugin_ini_fname'] in fnames: |
510 | arg.append(dirname) |
511 | -os.path.walk(os.path.join(top_srcdir,root_plugin_dir),accumulate_plugins,plugin_list) |
512 | + |
513 | +os.path.walk(os.path.join(config['top_srcdir'], |
514 | + config['root_plugin_dir']), |
515 | + accumulate_plugins, |
516 | + plugin_list) |
517 | |
518 | |
519 | if not os.path.exists("config/pandora-plugin.am") or "write" in actions: |
520 | @@ -589,7 +610,7 @@ |
521 | config/pandora-plugin.am \ |
522 | config/pandora-plugin.ac \ |
523 | config/pandora-plugin \ |
524 | - config/pandora_plugin_config.py |
525 | + config/pandora-plugin.ini |
526 | |
527 | |
528 | # Seed the list of plugin LDADDS which plugins may extend. |
529 | @@ -629,6 +650,13 @@ |
530 | expand_plugin_ini(plugin) |
531 | plugin_ini_list.append(plugin) |
532 | |
533 | + # Check for duplicates |
534 | + plugin_name_list = [plugin['libname'] for plugin in plugin_ini_list] |
535 | + for plugin in plugin_ini_list: |
536 | + if plugin_name_list.count(plugin['libname']) != 1: |
537 | + print "Duplicate module name %s" % plugin['libname'] |
538 | + exit(1) |
539 | + |
540 | for plugin in plugin_ini_list: |
541 | write_plugin(plugin, plugin_ini_list) |
542 | |
543 | |
544 | === renamed file 'config/pandora_plugin_config.py' => 'config/pandora-plugin.ini' |
545 | --- config/pandora_plugin_config.py 2010-04-16 00:08:16 +0000 |
546 | +++ config/pandora-plugin.ini 2010-05-13 12:03:27 +0000 |
547 | @@ -1,33 +1,7 @@ |
548 | -#!/usr/bin/python |
549 | - |
550 | -# Copyright (C) 2009 Sun Microsystems |
551 | -# |
552 | -# This program is free software; you can redistribute it and/or modify |
553 | -# it under the terms of the GNU General Public License as published by |
554 | -# the Free Software Foundation; version 2 of the License. |
555 | -# |
556 | -# This program is distributed in the hope that it will be useful, |
557 | -# but WITHOUT ANY WARRANTY; without even the implied warranty of |
558 | -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
559 | -# GNU General Public License for more details. |
560 | -# |
561 | -# You should have received a copy of the GNU General Public License |
562 | -# along with this program; if not, write to the Free Software |
563 | -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
564 | - |
565 | -top_srcdir='.' |
566 | -top_builddir='.' |
567 | -plugin_ini_fname='plugin.ini' |
568 | -plugin_list=[] |
569 | -plugin_am_file=None |
570 | -plugin_ac_file=None |
571 | -plugin_prefix='' |
572 | -plugin_suffix='_plugin' |
573 | -extra_cflags='' |
574 | -extra_cppflags='' |
575 | -extra_cxxflags=' -DBUILDING_DRIZZLE' |
576 | -root_plugin_dir='plugin' |
577 | -pkgplugindir='$(libdir)/drizzle' |
578 | -default_install='True' |
579 | -default_plugin_version='' |
580 | +[pandora-plugin] |
581 | +root_plugin_dir=plugin |
582 | +pkgplugindir=$(libdir)/drizzle |
583 | +plugin_suffix=_plugin |
584 | +extra_cxxflags=-DBUILDING_DRIZZLE |
585 | force_lowercase_libname=True |
586 | +plugin_ini_fname=plugin.ini |
587 | |
588 | === modified file 'config/uncrustify.cfg' |
589 | --- config/uncrustify.cfg 2009-08-28 03:36:57 +0000 |
590 | +++ config/uncrustify.cfg 2010-05-13 12:03:27 +0000 |
591 | @@ -1,5 +1,5 @@ |
592 | # |
593 | -# Uncrustify optoins (with comments) for Drizzle |
594 | +# Uncrustify options (with comments) for Pandora Projects |
595 | # |
596 | |
597 | nl_after_brace_close = TRUE |
598 | |
599 | === modified file 'm4/ac_cxx_header_stdcxx_98.m4' |
600 | --- m4/ac_cxx_header_stdcxx_98.m4 2009-01-09 19:40:29 +0000 |
601 | +++ m4/ac_cxx_header_stdcxx_98.m4 2010-05-13 12:03:27 +0000 |
602 | @@ -1,12 +1,28 @@ |
603 | -dnl Copyright © 2008 Benjamin Kosnik <bkoz@redhat.com> |
604 | - |
605 | -dnl Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. |
606 | - |
607 | +# =========================================================================== |
608 | +# http://autoconf-archive.cryp.to/ac_cxx_header_stdcxx_98.html |
609 | +# =========================================================================== |
610 | +# |
611 | +# SYNOPSIS |
612 | +# |
613 | +# AC_CXX_HEADER_STDCXX_98 |
614 | +# |
615 | +# DESCRIPTION |
616 | +# |
617 | +# Check for complete library coverage of the C++1998/2003 standard. |
618 | +# |
619 | +# LICENSE |
620 | +# |
621 | +# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com> |
622 | +# |
623 | +# Copying and distribution of this file, with or without modification, are |
624 | +# permitted in any medium without royalty provided the copyright notice |
625 | +# and this notice are preserved. |
626 | |
627 | AC_DEFUN([AC_CXX_HEADER_STDCXX_98], [ |
628 | AC_CACHE_CHECK(for ISO C++ 98 include files, |
629 | ac_cv_cxx_stdcxx_98, |
630 | - [AC_LANG_PUSH(C++) |
631 | + [AC_LANG_SAVE |
632 | + AC_LANG_CPLUSPLUS |
633 | AC_TRY_COMPILE([ |
634 | #include <cassert> |
635 | #include <cctype> |
636 | @@ -59,7 +75,7 @@ |
637 | #include <vector> |
638 | ],, |
639 | ac_cv_cxx_stdcxx_98=yes, ac_cv_cxx_stdcxx_98=no) |
640 | - AC_LANG_POP() |
641 | + AC_LANG_RESTORE |
642 | ]) |
643 | if test "$ac_cv_cxx_stdcxx_98" = yes; then |
644 | AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ]) |
645 | |
646 | === modified file 'm4/acx_pthread.m4' |
647 | --- m4/acx_pthread.m4 2009-07-26 18:58:41 +0000 |
648 | +++ m4/acx_pthread.m4 2010-05-13 12:03:27 +0000 |
649 | @@ -1,4 +1,6 @@ |
650 | -##### http://autoconf-archive.cryp.to/acx_pthread.html |
651 | +# =========================================================================== |
652 | +# http://autoconf-archive.cryp.to/acx_pthread.html |
653 | +# =========================================================================== |
654 | # |
655 | # SYNOPSIS |
656 | # |
657 | @@ -6,87 +8,77 @@ |
658 | # |
659 | # DESCRIPTION |
660 | # |
661 | -# This macro figures out how to build C programs using POSIX threads. |
662 | -# It sets the PTHREAD_LIBS output variable to the threads library and |
663 | -# linker flags, and the PTHREAD_CFLAGS output variable to any special |
664 | -# C compiler flags that are needed. (The user can also force certain |
665 | -# compiler flags/libs to be tested by setting these environment |
666 | -# variables.) |
667 | +# This macro figures out how to build C programs using POSIX threads. It |
668 | +# sets the PTHREAD_LIBS output variable to the threads library and linker |
669 | +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler |
670 | +# flags that are needed. (The user can also force certain compiler |
671 | +# flags/libs to be tested by setting these environment variables.) |
672 | # |
673 | # Also sets PTHREAD_CC to any special C compiler that is needed for |
674 | -# multi-threaded programs (defaults to the value of CC otherwise). |
675 | -# (This is necessary on AIX to use the special cc_r compiler alias.) |
676 | -# |
677 | -# NOTE: You are assumed to not only compile your program with these |
678 | -# flags, but also link it with them as well. e.g. you should link |
679 | -# with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS |
680 | -# $LIBS |
681 | -# |
682 | -# If you are only building threads programs, you may wish to use |
683 | -# these variables in your default LIBS, CFLAGS, and CC: |
684 | +# multi-threaded programs (defaults to the value of CC otherwise). (This |
685 | +# is necessary on AIX to use the special cc_r compiler alias.) |
686 | +# |
687 | +# NOTE: You are assumed to not only compile your program with these flags, |
688 | +# but also link it with them as well. e.g. you should link with |
689 | +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS |
690 | +# |
691 | +# If you are only building threads programs, you may wish to use these |
692 | +# variables in your default LIBS, CFLAGS, and CC: |
693 | # |
694 | # LIBS="$PTHREAD_LIBS $LIBS" |
695 | # CFLAGS="$CFLAGS $PTHREAD_CFLAGS" |
696 | # CC="$PTHREAD_CC" |
697 | # |
698 | -# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute |
699 | -# constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to |
700 | -# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). |
701 | -# |
702 | -# ACTION-IF-FOUND is a list of shell commands to run if a threads |
703 | -# library is found, and ACTION-IF-NOT-FOUND is a list of commands to |
704 | -# run it if it is not found. If ACTION-IF-FOUND is not specified, the |
705 | -# default action will define HAVE_PTHREAD. |
706 | -# |
707 | -# Please let the authors know if this macro fails on any platform, or |
708 | -# if you have any other suggestions or comments. This macro was based |
709 | -# on work by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) |
710 | -# (with help from M. Frigo), as well as ac_pthread and hb_pthread |
711 | -# macros posted by Alejandro Forero Cuervo to the autoconf macro |
712 | -# repository. We are also grateful for the helpful feedback of |
713 | -# numerous users. |
714 | -# |
715 | -# LAST MODIFICATION |
716 | -# |
717 | -# 2006-05-29 |
718 | -# |
719 | -# COPYLEFT |
720 | -# |
721 | -# Copyright (c) 2006 Steven G. Johnson <stevenj@alum.mit.edu> |
722 | -# |
723 | -# This program is free software; you can redistribute it and/or |
724 | -# modify it under the terms of the GNU General Public License as |
725 | -# published by the Free Software Foundation; either version 2 of the |
726 | -# License, or (at your option) any later version. |
727 | +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant |
728 | +# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name |
729 | +# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). |
730 | +# |
731 | +# ACTION-IF-FOUND is a list of shell commands to run if a threads library |
732 | +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it |
733 | +# is not found. If ACTION-IF-FOUND is not specified, the default action |
734 | +# will define HAVE_PTHREAD. |
735 | +# |
736 | +# Please let the authors know if this macro fails on any platform, or if |
737 | +# you have any other suggestions or comments. This macro was based on work |
738 | +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help |
739 | +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by |
740 | +# Alejandro Forero Cuervo to the autoconf macro repository. We are also |
741 | +# grateful for the helpful feedback of numerous users. |
742 | +# |
743 | +# LICENSE |
744 | +# |
745 | +# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu> |
746 | +# |
747 | +# This program is free software: you can redistribute it and/or modify it |
748 | +# under the terms of the GNU General Public License as published by the |
749 | +# Free Software Foundation, either version 3 of the License, or (at your |
750 | +# option) any later version. |
751 | # |
752 | # This program is distributed in the hope that it will be useful, but |
753 | # WITHOUT ANY WARRANTY; without even the implied warranty of |
754 | -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
755 | -# General Public License for more details. |
756 | -# |
757 | -# You should have received a copy of the GNU General Public License |
758 | -# along with this program; if not, write to the Free Software |
759 | -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
760 | -# 02111-1307, USA. |
761 | -# |
762 | -# As a special exception, the respective Autoconf Macro's copyright |
763 | -# owner gives unlimited permission to copy, distribute and modify the |
764 | -# configure scripts that are the output of Autoconf when processing |
765 | -# the Macro. You need not follow the terms of the GNU General Public |
766 | -# License when using or distributing such scripts, even though |
767 | -# portions of the text of the Macro appear in them. The GNU General |
768 | -# Public License (GPL) does govern all other use of the material that |
769 | -# constitutes the Autoconf Macro. |
770 | -# |
771 | -# This special exception to the GPL applies to versions of the |
772 | -# Autoconf Macro released by the Autoconf Macro Archive. When you |
773 | -# make and distribute a modified version of the Autoconf Macro, you |
774 | -# may extend this special exception to the GPL to apply to your |
775 | -# modified version as well. |
776 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
777 | +# Public License for more details. |
778 | +# |
779 | +# You should have received a copy of the GNU General Public License along |
780 | +# with this program. If not, see <http://www.gnu.org/licenses/>. |
781 | +# |
782 | +# As a special exception, the respective Autoconf Macro's copyright owner |
783 | +# gives unlimited permission to copy, distribute and modify the configure |
784 | +# scripts that are the output of Autoconf when processing the Macro. You |
785 | +# need not follow the terms of the GNU General Public License when using |
786 | +# or distributing such scripts, even though portions of the text of the |
787 | +# Macro appear in them. The GNU General Public License (GPL) does govern |
788 | +# all other use of the material that constitutes the Autoconf Macro. |
789 | +# |
790 | +# This special exception to the GPL applies to versions of the Autoconf |
791 | +# Macro released by the Autoconf Archive. When you make and distribute a |
792 | +# modified version of the Autoconf Macro, you may extend this special |
793 | +# exception to the GPL to apply to your modified version as well. |
794 | |
795 | AC_DEFUN([ACX_PTHREAD], [ |
796 | AC_REQUIRE([AC_CANONICAL_HOST]) |
797 | -AC_LANG_PUSH([C]) |
798 | +AC_LANG_SAVE |
799 | +AC_LANG_C |
800 | acx_pthread_ok=no |
801 | |
802 | # We used to check for pthread.h first, but this fails if pthread.h |
803 | @@ -199,9 +191,11 @@ |
804 | # pthread_cleanup_push because it is one of the few pthread |
805 | # functions on Solaris that doesn't have a non-functional libc stub. |
806 | # We try pthread_create on general principles. |
807 | - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], [[pthread_t th; pthread_join(th, 0); |
808 | + AC_TRY_LINK([#include <pthread.h>], |
809 | + [pthread_t th; pthread_join(th, 0); |
810 | pthread_attr_init(0); pthread_cleanup_push(0, 0); |
811 | - pthread_create(0,0,0,0); pthread_cleanup_pop(0); ]])],[acx_pthread_ok=yes],[]) |
812 | + pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], |
813 | + [acx_pthread_ok=yes]) |
814 | |
815 | LIBS="$save_LIBS" |
816 | CFLAGS="$save_CFLAGS" |
817 | @@ -227,7 +221,8 @@ |
818 | AC_MSG_CHECKING([for joinable pthread attribute]) |
819 | attr_name=unknown |
820 | for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do |
821 | - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], [[int attr=$attr; return attr;]])],[attr_name=$attr; break],[]) |
822 | + AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;], |
823 | + [attr_name=$attr; break]) |
824 | done |
825 | AC_MSG_RESULT($attr_name) |
826 | if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then |
827 | @@ -272,5 +267,5 @@ |
828 | acx_pthread_ok=no |
829 | $2 |
830 | fi |
831 | -AC_LANG_POP([]) |
832 | +AC_LANG_RESTORE |
833 | ])dnl ACX_PTHREAD |
834 | |
835 | === modified file 'm4/pandora_canonical.m4' |
836 | --- m4/pandora_canonical.m4 2010-04-20 20:22:03 +0000 |
837 | +++ m4/pandora_canonical.m4 2010-05-13 12:03:27 +0000 |
838 | @@ -4,7 +4,7 @@ |
839 | dnl with or without modifications, as long as this notice is preserved. |
840 | |
841 | dnl Which version of the canonical setup we're using |
842 | -AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.123]) |
843 | +AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.127]) |
844 | |
845 | AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[ |
846 | AC_ARG_ENABLE([fat-binaries], |
847 | |
848 | === modified file 'plugin/archive/plugin.am' |
849 | --- plugin/archive/plugin.am 2009-12-29 18:26:43 +0000 |
850 | +++ plugin/archive/plugin.am 2010-05-13 12:03:27 +0000 |
851 | @@ -20,7 +20,9 @@ |
852 | $(LIBINTL) \ |
853 | $(LTLIBZ) |
854 | |
855 | +if BUILD_ARCHIVE_PLUGIN |
856 | noinst_LTLIBRARIES+= plugin/archive/libazio.la |
857 | +endif |
858 | noinst_HEADERS+= \ |
859 | plugin/archive/azio.h |
860 | plugin_archive_libazio_la_SOURCES= \ |
861 | |
862 | === modified file 'plugin/heap/plugin.am' |
863 | --- plugin/heap/plugin.am 2009-11-10 20:47:10 +0000 |
864 | +++ plugin/heap/plugin.am 2010-05-13 12:03:27 +0000 |
865 | @@ -1,3 +1,4 @@ |
866 | +# vim:ft=automake |
867 | # Copyright (C) 2000-2002, 2005-2006 MySQL AB |
868 | # |
869 | # This program is free software; you can redistribute it and/or modify |
870 | @@ -13,7 +14,9 @@ |
871 | # along with this program; if not, write to the Free Software |
872 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
873 | |
874 | +if BUILD_MEMORY_PLUGIN |
875 | noinst_LTLIBRARIES+= plugin/heap/libheap.la |
876 | +endif |
877 | noinst_HEADERS+= \ |
878 | plugin/heap/ha_heap.h \ |
879 | plugin/heap/heap.h \ |
880 | |
881 | === modified file 'plugin/innobase/plugin.am' |
882 | --- plugin/innobase/plugin.am 2010-03-01 16:43:50 +0000 |
883 | +++ plugin/innobase/plugin.am 2010-05-13 12:03:27 +0000 |
884 | @@ -215,8 +215,12 @@ |
885 | plugin/innobase/handler/status_function.h \ |
886 | plugin/innobase/handler/data_dictionary.h |
887 | |
888 | +if BUILD_INNOBASE_PLUGIN |
889 | noinst_LTLIBRARIES+= \ |
890 | - plugin/innobase/libinnobase.la plugin/innobase/libpars.la |
891 | + plugin/innobase/libinnobase.la \ |
892 | + plugin/innobase/libpars.la |
893 | +endif |
894 | + |
895 | plugin_innobase_libinnobase_la_CFLAGS= ${AM_CFLAGS} ${INNOBASE_SKIP_WARNINGS} -I$(top_srcdir)/plugin/innobase/include -DBUILD_DRIZZLE |
896 | plugin_innobase_libinnobase_la_CXXFLAGS=${AM_CXXFLAGS} ${INNOBASE_SKIP_WARNINGS} -I$(top_srcdir)/plugin/innobase/include -DBUILD_DRIZZLE |
897 | plugin_innobase_libinnobase_la_SOURCES= \ |
898 | |
899 | === modified file 'plugin/myisam/plugin.am' |
900 | --- plugin/myisam/plugin.am 2009-10-13 06:22:10 +0000 |
901 | +++ plugin/myisam/plugin.am 2010-05-13 12:03:27 +0000 |
902 | @@ -1,3 +1,4 @@ |
903 | +# vim:ft=automake |
904 | # Copyright (C) 2009 Sun Microsystems |
905 | # |
906 | # This program is free software; you can redistribute it and/or modify |
907 | @@ -13,7 +14,9 @@ |
908 | # along with this program; if not, write to the Free Software |
909 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
910 | |
911 | +if BUILD_MYISAM_PLUGIN |
912 | noinst_LTLIBRARIES+= plugin/myisam/libmyisam.la |
913 | +endif |
914 | noinst_HEADERS+= \ |
915 | plugin/myisam/ha_myisam.h \ |
916 | plugin/myisam/keycache.h \ |
917 | |
918 | === modified file 'plugin/pbxt/plugin.am' |
919 | --- plugin/pbxt/plugin.am 2010-04-14 17:24:09 +0000 |
920 | +++ plugin/pbxt/plugin.am 2010-05-13 12:03:27 +0000 |
921 | @@ -1,6 +1,8 @@ |
922 | # Used to build Makefile.in |
923 | |
924 | +if BUILD_PBXT_PLUGIN |
925 | noinst_LTLIBRARIES+= plugin/pbxt/libpbxt.la |
926 | +endif |
927 | |
928 | noinst_HEADERS+= \ |
929 | plugin/pbxt/src/backup_xt.h \ |
Broken on a number of platforms (including FreeBSD). hudson. drizzle. org/view/ Drizzle- build/job/ drizzle- build-freebsd- 8.0/235/ console
http://