This is an important announcement for everyone who wants to build
MonetDB from sources (tar balls and Mercurial).  This announcement is
only relevant to the "default" branch.

Pretty soon I will commit and push a big change to the way MonetDB is
built.  This message is a heads-up for that change and contains
information on how to build MonetDB in the (near) future.

Currently, in order to build the MonetDB suite, you need to do the
following:
* build and install buildtools (only if building from Mercurial sources);
* build and install MonetDB;
* build and install clients;
* build and install MonetDB4;
* build and install MonetDB5;
* build and install sql;
* build and install pathfinder;
* build and install geom;
* build and install java;
* build and install python;
* build and install testing.

Some of the above are optional, and some variation in the order is possible.

In all cases (except python), building and installing consists of running:
* ./bootstrap
* .../configure ...
* make
* make install

This whole process is going to change.  Very soon you will need to run
the commands
* ./bootstrap (not for tar balls)
* .../configure ...
* make
* make install

only once in the top-level directory of the MonetDB suite (well,
./bootstrap has to run there, the other commands can run either there or
in a separate build directory (recommended)).

For now, there are no changes to the way the Python module is built.

The advantage of this change is clear: you only need to run these
commands once instead of 9 times.  This means that both bootstrap and
configure will be faster, even though the single instance needs to do a
bit more work than any single instance in the old situation (but there
were 9 of those).

Another advantage is that things like
* make dist (create tar ball)
* make rpm (create binary RPM)
* make srpm (create source RPM)
also need to be run only once for the complete suite.  We no longer have
a separate Super Source Tar Ball which was just a tar ball containing
all the separate source tar balls.

Note that in the old situation, there were a whole bunch of
configuration options in the Pathfinder configure.  These options have
been moved to the top-level configure.  It used to be possible to only
configure and build Pathfinder.  That is now supported by using options
on the top-level configure disabling building of MonetDB4 and MonetDB5
subpackages:
.../configure --disable-monetdb4 --disable-monetdb5 [pathfinder-specific
config options]

Attached is the check-in message that I plan to use (modulo last minute
changes).

-- 
Sjoerd Mullender
Top-level bootstrap/configure/make.

This huge changeset is to turn the various "sort-of" independent
subpackages of MonetDB into one coherent package.  The principle idea
is that we now have a single top-level configure and make instead of
having to run configure and make many times to build everything.

From now on, the way to build MonetDB is to run the command
"./bootstrap" in the top-level directory, and then to run
".../configure" and "make" in the build directory (which can be the
same as the source, but doesn't have to be).  On Windows, the way to
build is to run "nmake" in the NT subdirectory or to run "nmake /f
..\NT\Makefile" in an empty directory underneath the top level.

The subpackages affected are: MonetDB, clients, MonetDB4, MonetDB5,
sql, pathfinder, geom, testing, java.  The python subpackage is not
(yet?) affected: it still requires you to run setup.py.  Also not
affected is template (although it likely won't currently work) since
it is meant as a template for external (to the MonetDB suite)
extensions.

The top-level configure has a number of options to enable and disable
the building of subpackages:
  --enable-monetdb4       enable support for MonetDB4 (default=auto)
  --enable-monetdb5       enable support for MonetDB5 (default=auto)
  --enable-sql            enable support for MonetDB/SQL (default=auto)
  --enable-geom           enable support for geom module (default=auto)
  --enable-pathfinder     enable support for MonetDB/XQuery (default=auto)
  --enable-pftijah        enable support for TIJAH (default=auto)
  --enable-probxml        enable support for PROBXML (default=auto)
  --enable-odbc           compile the MonetDB ODBC driver (default=auto)
  --enable-testing        enable support for testing (default=auto)
  --enable-console        enables direct console on the server (involves
                          security risks)
  --enable-java           (try to) build Java components
  --enable-jdbc           build the MonetDB JDBC driver
  --enable-xrpcwrapper    build the MonetDB XRPC wrapper
  --enable-merocontrol    build the Merovingian control driver

The options to specify the presence and location of programs and
libraries that are used to build the subpackages were of course also
integrated into the top-level configure, as were the following
options:
  --with-default-backend=BACKEND
                          select a default back-end
                          (milprint_summer/algebra/sql) for Pathfinder
                          (default=algebra)
  --with-password-backend=HASHALG
                          password hash algorithm, one of MD5, SHA1,
                          RIPEMD160, SHA224, SHA256, SHA384, SHA512, defaults
                          to SHA512

Note that the Pathfinder configuration without MonetDB4 is still possible:
.../configure --disable-monetdb4 --disable-monetdb5 --enable-pathfinder ...

Other changes include the following:
- One top-level MonetDB.spec file so that all RPMs can be built in one
  go;
- One top-level debian subdirectory with Debian/Ubuntu configuration;
- Removed all *-config and *-config.bat files: there use is superseded
  by the single top-level configure and various *.pc (pkgconfig) files;
- All paths in Makefile.ag files to other subpackages are now relative;
- .mx files in the mel package have been unpacked to their constituent
  .cc (etc.) files: adding back support for C++ inside autogen was too
  hard otherwise;
- Tar balls don't include generated files (apart from configure): the
  build process, also for tar ball distributions, includes building
  and using Mx, but also now requires bison/yacc and flex/lex (there
  have been problems in the past with our distributing generated bison
  output);
- mel is only built when MonetDB4 is enabled, burg is only built when
  pathfinder is enabled;
- Some symbols in burg were replaced to avoid name clashes on Windows;
- Some files (monetdb.ico, banner.bmp, website.html, license.rtf) were
  moved to buildtools/conf;
- Use the currently approved way (by autoconf) of checking for alloca
  and alloca.h;
- Packaged vault.sql into vault.mx since autogen/Mx get confused
  otherwise;
- Set the version number globally to 11.0.0 (we need a single version
  number for binary packages, and it must be higher than the highest
  old version number).

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Monetdb-developers mailing list
Monetdb-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/monetdb-developers

Reply via email to