Installing LessTif by [1]The LessTif Core Team (last modification: $Date: 2002/03/30 11:50:37 $) Introduction This document details configuring, compiling, and installing LessTif on various platforms. The original version of this document is written in HTML; the LessTif build process uses one of the text mode web browsers [2]lynx or [3]links to convert it into plain text. Both the HTML (doc/www.lesstif.org/INSTALL.html) and the plain text (Install) formats should be in a distribution. Readers that are going to install a binary version of LessTif can jump to the according [4]section immediately. Table of contents * [5]Building LessTif + [6]Prerequisites (What you need to compile LessTif) + [7]Configuring LessTif o [8]LessTif from CVS o [9]LessTif source distribution o [10]Getting configure to find everything o [11]Using configure options to tune the build + [12]Compiling LessTif + [13]Platform specific issues o [14]OSF, Digital Unix, Tru64 o [15]HP/UX o [16]OS/2 o [17]Solaris o [18]Windows * [19]Installing LessTif Binaries + [20]LessTif built from source + [21]Binary distributions of LessTif + [22]Platform specific issues o [23]FreeBSD o [24]Linux o [25]OS/2 o [26]Windows + [27]After LessTif (Getting shared libraries to work) * [28]Upgrading LessTif + [29]Default Versions + [30]Installation Tree * [31]Xlt and Xbae _________________________________________________________________ Building LessTif Prerequisites (What you need to compile LessTif) To build LessTif from the sources you need a number of installed software packages and utilities. You can find pointers to most of these tools on our [32]links page. * C development system including an ANSI C89 (or better) compiler such as [33]gcc and an according C library * the make build tool * X Window System (X11 Release 6 or higher; R5 might still work as well, but is no longer supported): libraries and headers * some UN*X standard tools, like cp, cp, install, rm, sed In addition when building from CVS instead of using our source tarballs you will need: * autoconf * automake * libtool * yacc (GNU bison) * (f)lex [34]Below we specify which versions of the auto* tools are required. A large variety of systems fulfill these requirements as our (incomplete!) list of [35]supported platforms shows. And installing the missing software shouldn't be too hard (except for the compiler and X11, perhaps ;-) Configuring LessTif Configuration of LessTif is now handled by [36]automake, autoconf and libtool. They are GNU development tools which the LessTif developers use to generate the distribution's build scripts and makefiles. Normally this shouldn't bother you. If you obtained a copy of LessTif from our [37]CVS repository, then you need to perform some additional steps which will create the "configure" script and all the "Makefile.in" files (and some other files). configure is a shell script which is meant to be run by people who compile LessTif (you, probably). It looks at your system and tries to figure out how exactly to compile. It may need a little help through command-line options, though. LessTif from CVS If you obtained your LessTif sources directly from CVS, you'll have to perform some of the steps which the LessTif developers normally perform when creating a distribution. (So, if you did get a real distribution you don't need to do this and you can go on to the next section.) The following table lists the current versions of the auto* tools which we use currently for development. Note that the latest official release may still be based on a different set! Tool Version automake 1.5 autoconf 2.52 (2.13 does work as well) libtool 1.4.2 We have two places where you need to run the auto* commands. These are * $LESSTIF (the main directory) * $LESSTIF/test (large number of tests for our libraries) The whole process of running the auto tools and make is now automated by the CVSMake script which is present in LessTif's top directory. Use of CVSMake is mandatory! Don't bother us if you run the auto* tools in your own way and run into problems afterwards ... Note that due to a bug in current versions of those tools you may see an error or warning message while running CVSMake. (In some versions, it'll complain about installing some files in the LessTif directories, in other versions, it says AC_PROG_LEX is called multiple times.) If things run well afterwards you may ignore this, of course. (so please try to continue first!) CVSMake needs to be run in the top source directory of LessTif, it figures out which directories need its attention and then does its thing. After running CVSMake, the source tree should be ready for running the configure command. The CVSMake scripts now feature some command line flags which may be useful: * clean by default CVSMake cleans up a couple of files in the current toplevel directory. If this flag is specified it tries to run make maintainer-clean * local - if applied to the toplevel CVSMake it won't run recurse into the non-core directories (test/) * nodist - enables generation of dependencies in Makefiles. This does only work on systems which are supported by [38]GNU automake/libtool. Starting with automake 1.5 finally more compilers than just gcc are supported! Note that you may get a warning about the INSTALL file missing in some cases. Don't worry, it is now a generated file. If you have Lynx/links on your system, it'll convert doc/INSTALL.html into INSTALL. This only happens during the build process (and we're now in the configuration phase which is still before the build); that's why you can get this message. By the way: it's harmless. The commands above are also the commands that you need to run if you have modified some of the Makefiles yourself. Once you've done all the above, you can continue with the next section. LessTif source distribution To configure LessTif for your system, just type 'configure'. This should do a reasonable job of locating the stuff it needs, and gives rather verbose output should something fail. The configure script has a lot of command line options which you might need or want to use for two main reasons : * the configure program doesn't work (well) for you * you want to tune the LessTif build process You can type configure --help to get the list of all options, with a short description of each. We'll cover most if not all of the options in the next sections of this document. Getting configure to find everything configure identifies a large number of aspects of your computer system, it checks for all those [39]prerequisites listed above. Two things that configure looks for on your machine are: * X11 headers and libraries * Motif® headers and libraries (optional) Now many people who have Motif® on their system don't use LessTif. Hmm. Wonder why that is. Anyway, it wouldn't make much sense if you needed Motif® in order to build LessTif. The good news is: you don't need it. The only reason why you can tell configure where to find Motif® is so it can configure the Makefiles under test/ to be capable of building LessTif as well as Motif® tests. configure will tell you where it has found them if it found them. If it didn't find X, you'll have to specify the path on configure's command line. Use these two options: --x-includes --x-libraries And to specify the Motif® stuff, use these: --with-motif-includes --with-motif-libraries To specify the location of the various bits, you have to set these flags equal to something. An example on how to do this is: configure --x-includes=/usr/local/X11R6/include The other flags behave identically. Using configure options to tune the build As of LessTif 0.87.2 the build system is capable of building multiple LessTif libraries. The purpose of this is to have several libraries that are compatible with several releases of OSF/Motif®. Starting with 0.93.3 we install our Motif 2.1 version by default. Though some functionality is still missing it sounds more reasonable to use that version nowadays. This was introduced because an increasing number of people are using Motif 2.* functions, and the binary releases of LessTif only supported the 1.2 version of Motif. So if you actually install multiple versions of our libraries the highest one will finally be the default version. Choosing which versions to compile --enable-build-12 build Motif-1.2 compatible version --enable-build-20 build Motif-2.0 compatible version --enable-build-21 build Motif-2.1 compatible version (enabled by default) Other options --enable-shared build shared libraries [default=yes] --enable-static build static libraries [default=no] --with-dbmalloc use dbmalloc (a tool similar to dmalloc) --with-dmalloc use dmalloc (see [40]dmalloc.com) --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer [default=no] --enable-debug build LessTif with debugging options [default] --enable-editres build LessTif with support for Editres protocol [default] --enable-nonstandard-conversions include nonstandard conversions [default=yes] --enable-production build a production version (doesn't include _LtDebug*() calls which print all kinds of debugging info depending on some environment variables) --enable-scrollbar-verbose configure LessTif ScrollBar to be verbose [default=no] --enable-verbose configure LessTif to be verbose [default=yes] --prefix=XXX tell configure where LessTif should be installed by "make install" Compiling LessTif After configuring LessTif, just typing 'make' should build all the libraries, clients, and (optionally) tests for LessTif. To build libraries or other things only, just 'cd' to the directory in which you want to build things, and type 'make'. Dependencies have been set up so that the libraries will be recompiled if they are old (or haven't been compiled yet), so typing make from within a test directory will rebuild what needs to be rebuilt. Some combinations of compilers and libraries may have code generation bugs. If you see weird problems when you debug library code, try a lower (or no) optimization. For the vast majority who compile with the default flags this is not an issue. Platform specific issues Here we collect various hints and workarounds which may help in building on the specific platforms. Many are a bit outdated, since we usually try to get fixes in our configuration system to avoid such workarounds. However they may still be useful to resolve similar problems! OSF, Digital Unix, Tru64 Building on Digital Unix from scratch/CVS using the system's CC compiler is known to work after installing flex 2.5.4 and starting configure like CC="cc -std1" LEX="/usr/local/bin/flex" ./configure Building releases (i.e. source distributions) doesn't require an installation of flex, and versions from 0.92.32 should even work without specifying the "-std1" compiler flag. HP/UX On an HP/UX system that we have access to, the commands that we used to configure LessTif are : CC="cc -Ae" export CC ./configure --disable-static OS/2 If you want to build LessTif for XFree86 OS/2 you have to use specific Makefiles since a build based on the auto*-tools/libtool is not possible (based on recent auto* tools and their ports you may give them a try, of course. However it's not worthwhile and would require quite some work to get a satisfying result). They are available from [41]http://homepages.tu-darmstadt.de/~st002279/os2/lesstif.html. The LessTif DLLs export their interfaces via name and ordinal. Compatibility to older versions is ensured by using the mkdef_emx.cmd script (see scripts/OS2/). Those Makefiles don't support building the supplied example programs in the test/ tree yet. If you want to easily build some of them check out the REXX script "ble.cmd" in scripts/OS2/. Further OS/2-specific problems are addressed within the according section of our [42]FAQ. Solaris On a Sun Solaris 2.6 SPARC with the SUNWspro compiler. In order to get past an undefined _Xconst in lesstif-0.88.1/lib/Xm/AtomMgr.c, I hacked in the following lines at the front of lesstif-0.88.1/include/LTconf.h: #define FUNCPROTO 1 #include (This might be obsolete meanwhile) Windows On windows using Cygwin, U/WIN or Interix, LessTif must be built as static libraries. Because, one of the biggest issues with X on Win32 is the moronic DLL format. Specifically - it is not possible to export data from a Win32 DLL in a form that can be used to statically initialize another global variable. Data access from a DLL requires at least one pointer indirection, and hence executable code. This is why X11R6 doesn't have DLLs for Xt/Xmu/Xaw (and Motif) on Win32. LessTif compiles almost out of the box under Cygwin. However you will need to install XFree86 4.x or higher from [43]http://xfree86.cygwin.com. For U/WIN you will need to install GCC, libtools, automake, and autoconf etc. Please check the URL [44]ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/uwin/. For Interix, you will need GCC from Microsoft Interix URL. After installing GCC, download automake, autoconf and libtools, compile and install them. _________________________________________________________________ Installing LessTif Binaries LessTif built from source Installing LessTif is as easy as typing 'make install' - given you managed to build it as described [45]above! Check out the [46]related options for configure which control where LessTif gets installed. Binary distributions of LessTif Binary versions of LessTif are built and made available as a service to people who want to use LessTif without having to compile it themselves. As we're concentrating on developing and improving LessTif itself, we consider binary releases to be a side product, which we only generate once in a while - generally at each minor release. Our release policy is detailed in [47]release-policy.html. Binary versions usually exist for Linux (various versions), FreeBSD and OS/2, others may be created occasionally as well, e.g. Windows binaries based on Cygwin. Specifically for Linux, the binaries that we provide are RPM files. A LessTif release has more than one RPM file, each containing a part of LessTif. The [48]Download page explains the difference between them. Important to know is that the "main" RPM is really only a runtime, whereas the stuff needed for development is in a separate RPM. Platform specific issues FreeBSD Starting with the 0.80a (0.80 pre-release), the FreeBSD binary distribution is provided as a pkg_add installable file. Pkg_add(8) is FreeBSD's installation tool. Installation of LessTif with pkg_add creates a directory /usr/lesstif, under which all of LessTif is placed. As the file /usr/lesstif/README explains, you should put /usr/lesstif/bin in your $path, add /usr/lesstif/lib to your LD_LIBRARY_PATH or to the options of ldconfig in /etc/rc, and point your compiler to include files and libraries by adding -I/usr/lesstif/include -L/usr/lesstif/lib to its command line. See also [49]below. Linux From Matthew Simpson (matthewsimpson@home.com) LessTif Binary Installation The following procedure worked for installing the binary version 0.82 LessTif onto my Redhat 4.2 Linux system. I did not have a previous installation of either the source or binary LessTif, so this works from scratch. I am documenting this days later, so please correct as needed. The binary installation is simple: 1. After downloading the binary distribution, log in as root and place the file in /usr 2. gunzip it: gunzip lesstif-0.82-linux.tar.gz 3. untar it: tar -xvf lesstif-0.82-linux.tar The result will be this directory: /usr/lesstif 4. Remove the tar file if desired: rm lesstif-0.82-linux.tar 5. Edit /etc/ld.so.conf and add the following line for the untarred LessTif library: /usr/lesstif/lib 6. Run this: ldconfig LessTif Window Manager: To ignore your default window manager and instead load mwm, make or copy these files as yourself or root (whichever you use) to your home directory: 7. Put a .xinitrc file in your home directory. Add this to the last line, replacing the call to any other window manager: eval "exec /usr/lesstif/bin/mwm" Or for better tracking, use this line instead: eval "exec /usr/lesstif/bin/mwm" -debug >"$HOME"/.MWM-errors 2>&1 (The redirections rules for > and 2>&1 syntax are specific to sh, which is what my startx script uses. The rules are slightly different for tcsh.) This will dump any errors to a file in your home directory called .MWM-errors. If no errors occur, this file will not get created. If this file already exists, new errors will be appended to it. To get a new file each time you log in or start X, add this to your .login or startx file: rm -f $HOME/.MWM-errors To automatically execute your window manager upon login, add this to the end of your .login file (this is using tcsh syntax): if ( ! -e /tmp/.X0-lock ) then echo "Starting X Windows..." rm -f $HOME/.MWM-errors startx endif 8. Copy this: cp /usr/lesstif/lib/X11/app-defaults/Mwm . This is where you set your personal app-defaults. Uncomment the lines mentioned at the end of this file to get some pretty borders. Here are some other things I changed: Double clicking an icon was set too fast. To slow it down: Mwm*doubleClickTime: 1000 To allow automatic window focus whenever the mouse pointer hits it: Mwm*keyboardFocusPolicy: pointer 9. Copy this to your home directory: cp /usr/lesstif/lib/X11/mwm/system.mwmrc .mwmrc (Note that you should rename it from system.mwmrc to .mwmrc) This is where you set up your personal root menus. If you use XFree86, look in /usr/X11R6/bin for most of the already-installed applications you like to execute through the root window pull-down menus. More menus and sub-menus can be added as desired. Since /usr/X11R6/bin is in your path, you need not type the full path names into .mwmrc. Applications in other directories will need paths or soft links set up. When setting up these two files I did not have a LessTif mwm manual page available. However, if you have Unix and Motif® available at work (such as on SGI products), just do a man mwm and print it out for reference. Most will apply to LessTif mwm. (Even though SGI uses their own version called 4Dwm, they still provide the mwm manual pages with the IRIX 6.2 release.) 10. run startx Hope this helps someone. These directions may be over simplified, but I wanted to be specific. Thanks for LessTif. I am learning M*tif but have a long way to go. Matt Simpson OS/2 The OS/2 binary distribution is provided as an InfoZip file. Put it into your X11ROOT directory and unzip the archive. This installs all libraries and executables (Xm.dll, Xm_20.dll, mwm.exe, ...). It puts everything in place to be used within a valid XFree86 OS/2 configuration, so you don't have to adjust anything manually. Windows (From: Suhaib Siddiqi) First install Cygwin/Xfree86 in /usr/X11R6 from [50]http://xfree86.cygwin.com Then copy lesstif-0.92.98-cygwin.tar.bz2 to \cygwin directory and open Cygwin bash shell: cd / bunzip2 lesstif-0.92.98.tar.bz2 tar xvf lesstif-0.92.98.tar You should be set to go. After LessTif (Getting shared libraries to work) Shared library configuration differs from system to system. Here is the lowdown on getting them to work on the systems that support them. * Linux There are two ways to have shared libraries available under linux: + Use the LD_LIBRARY_PATH environment variable. + Use ldconfig. The second option is only available to those with superuser access, so if you don't, or you specifically want to use the library that was just built (for running the tests), use the LD_LIBRARY_PATH variable. The LD_LIBRARY_PATH variable is to contain a colon separated list of paths to be searched for shared libraries. This variable is consulted before the information compiled by ldconfig, so even if you have LessTif already installed on your system you can use this variable to force the use of the newly built library. Below is an example: Assume you told configure to install LessTif in your home directory "/home/lesstifuser". To keep any existing settings in that variable we put our new setting in front of older ones. The syntax used below assumes that you're usig a bash shell: $ LD_LIBRARY_PATH=/home/lesstifuser:$LD_LIBRARY_PATH $ export LD_LIBRARY_PATH In case you didn't specify any prefix check where "make install" actually puts the libraries. If you have superuser access and want LessTif to be installed for system-wide use, make sure the directory to which the libraries were installed is listed in /etc/ld.so.conf. Then (as root) type ldconfig -v to make them available. If you're not sure which library is being used (either the system-wide installed one, or one you've just compiled), use the 'ldd' command. After generating an executable linked dynamically with LessTif, type ldd . This will output a list of the paths to all the shared libraries this executable depends on. * HPUX 9 Nothing additional needs to be done. Just make sure the linker can find the libraries when generating the executable (the -L flag). * NetBSD/FreeBSD/OpenBSD Same as for Linux. _________________________________________________________________ Upgrading LessTif Default versions Usually upgrading LessTif from one version to the other is a rather simple task. The challenge is to recognize that the default version of our libraries has changed in the past. LessTif Version Motif Compatibility <0.92 1.2 (1.2.x) 0.92.x, 0.93.1, 0.93.2 2.0 >=0.93.3 2.1 Installation Tree Starting from 0.93.5 we changed the way that LessTif install its files. Earlier releases used to put most of their stuff libraries/headers in their own subdirectory $(prefix)/LessTif and afterwards create symbolic links for libraries and headers. Advantage was that people could more easily switch between different installed versions, i.e. from "Motif 1.2" to "Motif 2.0". Drawback was that this couldn't be done in a fully portable fashion, i.e. at least installation from sources failed on some systems though they were supported by libtool (which is the more crucial factor which limits portability: we can only build our libraries on systems which are supported by this powerful tool, see section [51]Prerequisites). To simplify this whole process for the maintainers (who have to deal with all the bug reports ;-) and to enhance portability we abandoned this approach. We now install directly in the proper directories below $(prefix) and only put documentation and non-Motif standard stuff in $(prefix)/LessTif. Having said this we have to acknowledge that upgrading an older release to 0.93.5 (or better) may fail for some reasons: installation tools may fail or refuse to remove the old symbolic links to now obsolete locations. So before doing the upgrade remove your whole old $(prefix)/LessTif tree and in addition the following symbolic links (if they exist) below $(prefix). However ensure that you know und understand what you are doing, don't remove a non-LessTif installation this way! (e.g. if your system has libraries with a different extension than .so those links were not created by a LessTif installation from sources, but perhaps a very different installation!) bin/mwm bin/uil bin/xmbind include/Dt include/Mrm include/Xm include/uil lib/libDt.so* lib/libDtPrint.so* lib/libMrm.so* lib/libUil.so* lib/libXm.so* The asterisk is the usual wildcard which indicates different suffixes here. _________________________________________________________________ Xlt and Xbae The Xlt and Xbae widget sets are two widget sets that used to come with LessTif distributions, but that aren't part of the Motif® clone. Accordingly we finally removed them from the LessTif distribution and promoted them to stand-alone projects which have their own CVS repository! If you want to learn more about them check out the according pages for [52]Xlt and [53]Xbae. _________________________________________________________________ [54]Valid HTML 3.2! [55]Feedback Last modified on $Date: 2002/03/30 11:50:37 $ References 1. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/core.html 2. http://lynx.browser.org/ 3. http://links.browser.org/ 4. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Binary_distributions_of_LessTif 5. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Building 6. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Prerequisites 7. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Configuring_LessTif 8. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#LessTif_from_CVS 9. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#LessTif_source_distribution 10. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#find_everything 11. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#tune_the_build 12. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Compiling_LessTif 13. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Building_Platforms 14. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#compile_DU 15. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#compile_HPUX 16. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#compile_OS2 17. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#compile_SOLARIS 18. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#compile_Windows 19. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Installing_LessTif 20. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#LessTif_built_from_source 21. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Binary_distributions_of_LessTif 22. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Installing_Platforms 23. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#bin_FreeBSD 24. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#bin_Linux 25. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#bin_OS2 26. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#bin_Windows 27. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#After_LessTif 28. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Upgrading 29. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#DefaultVersions 30. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#InstallationTree 31. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Xlt_and_Xbae 32. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/links.html#tools 33. http://gcc.gnu.org/ 34. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#LessTif_from_CVS 35. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/platforms.html 36. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/links.html#tools 37. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/cvs.html 38. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/links.html#tools 39. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Prerequisites 40. http://dmalloc.com/ 41. http://homepages.tu-darmstadt.de/~st002279/os2/lesstif.html 42. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/FAQ.html#Platform_OS2 43. http://xfree86.cygwin.com/ 44. ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/uwin/ 45. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Building 46. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#tune_the_build 47. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/release-policy.html 48. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/download.html 49. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#After_LessTif 50. http://xfree86.cygwin.com/ 51. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/INSTALL.html#Prerequisites 52. http://www.sourceforge.net/projects/xlt 53. http://www.sourceforge.net/projects/xbae 54. http://validator.w3.org/check/referer 55. file://localhost/home/danny/tmp/ltrel/lesstif/doc/www.lesstif.org/feedback.html