Merge lp:~mordred/drizzle/various-build-fixes into lp:~drizzle-trunk/drizzle/development

Proposed by Monty Taylor
Status: Merged
Merged at revision: 1529
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
Reviewer Review Type Date Requested Status
Stewart Smith Pending
Brian Aker Pending
Review via email: mp+25245@code.launchpad.net

This proposal supersedes a proposal from 2010-05-10.

Description of the change

Fixes several build issues. Also, adds the build requirement on the boost::program_options library.

To post a comment you must log in.
Revision history for this message
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal
review: Needs Fixing
Revision history for this message
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://hudson.drizzle.org/view/Drizzle-build/job/drizzle-build-freebsd-8.0/235/console
>

Weird. I merged up with trunk and re-ran with no problems (well, other
than the usual rabbitmq failure)

http://hudson.drizzle.org/view/Drizzle-param/job/drizzle-param/149/

Specifically freebsd 8.0 is fine here:

http://hudson.drizzle.org/view/Drizzle-param/job/drizzle-param/149/BUILD_TYPE=release,label=freebsd-8.0-amd64/

Perhaps there was a merge weirdness?

Revision history for this message
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_program_options and provides variables so that that work can be happy.

Revision history for this message
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal

Build problems (as reported on IRC)

review: Needs Fixing
Revision history for this message
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)

Revision history for this message
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,

Revision history for this message
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal

Please tell me when you get this all worked out.

review: Needs Information
Revision history for this message
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.

Revision history for this message
Stewart Smith (stewart) wrote : Posted in a previous version of this proposal

With this branch, we can have innobase or embedded_innodb builds.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.quickly'
2--- .quickly 1970-01-01 00:00:00 +0000
3+++ .quickly 2010-05-13 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 16:14:25 +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 \