From: Warren Young Date: March 21 2009 12:00am Subject: Re: got another error after got another error List-Archive: http://lists.mysql.com/plusplus/8496 Message-Id: <49C42E15.7080900@etr-usa.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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.