/[LeafOK_CVS]/lbbs/INSTALL
ViewVC logotype

Annotation of /lbbs/INSTALL

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations)
Tue May 6 10:15:16 2025 UTC (10 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.5: +265 -171 lines
Update

1 sysadm 1.6 Installation Instructions
2     *************************
3 sysadm 1.1
4 sysadm 1.6 Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
5     Software Foundation, Inc.
6 sysadm 1.2
7 sysadm 1.6 Copying and distribution of this file, with or without modification,
8     are permitted in any medium without royalty provided the copyright
9     notice and this notice are preserved. This file is offered as-is,
10     without warranty of any kind.
11 sysadm 1.2
12 sysadm 1.1 Basic Installation
13     ==================
14    
15 sysadm 1.6 Briefly, the shell command './configure && make && make install'
16     should configure, build, and install this package. The following
17     more-detailed instructions are generic; see the 'README' file for
18     instructions specific to this package. Some packages provide this
19     'INSTALL' file but do not implement all of the features documented
20     below. The lack of an optional feature in a given package is not
21     necessarily a bug. More recommendations for GNU packages can be found
22     in *note Makefile Conventions: (standards)Makefile Conventions.
23 sysadm 1.1
24 sysadm 1.6 The 'configure' shell script attempts to guess correct values for
25 sysadm 1.1 various system-dependent variables used during compilation. It uses
26 sysadm 1.6 those values to create a 'Makefile' in each directory of the package.
27     It may also create one or more '.h' files containing system-dependent
28     definitions. Finally, it creates a shell script 'config.status' that
29 sysadm 1.1 you can run in the future to recreate the current configuration, and a
30 sysadm 1.6 file 'config.log' containing compiler output (useful mainly for
31     debugging 'configure').
32 sysadm 1.1
33 sysadm 1.6 It can also use an optional file (typically called 'config.cache' and
34     enabled with '--cache-file=config.cache' or simply '-C') that saves the
35     results of its tests to speed up reconfiguring. Caching is disabled by
36     default to prevent problems with accidental use of stale cache files.
37 sysadm 1.1
38     If you need to do unusual things to compile the package, please try
39 sysadm 1.6 to figure out how 'configure' could check whether to do them, and mail
40     diffs or instructions to the address given in the 'README' so they can
41 sysadm 1.1 be considered for the next release. If you are using the cache, and at
42 sysadm 1.6 some point 'config.cache' contains results you don't want to keep, you
43 sysadm 1.1 may remove or edit it.
44    
45 sysadm 1.6 The file 'configure.ac' (or 'configure.in') is used to create
46     'configure' by a program called 'autoconf'. You need 'configure.ac' if
47     you want to change it or regenerate 'configure' using a newer version of
48     'autoconf'.
49    
50     The simplest way to compile this package is:
51    
52     1. 'cd' to the directory containing the package's source code and type
53     './configure' to configure the package for your system.
54    
55     Running 'configure' might take a while. While running, it prints
56     some messages telling which features it is checking for.
57    
58     2. Type 'make' to compile the package.
59    
60     3. Optionally, type 'make check' to run any self-tests that come with
61     the package, generally using the just-built uninstalled binaries.
62    
63     4. Type 'make install' to install the programs and any data files and
64     documentation. When installing into a prefix owned by root, it is
65     recommended that the package be configured and built as a regular
66     user, and only the 'make install' phase executed with root
67     privileges.
68    
69     5. Optionally, type 'make installcheck' to repeat any self-tests, but
70     this time using the binaries in their final installed location.
71     This target does not install anything. Running this target as a
72     regular user, particularly if the prior 'make install' required
73     root privileges, verifies that the installation completed
74     correctly.
75    
76     6. You can remove the program binaries and object files from the
77     source code directory by typing 'make clean'. To also remove the
78     files that 'configure' created (so you can compile the package for
79     a different kind of computer), type 'make distclean'. There is
80     also a 'make maintainer-clean' target, but that is intended mainly
81 sysadm 1.1 for the package's developers. If you use it, you may have to get
82     all sorts of other programs in order to regenerate files that came
83     with the distribution.
84    
85 sysadm 1.6 7. Often, you can also type 'make uninstall' to remove the installed
86     files again. In practice, not all packages have tested that
87     uninstallation works correctly, even though it is required by the
88     GNU Coding Standards.
89    
90     8. Some packages, particularly those that use Automake, provide 'make
91     distcheck', which can by used by developers to test that all other
92     targets like 'make install' and 'make uninstall' work correctly.
93     This target is generally not run by end users.
94    
95 sysadm 1.1 Compilers and Options
96     =====================
97    
98     Some systems require unusual options for compilation or linking that
99 sysadm 1.6 the 'configure' script does not know about. Run './configure --help'
100 sysadm 1.1 for details on some of the pertinent environment variables.
101    
102 sysadm 1.6 You can give 'configure' initial values for configuration parameters
103     by setting variables in the command line or in the environment. Here is
104     an example:
105 sysadm 1.1
106 sysadm 1.6 ./configure CC=c99 CFLAGS=-g LIBS=-lposix
107 sysadm 1.1
108     *Note Defining Variables::, for more details.
109    
110     Compiling For Multiple Architectures
111     ====================================
112    
113     You can compile the package for more than one kind of computer at the
114     same time, by placing the object files for each architecture in their
115 sysadm 1.6 own directory. To do this, you can use GNU 'make'. 'cd' to the
116 sysadm 1.1 directory where you want the object files and executables to go and run
117 sysadm 1.6 the 'configure' script. 'configure' automatically checks for the source
118     code in the directory that 'configure' is in and in '..'. This is known
119     as a "VPATH" build.
120    
121     With a non-GNU 'make', it is safer to compile the package for one
122     architecture at a time in the source code directory. After you have
123     installed the package for one architecture, use 'make distclean' before
124     reconfiguring for another architecture.
125    
126     On MacOS X 10.5 and later systems, you can create libraries and
127     executables that work on multiple system types--known as "fat" or
128     "universal" binaries--by specifying multiple '-arch' options to the
129     compiler but only a single '-arch' option to the preprocessor. Like
130     this:
131    
132     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
133     CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
134     CPP="gcc -E" CXXCPP="g++ -E"
135    
136     This is not guaranteed to produce working output in all cases, you
137     may have to build one architecture at a time and combine the results
138     using the 'lipo' tool if you have problems.
139 sysadm 1.1
140     Installation Names
141     ==================
142    
143 sysadm 1.6 By default, 'make install' installs the package's commands under
144     '/usr/local/bin', include files under '/usr/local/include', etc. You
145     can specify an installation prefix other than '/usr/local' by giving
146     'configure' the option '--prefix=PREFIX', where PREFIX must be an
147     absolute file name.
148 sysadm 1.1
149     You can specify separate installation prefixes for
150     architecture-specific files and architecture-independent files. If you
151 sysadm 1.6 pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
152     PREFIX as the prefix for installing programs and libraries.
153     Documentation and other data files still use the regular prefix.
154 sysadm 1.1
155     In addition, if you use an unusual directory layout you can give
156 sysadm 1.6 options like '--bindir=DIR' to specify different values for particular
157     kinds of files. Run 'configure --help' for a list of the directories
158     you can set and what kinds of files go in them. In general, the default
159     for these options is expressed in terms of '${prefix}', so that
160     specifying just '--prefix' will affect all of the other directory
161     specifications that were not explicitly provided.
162    
163     The most portable way to affect installation locations is to pass the
164     correct locations to 'configure'; however, many packages provide one or
165     both of the following shortcuts of passing variable assignments to the
166     'make install' command line to change installation locations without
167     having to reconfigure or recompile.
168    
169     The first method involves providing an override variable for each
170     affected directory. For example, 'make install
171     prefix=/alternate/directory' will choose an alternate location for all
172     directory configuration variables that were expressed in terms of
173     '${prefix}'. Any directories that were specified during 'configure',
174     but not in terms of '${prefix}', must each be overridden at install time
175     for the entire installation to be relocated. The approach of makefile
176     variable overrides for each directory variable is required by the GNU
177     Coding Standards, and ideally causes no recompilation. However, some
178     platforms have known limitations with the semantics of shared libraries
179     that end up requiring recompilation when using this method, particularly
180     noticeable in packages that use GNU Libtool.
181    
182     The second method involves providing the 'DESTDIR' variable. For
183     example, 'make install DESTDIR=/alternate/directory' will prepend
184     '/alternate/directory' before all installation names. The approach of
185     'DESTDIR' overrides is not required by the GNU Coding Standards, and
186     does not work on platforms that have drive letters. On the other hand,
187     it does better at avoiding recompilation issues, and works well even
188     when some directory options were not specified in terms of '${prefix}'
189     at 'configure' time.
190 sysadm 1.1
191     Optional Features
192     =================
193    
194 sysadm 1.6 If the package supports it, you can cause programs to be installed
195     with an extra prefix or suffix on their names by giving 'configure' the
196     option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
197    
198     Some packages pay attention to '--enable-FEATURE' options to
199     'configure', where FEATURE indicates an optional part of the package.
200     They may also pay attention to '--with-PACKAGE' options, where PACKAGE
201     is something like 'gnu-as' or 'x' (for the X Window System). The
202     'README' should mention any '--enable-' and '--with-' options that the
203 sysadm 1.1 package recognizes.
204    
205 sysadm 1.6 For packages that use the X Window System, 'configure' can usually
206 sysadm 1.1 find the X include and library files automatically, but if it doesn't,
207 sysadm 1.6 you can use the 'configure' options '--x-includes=DIR' and
208     '--x-libraries=DIR' to specify their locations.
209    
210     Some packages offer the ability to configure how verbose the
211     execution of 'make' will be. For these packages, running './configure
212     --enable-silent-rules' sets the default to minimal output, which can be
213     overridden with 'make V=1'; while running './configure
214     --disable-silent-rules' sets the default to verbose, which can be
215     overridden with 'make V=0'.
216    
217     Particular systems
218     ==================
219    
220     On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
221     is not installed, it is recommended to use the following options in
222     order to use an ANSI C compiler:
223    
224     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
225    
226     and if that doesn't work, install pre-built binaries of GCC for HP-UX.
227    
228     HP-UX 'make' updates targets which have the same timestamps as their
229     prerequisites, which makes it generally unusable when shipped generated
230     files such as 'configure' are involved. Use GNU 'make' instead.
231    
232     On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
233     parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
234     workaround. If GNU CC is not installed, it is therefore recommended to
235     try
236    
237     ./configure CC="cc"
238    
239     and if that doesn't work, try
240    
241     ./configure CC="cc -nodtk"
242    
243     On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
244     directory contains several dysfunctional programs; working variants of
245     these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
246     in your 'PATH', put it _after_ '/usr/bin'.
247    
248     On Haiku, software installed for all users goes in '/boot/common',
249     not '/usr/local'. It is recommended to use the following options:
250    
251     ./configure --prefix=/boot/common
252 sysadm 1.1
253     Specifying the System Type
254     ==========================
255    
256 sysadm 1.6 There may be some features 'configure' cannot figure out
257 sysadm 1.1 automatically, but needs to determine by the type of machine the package
258     will run on. Usually, assuming the package is built to be run on the
259 sysadm 1.6 _same_ architectures, 'configure' can figure that out, but if it prints
260 sysadm 1.1 a message saying it cannot guess the machine type, give it the
261 sysadm 1.6 '--build=TYPE' option. TYPE can either be a short name for the system
262     type, such as 'sun4', or a canonical name which has the form:
263 sysadm 1.1
264     CPU-COMPANY-SYSTEM
265    
266     where SYSTEM can have one of these forms:
267    
268 sysadm 1.6 OS
269     KERNEL-OS
270 sysadm 1.1
271 sysadm 1.6 See the file 'config.sub' for the possible values of each field. If
272     'config.sub' isn't included in this package, then this package doesn't
273 sysadm 1.1 need to know the machine type.
274    
275     If you are _building_ compiler tools for cross-compiling, you should
276 sysadm 1.6 use the option '--target=TYPE' to select the type of system they will
277 sysadm 1.1 produce code for.
278    
279     If you want to _use_ a cross compiler, that generates code for a
280     platform different from the build platform, you should specify the
281     "host" platform (i.e., that on which the generated programs will
282 sysadm 1.6 eventually be run) with '--host=TYPE'.
283 sysadm 1.1
284     Sharing Defaults
285     ================
286    
287 sysadm 1.6 If you want to set default values for 'configure' scripts to share,
288     you can create a site shell script called 'config.site' that gives
289     default values for variables like 'CC', 'cache_file', and 'prefix'.
290     'configure' looks for 'PREFIX/share/config.site' if it exists, then
291     'PREFIX/etc/config.site' if it exists. Or, you can set the
292     'CONFIG_SITE' environment variable to the location of the site script.
293     A warning: not all 'configure' scripts look for a site script.
294 sysadm 1.1
295     Defining Variables
296     ==================
297    
298     Variables not defined in a site shell script can be set in the
299 sysadm 1.6 environment passed to 'configure'. However, some packages may run
300 sysadm 1.1 configure again during the build, and the customized values of these
301     variables may be lost. In order to avoid this problem, you should set
302 sysadm 1.6 them in the 'configure' command line, using 'VAR=value'. For example:
303 sysadm 1.1
304     ./configure CC=/usr/local2/bin/gcc
305    
306 sysadm 1.6 causes the specified 'gcc' to be used as the C compiler (unless it is
307 sysadm 1.1 overridden in the site shell script).
308    
309 sysadm 1.6 Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
310     Autoconf limitation. Until the limitation is lifted, you can use this
311     workaround:
312    
313     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
314    
315     'configure' Invocation
316 sysadm 1.1 ======================
317    
318 sysadm 1.6 'configure' recognizes the following options to control how it
319 sysadm 1.1 operates.
320    
321 sysadm 1.6 '--help'
322     '-h'
323     Print a summary of all of the options to 'configure', and exit.
324    
325     '--help=short'
326     '--help=recursive'
327     Print a summary of the options unique to this package's
328     'configure', and exit. The 'short' variant lists options used only
329     in the top level, while the 'recursive' variant lists options also
330     present in any nested packages.
331    
332     '--version'
333     '-V'
334     Print the version of Autoconf used to generate the 'configure'
335 sysadm 1.1 script, and exit.
336    
337 sysadm 1.6 '--cache-file=FILE'
338 sysadm 1.1 Enable the cache: use and save the results of the tests in FILE,
339 sysadm 1.6 traditionally 'config.cache'. FILE defaults to '/dev/null' to
340 sysadm 1.1 disable caching.
341    
342 sysadm 1.6 '--config-cache'
343     '-C'
344     Alias for '--cache-file=config.cache'.
345    
346     '--quiet'
347     '--silent'
348     '-q'
349 sysadm 1.1 Do not print messages saying which checks are being made. To
350 sysadm 1.6 suppress all normal output, redirect it to '/dev/null' (any error
351 sysadm 1.1 messages will still be shown).
352    
353 sysadm 1.6 '--srcdir=DIR'
354 sysadm 1.1 Look for the package's source code in directory DIR. Usually
355 sysadm 1.6 'configure' can determine that directory automatically.
356 sysadm 1.1
357 sysadm 1.6 '--prefix=DIR'
358     Use DIR as the installation prefix. *note Installation Names:: for
359     more details, including other options available for fine-tuning the
360     installation locations.
361    
362     '--no-create'
363     '-n'
364     Run the configure checks, but stop before creating any output
365     files.
366 sysadm 1.1
367 sysadm 1.6 'configure' also accepts some other, not widely useful, options. Run
368     'configure --help' for more details.

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1