1#ident "@(#)README.SCCS 1.9 18/04/04 " 2 3This is a portable and reworked version of the original UNIX SCCS source. 4 5SCCS is the most mature Revision Control System. This source is: 6 7- Based on the original SCCS project that started in 1972 at Bell Labs. 8 9- Including all Sun / Solaris extensions. 10 11- Large file aware 12 13- Allowing to selectively disable/enable expansion of specific SCCS 14 keywords (like %I%, %Q%, ...). 15 16- Correctly dealing with lockfiles even in a NFS based multi machine 17 environment. 18 19- Using gettext() for internationalized texts. 20 21- Completely using a type clean set of function prototypes and external 22 variable definitions. 23 24- Ported to and tested on all major OS platforms. 25 26To compile, just run "smake" (or Sun make or GNU make). 27 28The binaries by default install to /opt/schily/ccs/bin & /opt/schily/xpg4/bin 29"/opt/schily" is called "Installation Base" and may be controlled via the 30make macro INS_BASE. 31 32If you like to install SCCS to a different directory, you need to do 33the following: 34 35If you like to install to e.g. /usr/sccs, call: 36 37 smake INS_BASE=/usr/sccs 38 smake INS_BASE=/usr/sccs install 39 40The binaries then are located in /usr/sccs/ccs/bin and /usr/sccs/xpg4/bin 41 42If you like to create binaries to incorporate into a standard UNIX distribution, 43call: 44 45 smake INS_BASE=/usr 46 smake INS_BASE=/usr install 47 48The binaries then are located in /usr/ccs/bin and /usr/xpg4/bin 49 50 51Note that you need to at least recompile sccs.c, delta.c and help.c 52in case that you like to change the install directory. The other programs 53need to be recompiled too, in order to allow them to find their international 54string translation files or in case that SCCS_FATALHELP has been defined for 55compilation, so is is a good idea to recompile everything: 56 57string translation files, so is is a good idea to recompile everything: 58 59smake clean 60smake INS_BASE=/usr/sccs 61smake INS_BASE=/usr/sccs install 62 63or at least: 64 65rm cmd/sccs/cmd/*/OBJ/*/*.o 66smake INS_BASE=/usr/sccs 67smake INS_BASE=/usr/sccs install 68 69The normal install tree looks this way: 70 71/opt/schily/bin/ contains symlink to the "sccs" program 72/opt/schily/ccs/bin/ contains sccs binaries 73/opt/schily/ccs/include/ fallback search dir for %sccs.include.filename% 74/opt/schily/ccs/lib/ contains internal libs 75/opt/schily/ccs/lib/help/ contains help files 76/opt/schily/share/man/ contains man pages 77/opt/schily/xpg4/bin/ contains POSIX variants of the binaries 78 79With: 80 81smake clean 82smake INS_BASE=/usr SCCS_BIN_PRE= SCCS_HELP_PRE=share/ 83smake INS_BASE=/usr SCCS_BIN_PRE= SCCS_HELP_PRE=share/ install 84 85the install tree looks this way: 86 87/usr/bin/ contains sccs binaries 88/usr/lib/ contains internal libs 89/usr/share/include/ fallback search dir for %sccs.include.filename% 90/usr/share/lib/help/ contains help files 91/usr/share/man/ contains man pages 92/usr/xpg4/bin/ contains POSIX variants of the binaries 93 94Note that in this case, the binary of the UNIX "diff" program may overwrite 95a local "diff" variant. If you plan to create binary packages that do not 96include the UNIX diff program, be careful to check whether the local diff 97program supports all needed features for SCCS and allows SCCS to work 98correctly in all cases. If you like to verify that you local "diff" 99implementation works correctly, run the following: 100 101smake clean 102smake INS_BASE=/tmp/SCCSTEST SCCS_BIN_PRE= SCCS_HELP_PRE=share/ tests 103cp /usr/bin/diff /tmp/SCCSTEST/bin 104smake INS_BASE=/tmp/SCCSTEST SCCS_BIN_PRE= SCCS_HELP_PRE=share/ tests 105 106and verify that both runs of the test work correctly. 107 108Also note that this kind of parameters work with smake, gnu make and the 109schilytools variant of SunPro Make, but not with the Sun/Oracle provided 110version of SunPro Make because the latter does not propagate command line 111macro definitions to sub make programs. 112 113NOTE: If you are compiling using a K&R C-compiler and like to install 114to a different dir than /usr/ccs, you need to edit all *.c files in 115the directory cmd/sccs/cmd/src. Look for the comments tagged XXX for further 116help and edit all strings in the #else parts of #ifdef PROTOTYPES. 117Replace the "/usr" prefix with your intended install path. 118 119 120If you like to "install" to a different intermediate directory, call e.g.: 121 122smake install DESTDIR=/tmp 123 124Note that you need to add all other make parameters as well on the command line 125when you use DESTDIR=<dir>. 126 127If you like to use sccs, you need to add /opt/schily/ccs/bin to your PATH. 128 129If your PATH has ${INS_BASE}/xpg4/bin before ${INS_BASE}/ccs/bin 130line in: ${INS_BASE}/xpg4/bin:${INS_BASE}/ccs/bin 131you will use the POSIX compliant variants of the SCCS tools. 132 133Further compile time options: 134 135SCCS implements the following compile time options that can be activated via 136 137 smake COPTX=-DXXX 138or 139 smake "COPTX=-DXXX -DYYY ..." 140 141where XXX is one of the following: 142 143BUG_1205145 144or 145GMT_TIME 146 This is a hacky compile time option introduced by Sun 147 between 1989 and 2006. It allows to store GMT based timestamps 148 in the SCCS history files instead of local time based timestamps. 149 150 Note that this compile option is deprecated since SCCS 151 started to support the SCCSv6 history format that stores 152 local time + GMT offset. 153 154 Future versions of SCCS may not support this anymore or 155 just stop compiling when the option is used. 156 157 158SCCS_FATALHELP 159 Print the equivalent of the "sccs help" command for failing commands 160 in addition to the historic short message that only includes the 161 SCCS error code. 162 163 This option is enabled by default. 164 165 166NO_NANOSECS 167 Do not include nanoseconds in the SCCSv6 time stamps. 168