Author: wyoung
Date: Sat Jan 6 01:41:48 2007
New Revision: 1345
URL: http://svn.gna.org/viewcvs/mysqlpp?rev=1345&view=rev
Log:
Better coverage of the ins and outs of Bakefile, particularly under
Win32.
Modified:
trunk/HACKERS
Modified: trunk/HACKERS
URL:
http://svn.gna.org/viewcvs/mysqlpp/trunk/HACKERS?rev=1345&r1=1344&r2=1345&view=diff
==============================================================================
--- trunk/HACKERS (original)
+++ trunk/HACKERS Sat Jan 6 01:41:48 2007
@@ -49,29 +49,77 @@
Adding Support for a Different Compiler
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- MySQL++ now uses the Bakefile system for creating project
- files and makefiles. This allows us to make changes to a
- single set of files, and have the proper changes be made
- to all generated project files and makefiles. In the past,
- we used more ad-hoc systems, and we'd frequently forget to
- update individual project files and makefiles, so at any
- given time, at least one target was likely to be broken.
+ MySQL++ uses the Bakefile system for creating project files
+ and makefiles. This allows us to make changes to a single set
+ of files, and have the proper changes be made to all generated
+ project files and makefiles. In the past, we used more ad-hoc
+ systems, and we'd frequently forget to update individual project
+ files and makefiles, so at any given time, at least one target
+ was likely to be broken.
- If MySQL++ doesn't currently ship with project files or
- makefiles tuned for your compiler of choice, you need
- to work through the Bakefile mechanism to add support.
- We're not willing to do ad-hoc platform support any more,
- so please don't ask if you can send us project files instead;
- we don't want them.
+ If MySQL++ doesn't currently ship with project files or makefiles
+ tuned for your compiler of choice, you need to work through
+ the Bakefile mechanism to add support. We're not willing to
+ do ad-hoc platform support any more, so please don't ask if you
+ can send us project files instead; we don't want them.
- If you want to port MySQL++ to another platform, we need to
- be confident that the entire library works on your platform
- before we'll accept patches. In the past, we've had broken
- ports that were missing important library features, or
- that crashed when built in certain ways. Few people will
- knowingly use a crippled version of MySQL++, since there are
- usually acceptable alternatives. Therefore, such ports become
- maintenance baggage with little compensating value.
+ If you want to port MySQL++ to another platform, we need to be
+ confident that the entire library works on your platform before
+ we'll accept patches. In the past, we've had broken ports
+ that were missing important library features, or that crashed
+ when built in certain ways. Few people will knowingly use a
+ crippled version of MySQL++, since there are usually acceptable
+ alternatives. Therefore, such ports become maintenance baggage
+ with little compensating value.
+
+
+On Manipulating the Bakefiles and Autoconf Files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ If change any of the Bakefiles (*.bkl) or the autoconf stuff
+ (configure.ac and everything in the config subdir), you need to
+ run the command:
+
+ $ ./bootstrap [pedantic] [noexamples] [configure options]
+
+ This command rebuilds all of the project files and makefiles
+ that depend on the Bakefiles and Autoconf stuff.
+
+ If you pass 'pedantic' to the bootstrap script, it will set up
+ the autoconf build system so it turns on all of GCC's warnings
+ and such. It's useful to build the library in this mode when
+ making changes to make sure there are no obvious problems with
+ the code.
+
+ If you pass 'noexamples', the examples won't be built.
+
+ You can pass any of the previous options in any order. As soon as
+ the bootstrap script sees an options that it doesn't understand,
+ it stops processing the command line. Any subsequent options
+ are passed (indirectly) to the configure script. See README.unix
+ for more on configure script options.
+
+ If you only change the Bakefiles (*.bkl), you can run the rebake
+ script instead. This avoids rebuilding all the Autotools stuff.
+
+ Bakefile doesn't work very well on Windows at the moment. There
+ is a native Win32 port, but it doesn't include the bakefilize
+ piece, since it depends on a Unix Bourne type shell to work.
+ And you can't work around this by building Bakefile under Cygwin,
+ as there seems to be a Python compatibility problem there.
+ There are two ways to work around this. The first way is to
+ download both the native Win32 port of Bakefile and the source
+ tarball, install the Win32 port, and copy in the bakefile script
+ from the source tarball. Then you can use the full Bakefile
+ tool set under Cygwin, in a hybrid way. If most of your work
+ isn't really Win32 specific, the way I work instead is to do
+ most of the work on a better supported platform like Linux or
+ OS X, test there, and only copy it over for final testing and
+ tweaking on the Windows side. This works because you build the
+ Win32 project files using Bakefile over on the other platform,
+ so you don't have to mess with Bakefile's oddities under Win32.
+ I use the first method when I need to do a lot of work on the
+ Win32 side, so the constant source tree copying is too much of
+ an overhead.
Maintaining a Private CVS Repository
@@ -100,28 +148,3 @@
$(cat CVS/Repository) > equal_list.patch
-On Manipulating the Bakefiles and Autoconf Files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- If change any of the Bakefiles (*.bkl) or the autoconf stuff
- (configure.ac and everything in the config subdir), you need
- to run the command:
-
- $ ./bootstrap [pedantic] [noexamples] [configure options]
-
- This command rebuilds all of the project files and makefiles
- that depend on the Bakefiles and Autoconf stuff.
-
- If you pass 'pedantic' to the bootstrap script, it will set
- up the autoconf build system so it turns on all of GCC's
- warnings and such. It's useful to build the library in this
- mode when making changes to make sure there are no obvious
- problems with the code.
-
- If you pass 'noexamples', the examples won't be built.
-
- You can pass any of the previous options in any order.
- As soon as the bootstrap script sees an options that it
- doesn't understand, it stops processing the command line.
- Any subsequent options are passed (indirectly) to the configure
- script. See README.unix for more on configure script options.
-
_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits