Changeset: 08c339aa51f6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=08c339aa51f6 Modified Files: HowToStart.rst Branch: Jan2014 Log Message:
Some updates to the HowToStart document. diffs (242 lines): diff --git a/HowToStart.rst b/HowToStart.rst --- a/HowToStart.rst +++ b/HowToStart.rst @@ -95,13 +95,22 @@ iconv On Ubuntu, you can search with `apt-file` what provides these files: - $ apt-file search iconv.m4 + ``$ apt-file search iconv.m4`` gettext: /usr/share/aclocal/iconv.m4 gnulib: /usr/share/gnulib/m4/iconv.m4 The .m4 that usually works is in gettext. Simply run, - $ sudo apt-get install gettext + ``$ sudo apt-get install gettext`` + + On Fedora, you can search with `yum`: + + ``$ yum provides /usr/share/aclocal/iconv.m4`` + + This shows the file is provided by the gettext-devel package. + Run + + ``$ sudo yum install gettext-devel`` standard software development tools To compile MonetDB, you also need to have the following @@ -109,16 +118,15 @@ standard software development tools use on you system: - a C compiler (e.g. GNU's ``gcc``); - - GNU ``make`` (``gmake``) (native ``make`` on, e.g., IRIX and Solaris - usually don't work). - - The following are not needed when you start with the source - distribution: - - - a C++ compiler (e.g. GNU's ``g++``); + - GNU ``make`` (``gmake``) (native ``make`` on, e.g., IRIX and + Solaris usually don't work); - a lexical analyzer generator (e.g., ``lex`` or ``flex``); - a parser generator (e.g., ``yacc`` or ``bison``). + If ``lex`` and ``flex`` are missing, you won't be able to + build the jaql front end. If ``yacc`` and ``bison`` are + missing, you won't be able to build the SQL front end. + The following are optional. They are checked for during configuration and if they are missing, the feature is just missing: @@ -127,21 +135,22 @@ standard software development tools - php libxml2 - The XML parsing library `libxml2`__ is used by - the xml module of monetdb5. + The XML parsing library `libxml2`__ is used by the xml module + of monetdb5. - MonetDB5 cannot be compiled without libxml2. Current Linux - distributions all come with libxml2. + MonetDB5 cannot be compiled without libxml2. Current Linux + distributions all come with libxml2. pcre - The Perl Compatible Regular Expressions library `pcre`__ is used by - monetdb5 and sql. Most prominently, complex SQL LIKE expressions are - evaluated with help of the pcre library. + The Perl Compatible Regular Expressions library `pcre`__ is + used by monetdb5 and sql. Most prominently, complex SQL LIKE + expressions are evaluated with help of the pcre library. openssl - The `OpenSSL`__ toolkit implementing SSL v2/v3 and TLS protocols is used - for its with full-strength world-wide cryptography functions. The - client-server login procedures make use of these functions. + The `OpenSSL`__ toolkit implementing SSL v2/v3 and TLS + protocols is used for its with full-strength world-wide + cryptography functions. The client-server login procedures + make use of these functions. __ http://dev.monetdb.org/downloads/sources/ __ http://www.gnu.org/software/autoconf/ @@ -194,7 +203,7 @@ development sources on your computer. hg clone http://dev.monetdb.org/hg/MonetDB This will create the directory MonetDB in your current working directory -with underneath all subcomponents. +with underneath all subcomponents. Bootstrap, Configure and Make @@ -227,7 +236,9 @@ where ``...`` is replaced with the (abso The directory where you execute ``configure`` is the place where all intermediate source and object files are generated during compilation -via ``make``. +via ``make``. It is useful to have this be a new directory so that +there is an easy way to remove all intermediates in case you want to +rebuild (just empty or remove the directory). By default, MonetDB is installed in ``/usr/local``. To choose another target directory, you need to call @@ -238,10 +249,18 @@ target directory, you need to call Some other useful ``configure`` options are: ---enable-debug enable full debugging default=[see `Configure defaults and recommendations`_ below] ---enable-optimize enable extra optimization default=[see `Configure defaults and recommendations`_ below] ---enable-assert enable assertions in the code default=[see `Configure defaults and recommendations`_ below] ---enable-strict enable strict compiler flags default=[see `Configure defaults and recommendations`_ below] +--enable-debug enable full debugging + default=[see `Configure defaults and + recommendations`_ below] +--enable-optimize enable extra optimization + default=[see `Configure defaults and + recommendations`_ below] +--enable-assert enable assertions in the code + default=[see `Configure defaults and + recommendations`_ below] +--enable-strict enable strict compiler flags + default=[see `Configure defaults and + recommendations`_ below] You can also add options such as ``CC=<compiler>`` to specify the compiler and compiler flags to use. @@ -251,35 +270,21 @@ Use ``configure --help`` to find out mor Configure defaults and recommendations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -For convenience of both developers and users as well as to comply even more -with open source standards, we now set/use the following defaults for the -configure options +For convenience of both developers and users, we use the following +defaults for the configure options. -:: +When compiling from Mercurial sources (as mainly done by developers):: - --enable-strict, --enable-assert, --enable-debug, --enable-optimize + --enable-strict --enable-assert --enable-debug --disable-optimize -When compiling from Mercurial sources -(as mainly done by developers): +When compiling from the pre-packages source distribution:: -:: + --disable-strict --disable-assert --disable-debug --disable-optimize - strict=yes assert=yes debug=yes optimize=no (*) +When building a binary distribution, we use:: -When compiling from packaged/distributed sources (i.e., tarballs) -(as mainly done by users): + --disable-strict --disable-assert --disable-debug --enable-optimize -:: - - strict=no assert=no debug=no optimize=no (*) - -For building binary distributions (RPMs): - -:: - - strict=no assert=no debug=no optimize=yes - -``(*)`` IMPORTANT NOTE: Since ``--enable-optimize=yes`` is not the default for any case except @@ -290,7 +295,7 @@ scratch, *explicitly configured* with --enable-debug=no --enable-assert=no --enable-optimize=yes -in case you want/need to run any performance experiments with MonetDB! +in case you want to run any performance experiments with MonetDB! Please note: ``--enable-X=yes`` is equivalent to ``--enable-X``, and @@ -307,24 +312,7 @@ command make to compile the source code. Please note that parallel make -runs (e.g. ``make -j2``) are currently known to be unsuccessful. - -Testing the Build -~~~~~~~~~~~~~~~~~ - -This step is optional and only relevant for the packages clients, -MonetDB5 and sql. - -If ``make`` went successfully, you can try - -:: - - make check - -This will perform a large number of tests, some are unfortunately -still expected to fail, but most should go successfully. At the end -of the output there is a reference to an HTML file which is created by -the test process that shows the test results. +runs (e.g. ``make -j2``) are fully supported. Install ~~~~~~~ @@ -343,8 +331,7 @@ privileges. Testing the Installation ~~~~~~~~~~~~~~~~~~~~~~~~ -This step is optional and only relevant for the packages clients, -MonetDB5 and sql. +This step is optional. Make sure that *prefix*/bin is in your ``PATH``. Then in the package top-level directory issue the command @@ -363,13 +350,10 @@ using a Mercurial checkout; see for more options). -This should produce much the same output as ``make check`` above, but -uses the installed version of MonetDB. - You need write permissions in part of the installation directory for this command: it will create subdirectories ``var/dbfarm`` and -``Tests``. - +``Tests``, although there are options to ``Mtest.py`` to change the +paths. Usage ----- @@ -402,8 +386,7 @@ for details. At the ``mclient`` prompt some extra commands are available. Type a single question mark to get a list of options. Note that one of the -options is to read input from a file using ``<``. - +options is to read input from a file using ``\<``. Troubleshooting --------------- _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list