forked from ThomasAdam/fvwm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL.fvwm
461 lines (336 loc) · 18.9 KB
/
INSTALL.fvwm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
-*- text -*-
If you only need an information about all supported features skip to the
"Supported Features" and the following sections.
VMS users: ignore this file, and follow the instructions in vms/README
instead.
This file details only configuration options peculiar to fvwm. Please
read the generic instructions in INSTALL first.
Important Note!
===============
The `configure' script keeps a cache of information it discovers, so
that subsequent invocations of `configure' will be faster.
However, if you update information on your system (such as install or
upgrade an optional library like Xpm, etc. [see below]) the cache may
contain outdated information; this can lead to confusing behavior during
subsequent `configure' invocations or builds.
If you're not familiar with how this works it might be safest to remove
the cache each time before running `configure'; you can either do a
simple:
$ rm -f config.cache
Or you may feel more comfortable with a complete cleaning:
$ make distclean
What gets installed, and where
==============================
* fvwm is installed into ${prefix}/bin
* a couple of utilities are also installed into ${prefix}/bin; this includes
fvwm-config, fvwm-menu-*, fvwm-bug, fvwm-convert-*, fvwm-root, FvwmCommand
* all FvwmModule modules are installed into ${libexecdir}/fvwm/${VERSION}
* all manual pages are installed into ${mandir}/man1
* some configuration files are installed into ${datadir}/fvwm, for example,
FvwmForm & FvwmScript configurations and others
* perl library is installed into ${datadir}/fvwm/perllib
where VERSION is the version string of fvwm, typically something like
"2.4.0". No other files are installed. There are sample fvwm/config
files which you may copy manually to ${datadir}/fvwm, see below.
Unless you used configure options,
* ${prefix} is /usr/local
* ${bindir} is ${prefix}/bin
* ${mandir} is ${prefix}/share/man or ${prefix}/man
* ${libexecdir} is ${prefix}/libexec
* ${datadir} is ${prefix}/share
* ${sysconfdir} is ${prefix}/etc
Thus the default locations are: /usr/local/bin, /usr/local/share/man/man1 or
/usr/local/man/man1, /usr/local/libexec/fvwm/VERSION, and
/usr/local/share/fvwm for the fvwm executables, man pages, modules, and
configuration files, respectively.
Note that by default, none of the executables are stripped when they're
installed. If you'd like them to be, run `make install-strip' instead
of `make install'. Note that due to a bug in the older versions of
autoconf/automake this may fail in some of the modules directories
trying to strip shell scripts. We recommend that you run `make -k
install-strip', which will continue past the failures.
Configuration File
==================
Fvwm configures itself at runtime by reading one or more configuration
files. The default locations of the config file are ~/.fvwm/config and
/usr/local/share/fvwm/config (if the user's file is not found). The
.fvwm2rc file names used in the past are supported too.
Sample configuration files may be found in the sample.fvwmrc
directory. To avoid clobbering the current configuration, no
configuration file is installed by default. You must copy it manually
the first time fvwm is installed. But this is fully optional, fvwm
can run without any configuration file and has an ability to install some
configurations into the user home directory (precisely, FVWM_USERDIR).
Other system-wide configuration files are located in /usr/local/share/fvwm
(also called FVWM_DATADIR) that can be used directly from the configuration
directory. See the FvwmForm man page for some examples.
For users starting fvwm without a fvwm/config or fvwm/.fvwm2rc file,
there are built-in dialogs that can copy files from the configuration
directory into the users home directory to create the users startup
file. See the fvwm man page under "INITIALIZATION".
Bug Reports
===========
One of the installed scripts is fvwm-bug that allows users to send bug
reports to either the local address or the developer address or both.
The local email address defaults to the installer login, probably root.
To override this default, set $FVWM_BUGADDR before running ./configure.
There is also a web based bug reporting system, see the Home Page.
CPP
===
One of fvwm's modules, FvwmCpp, requires a C preprocessor program. The
configuration will look in various common places for cpp. If one is not
found, FvwmCpp will still compile but you'll need to invoke it with the
-cpppath option to tell it where to find cpp. FvwmCpp will exit with an
error message if no path to cpp is known.
You can tell configure what cpp to use by setting the FVWM_CPP
environment variable before invoking configure:
$ FVWM_CPP=/my/special/cpp ./configure
Supported Features
==================
Fvwm has several compile time features that may be switched on and off
using ./configure. To query what your installed fvwm supports run one of:
% fvwm-config --info
% fvwm-config --supports
Please run './configure --help' to see a list of all option.
The sections below explain these options.
Line shown by configure Feature name ./configure options
---------------------------------------------------------------------------
With Asian bi-direct. text support? bidi --disable-bidi
With Gettext Native Lang Support gettext --with-intl-*
With GTK+ required for FvwmGtk? gtk --with-gtk-*
With GDK image support in FvwmGtk? gdk-imlib --with-imlib-*
With GNOME libs support in FvwmGtk? gnome-libs --with-gnome
With PNG image support? png --with-png-*
With ReadLine sup. in FvwmConsole? readline --with-readline-*
With RPlay support in FvwmEvent? rplay --with-rpm-*
With Shaped window support? shape --disable-shape
With With Shared memory for XImage? shm --disable-shm
With Session Management support? sm --disable-sm
With Mouse strokes (gestures)? stroke --with-stroke-*
With SVG image support? rsvg --disable-rsvg
With Xcursor support? xcursor --disable-xcursor
With Xinerama multi-head support? xinerama --disable-xinerama
With Xft anti-alias font support? xft --enable-xft --with-xft-*
With XPM image support? xpm --with-xpm-*
With Xrender image support? xrender --disable-xrender
Perl library directory: perllib --disable-perllib
None of these features are essential, but some are nice to have.
It is safe *not* to compile in the following features:
bidi (not needed if you don't plan to read Arabic and Hebrew)
gnome-libs (really not needed, used only in FvwmGtk for minor things)
rplay (really not needed, used only in FvwmEvent for internal sound)
xinerama (not needed if you or your users have only one monitor)
Optional libraries used by fvwm
===============================
Fvwm can optionally be compiled to use the following libraries:
xpm (XPM image format)
png (PNG image format)
rsvg (SVG image format)
rplay (RPlay audio)
readline (Command line editing using readline)
stroke (Mouse strokes)
intl (Internationalization and localization using gettext)
By default, these are probed for, and used if found. If you want to use
any of them, install the library before configuring fvwm. It is possible
to explicitly tell configure to skip autoprobing of a given library and
disable it (see below).
Xpm allows the use of coloured icons. See the Xpm web page at
http://www.inria.fr/koala/lehors/xpm.html for all the latest info and
links to source code. You can also get the source code from
ftp://ftp.x.org/contrib/libraries/. If you're having trouble building
with XPM even after reading this, try Question 2.4 in the fvwm FAQ.
Png allows to load coloured icons from files in PNG format. See the
libpng web page at http://www.libpng.org/pub/png/libpng.html for all the
latest info and links to source code. libpng is available as ANSI C source
code and requires the zlib library. The zlib package can be found at
http://www.gzip.org/zlib/
Librsvg allows rendering of SVG (scalable vector graphics) image files.
See the librsvg web page at http://librsvg.sourceforge.net/ for more
information and links to source code. Librsvg uses the Cairo library as
a rendering backend. Source code can be found at http://cairographics.org/
Rplay is used in one module (FvwmEvent) to play sounds without invoking
an external program. This library appears to have been orphaned
in November, 1996. The latest version is available at
http://rplay.doit.org/dist/.
Readline is used in one module (FvwmConsole) to allow fancy
command-line editing, a history buffer, etc. It is GNU software, and
should be found on any GNU site, such as ftp://ftp.gnu.org/gnu/readline/.
To build with readline support, either termcap or ncurses library should
be found. Use --with-termcap-library or --with-ncurses-library to specify
the path (directory or library file) to termcap or ncurses. The first
valid library found is used. It is possible to disable termcap or ncurses
autoprobing using --without-termcap-library or --without-ncurses-library.
Disabling both disables readline support, like --without-readline-library.
LibStroke allows interpretation by fvwm of mouse strokes (i.e., motions
of the mouse). For more informations see the LibStroke web page at
http://www.etla.net/~willey/projects/libstroke/ and the fvwm man page.
Gettext is included in glibc, so it may be a part of your system.
Alternatively, there is GNU gettext package available at
http://www.gnu.org/software/gettext/.
If configure doesn't do the right thing, try one or more of the
following flags (examples assume library is named "foo"):
--without-foo-library to disable probing for libfoo
--with-foo-library=FILE to specify the library filename
--with-foo-library=DIR to specify directory containing libfoo
--with-foo-includes=DIR to specify include directory for headers
The desired include directory is the one in which the following header
may be found:
xpm X11/xpm.h
png png.h (zlib.h)
readline readline/readline.h
rplay rplay.h
stroke stroke.h
intl libintl.h
Only one version of the --with-foo-library flag may be specified.
Optional libraries used by FvwmGtk
==================================
FvwmGtk module requires GTK+ and optionally GDK-Imlib and GNOME libraries.
GDK-Imlib library that is a part of Imlib version 1 is used to have images.
Note, fvwm itself has an ability to support GNOME Window Manager hints
(which is enabled by default), this has nothing to do with GNOME library
support compiled into FvwmGtk (which is autoprobed and used if passed).
To disable autoprobing of GTK+, Imlib and GNOME libraries, use:
--disable-gtktest --disable-imlibtest --without-gnome
This does not turn GTK+ and Imlib support off, instead, one part of the
checking, precisely compilation, is quietly considered to be passed.
To disable GTK+ and Imlib support even if the corresponding libraries
are installed, try this solution:
--with-gtk-prefix=/no/dir --with-imlib-prefix=/no/dir
Run './configure --help' for more information about configure options.
Shared Libraries in Non-standard Places
=======================================
Note that at this time, autoconf and fvwm don't handle systems which
require a runtime library path separate from the link path very
gracefully. If you have such a system (e.g., Solaris) and you have
installed the optional libraries in places not normally searched (e.g.,
not in /usr/lib, /lib or similar), you may need to specify the runtime
path separately; the above options won't add it for you.
A good way to do this is set the Makefile LDFLAGS variable before configure
runs to contain the -R option. For example:
$ LDFLAGS="-L/opt/xpm -R/opt/xpm" ./configure \
--with-xpm-library=/opt/xpm/lib \
--with-xpm-includes=/opt/xpm/include
In the future, fvwm's configuration may perform this step automatically.
Compile-time Options
====================
Fvwm has several options selectable only at compile time.
These are intended to keep fvwm's memory footprint small, by compiling
in the code only if requested.
Each such option, say "foo", is selectable by an "--enable-foo" or a
"--disable-foo" switch. By default, all of these options (except
debug messages) are enabled. This is probably what you want -- unless
memory is *really* tight -- so normally none of these options are
used.
If option "foo" is enabled by default, the NON-default version of the
switch is shown in the list below, and vice-versa. In other words,
the version of the switch that you are likely to use is the one
listed.
--disable-package-subdirs don't create subdirs for modules and data
~~~~~~~~~~~~~~~~~~~~~~~~~
Usually fvwm is installed to common places, like /usr or /usr/local/X11,
in this case it is essential to create the package subdirectories for
modules and data files. Hovewer, if fvwm is installed to its own prefix,
like /opt/fvwm or /opt/fvwm-2.4, it's possible to disable them.
With --enable-package-subdirs (default):
modules are installed into: $libexecdir/fvwm/$VERSION
data files are installed into: $datadir/fvwm
With --disable-package-subdirs:
modules are installed into: $libexecdir
data files are installed into: $datadir
This option is good if you need a full control over exact directory names:
$ ./configure --prefix=/tmp/fvwm --disable-package-subdirs \
--libexecdir='${prefix}/modules' --datadir='${prefix}/data'
If you switch this option between builds, you need "make clean"!
--enable-debug-msgs enable debugging messages
~~~~~~~~~~~~~~~~~~~
If you would like to see lots of debug messages from fvwm, for
debugging purposes, enable this option. When reporting bugs, please
do not send the debug output. It is almost never useful in this
situation.
--enable-command-log enable command logging
~~~~~~~~~~~~~~~~~~~~
If you would like to see all commands executed and their times, enable
this option. Remember, when using this, the command time offset is given
in the system ticks, and it only means anything for commands executed in
one batch; for example, after startup the command time offset may freely
reach hours.
--disable-sm disable session management support
~~~~~~~~~~~~
Fvwm has experimental session management support, which is autoconfigured
by searching for SM library, which is often shipped together with your
X libraries. Note, the session management support is activated when fvwm
is run under a session manager like xsm or gnome-session.
This option disables session management support completely.
--disable-xft disable anti-aliased text rendering
~~~~~~~~~~~~~
Fvwm can use the Xft library (version 1 or 2) to perform anti-aliased
text rendering in any text drawn by fvwm and modules. By default, Xft
library is probed and this support is enabled if Xft works. You need
XFree version >= 4.1 and freetype2 version >= 6.1.0 (aka version
2.0.6), but more recent versions are better. The FONT NAMES AND FONT
LOADING section of the fvwm manual page explains how to enable
anti-aliased rendering at runing time. This option disables Xft
support completely.
--disable-xrender disable Xrender alpha-blend rendering
~~~~~~~~~~~~~~~~~
Fvwm uses the Xrender library for alpha-blend rendering and tinting. This
library is contained in XFree version >= 4.0 and others recent X package.
This option disables Xrender support completely.
--disable-xcursor disable Xcursor ARGB/animated cursor loading
~~~~~~~~~~~~~~~~~
Fvwm can use the Xcursor library to load ARGB/animated mouse cursors. This
library is contained in XFree version >= 4.3 and others recent X packages.
This option disables Xcursor support.
--disable-rsvg disable scalable vector graphics (SVG images)
~~~~~~~~~~~~~~
Fvwm can use the librsvg library to render SVG files into icons and
images. You need a librsvg version >= 2.13.92 that uses Cairo as the
rendering backend. This option disables SVG image loading support.
--disable-shape disable shape extensions
~~~~~~~~~~~~~~~
Shaped window extensions are enabled by default; this option will
disable them. Shaped window extensions seem to increase the window
managers RSS by about 60 Kbytes. They provide for leaving a title-bar
on the window without a border. If you don't use shaped window
extension, you can either make your shaped windows undecorated, or
live with a border and backdrop around all your shaped windows
(oclock, xeyes).
If you normally use a shaped window (xeyes or oclock), you might as
well compile this extension in, since the memory cost is minimal in
this case (the shaped window shared libs will be loaded anyway). If
you don't normally use shaped windows, you have to decide for yourself.
Note: if it is compiled in, run time detection is used to make sure
that the currently running X server supports it.
--disable-bidi disable bi-directional text support
~~~~~~~~~~~~~~
The bi-directional text support is used to properly handle right-to-left
languages, like Hebrew and Arabic. By default, fribidi library is probed
and this support is enabled if fribidi works. This option explicitly
disables the bi-directional text support.
--with-fribidi-bindir directory of fribidi-config if not in PATH
~~~~~~~~~~~~~~~~~~~~~
The location of fribidi libraries and headers (needed for Bidi support)
is determined using fribidi-config utility. This option specifies a
directory where fribidi-config is installed if it is not in the $PATH.
--disable-perllib disable installing fvwm perl library
~~~~~~~~~~~~~~~~~
By default the fvwm perl library is installed together with all other
data files. Perl library may be used to write fvwm modules in perl.
Currently the FvwmPerl module uses it. This option disables installing
the fvwm perl library.
--with-gnome no, yes or prefix for GNOME files (FvwmGtk only)
~~~~~~~~~~~~
FvwmGtk may be built as a GTK application or a GNOME application.
This is autodetected and if GNOME libs found, they are used in FvwmGtk.
You may also specify the location of GNOME headers and libs using
--with-gnome-includes and --with-gnome-libs, but this is usually never
needed, since all required info should be returned by gnome-config
if GNOME is properly installed. In case the GNOME installation works
and you don't want to be dependant on GNOME, specify --without-gnome.
--enable-xinerama-emulation enable Xinerama emulation on one screen
~~~~~~~~~~~~~~~~~~~~~~~~~~~
This option is only useful for developers. Usually the Xinerama support
is only activated at run time when it is compiled in and X supports it
and X is run with Xinerama extension. This option enables the Xinerama
emulation even when X does not support it or fvwm is run on one screen.
This divides the screen to 2 non equivalent parts and one black area.