Edit

IABSD.fr/xenocara/app/xlockmore/make.com

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2006-11-26 11:07:42
    Hash : 110b2a92
    Message : Importing xlockmore 5.22

  • app/xlockmore/make.com
  • $ save_verify='f$verify(0)
    $! set ver
    $!
    $!      VMS compile and link for xlockmore
    $!
    $! USAGE:
    $! @make [debug clobber clean]
    $!       debug : compile with degugger switch
    $!       clean : clean all except executable
    $!       clobber : clean all
    $!
    $! If you have
    $!              XPM library
    $!              XVMSUTILS library (VMS6.2 or lower)
    $!              Mesa GL library
    $! insert the correct directory instead of X11 or GL:
    $ xvmsutilsf="X11:XVMSUTILS.OLB"
    $ xpmf="SYS$LIBRARY:LIBXPM.OLB"
    $ glf="GL:LIBMESAGL.OLB"
    $ glf_share="GL:LIBMESAGL.EXE"
    $ gluf="GL:LIBMESAGLU.OLB"
    $ gluf_share="GL:LIBMESAGLU.EXE"
    $ ttff="SYS$LIBRARY:LIBTTF.OLB"
    $ glttf="SYS$LIBRARY:LIBGLTT.OLB"
    $ freetypef="SYS$LIBRARY:FREETYPE.OLB"
    $ ftglf="SYS$LIBRARY:LIBFTGL.OLB"
    $ zlibf="SYS$LIBRARY:LIBZ.OLB"
    $ mmovf="SYS$LIBRARY:MMOV.OLB"
    $ mmovf2="SYS$SHARE:MMOV.EXE"
    $ magickf="SYS$LIBRARY:MAGICKSHR.OLB"
    $!
    $! Default for some commands
    $ xl_link=="link"
    $ xl_cc=="cc/name=(as_is,short)/float=ieee"
    $ xl_cxx=="cxx/name=(as_is,short)/float=ieee/assume=(nostdnew,noglobal_array_new"
    $!
    $! Assume C.
    $ deccxx=0
    $! Assume C++ (but may not link on VMS6.2 or lower)
    $! deccxx=1
    $! test on C++.
    $! deccxx=f$search("SYS$SYSTEM:CXX$COMPILER.EXE") .nes. ""
    $!
    $! Already assumes DEC C on Alpha.
    $! Assume VAX C on VAX.
    $! decc=0
    $! Assume DEC C on VAX.
    $! decc=1
    $! test on DEC C.
    $ decc=f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. ""
    $!
    $! if vroot<>0 the use of the root window is enabled
    $ vroot=1
    $! vroot=0
    $!
    $! if bomb<>0 the use bomb mode is included (does not come up in random mode)
    $ bomb=1
    $! bomb=0
    $!
    $! if disable_interactive<>0 then interactive modes are disabled (useful for
    $! production environments)
    $ disable_interactive=0
    $! disable_interactive=1
    $!
    $! if unstable<>0 some of these mode(s) included could be a little buggy
    $! unstable=0
    $ unstable=1
    $!
    $! if sound<>0 sound capability is included (only available on Alpha)
    $! from vms_amd.c and vms_amd.h
    $ sound=1
    $! sound=0
    $!
    $! Memory Check stuff.  Very experimental!
    $ check=0
    $! check=1
    $
    $! Compliant colour map if <>1
    $ complmap=0
    $! complmap=1
    $!
    $!
    $! NOTHING SHOULD BE MODIFIED BELOW
    $!
    $ if p1 .eqs. "CLEAN" then goto Clean
    $ if p1 .eqs. "CLOBBER" then goto Clobber
    $!
    $ defs=="VMS"
    $ dtsaver=f$search("SYS$LIBRARY:CDE$LIBDTSVC.EXE") .nes. ""
    $ xpm=f$search("''xpmf'") .nes. ""
    $ gl=f$search("''glf'") .nes. ""
    $ gl_share=f$search("''glf_share'") .nes. ""
    $ glu=f$search("''gluf'") .nes. ""
    $ glu_share=f$search("''gluf_share'") .nes. ""
    $ gltt=f$search("''glttf'") .nes. ""
    $ ttf=f$search("''ttff'") .nes. ""
    $ ftgl=f$search("''ftglf'") .nes. ""
    $ zlib=f$search("''zlibf'") .nes. ""
    $ ft=f$search("''freetypef'") .nes. ""
    $ mmov=f$search("''mmovf'") .nes. ""
    $ mmov2=f$search("''mmovf2'") .nes. ""
    $ use_magick=f$search("''magickf'") .nes. ""
    $ iscxx=f$search("SYS$SYSTEM:CXX$COMPILER.EXE") .nes. ""
    $ axp=f$getsyi("HW_MODEL") .ge. 1024
    $ sys_ver=f$edit(f$getsyi("version"),"compress")
    $ if f$extract(0,1,sys_ver) .nes. "V"
    $ then
    $   type sys$input
    This script will assume that the operating system version is at least V7.0.
    $!
    $   sys_ver="V7.0"
    $ endif
    $ sys_maj=0+f$extract(1,1,sys_ver)
    $ if sys_maj .lt. 7
    $ then
    $   xvmsutils=f$search("''xvmsutilsf'") .nes. ""
    $ endif
    $!
    $! Create .opt file
    $ close/nolog optf
    $ open/write optf xlock.opt
    $!
    $ if iscxx then defs=="''defs',HAVE_CXX"
    $ if ttf then defs=="''defs',HAVE_TTF"
    $ if gltt then defs=="''defs',HAVE_GLTT"
    $ if ft then defs=="''defs',HAVE_FREETYPE"
    $ if ftgl .and. zlib then defs=="''defs',HAVE_FTGL"
    $ if use_magick then defs=="''defs',USE_MAGICK"
    $ if complmap then defs=="''defs',COMPLIANT_COLORMAP"
    $ if xpm then defs=="''defs',HAVE_XPM"
    $ if gl .or. gl_share then defs=="''defs',USE_GL,HAVE_GLBINDTEXTURE"
    $ if dtsaver then defs=="''defs',USE_DTSAVER"
    $ if mmov .and. sound
    $ then
    $   defs=="''defs',HAS_MMOV"
    $   if f$search("MMOV.DIR") .eqs. ""
    $   then
    $     create/dir [.mmov]
    $     set def [.mmov]
    $     copy SYS$COMMON:[SYSHLP.EXAMPLES.MMOV.COMMON]*.* []
    $! spawn included to avoid unwanted redefinition of logicals
    $     spawn @build_common
    $     copy SYS$COMMON:[SYSHLP.EXAMPLES.MMOV.VIDEO]readavi.c []
    $     spaw @[-]mmov
    $     set def [-]
    $     endif
    $   endif
    $ if axp .and. sound then defs=="''defs',USE_VMSPLAY"
    $ if sys_maj .lt. 7
    $ then
    $   if xvmsutils then defs=="''defs',USE_XVMSUTILS"
    $ endif
    $ if vroot then defs=="''defs',USE_VROOT"
    $ if bomb then defs=="''defs',USE_BOMB"
    $ if disable_interactive then defs=="''defs',DISABLE_INTERACTIVE"
    $ if unstable then defs=="''defs',USE_UNSTABLE"
    $ if check then defs=="''defs',DEBUG"
    $! The next must be the last one.
    $ if sys_maj .ge. 7
    $ then
    $   defs=="''defs',HAVE_USLEEP"
    $   defs=="''defs',SRAND=""""srand48"""",LRAND=""""lrand48"""",MAXRAND=2147483648.0"
    $ endif
    $!
    $! Establish the Compiling Environment
    $!
    $! Set compiler command
    $! Put in /include=[] for local include file like a pwd.h ...
    $!   not normally required.
    $     xl_cxx=="cxx/name=(as_is,short)/float=ieee/assume=(nostdnew,noglobal_array_new)/include=([],[.xlock])/define=(''defs')"
    $ if deccxx
    $ then
    $   xl_cc=="cxx/name=(as_is,short)/float=ieee/assume=(nostdnew,noglobal_array_new)/include=([],[.xlock])/define=(''defs')"
    $ else
    $   if axp
    $   then
    $     xl_cc=="cc/name=(as_is,short)/float=ieee/include=([],[.xlock])/define=(''defs')"
    $   else
    $     if decc
    $     then
    $!       xl_cc=="cc/decc/standard=vaxc/include=([],[.xlock])/define=(''defs')"
    $       xl_cc=="cc/decc/include=([],[.xlock])/define=(''defs')"
    $     else ! VAX C
    $       xl_cc=="cc/include=([],[.xlock])/define=(''defs')"
    $     endif
    $   endif
    $ endif
    $ if p1 .eqs. "DEBUG" .or. p2 .eqs. "DEBUG" .or. p3 .eqs. "DEBUG"
    $ then
    $   if deccxx
    $   then
    $     xl_cc=="cxx/name=(as_is,short)/float=ieee/assume=(nostdnew,noglobal_array_new)/deb/noopt/include=([],[.xlock])/define=(''defs')/list"
    $   else
    $     if axp
    $     then
    $       xl_cc=="cc/name=(as_is,short)/float=ieee/deb/noopt/include=([],[.xlock])/define=(''defs')/list"
    $     else
    $       if decc
    $       then
    $!         xl_cc=="cc/deb/noopt/decc/standard=vaxc/include=([],[.xlock])/define=(''defs')/list"
    $         xl_cc=="cc/deb/noopt/decc/include=([],[.xlock])/define=(''defs')/list"
    $       else ! VAX C
    $         xl_cc=="cc/deb/noopt/include=([],[.xlock])/define=(''defs')/list"
    $       endif
    $     endif
    $   endif
    $   if iscxx
    $   then
    $     xl_link=="cxxlink/deb"
    $   else
    $     xl_link=="link/deb"
    $   endif
    $ else
    $   if iscxx then xl_link=="cxxlink/trace"
    $ endif
    $!
    $ if axp .or. .not. decc
    $ then
    $   define/nolog sys sys$library
    $ endif
    $!
    $ write sys$output "Linking Include Files"
    $ call make bat.xbm    "set file/enter=[]bat.xbm [.bitmaps]l-xlock.xbm"   [.bitmaps]l-xlock.xbm
    $ call make bounce.xbm  "set file/enter=[]bounce.xbm [.bitmaps]l-xlock.xbm" [.bitmaps]l-xlock.xbm
    $ call make decay.xbm  "set file/enter=[]decay.xbm [.bitmaps]l-xlock.xbm" [.bitmaps]l-xlock.xbm
    $! call make eyes.xbm  "set file/enter=[]eyes.xbm [.bitmaps]m-dec.xbm"    [.bitmaps]m-dec.xbm
    $ call make eyes.xbm   "set file/enter=[]eyes.xbm [.bitmaps]m-grelb.xbm"  [.bitmaps]m-grelb.xbm
    $ call make eyes2.xbm  "set file/enter=[]eyes2.xbm [.bitmaps]m-grelb-2.xbm" [.bitmaps]m-grelb-2.xbm
    $ call make flag.xbm   "set file/enter=[]flag.xbm [.bitmaps]m-dec.xbm"    [.bitmaps]m-dec.xbm
    $ call make image.xbm  "set file/enter=[]image.xbm [.bitmaps]m-dec.xbm"   [.bitmaps]m-dec.xbm
    $ call make life.xbm   "set file/enter=[]life.xbm [.bitmaps]s-grelb.xbm"  [.bitmaps]s-grelb.xbm
    $! call make life.xbm  "set file/enter=[]life.xbm [.bitmaps]s-dec.xbm"    [.bitmaps]s-dec.xbm
    $ call make life2.xbm  "set file/enter=[]life2.xbm [.bitmaps]s-grelb-2.xbm" [.bitmaps]s-grelb-2.xbm
    $ call make life1d.xbm "set file/enter=[]life1d.xbm [.bitmaps]t-x11.xbm"  [.bitmaps]t-x11.xbm
    $ call make maze.xbm   "set file/enter=[]maze.xbm [.bitmaps]l-dec.xbm"    [.bitmaps]l-dec.xbm
    $ call make puzzle.xbm "set file/enter=[]puzzle.xbm [.bitmaps]l-xlock.xbm" [.bitmaps]l-xlock.xbm
    $ if xpm
    $ then
    $   call make bat.xpm    "set file/enter=[]bat.xpm [.pixmaps]l-xlock.xpm"   [.pixmaps]l-xlock.xpm
    $   call make bounce.xpm  "set file/enter=[]bounce.xpm [.pixmaps]l-xlock.xpm" [.pixmaps]l-xlock.xpm
    $   call make decay.xpm  "set file/enter=[]decay.xpm [.pixmaps]l-xlock.xpm" [.pixmaps]m-dec.xpm
    $!   call make decay.xpm  "set file/enter=[]decay.xpm [.pixmaps]m-dec.xpm"   [.pixmaps]m-dec.xpm
    $   call make flag.xpm   "set file/enter=[]flag.xpm [.pixmaps]m-dec.xpm"    [.pixaps]m-dec.xpm
    $   call make image.xpm  "set file/enter=[]image.xpm [.pixmaps]m-dec.xpm"   [.pixmaps]m-dec.xpm
    $   call make maze.xpm   "set file/enter=[]maze.xpm [.pixmaps]m-dec.xpm"    [.pixmaps]m-dec.xpm
    $   call make puzzle.xpm  "set file/enter=[]puzzle.xpm [.pixmaps]l-xlock.xpm" [.pixmaps]l-xlock.xpm
    $!   call make puzzle.xpm "set file/enter=[]puzzle.xpm [.pixmaps]m-dec.xpm" [.pixmaps]m-dec.xpm
    $ endif
    $!
    $ write sys$output "Compiling XLock whith the folowing defines ="
    $ write sys$output "''defs'"
    $ call make [.xlock]xlock.obj     "xl_cc /object=[.xlock] [.xlock]xlock.c"     [.xlock]xlock.c [.xlock]xlock.h [.xlock]mode.h [.xlock]vroot.h
    $ call make [.xlock]passwd.obj    "xl_cc /object=[.xlock] [.xlock]passwd.c"    [.xlock]passwd.c [.xlock]xlock.h
    $ call make [.xlock]resource.obj  "xl_cc /object=[.xlock] [.xlock]resource.c"  [.xlock]resource.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.xlock]parsecmd.obj  "xl_cc /object=[.xlock] [.xlock]parsecmd.c"  [.xlock]parsecmd.c
    $ call make [.xlock]util.obj      "xl_cc /object=[.xlock] [.xlock]util.c"      [.xlock]util.c [.xlock]xlock.h [.xlock]util.h
    $ call make [.xlock]logout.obj    "xl_cc /object=[.xlock] [.xlock]logout.c"    [.xlock]logout.c [.xlock]xlock.h
    $ call make [.xlock]mode.obj      "xl_cc /object=[.xlock] [.xlock]mode.c"      [.xlock]mode.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.xlock]xlockimage.obj "xl_cc /object=[.xlock] [.xlock]xlockimage.c"       [.xlock]xlockimage.c [.xlock]xlock.h [.xlock]xlockimage.c
    $ if use_magick
    $ then
    $   call make [.xlock]magick.obj     "xl_cc /object=[.xlock] [.xlock]magick.c"       [.xlock]magick.c [.xlock]xlock.h [.xlock]magick.h [.xlock]xlockimage.c magick:api.h
    $   call make [.xlock]iostuff.obj   "xl_cc /object=[.xlock] [.xlock]iostuff.c"   [.xlock]iostuff.c [.xlock]xlock.h [.xlock]iostuff.h [.xlock]magick.h magick:api.h
    $ else
    $   call make [.xlock]ras.obj       "xl_cc /object=[.xlock] [.xlock]ras.c"       [.xlock]ras.c [.xlock]xlock.h [.xlock]ras.h [.xlock]xlockimage.c
    $   call make [.xlock]xbm.obj       "xl_cc /object=[.xlock] [.xlock]xbm.c"       [.xlock]xbm.c [.xlock]xlock.h
    $   call make [.xlock]iostuff.obj   "xl_cc /object=[.xlock] [.xlock]iostuff.c"   [.xlock]iostuff.c [.xlock]xlock.h [.xlock]iostuff.h
    $ endif
    $ call make [.xlock]vis.obj       "xl_cc /object=[.xlock] [.xlock]vis.c"       [.xlock]vis.c [.xlock]xlock.h [.xlock]vis.h
    $ call make [.xlock]visgl.obj     "xl_cc /object=[.xlock] [.xlock]visgl.c"     [.xlock]visgl.c [.xlock]xlock.h [.xlock]visgl.h
    $ call make [.xlock]color.obj     "xl_cc /object=[.xlock] [.xlock]color.c"     [.xlock]color.c [.xlock]xlock.h [.xlock]color.h
    $ call make [.xlock]random.obj    "xl_cc /object=[.xlock] [.xlock]random.c"    [.xlock]random.c [.xlock]xlock.h [.xlock]random.h
    $ call make [.xlock]automata.obj  "xl_cc /object=[.xlock] [.xlock]automata.c"  [.xlock]automata.c [.xlock]xlock.h [.xlock]automata.h
    $ call make [.xlock]spline.obj    "xl_cc /object=[.xlock] [.xlock]spline.c"    [.xlock]spline.c [.xlock]xlock.h [.xlock]spline.h
    $ call make [.xlock]erase.obj     "xl_cc /object=[.xlock] [.xlock]erase.c"     [.xlock]erase.c [.xlock]xlock.h [.xlock]erase.h [.xlock]erase_debug.h [.xlock]erase_init.h
    $ if check
    $ then
    $   write sys$output "Compiling XLock Memory Check Caution: Experimental!"
    $   call make [.xlock]memcheck.obj     "xl_cc /object=[.xlock] [.xlock]memcheck.c"     [.xlock]memcheck.c [.xlock]xlock.h
    $ endif
    $ if axp .and. sound
    $ then
    $   call make [.xlock]sound.obj     "xl_cc /object=[.xlock] [.xlock]sound.c"     [.xlock]sound.c [.xlock]xlock.h [.xlock]vms_amd.h
    $   call make [.xlock]vms_amd.obj   "xl_cc /object=[.xlock] [.xlock]vms_amd.c"   [.xlock]vms_amd.c [.xlock]vms_amd.h
    $ else
    $   call make [.xlock]sound.obj     "xl_cc /object=[.xlock] [.xlock]sound.c"     [.xlock]sound.c [.xlock]xlock.h
    $ endif
    $ call make [.modes]anemone.obj     "xl_cc /object=[.modes] [.modes]anemone.c" [.modes]anemone.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]ant.obj       "xl_cc /object=[.modes] [.modes]ant.c"       [.modes]ant.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]ant3d.obj       "xl_cc /object=[.modes] [.modes]ant3d.c"   [.modes]ant3d.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]apollonian.obj "xl_cc /object=[.modes] [.modes]apollonian.c" [.modes]apollonian.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]ball.obj      "xl_cc /object=[.modes] [.modes]ball.c"      [.modes]ball.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]bat.obj       "xl_cc /object=[.modes] [.modes]bat.c"       [.modes]bat.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]blot.obj      "xl_cc /object=[.modes] [.modes]blot.c"      [.modes]blot.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]bouboule.obj  "xl_cc /object=[.modes] [.modes]bouboule.c"  [.modes]bouboule.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]bounce.obj    "xl_cc /object=[.modes] [.modes]bounce.c"    [.modes]bounce.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]braid.obj     "xl_cc /object=[.modes] [.modes]braid.c"     [.modes]braid.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]bubble.obj    "xl_cc /object=[.modes] [.modes]bubble.c"    [.modes]bubble.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]bug.obj       "xl_cc /object=[.modes] [.modes]bug.c"       [.modes]bug.c [.xlock]xlock.h [.xlock]mode.h
    $! call make [.modes]cartoon.obj     "xl_cc /object=[.modes] [.modes]cartoon.c"    [.modes]cartoon.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]clock.obj     "xl_cc /object=[.modes] [.modes]clock.c"     [.modes]clock.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]coral.obj     "xl_cc /object=[.modes] [.modes]coral.c"     [.modes]coral.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]crystal.obj   "xl_cc /object=[.modes] [.modes]crystal.c"   [.modes]crystal.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]daisy.obj     "xl_cc /object=[.modes] [.modes]daisy.c"     [.modes]daisy.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]dclock.obj    "xl_cc /object=[.modes] [.modes]dclock.c"    [.modes]dclock.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]decay.obj     "xl_cc /object=[.modes] [.modes]decay.c"     [.modes]decay.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]deco.obj      "xl_cc /object=[.modes] [.modes]deco.c"      [.modes]deco.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]deluxe.obj    "xl_cc /object=[.modes] [.modes]deluxe.c"    [.modes]deluxe.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]demon.obj     "xl_cc /object=[.modes] [.modes]demon.c"     [.modes]demon.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]dilemma.obj   "xl_cc /object=[.modes] [.modes]dilemma.c"   [.modes]dilemma.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]discrete.obj  "xl_cc /object=[.modes] [.modes]discrete.c"  [.modes]discrete.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]dragon.obj    "xl_cc /object=[.modes] [.modes]dragon.c"    [.modes]dragon.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]drift.obj     "xl_cc /object=[.modes] [.modes]drift.c"     [.modes]drift.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]euler2d.obj   "xl_cc /object=[.modes] [.modes]euler2d.c"   [.modes]euler2d.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]eyes.obj      "xl_cc /object=[.modes] [.modes]eyes.c"      [.modes]eyes.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]fadeplot.obj  "xl_cc /object=[.modes] [.modes]fadeplot.c"  [.modes]fadeplot.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]fiberlamp.obj "xl_cc /object=[.modes] [.modes]fiberlamp.c" [.modes]fiberlamp.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]flag.obj      "xl_cc /object=[.modes] [.modes]flag.c"      [.modes]flag.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]flame.obj     "xl_cc /object=[.modes] [.modes]flame.c"     [.modes]flame.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]flow.obj      "xl_cc /object=[.modes] [.modes]flow.c"      [.modes]flow.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]forest.obj    "xl_cc /object=[.modes] [.modes]forest.c"    [.modes]forest.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]fzort.obj     "xl_cc /object=[.modes] [.modes]fzort.c"     [.modes]fzort.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]galaxy.obj    "xl_cc /object=[.modes] [.modes]galaxy.c"    [.modes]galaxy.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]goop.obj      "xl_cc /object=[.modes] [.modes]goop.c"      [.modes]goop.c [.xlock]xlock.h [.xlock]mode.h [.xlock]spline.h
    $ call make [.modes]grav.obj      "xl_cc /object=[.modes] [.modes]grav.c"      [.modes]grav.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]helix.obj     "xl_cc /object=[.modes] [.modes]helix.c"     [.modes]helix.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]hop.obj       "xl_cc /object=[.modes] [.modes]hop.c"       [.modes]hop.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]hyper.obj     "xl_cc /object=[.modes] [.modes]hyper.c"     [.modes]hyper.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]ico.obj       "xl_cc /object=[.modes] [.modes]ico.c"       [.modes]ico.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]ifs.obj       "xl_cc /object=[.modes] [.modes]ifs.c"       [.modes]ifs.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]image.obj     "xl_cc /object=[.modes] [.modes]image.c"     [.modes]image.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]juggle.obj    "xl_cc /object=[.modes] [.modes]juggle.c"    [.modes]juggle.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]julia.obj     "xl_cc /object=[.modes] [.modes]julia.c"     [.modes]julia.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]kaleid.obj    "xl_cc /object=[.modes] [.modes]kaleid.c"    [.modes]kaleid.c [.xlock]xlock.h [.xlock]mode.h
    $! call make [.modes]kaleid2.obj     "xl_cc /object=[.modes] [.modes]kaleid2.c"     [.modes]kaleid2.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]kumppa.obj    "xl_cc /object=[.modes] [.modes]kumppa.c"    [.modes]kumppa.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]laser.obj     "xl_cc /object=[.modes] [.modes]laser.c"     [.modes]laser.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]life.obj      "xl_cc /object=[.modes] [.modes]life.c"      [.modes]life.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]life1d.obj    "xl_cc /object=[.modes] [.modes]life1d.c"    [.modes]life1d.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]life3d.obj    "xl_cc /object=[.modes] [.modes]life3d.c"    [.modes]life3d.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]lightning.obj "xl_cc /object=[.modes] [.modes]lightning.c" [.modes]lightning.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]lisa.obj      "xl_cc /object=[.modes] [.modes]lisa.c"      [.modes]lisa.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]lissie.obj    "xl_cc /object=[.modes] [.modes]lissie.c"    [.modes]lissie.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]loop.obj      "xl_cc /object=[.modes] [.modes]loop.c"      [.modes]loop.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]lyapunov.obj  "xl_cc /object=[.modes] [.modes]lyapunov.c"  [.modes]lyapunov.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]mandelbrot.obj "xl_cc /object=[.modes] [.modes]mandelbrot.c" [.modes]mandelbrot.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]marquee.obj   "xl_cc /object=[.modes] [.modes]marquee.c"   [.modes]marquee.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]matrix.obj    "xl_cc /object=[.modes] [.modes]matrix.c"    [.modes]matrix.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]maze.obj      "xl_cc /object=[.modes] [.modes]maze.c"      [.modes]maze.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]mountain.obj  "xl_cc /object=[.modes] [.modes]mountain.c"  [.modes]mountain.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]munch.obj     "xl_cc /object=[.modes] [.modes]munch.c"     [.modes]munch.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]nose.obj      "xl_cc /object=[.modes] [.modes]nose.c"      [.modes]nose.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]pacman.obj    "xl_cc /object=[.modes] [.modes]pacman.c"    [.modes]pacman.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]penrose.obj   "xl_cc /object=[.modes] [.modes]penrose.c"   [.modes]penrose.c [.xlock]xlock.h [.xlock]mode.h [.modes]pacman.h [.modes]pacman_level.h [.modes]pacman_ai.h
    $ call make [.modes]petal.obj     "xl_cc /object=[.modes] [.modes]petal.c"     [.modes]petal.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]petri.obj     "xl_cc /object=[.modes] [.modes]petri.c"     [.modes]petri.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]polyominoes.obj   "xl_cc /object=[.modes] [.modes]polyominoes.c"   [.modes]polyominoes.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]puzzle.obj    "xl_cc /object=[.modes] [.modes]puzzle.c"    [.modes]puzzle.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]pyro.obj      "xl_cc /object=[.modes] [.modes]pyro.c"      [.modes]pyro.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]qix.obj       "xl_cc /object=[.modes] [.modes]qix.c"       [.modes]qix.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]roll.obj      "xl_cc /object=[.modes] [.modes]roll.c"      [.modes]roll.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]rotor.obj     "xl_cc /object=[.modes] [.modes]rotor.c"     [.modes]rotor.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]scooter.obj   "xl_cc /object=[.modes] [.modes]scooter.c"   [.modes]scooter.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]shape.obj     "xl_cc /object=[.modes] [.modes]shape.c"     [.modes]shape.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]sierpinski.obj "xl_cc /object=[.modes] [.modes]sierpinski.c" [.modes]sierpinski.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]slip.obj      "xl_cc /object=[.modes] [.modes]slip.c"      [.modes]slip.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]space.obj     "xl_cc /object=[.modes] [.modes]space.c"     [.modes]space.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]sphere.obj    "xl_cc /object=[.modes] [.modes]sphere.c"    [.modes]sphere.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]spiral.obj    "xl_cc /object=[.modes] [.modes]spiral.c"    [.modes]spiral.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]spline.obj    "xl_cc /object=[.modes] [.modes]spline.c"    [.modes]spline.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]star.obj      "xl_cc /object=[.modes] [.modes]star.c"      [.modes]star.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]starfish.obj  "xl_cc /object=[.modes] [.modes]starfish.c"  [.modes]starfish.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]strange.obj   "xl_cc /object=[.modes] [.modes]strange.c"   [.modes]strange.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]swarm.obj     "xl_cc /object=[.modes] [.modes]swarm.c"     [.modes]swarm.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]swirl.obj     "xl_cc /object=[.modes] [.modes]swirl.c"     [.modes]swirl.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]t3d.obj       "xl_cc /object=[.modes] [.modes]t3d.c"       [.modes]t3d.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]tetris.obj    "xl_cc /object=[.modes] [.modes]tetris.c"    [.modes]tetris.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]thornbird.obj "xl_cc /object=[.modes] [.modes]thornbird.c" [.modes]thornbird.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]tik_tak.obj   "xl_cc /object=[.modes] [.modes]tik_tak.c"   [.modes]tik_tak.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]toneclock.obj "xl_cc /object=[.modes] [.modes]toneclock.c" [.modes]toneclock.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]triangle.obj  "xl_cc /object=[.modes] [.modes]triangle.c"  [.modes]triangle.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]tube.obj      "xl_cc /object=[.modes] [.modes]tube.c"      [.modes]tube.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]turtle.obj    "xl_cc /object=[.modes] [.modes]turtle.c"    [.modes]turtle.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]vines.obj     "xl_cc /object=[.modes] [.modes]vines.c"     [.modes]vines.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]voters.obj    "xl_cc /object=[.modes] [.modes]voters.c"    [.modes]voters.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]wator.obj     "xl_cc /object=[.modes] [.modes]wator.c"     [.modes]wator.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]wire.obj      "xl_cc /object=[.modes] [.modes]wire.c"      [.modes]wire.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]world.obj     "xl_cc /object=[.modes] [.modes]world.c"     [.modes]world.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]worm.obj      "xl_cc /object=[.modes] [.modes]worm.c"      [.modes]worm.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]xcl.obj       "xl_cc /object=[.modes] [.modes]xcl.c"       [.modes]xcl.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]xjack.obj     "xl_cc /object=[.modes] [.modes]xjack.c"     [.modes]xjack.c [.xlock]xlock.h [.xlock]mode.h
    $ if unstable
    $ then
    $   call make [.modes]run.obj       "xl_cc /object=[.modes] [.modes]run.c"       [.modes]run.c [.xlock]xlock.h [.xlock]mode.h
    $ endif
    $ if iscxx
    $ then
    $   call make [.modes]solitare.obj     "xl_cxx /object=[.modes] [.modes]solitare.cc"     [.modes]solitare.cc [.xlock]xlock.h [.xlock]mode.h
    $ endif
    $ if gl .or. gl_share
    $ then
    $   call make [.modes.glx]biof.obj      "xl_cc /object=[.modes.glx] [.modes.glx]biof.c"     [.modes.glx]biof.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]cage.obj      "xl_cc /object=[.modes.glx] [.modes.glx]cage.c"     [.modes.glx]cage.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]fire.obj      "xl_cc /object=[.modes.glx] [.modes.glx]fire.c"     [.modes.glx]fire.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]gears.obj     "xl_cc /object=[.modes.glx] [.modes.glx]gears.c"    [.modes.glx]gears.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]tube.obj      "xl_cc /object=[.modes.glx] [.modes.glx]tube.c" [.modes.glx]tube.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]sphere.obj    "xl_cc /object=[.modes.glx] [.modes.glx]sphere.c" [.modes.glx]sphere.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]glplanet.obj  "xl_cc /object=[.modes.glx] [.modes.glx]glplanet.c" [.modes.glx]glplanet.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]lament.obj    "xl_cc /object=[.modes.glx] [.modes.glx]lament.c"   [.modes.glx]lament.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]moebius.obj   "xl_cc /object=[.modes.glx] [.modes.glx]moebius.c"  [.modes.glx]moebius.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]molecule.obj  "xl_cc /object=[.modes.glx] [.modes.glx]molecule.c"    [.modes.glx]molecule.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]morph3d.obj   "xl_cc /object=[.modes.glx] [.modes.glx]morph3d.c"   [.modes.glx]morph3d.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]noof.obj      "xl_cc /object=[.modes.glx] [.modes.glx]noof.c"      [.modes.glx]noof.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]rubik.obj     "xl_cc /object=[.modes.glx] [.modes.glx]rubik.c"     [.modes.glx]rubik.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]sballs.obj    "xl_cc /object=[.modes.glx] [.modes.glx]sballs.c"     [.modes.glx]sballs.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]sierpinski3d.obj     "xl_cc /object=[.modes.glx] [.modes.glx]sierpinski3d.c"     [.modes.glx]sierpinski3d.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]stairs.obj    "xl_cc /object=[.modes.glx] [.modes.glx]stairs.c" [.modes.glx]stairs.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]superquadrics.obj "xl_cc /object=[.modes.glx] [.modes.glx]superquadrics.c" [.modes.glx]superquadrics.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]xpm-ximage.obj  "xl_cc /object=[.modes.glx] [.modes.glx]xpm-ximage.c"  [.modes.glx]xpm-ximage.c [.xlock]xlock.h [.xlock]xpm-ximage.h
    $   call make [.modes.glx]buildlwo.obj  "xl_cc /object=[.modes.glx] [.modes.glx]buildlwo.c"  [.modes.glx]buildlwo.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]pipes.obj     "xl_cc /object=[.modes.glx] [.modes.glx]pipes.c"     [.modes.glx]pipes.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]pipeobjs.obj  "xl_cc /object=[.modes.glx] [.modes.glx]pipeobjs.c"  [.modes.glx]pipeobjs.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]sproingies.obj "xl_cc /object=[.modes.glx] [.modes.glx]sproingies.c" [.modes.glx]sproingies.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]sproingiewrap.obj "xl_cc /object=[.modes.glx] [.modes.glx]sproingiewrap.c" [.modes.glx]sproingiewrap.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]s1_b.obj      "xl_cc /object=[.modes.glx] [.modes.glx]s1_b.c"      [.modes.glx]s1_b.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]s1_1.obj      "xl_cc /object=[.modes.glx] [.modes.glx]s1_1.c"      [.modes.glx]s1_1.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]s1_2.obj      "xl_cc /object=[.modes.glx] [.modes.glx]s1_2.c"      [.modes.glx]s1_2.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]s1_3.obj      "xl_cc /object=[.modes.glx] [.modes.glx]s1_3.c"      [.modes.glx]s1_3.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]s1_4.obj      "xl_cc /object=[.modes.glx] [.modes.glx]s1_4.c"      [.modes.glx]s1_4.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]s1_5.obj      "xl_cc /object=[.modes.glx] [.modes.glx]s1_5.c"      [.modes.glx]s1_5.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]s1_6.obj      "xl_cc /object=[.modes.glx] [.modes.glx]s1_6.c"      [.modes.glx]s1_6.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]atlantis.obj  "xl_cc /object=[.modes.glx] [.modes.glx]atlantis.c"  [.modes.glx]atlantis.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]dolphin.obj   "xl_cc /object=[.modes.glx] [.modes.glx]dolphin.c"   [.modes.glx]dolphin.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]shark.obj     "xl_cc /object=[.modes.glx] [.modes.glx]shark.c"     [.modes.glx]shark.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]swim.obj      "xl_cc /object=[.modes.glx] [.modes.glx]swim.c"      [.modes.glx]swim.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]whale.obj     "xl_cc /object=[.modes.glx] [.modes.glx]whale.c"     [.modes.glx]whale.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]atunnels.obj  "xl_cc /object=[.modes.glx] [.modes.glx]atunnels.c"  [.modes.glx]atunnels.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]tunnel_draw.obj     "xl_cc /object=[.modes.glx] [.modes.glx]tunnel_draw.c"     [.modes.glx]tunnel_draw.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]bubble3d.obj  "xl_cc /object=[.modes.glx] [.modes.glx]bubble3d.c"     [.modes.glx]bubble3d.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]b_draw.obj    "xl_cc /object=[.modes.glx] [.modes.glx]b_draw.c"     [.modes.glx]b_draw.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]b_lockglue.obj "xl_cc /object=[.modes.glx] [.modes.glx]b_lockglue.c"     [.modes.glx]b_lockglue.c [.xlock]xlock.h [.xlock]mode.h
    $   call make [.modes.glx]b_sphere.obj  "xl_cc /object=[.modes.glx] [.modes.glx]b_sphere.c"     [.modes.glx]b_sphere.c [.xlock]xlock.h [.xlock]mode.h
    $   if unstable
    $   then
    $     call make [.modes.glx]skewb.obj     "xl_cc /object=[.modes.glx] [.modes.glx]skewb.c"     [.modes.glx]skewb.c [.xlock]xlock.h [.xlock]mode.h
    $   endif
    $   if iscxx
    $   then
    $     call make [.modes.glx]invert.obj   "xl_cc /object=[.modes.glx] [.modes.glx]invert.c"  [.modes.glx]invert.c [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_figureeight.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_figureeight.cc"  [.modes.glx]i_figureeight.cc [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_linkage.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_linkage.cc"  [.modes.glx]i_linkage.cc [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_sphere.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_sphere.cc"  [.modes.glx]i_sphere.cc [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_spline.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_spline.cc"  [.modes.glx]i_spline.cc [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_threejet.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_threejet.cc"  [.modes.glx]i_threejet.cc [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_threejetvec.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_threejetvec.cc"  [.modes.glx]i_threejetvec.cc [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_twojet.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_twojet.cc"  [.modes.glx]i_twojet.cc [.xlock]xlock.h [.xlock]mode.h
    $     call make [.modes.glx]i_twojetvec.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]i_twojetvec.cc"  [.modes.glx]i_twojetvec.cc [.xlock]xlock.h [.xlock]mode.h
    $     if ttf .and. gltt
    $     then
    $       call make [.modes.glx]text3d.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]text3d.cc"  [.modes.glx]text3d.cc [.xlock]xlock.h [.xlock]mode.h
    $     endif
    $     if ft .and. ftgl .and. zlib
    $     then
    $       call make [.modes.glx]text3d2.obj  "xl_cxx /object=[.modes.glx] [.modes.glx]text3d2.cc"  [.modes.glx]text3d2.cc [.xlock]xlock.h [.xlock]mode.h
    $       call make [.modes.glx]rotator.obj  "xl_cc /object=[.modes.glx] [.modes.glx]rotator.c"  [.modes.glx]rotator.c [.xlock]xlock.h [.xlock]mode.h
    $     endif
    $   endif
    $ endif
    $ if bomb
    $ then
    $   call make [.modes]bomb.obj      "xl_cc /object=[.modes] [.modes]bomb.c"      [.modes]bomb.c [.xlock]xlock.h [.xlock]mode.h
    $ endif
    $ call make [.modes]blank.obj     "xl_cc /object=[.modes] [.modes]blank.c"     [.modes]blank.c [.xlock]xlock.h [.xlock]mode.h
    $ call make [.modes]random.obj    "xl_cc /object=[.modes] [.modes]random.c"    [.modes]random.c [.xlock]xlock.h [.xlock]mode.h
    $!
    $! Get libraries
    $ if use_magick then write optf "''magickf'/lib"
    $ if ftgl then write optf "''ftglf'/lib"
    $ if ft then write optf "''freetypef'/lib"
    $ if zlib then write optf "''zlibf'/lib"
    $ if gltt then write optf "''glttf'/lib"
    $ if ttf then write optf "''ttff'/lib"
    $ if xpm then write optf "''xpmf'/lib"
    $ if gl then write optf "''glf'/lib"
    $ if gl_share then write optf "''glf_share'/share"
    $ if glu then write optf "''gluf'/lib"
    $ if glu_share then write optf "''gluf_share'/share"
    $ if sys_maj .lt. 7
    $ then
    $   if xvmsutils then write optf "''xvmsutilsf'/lib"
    $ endif
    $! if .not. axp then write optf "sys$library:vaxcrtl/lib"
    $ write optf "sys$library:vaxcrtl/lib"
    $ if dtsaver then write optf "sys$library:cde$libdtsvc.exe/share"
    $ if axp then write optf "sys$library:ucx$ipc_shr/share"
    $ if mmov
    $ then
    $   write optf "[.mmov]vms_mmov.obj"
    $   write optf "[.mmov]readavi.obj"
    $   write optf "[.mmov]commonlib.olb/lib"
    $   if mmov2
    $   then
    $     write optf "sys$share:mmov.exe/share
    $   else
    $     when:==on
    $     when error then continue
    $     open/write optf1 mmov_link.opt
    $     write optf1 "sys$library:vaxcrtl/lib"
    $     write optf1 "sys$share:cma$open_rtl.exe/share"
    $     close optf1
    $     lib/extract=* sys$library:mmov.olb/lib
    $     link/exec=mmov.exe/share mmov/opt,MMOV_VMS.OPT/opt,mmov_link/opt
    $     write optf "mmov.exe/share"
    $     copy mmov.exe sys$share:mmov.exe
    $     write sys$output "If the copy failed you have to place the file mmov.exe"
    $     write sys$output "in the directory SYS$SHARE manually before running xlock"
    $     noon
    $     endif
    $   endif
    $ if axp then write optf "sys$share:decw$xextlibshr/share"
    $ if axp then write optf "sys$share:decw$xtlibshrr5/share"
    $ if .not. axp then write optf "sys$library:ucx$ipc/lib"
    $ write optf "sys$share:decw$dxmlibshr/share"
    $ write optf "sys$share:decw$xlibshr/share"
    $ close optf
    $!
    $! LINK
    $ write sys$output "Linking XLock"
    $ xl_link/map/exec=[.xlock] xlock/opt
    $!
    $! Create .opt file
    $ open/write optf xmlock.opt
    $ write sys$output "Compiling XMLock whith the folowing defines ="
    $ write sys$output "''defs'"
    $ call make [.xmlock]option.obj "xl_cc /object=[.xmlock] [.xmlock]option.c" [.xmlock]option.c
    $ call make [.xmlock]xmlock.obj "xl_cc /object=[.xmlock] [.xmlock]xmlock.c" [.xmlock]xmlock.c
    $! Get libraries
    $! if .not. axp then write optf "sys$library:vaxcrtl/lib"
    $ write optf "sys$library:vaxcrtl/lib"
    $ if axp then write optf "sys$library:ucx$ipc_shr/share"
    $ if axp then write optf "sys$share:decw$xextlibshr/share"
    $ if axp then write optf "sys$share:decw$xtlibshrr5/share"
    $ if .not. axp then write optf "sys$library:ucx$ipc/lib"
    $! write optf "sys$share:decw$dxmlibshr/share"
    $ write optf "sys$share:decw$xmlibshr12/share"
    $ write optf "sys$share:decw$xlibshr/share"
    $ close optf
    $!
    $! LINK
    $ write sys$output "Linking XmLock"
    $ xl_link/map/exec=[.xmlock] xmlock/opt
    $!
    $ if mmov
    $ then
    $   write sys$output "NOTE:"
    $   write sys$output "Sound files are played only when the user has the SYSNAM"
    $   write sys$output "as an authorized privilege"
    $ endif
    $ set noverify
    $ exit
    $!
    $Clobber:      ! Delete executables, Purge directory and clean up object files
    $!                and listings
    $ delete/noconfirm [.xlock]xlock.exe;*
    $ delete/noconfirm [.xmlock]xmlock.exe;*
    $!
    $Clean:        ! Purge directory, clean up object files and listings
    $ close/nolog optf
    $ purge [...]
    $ delete/noconfirm [...]*.lis;*
    $ delete/noconfirm [...]*.obj;*
    $ delete/noconfirm [...]*.opt;*
    $ delete/noconfirm [...]*.map;*
    $ set file/remove bat.xbm;*
    $ set file/remove bounce.xbm;*
    $ set file/remove decay.xbm;*
    $ set file/remove eyes.xbm;*
    $ set file/remove eyes2.xbm;*
    $ set file/remove flag.xbm;*
    $ set file/remove image.xbm;*
    $ set file/remove life.xbm;*
    $ set file/remove life2.xbm;*
    $ set file/remove life1d.xbm;*
    $ set file/remove maze.xbm;*
    $ set file/remove puzzle.xbm;*
    $ set file/remove bat.xpm;*
    $ set file/remove bounce.xpm;*
    $ set file/remove decay.xpm;*
    $ set file/remove flag.xpm;*
    $ set file/remove image.xpm;*
    $ set file/remove maze.xpm;*
    $ set file/remove puzzle.xpm;*
    $!
    $ exit
    $!
    ! SUBROUTINE TO CHECK DEPENDENCIES
    $ make: subroutine
    $   v='f$verify(0)
    $!   p1       What we are trying to make
    $!   p2       Command to make it
    $!   p3 - p8  What it depends on
    $
    $   if (f$extract(0,6,p2) .eqs. "xl_cc ") then write optf "''p1'"
    $   if (f$extract(0,7,p2) .eqs. "xl_cxx ") then write optf "''p1'"
    $
    $   if f$search(p1) .eqs. "" then goto MakeIt
    $   time=f$cvtime(f$file(p1,"RDT"))
    $   arg=3
    $Loop:
    $   argument=p'arg
    $   if argument .eqs. "" then goto Exit
    $   el=0
    $Loop2:
    $   file=f$element(el," ",argument)
    $   if file .eqs. " " then goto Endl
    $   afile=""
    $Loop3:
    $   ofile=afile
    $   afile=f$search(file)
    $   if afile .eqs. "" .or. afile .eqs. ofile then goto NextEl
    $   if f$cvtime(f$file(afile,"RDT")) .gts. time then goto MakeIt
    $   goto Loop3
    $NextEL:
    $   el=el+1
    $   goto Loop2
    $EndL:
    $   arg=arg+1
    $   if arg .le. 8 then goto Loop
    $   goto Exit
    $
    $MakeIt:
    $   set verify
    $   'p2
    $   vv='f$verify(0)
    $Exit:
    $   if v then set verify
    $ endsubroutine