[Monetdb-developers] [Fwd: Question: MonetDB static compile]

Stefan Manegold Stefan.Manegold at cwi.nl
Mon Sep 29 18:59:16 CEST 2008


Lefteris, Hans,

========
$ monetdb-install.sh --help
--------
usage: /export/scratch0/manegold/Monet/Testing/Current/source/monetweb/Assets/monetdb-install.sh < OPTS ... >

where OPTS are:
   --prefix=path     install into location path, defaults to /ufs/manegold/MonetDB
   --build=path      use path as (temporary) build directory, defaults
                     to /var/tmp/MonetDB-XXXXXXXXX
   --enable-sql      build the MonetDB/SQL server
   --enable-xquery   build the MonetDB/XQuery server
   --enable-geom     build geom extension for MonetDB/SQL, this option
                     implies --enable-sql
   --enable-template build template module for MonetDB extensions, this
                     option requires nightly or cvs sources.
   --nightly=target  download and install a nightly snapshot of the stable
                     or current branch, target must be 'stable' or 'current'
   --cvs             checkout a CVS snapshot of the current branch
   --enable-debug    compile with debugging support via e.g. gdb
   --enable-optimise compile with high optimisation flags, enabling this
                     option increases compilation time considerably but
                     often yields in a faster MonetDB server
   --enable-optimize alias for --enable-optimise
   --quiet           suppress output going to stdout
   --help            this message
   --devhelp         special help for developers
   ^^^^^^^^^         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   --version         show revision number and quit
========
$ monetdb-install.sh --devhelp
--------
There are a few hooks in this script that may be interesting to
developers or experienced users.

If you know what you're doing, by setting EXTRA_ECONF in the environment
                                          ^^^^^^^^^^^
you can pass extra arguments to configure invocations.  Use with care.

The variable MAKEOPTS is passed onto each make invocation, and can be
used to e.g. set "-j2" to speed up compilation times.  By setting MAKE,
a make with a special name or location can be used.

Two targets exist which control what the script is doing: unpack and
install.  They can be given as argument to the script.  unpack only
runs the fetch and unpacking phase, while install skips the
fetching/unpacking of the sources, and starts configure/make/make
install.  By using --build=/path/to with the install target it is
possible to resume/retry a (failed) compilation.
========
$ configure --help
--------
[...]
  --enable-static[=PKGS]  build static libraries [default=no]
  --enable-shared[=PKGS]  build shared libraries [default=yes]
[...]
(Note that the "[=PKGS]" is some bug in the docu and should be ignored.)
========

Hence,

	export EXTRA_ECONF='--disable-shared --enable-static'
	monetdb-install.sh --enable-xquery --prefix=/opt/MonetDB

will (should) give you a statically linked MonetDB/XQUery Mserver in that
sense, that all required MonetDB modules are statically linked into the
Mserver (as opposed to loading them as shared libraries at runtime).

What this does not do, though, is statically linking system libraries and
other external libraries (like libxml2 or libpcre) into the Mserver --- we
do not have any support for that.


Stefan

ps: I felt free to Cc: our (prefered) public communication channel to also
    let others benefit from your question and my answer to it.


On Mon, Sep 29, 2008 at 04:46:56PM +0200, Lefteris Sidirourgos wrote:
> Is there a compile time option for what NFI asks?
> 
> ---------------------------- Original Message ----------------------------
> Subject: Question: MonetDB static compile
> From:    "Hans van Rijswijk (DT)" <hans at holmes.nl>
> Date:    Mon, September 29, 2008 4:02 pm
> To:      "Lefteris Sidirourgos" <E.Sidirourgos at cwi.nl>
> --------------------------------------------------------------------------
> 
> 
> Hi Lefteris,
> 
> I would like to create a static compilation/link of MonetDB (XQuery). The
> purpose is to make the installation easier (No compilation while
> installing, No shared library dependencies).
> Given the MonetDB-Aug2008-SuperBall, what am I supposed to do, to create a
> version for an Ubuntu Linux x86-64 platform.
> I know the command:
>     monetdb-install.sh --enable-xquery --prefix=/opt/MonetDB
> does the compilation for dynamic libraries.
> 
> Hope to hear from you. Thanks in advance.
> 
> Regards,
> Hans van Rijswijk
> NFI.
> 

-- 
| Dr. Stefan Manegold | mailto:Stefan.Manegold at cwi.nl |
| CWI,  P.O.Box 94079 | http://www.cwi.nl/~manegold/  |
| 1090 GB Amsterdam   | Tel.: +31 (20) 592-4212       |
| The Netherlands     | Fax : +31 (20) 592-4312       |




More information about the developers-list mailing list