SOI Source, Binary, and Library File Locations L. Bacon, R. S. Bogart, L. SÖ, & J. Suryanarayanan 1992.IX.23 SOI Technical Note 92-088 This note describes the unix file system locations and make procedures we are following for controlled software under the SOI project. 1. All path names given here are relocatable to a root path ($ROOT). The present root path is /home/soi, physically mounted at present on the /d6 disk (unimportant) on quake. It is assumed that there will always be either a mount point or a symbolic link for ($ROOT) = /home/soi on quake and its clients. The root path on umbra is /usr/people/phil. On other systems (e.g. aditya and rick) the location of ($ROOT) is discretionary. 2. The root path includes two branches, src, and usr. ($ROOT)/src contains subdirectories doc, include, scripts, and multiple subdirectories with names of the form xxx.d, where xxx is the set of names of programs and libraries for which there are source files. The ($ROOT)/src/doc directory contains the subdirectory man. ($ROOT)/usr contains the subdirectory local, which in turn contains subdirectories bin and lib. There may be symbolic links of $(ROOT)/bin to $(ROOT)/usr/local/bin and similarly for lib. 3. The controlled copy of $(ROOT)/src resides on quake. If possible, the versions of $(ROOT)/src on other systems will point to the controlled directory via network-mounts. ($ROOT)/usr is local to each machine, except that machines sharing a common /usr may also share ($ROOT)/usr. Thus it is possible and desirable to mount ($ROOT)/src, but not ($ROOT)/usr. 4. Individual files on system /usr/local/bin and /usr/local/lib may be symbolically linked to the corresponding files on ($ROOT)/usr/local/[bin,lib] at the administrator's discretion. The symbolic links do not go the other way. 5. Command level programs xxx, will have their sources and Makefiles on directories named (in this example) ($ROOT)/src/xxx.d. Linkable libraries will have their sources on directories named ($ROOT)/src/libxxx.d. For example, there are directories .../src/pipe.d and .../src/libgds.d. 6. Makefiles should make use of this directory structure by defining a destination path ($DESTROOT) relocatably, i.e. by following the path up to ($ROOT) by (..). 7. "usr" is pronounced user. "src" is pronounced source. "lib" stands for library and rhymes with vibe. "bin" stands for binary and rhymes with fine. The existence of directory doc/man is not intended to reflect on discriminatory admissions procedures of medical schools. Illustration: (/home/soi)/ src/ doc/ ... doc/ man/ include/ fits.h, gds.h, Math.h, ... scripts/ ... libgds.d/ Makefile, ... libM.d/ Makefile, ... lib....d/ Makefile, ... pipe.d/ Makefile, ... ....d/ Makefile, ... usr/ local/ bin/ pipe ... lib/ libgds.a libM.a ...