/**/#
/**/# Imakefile for ./Src - part of the UMDENG X-Tank distribution
/**/#
/**/# $Id: Imakefile,v 1.37 1992/09/12 19:36:29 lidl Exp $
/**/#

#include "../Imakefile.Config"

          DEPLIBS = $(DEPXLIB)
  LOCAL_LIBRARIES = $(XLIB)
             SRCS = 3d.c XMultiSync.c actions.c animate.c box.c camo.c \
                    collision.c cosell.c disc.c display.c escher.c \
                    explosion.c file.c game.c gr.c graphics.c highlib.c \
                    hit.c hud.c icounter.c init.c input.c interface.c \
                    intersect.c lowlib.c main.c malloc.c mapper.c maze.c \
                    mdesign.c menu.c message.c newconsole.c objects.c \
                    program.c radar.c repair.c scroll.c setup.c setups.c \
                    status.c sysdep.c thread.c unix.c update.c util.c \
                    vdesign.c vehicle.c players.c newfile.c vload.c \
                    version.c $(SRCS2)
             OBJS = 3d.o XMultiSync.o actions.o animate.o box.o camo.o \
                    collision.o cosell.o disc.o display.o escher.o \
                    explosion.o file.o game.o gr.o graphics.o highlib.o \
                    hit.o hud.o icounter.o init.o input.o interface.o \
                    intersect.o lowlib.o main.o malloc.o mapper.o maze.o \
                    mdesign.o menu.o message.o newconsole.o objects.o \
                    program.o radar.o repair.o scroll.o setup.o setups.o \
                    status.o sysdep.o thread.o unix.o update.o util.o \
                    vdesign.o vehicle.o players.o newfile.o vload.o \
                    version.o $(OBJS2)
             INCL = Include/bullet.h Include/common.h Include/cosell.h \
                    Include/disc.h Include/game.h Include/globals.h \
                    Include/gr.h Include/graphics.h Include/icounter.h \
                    Include/interface.h Include/loc.h Include/lowlib.h \
                    Include/malloc.h Include/map.h Include/maze.h \
                    Include/mdesign.h Include/menu.h Include/message.h \
                    Include/object.h Include/outpost.h Include/program.h \
                    Include/screen.h Include/scroll.h Include/settings.h \
                    Include/setup.h Include/special-defs.h Include/special.h \
                    Include/sysdep.h Include/tanklimits.h Include/tanktypes.h \
                    Include/team.h Include/terminal.h Include/thread.h \
                    Include/tread-defs.h Include/vdesc.h Include/vehicle.h \
                    Include/vehicleparts.h Include/vstructs.h \
                    Include/weapon-defs.h Include/xtank.h Include/xtanklib.h
            XINCL = Include/x11.h

/**/# Note that both x11.c and mazeconv.c are included in other .c files,
/**/# so they are not listed above!

/**/# Important things that Xtank wants to find

   EXTRA_INCLUDES = -I. -IInclude

/**/# Everybody needs the following libraries

  EXTRA_LIBRARIES = -LPrograms -lxtankrobots -lm

/**/# Start of System Dependent Things
/**/# (e.g. libraries, linker flags and so forth)

#ifdef i860Architecture
    SYS_LIBRARIES = -lnsl
            SRCS2 = floor.c
            OBJS2 = floor.o
#endif
#ifdef ApolloArchitecture
    SYS_LIBRARIES = -L/usr/X11/lib
#endif
#ifdef HPArchitecture
    SYS_LIBRARIES = -lBSD -lmalloc
# ifdef hp9000s800
            SRCS2 = flush_hp9k8.s
            OBJS2 = flush_hp9k8.o
# endif
#endif
#ifdef MultimaxArchitecture
        CCOPTIONS = -g -O -q nosb -q ext=parallel
#endif
#if defined(RiscArchitecture) || defined(RsArchitecture)
/**/#
/**/# Which is real?  I don't know... X11R5 says the latter...
/**/#
            SRCS2 = rs6klongjmp.s
            OBJS2 = rs6klongjmp.o
 EXTRA_LOAD_FLAGS = -lbsd
#endif
#ifdef RtArchitecture
/**/# IBM RT
#endif
#ifdef SGIArchitecture
    SYS_LIBRARIES = -lm43 -lbsd -lsun
#endif
#ifdef SunArchitecture
    SYS_LIBRARIES = /usr/lib/debug/malloc.o -llwp
#if HasGcc
        CCOPTIONS = -static $(EXTRA_CCOPTS)
#else
        CCOPTIONS = -Bstatic /usr/lib/libm.il $(EXTRA_CCOPTS)
#endif
#ifdef SparcArchitecture
/**/# Sun4 only options go here
#else
/**/# Sun3 only options go here
#endif
#endif
#ifdef UltrixArchitecture
#ifdef MipsArchitecture
# You might need to uncomment the following lines, depending on your
# system, and it's configuration, and your compiler.
#
#           SYS_LIBRARIES = -ldnet
#           CCOPTIONS = -Wl,-D,1000000
#           STD_INCLUDES = $(EXTRA_INCLUDES) -I/usr/include/mit
            SRCS2 = mipssj.s
            OBJS2 = mipssj.o
#endif
#endif
#ifdef VaxArchitecture
            SRCS2 = vaxsj.s
            OBJS2 = vaxsj.o
#endif

/**/# End of System Dependent Things

#define IHaveSubdirs
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
#undef PassCDebugFlags
#define PassCDebugFlags
#define PassDefines 'DEFINES=$(DEFINES)'

          SUBDIRS = Programs

MakeSubdirs($(SUBDIRS))

all::
	$(RM) version.c

ComplexProgramTarget($(XTANK_TARGET))

ExtraSpecialObjectRule(init.o, init.c, -g)

setups.c: setups.l
	flex -t setups.l > $@
	@-chmod 664 $@ 2>/dev/null

vload.c: vload.l
	flex -t vload.l | sed 's/yy/zz/g' > $@
	@-chmod 664 $@ 2>/dev/null

version.c:
	@echo -n "Updating version number..."
	@../Bin/newversion.sh $(XTANK_TARGET)
	@echo " Done."

copyout:
	co $(SRCS) $(INCL)

all::
	@-chgrp xtank $(XTANK_TARGET) .version setups.c vload.c *.o 2>/dev/null
	@-chmod 664 .version setups.c vload.c *.o 2>/dev/null

/**/#prof:
/**/#	$(COMPILE.c) -O -pg $(SRCS)
/**/#	$(LINK.c) -O -pg -o xtank.sun4.prof $(OBJS) $(LIBSUN)

/**/#lint: $(SRCS)
/**/#	$(LINT.c) $(SRCS) | grep -v "possible pointer alignment problem"

print:
	enscript -2rG Makefile $(INCL) $(SRCS) x11.c

TAGS: $(INCL) $(SRCS) $(XINCL) $(XSRCS) x11.c
	etags -t $(INCL) $(XINCL) $(SRCS) $(XSRCS) x11.c
