home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / gwm18a.zip / INSTALL < prev    next >
Text File  |  1995-07-03  |  13KB  |  306 lines

  1.   ______        ____  __ 
  2.  / ___\ \      / /  \/  |
  3. | |  _ \ \ /\ / /| |\/| |
  4. | |_| | \ V  V / | |  | |
  5.  \____|  \_/\_/  |_|  |_|
  6.  ___           _        _ _       _   _                ____       _     _      
  7. |_ _|_ __  ___| |_ __ _| | | __ _| |_(_) ___  _ __    / ___|_   _(_) __| | ___ 
  8.  | || '_ \/ __| __/ _` | | |/ _` | __| |/ _ \| '_ \  | |  _| | | | |/ _` |/ _ \
  9.  | || | | \__ \ || (_| | | | (_| | |_| | (_) | | | | | |_| | |_| | | (_| |  __/
  10. |___|_| |_|___/\__\__,_|_|_|\__,_|\__|_|\___/|_| |_|  \____|\__,_|_|\__,_|\___|
  11.  
  12. ==============================================================================
  13.  
  14. WHAT IS GWM?
  15. ============
  16.  
  17. The GWM (Generic Window Manager) is an extensible Window Manager for
  18. the X Window System Version 11. It is based upon a WOOL (Window Object
  19. Oriented Langage) kernel, which is an interpreted dialect of Lisp with
  20. specific window management primitives. The user builds a window
  21. manager by writing WOOL files to describe objects on the screen,
  22. including a Finite State Machine triggering WOOL actions on response
  23. to X events (e.g. mouse buttons) on that object.  These objects can be
  24. used as decorations around X applications windows, as pop-up menus or
  25. as independent windows.
  26.  
  27. GWM should be able to emulate efficiently other window managers, and play
  28. the same role for window managers as EMACS does for text editors.
  29.  
  30. WHERE IS GWM?
  31. =============
  32.  
  33. All new "official" gwm releases can be found by ftp on:
  34.     Europe: koala.inria.fr:/pub/gwm/
  35.         USA:    ftp.x.org:/contrib/window_managers/
  36.     and all the ftp.x.org mirrors (find them by a "archie GettingR6")
  37.  
  38. There is a web page: http://www.inria.fr/koala/gwm
  39.  
  40. UNPACKING a new distribution:
  41. =============================
  42.  
  43. Unpack the distrib in a GWMDIR directory created for the compilation process
  44. The installation of gwm will look like:
  45.  
  46.                 GWMDIR
  47.                   |
  48.                  gwm ---shadows----- sun4 -- linux -- dec ...
  49.                   |     (symb. links)
  50. C source files          +----+----+
  51.                   |    |      |
  52.                doc Make     data
  53.  
  54. The files will be then compiled in brother directories of "gwm" (sons of
  55. GWMDIR) in a stand-alone installation (using the Makefile.noXtree makefile), or
  56. directly in the "gwm" directory itself in case of an installation by imake.
  57.  
  58. The Make directory will contain all your configuration options, that you will
  59. be able to re-use between different gwm releases.
  60.  
  61. INSTALLATION:
  62. =============
  63.  
  64. ************************************ WARNING *********************************
  65. GWM sends me an udp packet with just the value of "gethostname" for
  66. my private statistics on startup. You can disable this feature by (re)compiling
  67. with -DNO_GWM_LOG  or -DNO_KOALA_SPY, or you can also set the shell
  68. environments NO_GWM_LOG or NO_KOALA_SPY to disable this feature without
  69. recompilation.
  70. ******************************************************************************
  71.  
  72. Note: gwm does not compile on alpha. read doc/KNOWN_BUGS.
  73.  
  74. Files of interest:
  75.  
  76. INSTALL         Documentation on the compilation flags for many architectures
  77. PROBLEMS    Answer to common compilation problems
  78. doc/KNOWN_BUGS  known bugs for this version
  79. doc/TO_BE_DONE  lists the planned enhancements
  80. CHANGES        summary of the user-visible changes
  81. revision.c    the detailled internal change log
  82.  
  83. NOTE: some contributed software that can/must be installed by hand are in the
  84. contrib/ directory, including emacs modes, and way to interact with gwm from
  85. emacs or the shell. among them are:
  86.  
  87.     rxterm/        scripts to remote launch X commands on other machines
  88.     command_menus/ some menus to launch unix commands
  89.     emacs-mode/       emacs mode to run intarctively wool code on a live gwm
  90.     gwm-buffer/       same for epoch
  91.     gwmchat/       C program for typing commands to gwm (obsolete?)
  92.     gwmsend/       C prog to send commands to gwm
  93.     gwmsh/       C prog to to run intarctively wool code on a live gwm
  94.     lisp-modes/       emacs lisp modes to edit wool code
  95.     widgets/       package to add GWM scrollbars and menus to epoch
  96.  
  97.  
  98. The "data/" directory contains bitmaps, and wool (gwm built-in lisp) profiles.
  99. installing gwm is putting the executable "gwm" somewhere in your path, and
  100. copying somewhere the data/ contents (without forgetting the 2 files beginning
  101. by .) and make GWMPATH point on it, if not defined already at compile time.
  102.  
  103. Contrib/rxterm contains the "rxterm" shell script used to spawn remote xterms. If
  104. you do not have such a script already installed, you should install this script
  105. and also make "rx" and "rxload" commands as links to it. (it is NOT installed
  106. automatically to preserve existing ones)
  107.  
  108.  
  109.   ____                      _ _       _   _             
  110.  / ___|___  _ __ ___  _ __ (_) | __ _| |_(_) ___  _ __  
  111. | |   / _ \| '_ ` _ \| '_ \| | |/ _` | __| |/ _ \| '_ \ 
  112. | |__| (_) | | | | | | |_) | | | (_| | |_| | (_) | | | |
  113.  \____\___/|_| |_| |_| .__/|_|_|\__,_|\__|_|\___/|_| |_|
  114.                      |_|                                
  115.  
  116. COMPILING:
  117. ==========
  118.  
  119. Then you can either compile gwm via "imake" or in a stand-alone way.
  120.  
  121. WITH IMAKE:
  122.  
  123.     The Imakefile is provided. You should know how to use imake to build 
  124.     the Gwm Makefile, by either:
  125.  
  126.         ximake TOP
  127.     if your X source tree is in directory TOP, or:
  128.         xmkmf 
  129.     if your X source tree has been fully installed    
  130.  
  131.     then do a "make Makefiles" to build all the subdirectory
  132.     Makefiles, then do a "make" which will build the "gwm" binary,
  133.     and then do a "make install" and "make install.man" which will
  134.     install the gwm binary, the data files in the "data/"
  135.     subdirectory and the manual page.
  136.  
  137.     If it fails, you may edit the Imakefile to add compilation flags to
  138.     suit your machine. (see make.TEMPLATE for the description of these
  139.     flags). If you have to modify the provided Imakefile to compile on
  140.     your machine, PLEASE mail me the changes!
  141.  
  142.     NOTE: the installation of the "data" subdir works only with the X11R6,
  143.     X11R5 and X11R4 users will have to replace XCOMM strings in Imakefiles
  144.     by #, with X11R3, you will have to do it by hand. (do a
  145.     "cp data/.*gwm data/* GWMDIR" where GWMDIR can be found in the 
  146.     Imakefile.
  147.     
  148.  
  149. WITHOUT IMAKE:
  150.  
  151.     To compile or install gwm, you must, in the "gwm" directory you just
  152.     created, do a:
  153.  
  154.         cp Makefile.noXtree Makefile
  155.  
  156.     and for each type of machine on which you decide to install it:
  157.  
  158.     decide which name you will give to this type of machine ("dpx1000", 
  159.     "sun", "vax"). Suppose it is "dpx" in the following. Don't try to name
  160.     it "gwm" however!
  161.  
  162.     type: "make DIR=../dpx sdir" (or make DIR=dpx dir if you don't have
  163.     symbolic links on your system)
  164.  
  165.     This will build a directory "../dpx", link all source files in it,
  166.     copy the Make.TEMPLATE file to "Make.dpx" in the ../dpx
  167.     directory, and make a link to this newly created file in "Make"
  168.     subdirectory. If you want to create the target directory on another
  169.     filesystem, you can use symbolic links to do so, Just say "make
  170.     DIR=path sdir" where "path" is the complete pathname of the target
  171.     directory, for instance "/usr/maalea/local/src/GWM/dpx"
  172.  
  173.     go into it ("cd ../dpx"), and edit the "Make.dpx" file to adapt it
  174.     to your local installation. 
  175.  
  176.     Then, type "make" and a "gwm" executable should be built.
  177.     In case of errors, a simple "make" should resume the
  178.     compilation process after the first "make" command has been issued.
  179.     If you have the message "Make:  Don't know how to make .dir.  Stop.",
  180.     that means that you have forgotten to do "cd ../dpx".
  181.  
  182.     VERY IMPORTANT: if you encounter compilation problems, please mail me
  183.     the problems and the patches you had to apply to make it compile
  184.     on your system, so that I can include them in future releases!
  185.  
  186.     If everything is OK, type "make install", it should copy the
  187.     executable and the whole ./data subdirectory. If you want to install
  188.     it by hand, just copy gwm into your path, and the whole contents of
  189.     the data directory (which can be shared between machines) into the gwm
  190.     built-in path. (the built-in path is printed by gwm by: gwm -?)
  191.  
  192.     Then, you can delete the working directory. The only thing you need
  193.     to keep is the "Make" directory, which contains all the things you may
  194.         have defined or adapted for your configuration. 
  195.         A link to the "Make.machine" in the "Make" subdirectory was 
  196.  
  197.  
  198. REPORTING BUGS:
  199. ===============
  200.  
  201. See the file doc/BUG_REPORT to mail back bugs to me. nothing formal here, just
  202. to be sure you dont forget to send the context of the bug...
  203.  
  204. PS: I maintain a mailing list about gwm: gwm-talk@sophia.inria.fr
  205. (all mail sent to these address will be redispatched to all members)
  206. mail requests to be added to these lists to: gwm-talk-requests@sophia.inria.fr
  207. or gwm@sophia.inria.fr.
  208.  
  209. New updates are announced on the comp.windows.x newsgroup, and on the
  210. "gwm-talk" list.
  211.  
  212. If you don't have ftp, use the mail<->ftp gateways ftpmail@decwrl.dec.com or 
  213. bitftp@pucc.princeton.edu. (send a message with the word HELP in it to these
  214. adresses).
  215.  
  216.  
  217. Here is the list of the various flags you may set up for compiling GWM:
  218. ======================================================================
  219.  
  220. X version: (default is X11R6)
  221. ---------
  222. -DX11R1        For compiling with vanilla X11R1 library
  223. -DX11R2        For compiling with vanilla X11R2 library
  224. -DX11R3        For compiling with vanilla X11R3 library
  225. (for now the previous defines are equivalent)
  226. -DX11R4        For compiling with vanilla X11R4 library
  227. -DX11R5        For compiling with vanilla X11R5 library
  228. -DX11R6        For compiling with vanilla X11R6 library
  229. (for now the previous defines are equivalent)
  230.  
  231. Recommended flags: (you should leave them in DEFINES= )
  232. -----------------
  233. -DSECURE    turns on sanity checks on many functions, should be defined.
  234. -DUSE_STANDARD_MALLOC Otherwise my malloc is used, but on modern systems it is
  235.                 not needed anymore
  236. -DUSER_DEBUG    Enable user-level debugging functions (trace)
  237.  
  238. OS variants:
  239. -----------
  240. Autodetected: sparc, apollo, linux
  241.  
  242. -DSYSV            for System V R3 or previous systems (BSD 4.x is default)
  243. -DSVR4        for System V R4 systems (solaris, irix). Do not define SYSV.
  244. -DPAGE_SIZE=int for Virtual Memory page size (for SYSV only!) in
  245.         bytes. (defaults to 8192).
  246. -DPTR_TYPE=int    What is the (int, long...) type which is the same size
  247.         as any pointer on your machine? (int is default)
  248. -DCARD32=long    What is the numerical type 32 bit long? defaults to long
  249. -DIBM_RT    For compiling on an IBM PC/RT with AIX
  250. -Dsm90        for BULL's sps7, dpx 
  251. -DNO_GETPAGESIZE if you dont have getpagesize()
  252. -DSYSV_TIME     if you cannot use BSD ftime function
  253. -DSYSV_STRINGS     if you include <string.h> instead of <strings.h>
  254. -DSYSV_UTSNAME     if you don't have gethostname()
  255. -DSYSV_SIGNALS     if you dont have wait3()
  256. -DNO_BCOPY     if you dont have bcopy and friends
  257. -DHAS_STRCHR     if strchr already exists
  258. -DNO_MALLOC_DECLARE if your includes already declares char *malloc()
  259. -DVOID_SIGNALS  if signal handlers return a void * (default an int)
  260. -DVOID_MALLOC   if your malloc returns a void * (default a char *)
  261. -DNO_STRUCTURE_OFFSETS if your compiler cannot compute struct offset on types,
  262.                only on instances (apollo)
  263.  
  264. Workarounds for bugs:
  265. --------------------
  266. -DSTUPID    if your compiler chokes on complicated expressions (vax)
  267. -DDOUBLE_ALIGN    for machines where structure fields MUST be aligned
  268.         on double float boundaries! (GOULD's powernodes, solaris 2.x)
  269. -DDO_NOT_REDEFINE_MALLOC if you are compiling with the 
  270.         standard DEC WINDOWS Xlib, or some very GCC-specific systems
  271.         where malloc is built-in the compiler (some linuxes?)
  272.  
  273. Debugging-only flags:
  274. --------------------
  275. -DTRACE=n    Enable tracing at default level n (mofifiable with -T option)
  276. -DDEBUG    Enable debugging via assertions, include routines for DBX,
  277.         Replace some macros by function calls, Synchronize X calls.
  278.         Range checks mallocs.
  279. -DMLEAK    Enable malloc's leaks tracing (very slow)
  280. -DDO_BUS_ERROR Force a bus error on error for debugging via (yeech!) adb
  281. -DMONITOR    Include flags for profiling information (use -pg Cflags)
  282.  
  283.  
  284. Exemples:
  285. ========
  286. DEFINES= -DSECURE -DUSE_STANDARD_MALLOC -DUSER_DEBUG +these_additional_flags...
  287.  
  288. BSD machines, suns with SUNOS 4.x:     none
  289. Suns with Solaris (aka SUNOS 5.x):     -DSVR4
  290.                   and: LIBS = -lXext -lX11 -lsocket -lnsl
  291.     NOTE: some suns seems to require -DUSE_STANDARD_MALLOC, otherwise you get
  292.       a bus error in color-make at runtime.
  293. vax:                       -DSTUPID
  294. sm90:                       -DSTUPID -DSYSV
  295. dpx:                       -DSYSV
  296. Hp9000                       -DSYSV +Ns2000 +Nd2000
  297. IBM RS6000/AIX:            -DSYSV -DDO_NOT_DECLARE_STRCHR -DNEED_SELECT_H
  298. IBM/RT:                       -DSYSV -DIBM_RT -Nn3000
  299. SGI Irix 5.3:                   -DSVR4 -DNO_STRUCTURE_OFFSETS
  300. Unixware:                   -DSVR4 -DDO_NOT_REDEFINE_MALLOC
  301. linux: same flags as set by you xmkmf, e.g: -O2 -m486 -ansi -DNO_ASM -I/usr/X11R6/include/X11/extensions -I/usr/X11R6/include  -Dlinux -D__i386__ -D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE  -DFUNCPROTO=15 -DNARROWPROTO
  302. decstations 5100 (mips):           -DSECURE -DSTATS -DUSER_DEBUG -DSIMPLE_LHS -G 0 -DVOID_MALLOC -DHAS_STRCHR -DNO_STRUCTURE_OFFSETS -I/usr/include/X11/extensions
  303. alpha:                       *** GWM DOES NOT COMPILE ON ALPHAS ***
  304.         use a translator from mips code, generate a gwm.decstation on a dec mips,
  305.         then on an alpha, type: mx -coff -o gwm gwm.decstation
  306.