
		Installation Instructions for Window Maker



SUPPORTED PLATFORMS
===================
(ie: I've heard someone has compiled it on...)

- Intel/Linux Slackware 3.5 (primary platform)
- Intel/Linux other distributions
- Sparc/Linux RedHat 5.1
- PowerPC/MkLinux
- Alpha/Linux RedHat 5.1
- FreeBSD
- NetBSD
- Solaris 2.5.1, 2.5.2
- Solaris 2.6.0
- Solaris 2.7beta
- SCO Unix
- SGI Irix
- OSF/1
- HP-UX
- AIX 4.1.4 / IBM PowerPC
- AIX 4.3.1 / IBM CC compiler
- AIX 4.3.2 / IBM PowerPC
- AIX 5.3
- DEC Alpha/Digital UNIX 4.x
- XFree86 / OS/2
- Corel NetWinder
- SunOS 4.x
- PowerMac / Power MachTen 4.1.1 over MacOS

Patches to make it work on other platforms are welcome. 

If the latest version doesn't work for you, try 0.19.3, 
which is known to be pretty stable on many platforms.


REQUIREMENTS:
=============

The following software is required to use Window Maker:

- X11R6.x	
	Window Maker can be compiled in older versions of X, like X11R5
	(Solaris) or X11R4 (OpenWindows) but it will not work 100% correctly.
	In such servers there will not be application icons and you'll have
	trouble using the dock. Upgrading the client libraries (Xlib, Xt etc)
	will help if you can't upgrade the server.

The following is required to build Window Maker:

- Basic obvious stuff
	If you will build Window Maker, make sure you have gcc (or some
	other ANSI C compiler) and the X header files installed. Specially
	for newbie Linux users: you must install all X development packages
	and the gcc suite. Otherwise you won't be able to build any X
	program, including Window Maker.

- autoconf and automake
	autoconf and automake are not required, but if you have them
	installed, make sure you have autoconf 2.12 and automake 1.3 or
	newer. If you have an older version, disable them by temporarily
	renaming them to something else or uninstalling them from your
	system.
	
- lex (or flex) and yacc (or bison)
	These are used by libPropList. lex is actually not needed since
	it's output file is included, but either me or automake is stupid,
	causing the configure script for libPropList to simply abort for no
	convincent reason if lex is not found.


OPTIONAL:
=========

These libraries are not required to make Window Maker work, but they
are supported in case you want to use them. Version numbers are those
that I have (and therefore, guraranteed to work), but other versions
might work too. 


- libXPM 4.7 or newer
	Older versions may not work!!! 
	Available at ftp://sunsite.unc.edu/pub/Linux/libs/X/

	There is builtin support for XPM files, but it will not
	load images in some uncommon encodings.

- libpng 0.96 or newer and zlib     
	For PNG image support.

- libtiff 3.4 or newer
	For TIFF image support.
	You can get it at ftp://ftp.sgi.com/graphics/tiff

- libjpeg 6.0.1 or newer
	For JPEG image support

- libgif 2.2 or libungif
	For GIF image support	

- GNU xgettext
	If you want to use translated messages, you will need GNU gettext.
	Other versions of gettext are not compatible and will not work.
	Get the GNU version from ftp://prep.ai.mit.edu

Most of these can be get from ftp.uu.net/pub/graphics


CONFIGURE OPTIONS:
==================

These options can be passed to the configure script to enable/disable
some Window Maker features. Example:

./configure --enable-kanji

will configure Window Maker with kanji (and other multi-byte) characters
support compiled in.


To get a list of other options, run ./configure --help

--enable-kanji	support to display Kanji characters, Korean, Chinese 
		and other languagues that require special characters.

--enable-single-icon  enables the collapsing of all appicons of the
	 WM_CLASS+WM_INSTANCE into a single one. This feature is not 
	supported at all by the developers. If you have some trouble with it,
	contact it's author: Christopher Seawood <cls@seawood.org>

--disable-shm 	disable use of the MIT shared memory extension. This will
	slow down texture generation a little bit, but in some cases
	it seems to be necessary due to a bug that manifests as messed
	icons and textures.

--disable-motif disable support for mwm hints

--enable-gnome enable support for stuff needed by GNOME 
	(GNOME compliant bla bla bla)

--enable-kde enable support for kde/kwm hints

--enable-lite remove things that are already supported in desktop
		environments, like KDE and GNOME. Disabled things
		are: window list, root applications menu,
		multiple window selection. Note that you will not
		be able to exit Window Maker from itself anymore;
		you will have to use kill with the SIGTERM signal
		or exit it from KDE.

--enable-modelock  XKB language status lock support. If you don't know 
	what it is you probably don't need it.

--enable-sound	enable support of sound effects module

--disable-xpm   disables use of the XPM library even if it is available on
	your system. 

--disable-png	disables use of PNG library

--disable-tiff 	disable use of TIFF library

--disable-gif 	disable use of GIF library

--disable-jpeg 	disable use of JPEG library

--disable-shape  disables shaped windows (for oclock, xeyes etc.)

--enable-debug	adds extra debugging information. Do not use it
	unless you're debugging Window Maker.



PLATFORM SPECIFIC NOTES:
========================
- SCO Unix - run configure like
	CFLAGS="-belf -DANSICPP" ./configure 

- SunOS, Solaris 
	If you have gcc installed, run configure as:
	CPP_PATH="gcc -E -x c" ./configure
	Sun's cpp lacks some features needed by Window Maker and it can
	cause problems when parsing the config files.
	You also might need to use the --with-gfx-libs and --with-gfx-incs
	to supply the directory where libtiff is located.

	If you have a Ultra Creator 3D or some other machine with high-end
	graphics, be sure to start the X server with the default visual
	set to 24bpp or you might experience problems with mangled colors.
	This is a bug and will be fixed.

- RedHat Linux
	Make sure you don't have the LANG and LINGUAS environment variables
	set to en_RN. Also, make sure you have /usr/local/bin in your
	PATH environment variable, as for some mysterious reason the folks
	at RedHat did not include it in the default configuration files
	in RH 5.{0,1}.

- PowerPC MkLinux
	You will need to have the latest version of Xpmac. Older versions
	seem to have bugs that cause the system to hang.

- Debian Linux
	If you want JPEG and TIFF support, make sure you have libtiff-dev 
	and libjpeg-dev	installed.

- SuSE Linux
        If you installed the Window Maker package from SuSE,
        uninstall it before trying to compile wmaker or you
        might have problems.

- MetroX (unknown version)
	MetroX has a bug that corrupts pixmaps that are set as window
	backgrounds. If you use MetroX and has weird problems with
	textures, do not use textures in titlebars. Or use a different
	X server.


INSTALLATION:
=============

Unpack WindowMaker-data.tar.gz and move the pixmaps directory in it
to /usr/local/share/pixmaps

You can get the file at ftp://ftp.windowmaker.org. This file is optional
and only have a few icons.


Build Window Maker
------------------
	For a quick start, type the following in your shell prompt:

	./configure
	make

then, login as root and type:

	make install

or if you want to strip the debugging symbols from the binaries and make them
smaller, you can instead type:

	make install-strip

This will build and install Window Maker with default parameters.

If you want to customize some compile-time options, you can do the
following. 

	1. (optional) Look at the CONFIGURE OPTIONS section above for the 
	options available. Also run:
 
	./configure --help

	to get a complete listing of other options that are available.

	2. Run configure with the options you want. For example, if you
	want to use the --enable-kanji option, type:

	./configure --enable-kanji

	3. (optional) Edit src/wconfig.h with your favorite text editor 
	and browse through it for some options you might want to change.

	4. Compile. Just type:

	make

	5. Login as root (if you can't do that, read the "I don't have the 
	root password :-(" section) and install Window Maker in your system:
		su root
		make install


User specific configuration
---------------------------

These instructions do not need to be followed when upgrading Window Maker
from an older version, unless stated differently in the NEWS file.

Every user on your system that wishes to run Window Maker must do the
following:

	1. Install Window Maker configuration files in your home directory.
Type:
	wmaker.inst

	wmaker.inst will install Window Maker configuration files and will
setup X to automatically launch Window Maker at startup.

	That's it! 
	
	You can type "man wmaker" to get some general help for configuration
and other stuff.

Read the User Guide for a more in-depth explanation of Window Maker.

You might want to take a look at the FAQ too.


I don't have the root password :(
---------------------------------

If you can't get superuser privileges (can't be root) you can install
wmaker in your own home directory. For that, supply the --prefix option
when running configure in step 2 of building Window Maker. You will
also need to supply the --with-appspath option, to specify the path for
WPrefs.app Example:

./configure --prefix=/home/jshmoe --with-appspath=/home/jshmoe/GNUstep/Apps


Then make /home/jshmoe/bin be included in your search path and run 
bin/wmaker.inst


UPGRADING
=========

If you are upgrading from an older version of Window Maker:

	1. Configure and build Window Maker as always
	2. Install Window Maker (but do not run wmaker.inst)
	3. Read the NEWS file and update your configuration files, 
	   if necessary.

TROUBLESHOOTING
===============

When you have some trouble during configuration (while running configure),
like not being able to use a graphic format library you think you have
installed, look at the config.log file for clues of the problem.


== Error when configuring

ltconfig: unrecognized option `--no-reexec'
Try `ltconfig --help' for more information.
configure: error: libtool configure failed

remove the --no-reexec option from aclocal.m4 and libPropList/aclocal/m4
and reconfigure
Also make sure the autoconf and automake versions you have installed are at
least:
autoconf 2.12
automake 1.3
libtool 1.2

== Error when configuring

ltconfig: unrecognized option `--no-reexec'
Try `ltconfig --help' for more information.
configure: error: libtool configure failed

remove the --no-reexec option from aclocal.m4 and libPropList/aclocal/m4
and reconfigure
Also make sure the autoconf and automake versions you have installed are at
least:
autoconf 2.12
automake 1.3
libtool 1.2

== Error during build of libPropList

make: *** No rule to make target `libPropList.a.c', needed by 
`libPropList.a.o'.  Stop.

Make sure the autoconf and automake versions you have installed are at
least:
autoconf 2.12
automake 1.3
libtool 1.2

If you are using the RPM's that come with RedHat 4.x, don't use them.
It is broken. Uninstall the RPM and reinstall a fresh package from
ftp://prep.ai.mit.edu or any mirror.

== configure doesn't detect libtiff, or other graphic libraries.

Delete config.cache, then rerun configure adding the following options to
configure (among the other options you use):
--with-gfx-libs="-L/usr/local/lib"
--with-gfx-incs="-I/usr/local/include -I/usr/local/include/tiff"
Put the paths where your graphic libs and their corresponding header files are
located. You can put multiple paths in any of these options, as the example
of --with-gfx-incs shows. Just put a space between them.


== configure doesn't detect libXpm. 

* Check if you have a symbolic link from libXpm.so.4.9 to libXpm.so


== Segmentation fault on startup

* Check if the version of libXPM you have is at least 4.7

* Check if you have an updated version of ~/GNUstep/Defaults/WindowMaker

If you're not sure, try renaming ~/GNUstep to ~/GNUtmp and then run wmaker.inst

== "...: your machine is misconfigured. gethostname() returned (none)"

* the hostname of your machine is set to something invalid, that starts
	with a parenthesis. Do a man hostname for info about how to set it.


== The root menu contains only 2 entries. ("XTerm" and "Exit...")

* Window Maker is not finding cpp (the C preprocessor). If your cpp is
not located in /lib/cpp, edit src/config.h and correct the path in
CPP_PATH.

== checking lex output file root... configure: error: cannot find output from true; giving up

* Read the REQUIREMENTS section of this file.


LOCALES/INTERNATIONALIZATION
============================

Window Maker has national language support. 
To enable national language support, you must compile
Window Maker with some additional parameters. 

0 - You must have the GNU gettext package installed. It can be
obtained at ftp://prep.ai.mit.edu/pub/gnu/gettext-nnn.tar.gz

Steps 1 to 3 can be skipped if you use the Install script.

1 - You have to select the languages you want to support. Set the
LINGUAS to the list of locales you want. English is always
suported. Example:

setenv LINGUAS "pt ja de"
in csh

or

export LINGUAS;LINGUAS="pt ja de"
in sh

The list of supported locales can be found in po/README.
English is the default language.

Read po/README if you wish to translate and maintain locale files 
for other languages.

2 - Additionally, if your language uses multi-byte characters, such
as Japanese or Korean, you must supply the --enable-kanji flag to configure.

3 - Configure, build and install Window Maker normally.

4 - To select a particular locale at runtime you must set the LANG
environment variable to the locale you want. For example, if you want to set
the portuguese locale, you must run

setenv LANG pt

in csh or

export LANG; LANG=pt

in Bourne sh and similars

Note: If you have the LC_CTYPE environment variable set, you must
unset it before running wmaker.

For menu definition files, Window Maker searches for them in the
following order (for brazilian portuguese, in this case):

menu.pt_BR
menu.pt
menu


5 - If you chose a language that uses multi-byte characters, you must
configure the fonts appropriately. Read the manual page for XCreateFontSet
to have more details about it. You must change the ~/G/D/WindowMaker file
for fonts used in titlebars, menus and other things. For fonts used in
dialog windows, change ~/G/D/WMGLOBAL. The %d in the font names must not be
removed. You can also use the supplied wsetfont script for the task.
Read the script itself for instructions.

For example, you can specify the following in ~/G/D/WindowMaker:

WindowTitleFont = "-*-helvetica-bold-r-normal-*-12-*,-*-*-medium-r-normal-*-14-*";
MenuTitleFont = "-*-helvetica-bold-r-normal-*-12-*,-*-*-medium-r-normal-*-14-*";
MenuTextFont = "-*-helvetica-medium-r-normal-*-12-*,-*-*-medium-r-normal-*-14-*";
IconTitleFont = "-*-helvetica-medium-r-normal-*-8-*,-*-*-medium-r-normal-*-12-*";
ClipTitleFont = "-*-helvetica-bold-r-normal-*-10-*,-*-*-medium-r-normal-*-12-*";
DisplayFont = "-*-helvetica-medium-r-normal-*-12-*,-*-*-medium-r-normal-*-12-*";

and in ~/G/D/WMGLOBAL:

SystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*";
BoldSystemFont = "-*-*-medium-r-normal-*-%d-*-*-*-*-*-*-*";

The above 2 fonts are only used by applications that use WINGs (WindowMaker
and WPrefs.app)
