#
#	c3i demo/benchmark Makefile
#
#	Note: The LP entry is used to cause a rebuild if c3i.[gh] is modified.
#
include ${ROOT}/usr/include/make/commondefs

IDBTAG = -idb "std.sw.demos"
AREA = applications
SALESIDB = -idb "demos.sw.${AREA}"
DATAIDB = -idb "demos.data.${AREA}"
JIDB = -idb "demos.journal.${AREA}"

TARGETS = c3i
TCFILES = c3i.c
TOBJ = ${TCFILES:.c=.o}
LCOPTS =
LLDLIBS = -lgl_s -lm
LIB     = libc3i.a
LINTLIB = llib-llint.a
LIBCFILES = grinit.c sysinit.c makeworld.c loop.c lltoxyz.c \
	jacks.c grexit.c sysexit.c misc.c pickitem.c sdirings.c \
	scenario.c feedtrack.c showtrack.c help.c
LIBOBJ = ${LIBCFILES:.c=.o}
CFILES = ${LIBCFILES} c3i.c  2dto3d.c gendata.c 2dmap.c
DATAFILES = 3dcoast.d 3dstars.d lrdata+index.d 3dpolit.d 3dtrack.d \
	3dsatts.d 3dworld.d
OPTIMIZER = -O
#SHDLIBC = -lc

#almost STANDARD DEMO MAKEFILE

default: ${TARGETS}

include ${COMMONRULES}

${TARGETS}:		${TOBJ} $(LIBOBJ)
	${CCF} ${TOBJ} ${LIBOBJ} $(LDFLAGS) -o $@

# Install demo, buttonfly file, information slide, and shell script
# for environment manager
install: default
	${INSTALL} -F /usr/demos/bin -m 755 -u demos -g demos \
		${IDBTAG} ${TARGETS}
	for i in ${TARGETS}; do ( \
		${INSTALL} -F /usr/demos -m 644 -u demos -g demos \
			${IDBTAG} -src m_$$i .m_${AREA}_$$i ;\
		${INSTALL} -F /usr/demos/${AREA} -m 755 -u demos -g demos \
			${IDBTAG} -src $$i.sh $$i ;\
		${INSTALL} -F /usr/demos/${AREA} -m 755 -u demos -g demos \
			${IDBTAG} $$i.info ;\
	) done;
	${INSTALL} -dir -m 755 -u demos -g demos \
		${IDBTAG} /usr/demos/data/c3i
	${INSTALL} -F /usr/demos/data/c3i -m 644 -u demos -g demos \
		${IDBTAG} ${DATAFILES}

# Install everything install does under different idb's, and
# install journalling stuff.
sales: default
	${INSTALL} -F /usr/demos/bin -m 755 -u demos -g demos \
		${SALESIDB} ${TARGETS}
	for i in ${TARGETS}; do ( \
		${INSTALL} -F /usr/demos -m 644 -u demos -g demos \
			${SALESIDB} -src m_$$i .m_${AREA}_$$i ;\
		${INSTALL} -F /usr/demos/${AREA} -m 755 -u demos -g demos \
			${SALESIDB} -src $$i.sh $$i ;\
		${INSTALL} -F /usr/demos/${AREA} -m 755 -u demos -g demos \
			${SALESIDB} $$i.info ;\
		${INSTALL} -F /usr/demos/data/journal -m 644 -u demos -g demos \
			${JIDB} $$i.j ;\
		${INSTALL} -F /usr/demos/${AREA} -m 755 -u demos -g demos \
			${JIDB} $$i.rec;\
		${INSTALL} -F /usr/demos -m 644 -u demos -g demos \
			${JIDB} -src m_$${i}.j .m_${AREA}_$${i}.j ;\
	) done;
	${INSTALL} -dir -m 755 -u demos -g demos \
		${DATAIDB} /usr/demos/data/c3i
	${INSTALL} -F /usr/demos/data/c3i -m 644 -u demos -g demos \
		${DATAIDB} ${DATAFILES}

all:		LP c3i 2dto3d gendata 2dmap

LP:		c3i.g c3i.h
		/bin/rm -f $(LIB)
		echo 'enscript  -2rB -t"*** c3i demo source ***" \
		DOC README Makefile c3i.* *.c' > LP

2dto3d:		2dto3d.c lltoxyz.o
		${CCF} 2dto3d.c  lltoxyz.o $(LDFLAGS) -o 2dto3d

gendata:	gendata.c lltoxyz.o
		${CCF} gendata.c  lltoxyz.o $(LDFLAGS) -o gendata 

2dmap:		2dmap.c ${LIB}
		${CCF} 2dmap.c  $(LIB) $(LDFLAGS) -o 2dmap

$(LIB): 	$(LIB)(grinit.o)    \
		$(LIB)(sysinit.o)   \
		$(LIB)(makeworld.o) \
		$(LIB)(loop.o)      \
		$(LIB)(lltoxyz.o)   \
		$(LIB)(jacks.o)     \
		$(LIB)(grexit.o)    \
		$(LIB)(sysexit.o)   \
		$(LIB)(misc.o)      \
		$(LIB)(pickitem.o)  \
		$(LIB)(sdirings.o)  \
		$(LIB)(scenario.o)  \
		$(LIB)(feedtrack.o) \
		$(LIB)(showtrack.o) \
		$(LIB)(help.o)
		ar ts $(LIB)

.o.a:
		${AR} rv $@ $*.o

lintall:	$(LINTLIB)
		lint $(LINTLIB)

$(LINTLIB): 	$(LIB)(grinit.ln)    \
		$(LIB)(makeworld.ln) \
		$(LIB)(loop.ln)      \
		$(LIB)(lltoxyz.ln)   \
		$(LIB)(jacks.ln)     \
		$(LIB)(grexit.ln)    \
		$(LIB)(pickitem.ln)  \
		$(LIB)(sdirings.ln)  \
		$(LIB)(scenario.ln)  \
		$(LIB)(help.ln)
		lint -c $< -o lint
