/* Discuss System Build Parameters */

/* To configure Discuss for your site, define the following C */
/* preprocessor macros as appropriate.  The values you define will be */
/* assigned to Make macros later in this file, and this file will then be
/* included as part of Imake.tmpl, the template that is used to */
/* produce a Makefile from an Imakefile.  The reason for the extra */
/* step with cpp is that standard make doesn't have #ifdef, etc. */

/*####################################################################### */

/* Choose whether you want profiled libraries or not (normal */
/* libraries are always built. */
#define BuildNormalLibraries
/* #define BuildProfiledLibraries */

/* ####################################################################### */

/* Uncomment this line if you want to build local copies of the */
/* utilities makedepend, com_err (compile_et), and ss. */
/*#define BuildUtils*/

/*
 * The next three macros define the directories that utility files
 * (binaries, headers, and libraries) will be installed (if you build
 * them) and where they will be run from.  
 */
#define UtilBinDir	/usr/athena
#define UtilIncDir	$(TOP)/utils/include
#define UtilLibDir	$(TOP)/utils/lib

/*
 * You should only have to change these if are not building local
 * copies and the binaries happen to be in separate directories.
 */
#define DependCmd	$(UTILBINDIR)/makedepend
#define CompileEtCmd	$(UTILBINDIR)/compile_et
#define MkCmdsCmd	$(UTILBINDIR)/mk_cmds

/* ####################################################################### */

/*
 * Define UseKerberos and UseZephyr if you want to.  If either is
 * defined, be sure to define PanssCcOpts and PanssLdOpts so the
 * compiler and linker can find the header files and libraries.
 * If UseKerberos is not defined, then the client will try to use
 * "I am who I say I am" authentication.  This should only be used on
 * an isolated network where all machines are trusted.
 */     
/*#define UseKerberos SRZ*/
/*#define UseZephyr SRZ*/
#define PanssCcOpts	-I/usr/athena/include
#define PanssLdOpts	-L/usr/athena/lib

/*
 * Defining WeakServerRealm will build a discuss server that
 * accepts weak "I am who I say I am" authentication.  WeakServerRealm
 * should be defined as the realm name that these clients will be
 * authenticated as.  This variable may be used in conjunction with
 * Kerberos authentication, in which case ACL's can be used to shut
 * these weak users out.
 */     
#define WeakServerRealm '"???"' /*SRZ*/

/* ####################################################################### */

/* General Discuss configuration */

/* Descriptions of definitions:

DestDir: This is the directory that user programs are installed.  User
programs include the discuss client as well as the meeting
manipulation utilities (mkds, rmds, ...) and edsc.

ServerDir: This is the directory of the discuss subprocess server.
Server:  This is the location of the discuss subprocess server.  When
a client program accesses meetings on the same machine, discuss bypasses the
network and creates a subprocess server.  Set this to the location of
the server program, where disserve will be installed.

Realm:  This is the name of the local Kerberos realm.  This is used to
identify the administrative realm when using the "disserve" subprocess
server, and the identity of non-authenticated users "???@REALM".  Set
this to your local Kerberos realm if you have one, or a possible
Kerberos realm name (the current convention is to use a Internet
Domain name; e.g., "LCS.MIT.EDU").

InfoDir, InfoDirParent: 
This is the directory where the command-based Discuss client
finds its help files.  This would normally be under /usr/lib/discuss,
or /usr/local/lib/discuss.  The help files are in the distribution
under source/client/info; to install, copy/tar the directory into the
desired location.  InfoDirParent is the parent of InfoDir, so the install
process can create it if necessary.

ServiceName:  This is the service name used to find a port number.
The default is "discuss", port 2100/tcp.

ServicePort:  This is the default service port if ServiceName is not in
/etc/services.  The default is port 2100.

ServerLocal: This is the location of a copy of the subprocess server which
is not a protected subsystem, but relies on filesystem protections
instead.  The name is path-searched if it doesn't begin with '/'.

ServerName:  The name of the server program (argv[0] of the subprocess).

DsPipe:  This was used by dsmail.c to enter transactions into
meetings;  it is obsolete.

DscSetup:  This name of the DSC_SETUP program.  This program is
invoked by the various clients when a user first runs Discuss, to
create an initial .meetings file. 

DsMainServer: The canonical hostname of the first Discuss server you
intend to set up.  This name is munged into the DSC_SETUP script to
create new .meetings files with the Everybody and New_Meetings
meeting.  If this scheme does not fit your plans, don't define
DsMainServer and edit mclient/dsc_setup.sh by hand.

*/

