Author: wyoung
Date: Fri Mar  3 08:13:40 2006
New Revision: 1203

URL: http://svn.gna.org/viewcvs/mysqlpp?rev=1203&view=rev
Log:
Reworked the README* and HACKERS files to cover the new Bakefile stuff
instead of autotools + makemake.

Modified:
    branches/v2.1-bakefile/HACKERS
    branches/v2.1-bakefile/README
    branches/v2.1-bakefile/README.mingw
    branches/v2.1-bakefile/README.unix
    branches/v2.1-bakefile/README.vc

Modified: branches/v2.1-bakefile/HACKERS
URL: 
http://svn.gna.org/viewcvs/mysqlpp/branches/v2.1-bakefile/HACKERS?rev=1203&r1=1202&r2=1203&view=diff
==============================================================================
--- branches/v2.1-bakefile/HACKERS (original)
+++ branches/v2.1-bakefile/HACKERS Fri Mar  3 08:13:40 2006
@@ -49,33 +49,29 @@
 
 Adding Support for a Different Compiler
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-       One of the most common requests we get is to add support
-       for less common compilers or build systems.  We're happy to
-       accept patches to add such support, provided they comply with
-       certain rules.
+       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.
 
-       We don't want proprietary "project files" and such.  We find
-       that they tend to "rot" quickly.  It's human nature for a
-       person to submit such a file, and then fail to maintain it.
-       Meanwhile, the library keeps changing, so the project file
-       becomes less and less relevant over time.  The project
-       maintainers cannot reliably maintain these files, because we
-       don't have access to the tools that use them.  To avoid this,
-       we've settled on two build systems: GNU autotools for Unixy
-       systems, and our own 'makemake' system for everything else.
-       Because the project maintainers actively use both of these,
-       the maintenance to track most library changes is on our
-       shoulders.  It isn't a perfect system, but it's better than
-       the alternative.
+       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.
 
-       We're not willing to accept patches that provide only partial
-       library support.  In the past, we've had broken ports that
-       were missing important library features, or that crashed when
-       built in certain ways.  If you can't provide feature parity
-       with the existing ports, we're not interested.  The reason is,
-       few will knowingly use a crippled version of MySQL++, since
-       the alternatives are usually acceptable.  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.
 
 
 Maintaining a Private CVS Repository
@@ -104,33 +100,28 @@
                        $(cat CVS/Repository) > equal_list.patch
 
 
-On Manipulating the Autotools Input Files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-       If you are going to hack on the autotools files (*.am, *.in and
-       everything in the config subdir), run the command:
+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] [options]
+               $ ./bootstrap [pedantic] [noexamples] [configure options]
 
-       The primary purpose of this command is to rebuild all the
-       autotools output files, and to enable "maintainer mode".
-       In maintainer mode, the build system is set up such that if you
-       change any of these autotools input files in the future, their
-       dependents will be re-generated automatically.  Occasionally
-       automake/autoconf gets confused and you have to run it again,
-       but this is rare.
+       This command rebuilds all of the project files and makefiles
+       that depend on the Bakefiles and Autoconf stuff.
 
-       If the first argument to the bootstrap script is 'pedantic'
-       (without the quotes) it will turn on a bunch of GCC-specific
-       flags which make the compiler much pickier about the source
-       code it will accept without warnings.  It is useful to enable
-       this mode whenever you are making large changes to the library,
-       to ensure that you haven't done something silly.  We strive to
-       keep MySQL++ in a state where it never gives compiler warnings
-       in pedantic mode.  We're not 100% there yet with all compilers,
-       but we're trying...
+       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.
 
-       Anything after the optional pedantic argument is passed as
-       arguments to the configure script.  See the README file in
-       this directory for more information about the flags that the
-       script accepts.
+       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.
+

Modified: branches/v2.1-bakefile/README
URL: 
http://svn.gna.org/viewcvs/mysqlpp/branches/v2.1-bakefile/README?rev=1203&r1=1202&r2=1203&view=diff
==============================================================================
--- branches/v2.1-bakefile/README (original)
+++ branches/v2.1-bakefile/README Fri Mar  3 08:13:40 2006
@@ -43,28 +43,26 @@
 
 Building the Library
 ~~~~~~~~~~~~~~~~~~~~
-       MySQL++ has two supported build systems.
+       As of version 2.1, MySQL++ uses the Bakefile build system. This
+       tool creates platform-specific project files and makefiles. We
+       currently support these options:
 
