#include <Server.tmpl>

#if !defined(UseRtxFonts)
IBMFNTUTILSRC = ibmFntUtil.c
IBMFNTUTILOBJ = ibmFntUtil.o
#endif

SRCS =		ibmColor.c \
		ibmInit.c \
		ibmIO.c \
		ibmKeybd.c \
		ibmMalloc.c \
		ibmMouse.c \
		ibmPlumber.c \
		ibmQuery.c \
		ibmScreen.c \
		ibmSave.c \
		$(IBMFNTUTILSRC) \
		ibmCmdArgs.c \
		ibmUtils.c

LIBOBJS =	ibmColor.o\
		ibmInit.o\
		ibmIO.o \
		ibmScreen.o \
		ibmKeybd.o \
		ibmMouse.o \
		ibmQuery.o \
		ibmSave.o \
		$(IBMFNTUTILOBJ) \
		ibmCmdArgs.o \
		ibmUtils.o

OTHROBJS =

ALLOCSRCS =	ibmMalloc.c \
		ibmPlumber.c

ALLOCOBJS =	ibmMalloc.o \
		ibmPlumber.o

IMMEDIATE_OBJS = $(OTHROBJS) $(LIBOBJS) $(ALLOCOBJS)

INFOOBJS =	ibmDate.o

OBJS =		$(IMMEDIATE_OBJS) $(INFOOBJS)

#define	ListCreate(name)\
SCREENS0= name
#define	ListCreateEmpty()\
SCREENS0=
#define	ListAdd(last,new,name)\
SCREENS/**/new= $(SCREENS/**/last) name
#define	ListAddEmpty(last,new)\
SCREENS/**/new= $(SCREENS/**/last)


#if ibmInclude8514
ListCreate(-DIBM_8514)
#else
ListCreateEmpty()
#endif
#if ibmIncludeAED
ListAdd(0,1,-DIBM_AED)
#else
ListAddEmpty(0,1)
#endif
#if ibmIncludeAPA8c
ListAdd(1,2,-DIBM_APA8c)
#else
ListAddEmpty(1,2)
#endif
#if ibmIncludeAPA16
ListAdd(2,3,-DIBM_APA16)
#else
ListAddEmpty(2,3)
#endif
#if ibmIncludeEGA
ListAdd(3,4,-DIBM_EGA)
#else
ListAddEmpty(3,4)
#endif
#if ibmIncludeMPEL
ListAdd(4,5,-DIBM_MPEL)
#else
ListAddEmpty(4,5)
#endif
#if ibmIncludeVGA
ListAdd(5,6,-DIBM_VGA)
#else
ListAddEmpty(5,6)
#endif
#if ibmIncludeGSL
ListAdd(6,7,-DIBM_GSL)
#else
ListAddEmpty(6,7)
#endif
#if ibmIncludeDSS
ListAdd(7,8,-DIBM_DSS)
#else
ListAddEmpty(7,8)
#endif
#if ibmIncludeEXPWY
ListAdd(8,9,-DIBM_EXPWY)
#else
ListAddEmpty(8,9)
#endif
SCREENS= $(SCREENS9)

#if ibmSpecialMalloc
DEFINES = -DIBM_SPECIAL_MALLOC $(SCREENS)
#else
DEFINES = $(SCREENS)
#endif

INCLUDES = -I. -I../../../include -I$(INCLUDESRC) -I../OPERATING_SYSTEM

#if DebugServer && ProfileServer
DebuggedAndProfiledLibraryObjectRule()
#else
# if DebugServer
DebuggedLibraryObjectRule()
# else
#  if ProfileServer
ProfiledLibraryObjectRule()
#  else
NormalLibraryObjectRule()
#  endif
# endif
#endif

all::	$(OBJS)
NormalRelocatableTarget(ibmcomm,$(LIBOBJS))
NormalLibraryTarget(ibmalloc,$(ALLOCOBJS))

#if ProfileServer
ProfiledRelocatableTarget(ibmcomm,$(LIBOBJS))
ProfiledLibraryTarget(ibmalloc,$(ALLOCOBJS))
#endif
#if DebugServer
DebuggedRelocatableTarget(ibmcomm,$(LIBOBJS))
DebuggedLibraryTarget(ibmalloc,$(ALLOCOBJS))
#endif

DependTarget()

#ifdef RtAIX
ibmDate.o: FRC
	$(CC) $(CFLAGS) \
	 -DDATE="\"`date`\"" \
	 -DHOST="\"`hostname | awk -f awkhprog `\"" \
	 -DDEVELOPER="\"`who -A`\"" \
	-c ibmDate.c
#else
ibmDate.o: FRC
	$(CC) $(CFLAGS) \
	 -DDATE="\"`date`\"" \
	 -DHOST="\"`hostname`\"" \
	 -DDEVELOPER="\"`who am i|sed 1q|sed -e 's/.*\!//'|sed -e 's/[	 ].*$$//'`\"" \
	-c ibmDate.c
#endif

FRC:

ibmScreen.o ibmInit.o ibmIO.o ibmUtils.o:	Imakefile

LintLibraryTarget(ibmcomm,$(SRCS))
NormalLintTarget($(SRCS))

LintLibraryTarget(ibmalloc,$(ALLOCSRCS))
