-$Header$
+README file for creating Moira
-This is the beta test version of Moira (version 2.0). See the
-document doc/install for building and installation instructions.
-Contents of this distribution:
+This is the root directory of MIT Project Athena's Moira service
+management system source code.
-backup: source to smsbackup & smsrestore. Depends on files in ~/db
+The Makefiles are set up so that the source tree can be
+separate from the tree(s) containing binaries. We have
+found this useful since we have to have separate sets of binaries,
+for the IBM RTPC and Vaxstation II machines.
-bin: `make install' will put binaries here that are only used on the
- sms server machine, not needed on clients. This should be a
- duplicate of /u1/sms/bin on the sms machine.
+The default value of the root of the Moira source tree
+(this directory) is /mit/moiradev/src. You can set it
+to something else by specifying, for example, "make SRCDIR=/x/y/z"
+if you want the source in /x/y/z.
-clients: contains subdirs with source to each of the client programs
+Here are the steps for building the Moira source.
-db: Database code: scripts and programs to create a database
+1. Create a directory to hold the tree of object files,
+ say it's /foo/bar/baz.
-dbck: database consistency checker
+2. Cd to that directory and run the command:
-dcm: the Data Control Manager
+ make -f /x/y/z/util/makeconfig SRCDIR=/x/y/z
-doc: Documentation. There are a few smaller documents in this
- directory. the tech_plan subdirectory contains the most
- detailed document on the design and operation of moira.
+ where /x/y/z is the root of the source tree (not necessary
+ if the root is /mit/moiradev/src). This creates the necessary
+ directories and copies Makefiles into them.
-et: Sources to com_err stuff. This is a private copy so that the
- com_err() routine supports printf style arguments.
+3. Cd to util/imake.includes. Read through config.Imakefile, turning
+ on appropriate flags for your installation. Change SRCTOP appropriately.
-gdb: Noah Mendelsohn's GDB library (which forms the core of our RPC
- mechanism) This is a private copy because the startup
- negotiation is different. This directory also contains
- documentation on the GDB library.
+4. Still in the top of the object directory (/foo/bar/baz
+ of Step 1), type "make world" (or "make world SRCDIR=/x/y/z).
-gen: server config file generators. These are the programs that
- extract info from the database. The shell scripts that
- install the files are also here.
-
-include: include files. Has soft links to header files in other dirs.
- Reference include/foo.h as <foo.h>, and add a -I../include in
- your Makefiles.
-
-lib: Random libraries, including an improved version of malloc which does
- "scribble checking" to verify that you aren't trashing your address
- space. This dir includes soft-links to files in other dirs.
-
-man: man pages for SMS programs
-
-reg_svr: the daemon to handle the back end of user registration
-
-regtape: a program to read the tape from the registrar's office
-
-rpc: The code for the RPC mechanism: libsms.a is built here.
-
-server: smsd & libsmsglue.a come from here.
-
-ss: sources to libss.a, the line parser used by smstest.
-
-test: smstest
-
-update: Routines for performing updates to servers (including its own
- GDB-based RPC).
+5. Run "make install". You may want to check that programs
+ are installed where you want. Then add the appropriate
+ directories to your PATH environment variable.