-       The first is based on the GNU autotools, and is primarily
-       for Linux, Mac OS X, Cygwin, and the "real" Unices.
-       See README.unix for details.  There's a possiblity that
-       it will also work on Cygwin competitors such as MKS, UWin,
-       and Microsoft SFU, but this hasn't been tested.
+       autoconf:
+               For Unixy platforms, including Linux, Mac OS X, and
+               Cygwin. See README.unix for details. Supplementary
+               details for Cygwin are in README.cygwin.
 
-       Mainstream Win32 tool chains are supported -- if at all --
-       by the MySQL++-specific 'makemake' system.  If your platform
-       is one of those supported, it will have a secondary README
-       file in this directory with more details.
+       Visual C++:
+               We ship Visual C++ 6 project files, but MySQL++ only
+               works with Visual C++ 7.1 (a.k.a. Visual Studio 2003)
+               or newer. Your version of Visual Studio will upgrade
+               these project files for you. See README.vc for details.
 
-       If your system isn't supported by the autotools or makemake
-       systems, you will have to either add that support, or find
-       some way to build the library yourself.  We welcome patches
-       to add new platform support on the mailing list.  We would
-       much prefer to have extensions to the existing build systems
-       than completely new systems, such as project files for
-       proprietary IDEs.  The project's history shows that project
-       files tend to be neglected as new library features are added,
-       so we're reluctant to accept these.
+       MinGW:
+               We ship Makefiles made for MinGW. These currently only
+               work for building static versions of the library,
+               which has licensing ramifications. See README.mingw
+               for details.
 
 
 Example Programs

Modified: branches/v2.1-bakefile/README.mingw
URL: 
http://svn.gna.org/viewcvs/mysqlpp/branches/v2.1-bakefile/README.mingw?rev=1203&r1=1202&r2=1203&view=diff
==============================================================================
--- branches/v2.1-bakefile/README.mingw (original)
+++ branches/v2.1-bakefile/README.mingw Fri Mar  3 08:13:40 2006
@@ -30,23 +30,19 @@
                cd c:\mysql\lib\gcc
            dlltool -k -d c:\mysql++\libmysqlclient.def -l libmysqlclient.a
        
-       To configure the MySQL++ library to build with MinGW, say
-       "makemake mingw" in the project's root directory.  If you
-       change the Makefile.base or Makefile.mingw files, you will
-       have to run makemake again.
+       Now you can build the library with this command:
+       
+               mingw32-make -f Makefile.mingw
 
-       Now you can build the library with the command "mingw32-make".
-       That command ensures that you're using the MinGW version
-       of GNU make, and not some other version.  In particular,
-       the Cygwin and MSYS versions of GNU make WILL NOT WORK.
-       This problem is not insurmountable; if you want to fix it,
-       see Makefile.vc files, which work around differences among
-       these versions of GNU make.  Please send a patch for this to
-       the mailing list if you do it.
+       Notice that we're using the MinGW-specific version of GNU
+       make, not the Cygwin or MSYS versions.  This is in order to
+       get proper path separator handling.
 
-       If you didn't install MySQL in c:\mysql, you will have to
-       change Makefile.mingw in the lib and examples subdirectories
-       and re-run "makemake mingw".  You may also look at changing
-       these files for various other reasons, such as if you don't
-       like the way we name the DLL file.  If you want to change
-       the install location, that is in install.bat.
+       If you didn't install MySQL in c:\mysql, it's probably simplest
+       to just change the Makefile.mingw files.  Theoretically you
+       could adjust the Bakefiles instead, but due to the way we're
+       using Bakefile, it's a little difficult to rebuild Makefiles
+       on Windows right now.
+
+       If you want to change the install location, that is in
+       install.bat.

Modified: branches/v2.1-bakefile/README.unix
URL: 
http://svn.gna.org/viewcvs/mysqlpp/branches/v2.1-bakefile/README.unix?rev=1203&r1=1202&r2=1203&view=diff
==============================================================================
--- branches/v2.1-bakefile/README.unix (original)
+++ branches/v2.1-bakefile/README.unix Fri Mar  3 08:13:40 2006
@@ -1,6 +1,6 @@
 Building the Library and Example Programs
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-       MySQL++ uses the GNU autotools, so you can build it with the
+       MySQL++ uses the GNU autoconf, so you can build it with the
        standard commands:
 
        # ./configure

Modified: branches/v2.1-bakefile/README.vc
URL: 
http://svn.gna.org/viewcvs/mysqlpp/branches/v2.1-bakefile/README.vc?rev=1203&r1=1202&r2=1203&view=diff
==============================================================================
--- branches/v2.1-bakefile/README.vc (original)
+++ branches/v2.1-bakefile/README.vc Fri Mar  3 08:13:40 2006
@@ -5,104 +5,23 @@
     not support a sufficiently broad set of the Standard C++ language.
 
 
