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

Reply via email to