XCOMM @(#)Imakefile	23.9 91/09/27
XCOMM Imakefile - xlock
XCOMM

      BITMAPDIR = ./bitmaps

#ifndef __QNX__
#ifndef MathLibrary
#define MathLibrary -lm
#endif
#else
#define MathLibrary
      CCOPTIONS += -DHAS_SHADOW -Dlinux
      SHADOWLIB = -l/src/util/Lib/util
#endif

XCOMM Add your system to the list if you have lrand48 and srand48
#if (defined SunArchitecture) || (defined LinuxArchitecture) || (defined HPArchitecture)
      CCOPTIONS += -DHAS_RAND48
#else
#if (!defined SGIArchitecture) && (SystemV || SystemV4)
      CCOPTIONS += -DHAS_RAND
#else
      CCOPTIONS += -DHAS_RANDOM
#endif
#endif

#ifdef UltrixArchitecture
EXTRA_LIBRARIES = -lauth
#endif

#ifdef SunArchitecture
#if SystemV4
      CCOPTIONS += -DSOLARIS_SHADOW

XCOMM Solaris may not have its own correct OSMinorVersion
XCOMM compare with uname -a, correct if wrong at /usr/openwin/lib/config/sun.cf
XCOMM If just using gcc, you may want to remove -xF references in sun.cf and
XCOMM Imake.tmpl if you get a
XCOMM cc: language F not recognized

XCOMM If SunOS 5.2 or less, do not have nanosleep
#if OSMajorVersion > 5 || (OSMajorVersion == 5 && OSMinorVersion > 2)
      CCOPTIONS += -DHAS_NANOSLEEP
EXTRA_LIBRARIES += -lposix4 -lthread
#else
EXTRA_LIBRARIES = -lnsl -lposix4
#endif
#else
      CCOPTIONS += -DHAS_USLEEP
#if HasShadowPasswd
      CCOPTIONS += -DHAS_SHADOW
#endif
#endif
       ICONTYPE = sun
#else 
#if HasShadowPasswd
      CCOPTIONS += -DHAS_SHADOW
      SHADOWLIB = -lshadow
#endif
#if defined(HPArchitecture) || defined(ApolloArchitecture)
#ifdef HPArchitecture
XCOMM HP's "make" can not handle "+=", so either use GNU's "make" or group
XCOMM  all your CCOPTIONS into one long line and use an "=" instead
XCOMM If your site is using Secured Passwords,
XCOMM  add -DHPUX_SECURE_PASSWD to CCOPTIONS
XCOMM If your site is using Passwd Etc, add -DHP_PASSWDETC to CCOPTIONS
      CCOPTIONS += -Aa -D_HPUX_SOURCE -DSYSV
#else
      CCOPTIONS += -DHAS_USLEEP
#endif
EXTRA_LIBRARIES = -lXhp11
XCOMM Use this one instead if your site is using Passwd Etc:
XCOMM EXTRA_LIBRARIES = -lrgy -lnck -lndbm -lXhp11
       ICONTYPE = hp
#else
#if defined(FreeBSDArchitecture) || defined(NetBSDArchitecture) || defined(i386BsdArchitecture)
      CCOPTIONS += -DHAS_USLEEP
       ICONTYPE = bsd
#else
#ifdef LinuxArchitecture
      CCOPTIONS += -DHAS_USLEEP
       ICONTYPE = linux
#else
#ifdef SGIArchitecture
       ICONTYPE = sgi
#else
#ifdef AIXArchitecture
       ICONTYPE = x11
XCOMM Use this if your site is using AFS:
XCOMM CCOPTIONS += -DAFS -I/usr/afsws/include
XCOMM EXTRA_LIBRARIES = -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 And if you need this AFS lib as well:
XCOMM EXTRA_LIBRARIES += -laudit
#else
XCOMM      CCOPTIONS += -DOFS1_ENH_SEC
       ICONTYPE = x11
#endif
#endif
#endif
#endif
#endif
#endif

XCOMM For labs you may want to consider:
XCOMM  -DAUTO_LOGOUT        enable auto-logout code
XCOMM  -DLOGOUT_BUTTON      enable logout button
XCOMM  -DLO_BUTTON_TIME=5   minutes until logout button appears
XCOMM  -DALWAYS_ALLOW_ROOT  users can't turn off allowroot
XCOMM  -DSTAFF_FILE=\"/etc/xlock.staff\"  file of staff who are exempt

XCOMM      CCOPTIONS += -DAUTO_LOGOUT
XCOMM      CCOPTIONS += -DLOGOUT_BUTTON -DLO_BUTTON_TIME=5
XCOMM      CCOPTIONS += -DSTAFF_FILE=\"/etc/xlock.staff\"
      CCOPTIONS += -DALWAYS_ALLOW_ROOT

XCOMM Here is your chance to override the default icon:
       LIFEICON = $(ICONTYPE)
       MAZEICON = $(ICONTYPE)
      IMAGEICON = $(ICONTYPE)

        DEFINES = -DDEF_FILESEARCHPATH=\"$(LIBDIR)/%T/%N%S\" -DUSE_VROOT
        DEPLIBS = $(DEPXLIB)
LOCAL_LIBRARIES = $(XLIB)
       LINTLIBS = $(LINTXLIB)
#if HasLibCrypt
       CRYPTLIB = -lcrypt
#endif
  SYS_LIBRARIES = MathLibrary $(CRYPTLIB) $(SHADOWLIB)
#if defined(FreeBSDArchitecture) || defined(NetBSDArchitecture)
   INSTPGMFLAGS = -s -m 4751
#endif
           HDRS = xlock.h
           SRCS = xlock.c hsbramp.c resource.c usleep.c logout.c\
		bat.c blot.c bounce.c flame.c galaxy.c\
		geometry.c grav.c helix.c hop.c hyper.c\
                kaleid.c life.c life3d.c maze.c pyro.c qix.c\
		rect.c rock.c rotor.c sphere.c spiral.c\
		spline.c swarm.c wator.c world.c worm.c\
		swirl.c image.c blank.c
           OBJS = xlock.o hsbramp.o resource.o usleep.o logout.o\
		bat.o blot.o bounce.o flame.o galaxy.o\
		geometry.o grav.o helix.o hop.o hyper.o\
                kaleid.o life.o life3d.o maze.o pyro.o qix.o\
		rect.o rock.o rotor.o sphere.o spiral.o\
		spline.o swarm.o wator.o world.o worm.o\
		swirl.o image.o blank.o

AllTarget(xlock)
depend:: life.xbm maze.xbm image.xbm
ComplexProgramTarget(xlock)
InstallAppDefaults(XLock)
      MANSUFFIX = 1
InstallManPage(xlock,$(MANDIR))

clean::
	$(RM) life.xbm image.xbm maze.xbm

clean.all::	clean
	$(RM) Makefile

#if ProjectX < 6
life.c: life.xbm
maze.c: maze.xbm
image.c: image.xbm
#endif

life.xbm:
	$(RM) life.xbm
	$(LN) ${BITMAPDIR}/life-$(LIFEICON).xbm life.xbm

maze.xbm:
	$(RM) maze.xbm
	$(LN) ${BITMAPDIR}/maze-$(MAZEICON).xbm maze.xbm

image.xbm:
	$(RM) image.xbm
	$(LN) ${BITMAPDIR}/image-$(IMAGEICON).xbm image.xbm