-About the New Build System (makemake)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    As of MySQL++ v2.0, we have changed the VC++ build system over to
-    a command-line based system, instead of Visual Studio project
-    files. We've done this for many reasons:
-
-        1. Not everyone has the IDE: Microsoft has made their
-           command-line tools available for free at various times,
-           and these offers usually do not include the Visual
-           Studio IDE.
-
-        2. Project files tend to be tied to one version of
-           Visual Studio.  Newer versions can migrate old project
-           files, but then old versions cannot read the new files.
-           So, each time there's a new version of Visual Studio,
-           there's a transition period where at least two versions
-           of the IDE are still in common use.  Makefiles,
-           by contrast, work with all versions, without changes.
-
-        3. Standardization: project files types proliferated
-           in the old system, and we would frequently forget to
-           update all of the project files when changing the
-           corresponding autotools files.  In the new system,
-           there are only two places where build system changes
-           need to be made: one for systems using the autotools,
-           and one for systems using makemake.
-
-    So, please do not ask for the Visual Studio project files to
-    return.  They cause more problems than they solve.
-
-
-Prerequisite: GNU make
-~~~~~~~~~~~~~~~~~~~~~~
-       The Makefiles generated by makemake require GNU make.
-       They used to work with Microsoft's nmake, but that held us
-       back from adding several useful features.
-
-       We've tested with two ports of GNU make for Windows: Cygwin and
-       MinGW.
-
-       To get GNU make through Cygwin, go to http://cygwin.com/ and
-       get the Cygwin setup program.  GNU make isn't part of the
-       default installation, so you will have to add it.  It's in
-       the Devel category.
-
-       To get the MinGW version of GNU make, go to http://mingw.org/
-       and download it directly.  You shouldn't need to download
-       anything but the GNU make package, as it should run standalone.
-
-       Once you have done either of these, you will need to add
-       the bin directory containing GNU make to your PATH.  If you
-       don't know how to do this, open Windows Help and search for
-       Environment Variables.
-
-
 Building the Library and Example Programs
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-       First, you need to open a Windows command prompt (cmd.exe).
-       The easiest way to do this is to go into your Visual Studio
-       program group under the Start menu and in the Tools folder
-       find the Command Prompt item.  All it does is open a command
-       window and run a batch file called vcvars32.bat to set
-       up the environment variables needed to run the Visual C++
-       command-line tools.  If you have a different way to open a
-       command prompt that you prefer, you can use that and run the
-       vcvars32.bat file by hand.
+       Due to a limitation in Bakefile (the tool we use to generate
+       the project files) there are two different workspaces (a.k.a.
+       "solutions"): one in the lib subdirectory and one in the
+       examples subdirectory.  You only have to build the project
+       in the lib subdirectory, but you are encouraged to also build
+       the examples, as they are good tests of whether your library
+       is built and working correctly.
 
-    To create the Makefiles, say "makemake vc" in the project's root
-    directory.  You only have to do this once, unless you change
-    Makefile.base or Makefile.vc.
-
-       Now you can run GNU make to build the library and examples.
-       If you've installed GNU make through Cygwin, the command is
-       "make".  If you're using the MinGW version of GNU make, it's
-       "mingw32-make" instead.
-
-    The build process creates debug and release versions of the MySQL++
-    DLL, as well as import libraries for those DLLs.  It's possible to
-    create a static library, but we don't do this in the distributed
-    Makefiles because linking to such a library is a license violation
-    for programs not licensed under the GPL or LGPL.  Using the
-    library in DLL form avoids this problem.
-
-    The build process also builds the example programs.  They are built
-    in debug mode.  You should run the major examples to make sure
-    the library is built correctly; see examples/README details.
+    If you didn't install MySQL in c:\mysql, you will have to change
+    the project options.
 
     Once the library is built and you're satisfied that it's working
-    correctly, say "make install" at the project root.  By default,
-    it installs the library files and headers in subdirectories
-    under c:\mysql++.
-
-    If you didn't install MySQL in c:\mysql, you will have to change
-    Makefile.vc in the lib and examples subdirectories and re-run
-    "makemake vc".  You may also look at changing these files for
-    various other reasons, such as if you don't like the way we name
-    the DLL file, or want the 'install' target to put the MySQL++
-    development files somewhere other than c:\mysql++.
+    correctly, you can run the install.bat file at the project
+    root to automatically install the library files and headers in
+    subdirectories under c:\mysql++.
 
 
 Using MySQL++ in Your Own Projects


_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits

Reply via email to