Warren Young wrote:
> On Mar 19, 2009, at 7:52 PM, Alex Luya wrote:
>
>> lib/mysql++.cpp:34: error: stray '@' in program
>
> You will either have to bootstrap the library on a Unixy machine and
> then copy the source back over to your Windows box, or copy the needed
> generated files (lib/mysql++.h in this case) over from a released
> version of MySQL++.
I've written this process up in HACKERS.txt, adding a lot of detail.
Here's the new section:
Bootstrapping the Library Using only Windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The thing that makes bootstrapping on Windows difficult is that
one of the required steps uses a Unix-centric tool, autoconf.
This section is about working out a way to get that working on
Windows, or avoiding the need for it, so you can get on with
hacking on MySQL++ on Windows.
The thing autoconf does that's relevant to Windows builds
of MySQL++ is that it substitutes the current MySQL++ version
number into several source files. This allows us to change the
version number in just one place -- configure.ac -- and have
it applied to all these other places. Until you do this step,
an svn checkout of MySQL++ won't build, because these files with
the version numbers in them won't be generated.
Option 1: Copy the generated files over from a released version
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Only one of these generated files is absolutely critical to
allowing MySQL++ to build: lib/mysql++.h. So, the simplest
option you have to bootstrap MySQL++ entirely on Windows is to
copy lib/mysql++.h over from a released version of MySQL++.
While you're doing that, you might copy over the other such
generated files:
install.hta
mysql++.spec
doc/userman/userman.dbx
lib/Doxyfile
Having done that, you can complete the bootstrapping process by
running bootstrap.bat. It has the same purpose as the Bourne
shell script described above, but much simpler. It has none
of the command line options described above, for one thing.
The main downside of doing it this way is that your changed
version will have the same version number as the release of
MySQL++ you copied the files from, unless you go into each
file and change the version numbers.
Option 2: Cygwin
~~~~~~~~~~~~~~~~
If you'd like to hack on MySQL++ entirely on Windows and
have all the build freedoms enjoyed by those working on Unixy
platforms, the simplest solution is probably to install Cygwin.
Get the Cygwin installer from http://cygwin.com/setup.exe
When you run it, it will walk you through the steps to
install Cygwin. Autoconf and Perl 5 aren't installed in
Cygwin by default, so when you get to the packages list,
be sure to select them. Autoconf is in the Devel category,
and Perl 5 in the Interpreters category.
You will also need to install the native Windows binary
version of Bakefile, from http://bakefile.org/ Don't get
the source version and try to build Bakefile under Cygwin; it
won't work. The Windows binary version of Bakefile includes
an embedded version of Python, so you won't need to install
Cygwin's Python.
Having done all this, you can follow the Unix bootstrapping
instructions in the previous section.
Option 3: "Here's a nickel, kid, get yourself a better computer."
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://tomayko.com/writings/that-dilbert-cartoon
Finally, you might have access to a Unixy system, or the
ability to set one up. You don't even need a separate physical
computer, now that virtual machine techology is free.
For example, you could download a Linux "appliance" from
http://www.vmware.com/appliances/ and a copy of the free
VMware Player to run it on your Windows machine. You'd do the
svn checkout of MySQL++ on that machine, bootstrap it there
using the instructions in the previous section.
That done, just copy the result over to the Windows machine
to continue hacking on it.