home *** CD-ROM | disk | FTP | other *** search
- RCS configuration instructions
-
- $Id: README,v 1.9 1992/07/28 16:12:44 eggert Exp $
-
- Copyright 1991, 1992 by Paul Eggert
- Distributed under license by the Free Software Foundation, Inc.
-
- This file is part of RCS.
-
- RCS is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2, or (at your
- option) any later version.
-
- RCS is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with RCS; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA
- 02139, USA.
-
- Report problems and direct all questions to:
-
- rcs-bugs@cs.purdue.edu
-
-
- For Posix and near-Posix hosts, configure by editing Makefile,
- commenting out wrong lines and uncommenting right ones.
- See ``Makefile notes'' below for advice.
-
- After configuring, make conf.h; this may take a while,
- so you may want to do it in the background and run `tail -f a.h'
- or `tail -f conf.err' to check on progress. If making conf.h fails,
- look in conf.err to see what went wrong in the conf.sh shell file.
- Check the resulting conf.h for plausibility; see ``conf.h notes'' below.
- If conf.h is wrong, and the mistake isn't listed in ``conf.h notes'',
- there is a bug in conf.sh; please report it.
- You can patch conf.h if you're in a hurry, but it's better to fix it;
- look at a.h and conf.err for ideas.
- If all else fails, copy conf.heg to conf.h and edit it by hand.
- After configuring, make `all'.
-
- If all went well, make `install'.
- If installation succeeds, make `installtest';
- if this fails, make `installdebug' for detailed info.
-
- If you want to test RCS before installing it,
- you must set RCSPREFIX to be empty, make RCS from scratch,
- prefix this directory to your PATH, and run `sh rcstest'.
- Be sure to restore RCSPREFIX and rebuild RCS before installing it.
-
- If you want to maintain RCS with itself,
- preserve the original revision numbers, dates, etc.
- by checking the files in with the -k option.
-
-
- __________
-
- Makefile notes
-
- BINDIR is where the RCS commands will be installed.
-
- CC is the name of your C compiler.
-
- CC_D is a list of extra options for the C preprocessor.
- It should include any extra -D and -I options needed on your system.
-
- CC_O is the C compiler options that affect just compilation and assembly;
- not preprocessing, linking or linting.
- If your compiler has the BSD -R option, -R can improve performance by
- making all initialized data read-only (not just string literals);
- this is not worth worrying about if your compiler also supports `const'.
-
- CC_W is the list of C compiler options to enable
- warnings about questionable constructs in the RCS source code.
-
- COMPAT2 is 1 if you still have version 2 RCS files around.
- (Version 2 became obsolete in 1982, so this isn't likely.)
- COMPAT2 assures that version 2 RCS files can still be read.
- When you have the new RCS installed, rename old version 2 RCS files as follows.
- Suppose the working file was `f.c';
- rename the RCS file `f.c.v' to `f.c,v', and the RCS file `f.v' to `f.c,v'.
- Thus suffixes are no longer dropped and RCS files end in `,v' rather than `.v'.
- After all version 2 RCS files have been updated with new versions of ci or rcs,
- you can remake RCS with COMPAT2 set to 0.
-
- DESTBINDIR is the place where you want the RCS executables to be installed.
- This may be different from BINDIR due to installation staging.
-
- DIFF is the name of your diff program.
- If you override DIFF, make sure you rebuild conf.h afterwards;
- otherwise you may introduce a security hole.
- On some versions of Unix, the standard diff does not support RCS
- and you must use something like /usr/lib/rdiff instead;
- perhaps you should try GNU diff instead.
-
- DIFFPREFIX act likes RCSPREFIX, except it applies to subsidiary diffs,
- not to subsidiary RCS commands. It must be nonempty if setuid is to be used.
-
- DIFF_FLAGS are diff's options for RCS format output, probably -n.
- If available, also include the -a option for comparing arbitrary files.
-
- DIFF_L is 1 if diff understands the -L option for labeling context diff output.
-
- DIFF_SUCCESS, DIFF_FAILURE, DIFF_TROUBLE are integer constants
- representing diff's exit status when it finds
- no differences, some differences, or trouble respectively.
- The first two should be EXIT_SUCCESS and EXIT_FAILURE,
- but on some hosts they are broken.
-
- DIFF3 is the name of the diff3 program.
- With GNU diff, this is simply its user-visible diff3 program.
- With traditional diff3, this is not the user-visible diff3 program;
- instead, it this is the name of the undocumented diff3 auxiliary program,
- whose name is /usr/lib/diff3 or /usr/5lib/rdiff3prog or something similar.
-
- DIFF3_A is 1 if your diff3 has an -A option, 0 otherwise.
- This option is available in GNU diff 2.1 and later; it generates better
- quality diff3 output, but RCS is not yet ready for it.
-
- DIFF3_BIN is 1 if DIFF3 is the user-visible GNU diff3 program (see DIFF3).
- Before setting this to 1, make sure your diff3 understands -a, -L, and and -m;
- e.g. the command `echo x | diff3 -m /dev/null /dev/null -' should output `x'.
-
- ED is the name of the standard Unix line editor.
- It is needed only if DIFF3_BIN is 0.
-
- EXECUTABLE_PERMISSIONS are the options given to INSTALL for executable files
- on BSD Unix sites. Watch out for `-g staff' if you don't have a staff group,
- or if your installation program doesn't have a -g option.
-
- INSTALL is the command that installs commands.
-
- LDFLAGS are the loader flags you need, e.g. -i, -n, -s, -x.
-
- LDLIBS are the loader libraries you need, e.g. -lbsd, -lBSD, -ljobs, -lPW, -lx.
-
- LINK is the command used to link together an executable.
-
- LINT is the name and usual arguments of your lint program.
-
- OTHER_OBJECT are any other object files you need to link.
-
- RCSCOMMANDS is the list of commands to be installed by default.
- It doesn't include rcsclean$x, which is still a little experimental.
-
- RCSPREFIX is the prefix for subsidiary RCS commands like ci.
- If empty, RCS will search the PATH for these commands;
- this lets you move RCS commands after building them, and permits
- multiple instances of setuid RCS commands on the same host for different users.
- If nonempty, it should be a path followed by /;
- this makes RCS look in just one place, and makes execution faster.
-
- REMOVE is how to remove a file.
-
- SENDMAIL is a comma-separated list of strings that are a command to send mail.
- The name of the addressee will be appended as a separate argument,
- and the standard input will be the message
- (first line `Subject: xxxx', second line empty).
- If your host cannot send mail, leave SENDMAIL empty.
-
- TESTPREFIX is the prefix for test commands.
-
- o is the filename extension your host uses for object files.
- It includes the `.'. It is typically `.o' on Unix hosts.
-
- x is the filename extension your host uses for executables.
- It includes the `.'. It is empty on Unix hosts,
- which traditionally lack extensions on executables.
-
-
- __________
-
- conf.h notes
-
- See conf.sh for details about the definitions in conf.h.
- Comments below cover unusual situations that can require hand patches to conf.h.
-
- const - Some hosts support `const' but complain about it, perhaps because
- system headers are wrong. `#define const /*empty*/' pacifies them.
-
- has_NFS - Set this if the target host might use NFS.
- NFS's stateless server model has well-known problems with
- the non-idempotent operations link(), rename(), and unlink().
- For example, unlink() can run twice on the file server,
- causing the client to think that the unlink failed with errno==ENOENT.
- has_NFS enables code that works around these problems.
-
- has_mmap - This should be 0 in HP-UX 8.07 unless you have patch PHKL_0942.
- Its NFS mmap() is broken, but if you run conf.sh in a non-NFS filesystem,
- conf.sh thinks mmap() works.
-
- has_rename - This should be 0 in SCO Unix V.3.2. Its NFS rename() is broken,
- but if you run conf.sh in a non-NFS filesystem, conf.sh thinks rename() works.
-
- has_seteuid - This should be 1 only if your seteuid lets you switch back and
- forth between any pair of users as specified in Posix 1003.1a Draft 5.
- On some older systems (e.g. SunOS 4.0.3) seteuid doesn't allow this.
- One must be root to test this reliably, so conf.sh just guesses.
- If has_seteuid==0, the next best thing is saved setuid semantics
- (a Posix 1003.1-1990 option), because this fails only if you run as root.
- You may need to compile with `cc -systype sysv' (some Mips OS variants)
- or `cc -YPOSIX' (some Ultrix variants) for best results here.
-
- large_memory - This should be 1 if main memory is large enough to hold entire
- copies of RCS files, perhaps because virtual memory is available.
-
- NAME_MAX - this should be #undef'ed in AT&T SVR4.0 V2.0, which defines NAME_MAX
- to be 14 even though longer names are permitted on some filesystems.
- If you run conf.sh in a short-name filesystem, conf.sh won't detect this bug.
-
- _POSIX_SOURCE must be #defined in a strict Standard C environment,
- because otherwise stdio.h cannot define useful names like fileno.
- Avoid defining _POSIX_SOURCE if possible,
- because it can disable useful non-Posix features in your host.
- Perhaps you can remove the need for _POSIX_SOURCE
- by supplying an option to your compiler to makes it less strict.
-
- text_work_stdio - This option makes sense only on non-Posix hosts that
- distinguish between text and binary I/O, e.g. DOS. Set this option if
- you want to use text I/O for working files, but binary I/O for RCS
- files. If set, RCS does not support non-text working files, but RCS
- files are portable to other hosts across binary network file systems
- like NFS. If not set, RCS supports non-text working files, but RCS
- files are not portable to Posix hosts.
-
- TZ_must_be_set - set this to 1 on hosts where gmtime() yields bogus
- values unless the TZ environment variable is set.
-
- volatile - See `const'. E.g. `volatile sig_atomic_t' is conforming, but some
- buggy hosts complain. Also, Ultrix 4.0 Mips CC 2.0 has buggy volatile support.
-