#ifndef XCOMM
#define XCOMM /**/#
#endif
XCOMM @(#)Imakefile	3.11h 96/09/30 xlockmore
XCOMM

XCOMM      *** BEGIN XPM CONFIG SECTION ***

XCOMM Only the image.c and bat.c modes use this.
XCOMM If your system has libXpm, remove the 'XCOMM ' from the next line.
#define XpmLibrary

#ifdef XpmLibrary
          XPMDEF = -DHAS_XPM

XCOMM If you get an error "Cannot find xpm.h" while compiling, set
XCOMM XPMINC to the directory X11/xpm.h is in.  If your xpm.h is not in a
XCOMM X11 directory, edit the xpm modes to reflect this.  Below is a guess.
          XPMINC = -I/usr/local/include

XCOMM If you get an error "Connot find libXpm" while linking, set XPMLIBPATH
XCOMM to the directory libXpm.* is in.  Below is a guess.
          XPMLIB = -L/usr/local/lib -lXpm

#endif

XCOMM      *** END XPM CONFIG SECTION ***

XCOMM      *** BEGIN MESAGL CONFIG SECTION ***

XCOMM Only the gear.c mode uses this, see README.hackers.
XCOMM If your system has libMesaGL & widgets,
XCOMM remove the 'XCOMM ' from the next line.
XCOMM #define GLLibrary

#ifdef GLLibrary
          GLDEF = -DHAS_GL

XCOMM If you get an error "Cannot find GL/xmesa.h" while compiling, set
XCOMM GLINC to the directory GL/xmesa.h is in.
          GLINC = -I/usr/local/include

XCOMM If you get an error "Connot find libMesaGL" while linking, set GLLIBPATH
XCOMM to the directory libXpm.* is in.  Below is a guess.
          GLLIB = -L/usr/local/lib -lMesaGL -lMesaGLU

#endif

XCOMM      *** END MESAGL CONFIG SECTION ***

XCOMM    *** BEGIN CDE DT CONFIG SECTION ***
 
XCOMM COMMON DESKTOP ENVIRONMENT
XCOMM if your system has libDtSvc, remove the 'XCOMM ' from the next line
XCOMM #define DtSaverLibrary

#ifdef DtSaverLibrary
DTSAVERDEF = -DDT_SAVER
DTSAVERINC = -I/usr/dt/include
DTSAVERLIB = -L/usr/dt/lib -lDtSvc
#endif

XCOMM    *** END CDE DT CONFIG SECTION ***

XCOMM    *** BEGIN RPLAY/SOUND CONFIG SECTION ***
 
XCOMM Only xlock.c and resource.c use this
XCOMM if your system has librplay, remove the 'XCOMM ' from the next line
XCOMM #define RplayLibrary

#ifdef RplayLibrary
RPLAYDEF = -DHAS_RPLAY
#RPLAYINC = -I/share/include
RPLAYINC = -I/usr/local/include
#RPLAYLIB = -L/share/lib -lrplay
RPLAYLIB = -L/usr/local/lib -lrplay
#endif

XCOMM system play (optional software)
XCOMM SUNOS 4.1.3
XCOMM DEF_PLAY = "/usr/demo/SOUND/play sounds/"
XCOMM IRIX 5.3
XCOMM DEF_PLAY = "/usr/sbin/sfplay sounds/"
XCOMM LINUX and others
XCOMM DEF_PLAY = "/usr/local/bin/play.sh /usr/local/sounds/"
XCOMM uncomment the following if you are using one of the above
XCOMM RPLAYDEF = -DDEF_PLAY=\"$(DEF_PLAY)\"

XCOMM    *** END RPLAY/SOUND CONFIG SECTION ***

XCOMM    *** BEGIN RNG CONFIG SECTION ***

XCOMM Uncomment to use your system's Random Number Generator
XCOMM They usually come in 3 types

XCOMM Uncomment to use high-precision (but expensive) RNG
XCOMM SRANDDEF = -DSRAND=srand48
XCOMM LRANDDEF = -DLRAND=lrand48

XCOMM SRANDDEF = -DSRAND=srandom
XCOMM LRANDDEF = -DLRAND=random

XCOMM Least desirable RNG
XCOMM SRANDDEF = -DSRAND=srand
XCOMM LRANDDEF = -DLRAND=rand

XCOMM Normally use the above with (default)
XCOMM MAXRANDDEF = -DMAXRAND=2147483648.0
XCOMM Use the following if using srand/rand and NOT AIXV3
XCOMM MAXRANDDEF = -DMAXRAND=32767.0
RANDDEF = $(SRANDDEF) $(LRANDDEF) $(MAXRANDDEF)

XCOMM    *** END RNG CONFIG SECTION ***

      BITMAPDIR = ./bitmaps
      PIXMAPDIR = ./pixmaps

#ifndef __QNX__
#ifndef MathLibrary
#define MathLibrary -lm
#endif
#else
#define MathLibrary
      PASSWDDEF = -DHAS_SHADOW -Dlinux
      PASSWDLIB = -l/src/util/Lib/util
#endif

XCOMM KERBEROS
XCOMM   Kerberbos ver. 4
XCOMM      PASSWDDEF = -DHAS_KRB4
XCOMM      PASSWDINC = -I/usr/athena/include
XCOMM      PASSWDLIB = -L/usr/athena/lib -lkrb -ldes
XCOMM
XCOMM   Kerberos ver. 5  (good with b6)
XCOMM      PASSWDDEF = -DHAS_KRB5
XCOMM      PASSWDINC = -I/opt/krb5/include
XCOMM      PASSWDLIB = -L/opt/krb5/lib -lkrb5 -lcrypto -lcom_err

XCOMM DCE authentication (tested only on HP's)
XCOMM      PASSWDDEF = -DDCE_PASSWD
XCOMM      PASSWDINC = -I/usr/include/reentrant
XCOMM      PASSWDLIB = -ldce -lc_r

#ifdef UltrixArchitecture
EXTRA_LIBRARIES = -lauth
#endif

#ifdef SunArchitecture
#if SystemV4
XCOMM imake is usually not set up right here.
XCOMM Assume shadowing... usually correct.
XCOMM #if HasShadowPasswd
XCOMM       PASSWDDEF = -DHAS_SHADOW
XCOMM #endif
      PASSWDDEF = -DHAS_SHADOW

XCOMM Problems finding libXext.so.0 when sticky bit is set
EXTRA_LDOPTIONS = -R/usr/lib:/usr/openwin/lib

     PIXMAPTYPE = sol
#else
       SLEEPDEF = -DHAS_USLEEP
#if HasShadowPasswd
XCOMM        PASSWDDEF = -DSUNOS_ADJUNCT_PASSWD
      PASSWDDEF = -DHAS_SHADOW
#endif
     PIXMAPTYPE = sun
#endif
     BITMAPTYPE = sun
#else 
#if HasShadowPasswd
      PASSWDDEF = -DHAS_SHADOW
XCOMM   PASSWDLIB = -lshadow
#endif
#if defined(HPArchitecture) || defined(ApolloArchitecture)
#ifdef HPArchitecture
XCOMM If your site is using Secured Passwords,
XCOMM     PASSWDDEF = -DHPUX_SECURE_PASSWD
XCOMM If your site is using Passwd Etc,
XCOMM     PASSWDDEF = -DHP_PASSWDETC
XCOMM     PASSWDLIB = -lrgy -lnck -lndbm
XCOMM     PASSWDLIB = -lrgy -lnck -lndbm -lsec
      CCOPTIONS = -Aa
      SYSTEMDEF = -D_HPUX_SOURCE -DSYSV
#else
       SLEEPDEF = -DHAS_USLEEP
#endif
EXTRA_LIBRARIES = -lXhp11
     BITMAPTYPE = hp
     PIXMAPTYPE = hp
#else
#ifdef i386SVR4Architecture
EXTRA_LIBRARIES = -lsocket -lnsl -lgen
      PASSWDDEF = -DHAS_SHADOW
     BITMAPTYPE = x11
     PIXMAPTYPE = x11
#else
#if defined(FreeBSDArchitecture) || defined(NetBSDArchitecture) || defined(i386BsdArchitecture)
       SLEEPDEF = -DHAS_USLEEP
     BITMAPTYPE = bsd
     PIXMAPTYPE = bsd
#else
#ifdef LinuxArchitecture
       SLEEPDEF = -DHAS_USLEEP
     BITMAPTYPE = linux
     PIXMAPTYPE = linux
#if HasShadowPasswd && !UseElfFormat
EXTRA_LIBRARIES = -lgdbm
#endif
#else
#ifdef SGIArchitecture
     BITMAPTYPE = sgi
     PIXMAPTYPE = sgi
#else
#ifdef AIXArchitecture
     BITMAPTYPE = x11
     PIXMAPTYPE = x11
XCOMM If AIX 3.1 or less, do not have struct passwd and other things
#if OSMajorVersion < 3 || (OSMajorVersion == 3 && OSMinorVersion < 2)
      SYSTEMDEF = -DLESS_THAN_AIX3_2
#endif
XCOMM Use this if your site is using AFS:
XCOMM       PASSWDDEF = -DAFS
XCOMM       PASSWDINC = -I/usr/afsws/include
XCOMM       PASSWDLIB = -L/usr/afsws/lib -L/usr/afsws/lib/afs -lkauth -lubik -lprot -lrxkad -lrx -llwp -lauth -lsys -ldes -lcmd -lcom_err /usr/afsws/lib/afs/util.a
XCOMM You may need this one too.
XCOMM EXTRA_LIBRARIES = -laudit
#else
XCOMM Use this if your site is using OSF Enhanced Security:
XCOMM       PASSWDDEF = -DOSF1_ENH_SEC
XCOMM       PASSWDLIB = -lsecurity
     BITMAPTYPE = x11
     PIXMAPTYPE = x11
#endif
#endif
#endif
#endif
#endif
#endif
#endif

XCOMM  -DUSE_VROOT          allows xlock to run in root window (may
XCOMM                       cause problems with certain window managers)
XCOMM  -DALWAYS_ALLOW_ROOT  users can't turn off allowroot
XCOMM  -DSYSLOG             for paranoid administrators
XCOMM  -DMULTIPLE_ROOT      multiple root users ... security?
XCOMM  -DMOUSE_MOTION       password screen displayed with mouse motion
XCOMM  -DOLD_EVENT_LOOP     some machines may still need this (fd_set
XCOMM                       errors may be a sign)
XCOMM
XCOMM For personal use you may want to consider:
XCOMM  -DUSE_XLOCKRC        paranoid admin or unknown shadow passwd alg
XCOMM
XCOMM For labs you may want to consider:
XCOMM  -DAUTO_LOGOUT        enable auto-logout code
XCOMM  -DLOGOUT_BUTTON      enable logout button
XCOMM  -DCLOSEDOWN_LOGOUT   use with above two if using xdm
XCOMM  -DLO_BUTTON_TIME=5   minutes until logout button appears
XCOMM  -DSTAFF_FILE=\"/etc/xlock.staff\"  file of staff who are exempt

XCOMM May have to combine in one long line if "+=" does not work
        OPTDEF = -DUSE_VROOT -DALWAYS_ALLOW_ROOT
XCOMM        OPTDEF += -DSYSLOG
XCOMM        OPTDEF += -DMOUSE_MOTION
XCOMM        OPTDEF += -DMULTIPLE_ROOT
XCOMM        OPTDEF += -DOLD_EVENT_LOOP
XCOMM        0PTDEF += -DUSE_XLOCKRC
XCOMM        OPTDEF += -DAUTO_LOGOUT
XCOMM        OPTDEF += -DLOGOUT_BUTTON -DLO_BUTTON_TIME=5
XCOMM        OPTDEF += -DCLOSEDOWN_LOGOUT
XCOMM        OPTDEF += -DSTAFF_FILE=\"/etc/xlock.staff\"

XCOMM Here is your chance to override the default icon:
   MEDIUMBITMAP = m-$(BITMAPTYPE)
XCOMM   PACMANBITMAP = $(MEDIUMBITMAP)
   PACMANBITMAP = m-ghost

        DEFINES = -DDEF_FILESEARCHPATH=\"$(LIBDIR)/%T/%N%S\" \
$(SYSTEMDEF) $(SLEEPDEF) $(OPTDEF) $(RANDDEF)\
$(PASSWDDEF) $(XPMDEF) $(GLDEF) $(DTSAVERDEF) $(RPLAYDEF)\
$(PASSWDINC) $(XPMINC) $(GLINC) $(DTSAVERINC) $(RPLAYINC)
		
        DEPLIBS = $(DEPXLIB)
LOCAL_LIBRARIES = $(XLIB) $(XPMLIB) $(GLLIB) $(DTSAVERLIB) $(RPLAYLIB)
       LINTLIBS = $(LINTXLIB)
#if HasLibCrypt
       CRYPTLIB = -lcrypt
#endif
  SYS_LIBRARIES = $(CRYPTLIB) $(PASSWDLIB) MathLibrary
#if defined(FreeBSDArchitecture) || defined(NetBSDArchitecture)
   INSTPGMFLAGS = -s -m 4751
#endif
           HDRS = xlock.h mode.h vroot.h ras.h
           SRCS = xlock.c passwd.c resource.c\
		utils.c logout.c mode.c ras.c xbm.c color.c\
		ball.c bomb.c cartoon.c dclock.c flamen.c gear.c husker.c\
		julia.c pacman.c polygon.c sphere2.c star.c turtle.c\
		random.c
           OBJS = xlock.o passwd.o resource.o\
		utils.o logout.o mode.o ras.o xbm.o color.o\
		ball.o bomb.o cartoon.o dclock.o flamen.o gear.o husker.o\
		julia.o pacman.o polygon.o sphere2.o star.o turtle.o\
		random.o

BITMAPS = ghost.xbm

AllTarget(xlock)
#ifdef XpmLibrary
depend:: $(BITMAPS)
#else
depend:: $(BITMAPS)
#endif
ComplexProgramTarget(xlock)
InstallAppDefaults(XLock)
InstallManPage(xlock,$(MANDIR))

clean::
	$(RM) flag.h $(BITMAPS)

clean.all::	clean
	$(RM) Makefile

#if ProjectX < 6
pacman.c: ghost.xbm
#endif

ghost.xbm:
	$(RM) ghost.xbm
	$(LN) ${BITMAPDIR}/$(PACMANBITMAP).xbm ghost.xbm