#define DestDir		/usr/athena/bin
#define ServerDir	/usr/athena/etc
#define Server 		$(DS_SERVERDIR)/disserve
#define Realm  		ATHENA.MIT.EDU
#define InfoDir 	/usr/athena/lib/discuss/info
#define InfoDirParent 	/usr/athena/lib/discuss
#define ServiceName 	discuss
#define ServicePort	2100
#define ServerLocal 	disserve-fs
#define ServerName 	disserve
#define DsPipe 		/usr/athena/etc/dspipe
#define DscSetup 	dsc_setup
#define DsMainServer	CHARON.MIT.EDU

/* ####################################################################### */

/* DO NOT EDIT anything beyond this point. */

/* Convert knowledge of subsystems to more useful macros. */
#ifdef UseKerberos
#define KrbDef	 	-DKERBEROS
#define KrbLib		-lkrb
#define DesLib		-ldes
#define dsLib		-ldsk
#define dsLibDep	$(TOP)/libds/libdsk.a
#else
#define KrbDef	 	/**/
#define KrbLib		/**/
#define DesLib		/**/
#define dsLib		-lds
#define dsLibDep	$(TOP)/libds/libds.a
#endif
#ifdef UseZephyr
#define ZephyrDef	-DZEPHYR
#define ZephyrLib	-lzephyr
#else
#define ZephyrDef	/**/
#define ZephyrLib	/**/
#endif

#ifdef BuildUtils
#define ComErrDep	$(UTILLIBDIR)/libcom_err.a
#define SsDepLib	$(UTILLIBDIR)/libss.a
#endif

/* ####################################################################### */

IMAKE 		= $(IMAKESRC)/imake

DEPEND 		= DependCmd
COMPILE_ET	= CompileEtCmd
MK_CMDS		= MkCmdsCmd

CONFIGSRC 	= $(TOP)/config
CLIENTSRC 	= $(TOP)/clients
UTILSRC 	= $(TOP)/util
IMAKESRC 	= $(CONFIGSRC)
UTILBINDIR	= UtilBinDir
UTILLIBDIR	= UtilLibDir
UTILINCDIR	= UtilIncDir
ETDIR		= $(TOP)/ets

KRBDEF		= KrbDef
ZEPHYRDEF	= ZephyrDef

PANSS_CCOPTS	= PanssCcOpts
PANSS_LDOPTS	= PanssLdOpts
KRBLIB		= KrbLib
DESLIB		= DesLib
ZEPHYRLIB	= ZephyrLib

#ifdef BuildUtils
COMERRDEP	= ComErrDep
SSDEPLIB	= SsDepLib
#else
COMERRDEP	=
SSDEPLIB	=
#endif

DESTDIR		= DestDir
DSLIBDIR	= LibDir
DS_SERVERDIR	= ServerDir
DS_SERVER	= Server
DS_SERVERLOCAL	= ServerLocal
DS_SERVERNAME	= ServerName
DS_INFODIR	= InfoDir
DS_INFODIRP	= InfoDirParent
DS_REALM	= Realm
DS_SERVICENAME	= ServiceName
DS_SERVICEPORT	= ServicePort
DS_DSPIPE	= DsPipe
DS_DSCSETUP	= DscSetup
DS_MAINSERVER	= DsMainServer
#ifdef WeakServerRealm
DS_WEAKREALM	= WeakServerRealm
#else
DS_WEAKREALM	= /**/
#endif
DSLIB		= dsLib
DSLIBDEP	= dsLibDep
