Revision 6, 5.1 kB (checked in by richdawe, 10 years ago)

Build a basic shared library on Linux; may not work!

  • Property svn:eol-style set to native
1 This is the GNU mailutils package.
2 This document describes the actions needed to build the pre-release
3 or CVS version of the package. See end of file for copying conditions.
5 * Introduction
7     This is a *pre-release* version, and not ready for production use
8 yet. If you are taking source from CVS, you will need to have libtool,
9 automake, and autoconf installed to help contribute. See the chapter
10 `Building' for the detailed instructions. The script is
11 provided to help autoconfigure mailutils from the cvs src.  After you
12 run, there should be a file 'INSTALL' with (generic)
13 installation instructions. Package-specific installation instructions
14 are set forth in the file README.
16     Please, note that the accompanying documentation may be inaccurate
17 or incomplete. The ChangeLog file is the authoritative documentation of
18 all recent changes.
20 Report bugs to <>
22 * Checking Out the Sources
24 The following instructions apply if you wish to obtain sources from
25 the CVS repository:
27 To checkout the source tree from CVS issue the following command:
29 CVS_RSH=ssh \
30  cvs -d checkout mailutils
32 Make sure SSHv2 is used.
34     This will give you read-only access.  If you think you need write access,
35 contact the mailing list.
37 * Building
39     In order to build this you will first need to have right versions
40 of autotools and some auxiliary GNU programs. At the time of this
41 writing these are:
43   Package   Version (>=)
44   ========  ============
45   automake  1.8.5
46   autoconf  2.59
47   libtool   1.5.8
48   gettext   0.14.1
49   gawk      3.1.3
51     You will also need bison (or yacc) and flex. The grammar sources
52 were written so that any version of yacc or bison should be able to
53 handle them, however using recent bison is anyway recommended. The lex
54 sources could theoretically be compiled with AT&T lex. I have not
55 tested this, however, so using flex is higly recommended. I use flex
56 2.5.4.
58     To prepare the package for building run Then run
59 ./configure with the desired options (See INSTALL and README for the
60 detailed instructions). Finally, run make. Notice that the first make
61 of the package should be made in the source directory. Subsequent
62 makes can use build directory different from the source one.
64 * Debugging
66     To enable additional debugging information, configure the package
67 with --enable-debug option.
69     Unless you compile mailutils statically, you will need to run
70 following command to debug any utility:
72   libtool --mode execute gdb UTILITY-NAME
74     Sometimes it is impossible or inconvenient to start a utility from
75 the debugger. In this case, use --HANG option, which is supported by
76 any of the mailutils programs. The option instructs the program to
77 sleep for a given number of seconds (3600 by default) right after
78 startup. For example, to debug `mimeview' utility, run
80         mimeview --HANG [OTHER-OPTIONS]
82 Then switch to another terminal, get the PID of the ivoked utility and
83 attach to it using gdb:
85         gdb mimeview PID
87 Once in gdb, issue the following command
89         set _argp_hang=0
91 Now set your breakpoints and proceed as usual.
93 * Importing gnulib files
95     Mailutils imports several source files from gnulib. These go
96 mainly to the conventional library libmuaux (directory lib/), but
97 several of them are incorporated into the main library libmailutils
98 (directory mailbox/). The imported sources are kept in the CVS
99 repository to avoid using eventually unstable versions appearing in
100 the main gnulib CVS. Once in a time we update the sources. The update
101 procedure is quite straightforward: change to the root directory of
102 the mailutils tree and run `gnulib-sync' script:
104   $ cd mailutils
105   $ scripts/gnulib-sync $HOME/src/gnulib
107     The script takes a single argument: name of the directory with the
108 copy of gnulib source tree (see
109 for information on how to obtain gnulib sources). After incorporating
110 the files, gnulib-sync leaves in the current directory two files named
111 gnulib.changelog and gnulib.cvs. The file gnulib.changelog contains
112 an entry to be prepended to ChangeLog, the file gnulib.cvs is a shell
113 script with the commands necessary to incorporate all the changes into
114 CVS.
116     If you need to add more gnulib modules to mailutils, add their
117 names to gnulib.modules file, following the instructions in its
118 heading comment. Please avoid placing modules in :mailutils section, as
119 this may lead to unwanted name clashes when linking user programs with
120 libmailutils.
122 * Copyright information:
124 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
126    Permission is granted to anyone to make or distribute verbatim copies
127    of this document as received, in any medium, provided that the
128    copyright notice and this permission notice are preserved,
129    thus giving the recipient permission to redistribute in turn.
131    Permission is granted to distribute modified versions
132    of this document, or of portions of it,
133    under the above conditions, provided also that they
134    carry prominent notices stating who last changed them.
137 Local Variables:
138 mode: outline
139 paragraph-separate: "[  ]*$"
140 version-control: never
141 End:
Note: See TracBrowser for help on using the browser.