SHELL = /bin/sh
ARCH = solaris
MAKE = make
MV = mv
SED = sed
YACC = yacc
YFLAGS = -d
LEX = lex
LFLAGS = -n
LINT = lint -u
INSTALL = $(SCRIPTSRC)/bsdinst.sh
LIBLD = ld
RM = rm -f
TAGS = ctags
KGENMAKE = kgenmake
DEPEND = kgendepend
KGENIMAKE = kgenimake
BASENAME = /usr/bin/basename
SCRIPTSRC = /research/devel/mirage/bootstrap/repos/config/scripts
GHOSTWRITER = ghostwriter
CONDUCTOR = conductor
KLINT = klint
PROTOIZEFLAGS = -fstrength-reduce -fpcc-struct-return -fwritable-strings -ansi
MACHINE_DEFINE = -D__sun
STD_DEFINES = -D_POSIX_SOURCE -DSVR4
OBJECTINCLUDE = $(TOOLBOX_INCLUDE)
OBJECTLIBDIR = $(TOOLBOX_LIBDIR)
OBJECTDEFINES = $(TOOLBOX_DEFINES)
ALLINCLUDES = $(STD_INCLUDES) $(OBJECTINCLUDE) $(XINCLUDES) $(EXTRA_INCLUDES)
ALLDEFINES = $(ALLINCLUDES) $(MACHINE_DEFINE) $(STD_DEFINES) $(OBJECTDEFINES) $(LOCALDEFINES) $(DEFINES)
LINTFLAGS = $(ALLDEFINES) $(ALLINCLUDES)
RM_CMD = $(RM) *.o core *.a tags ,* *~ *.i *.u *.B *.G *.T *.s .emacs_* tags TAGS .pure
MAKEFILE_CMD = $(KGENMAKE) $(IMAKE_DEFINES)
SYS_LIBRARIES = -lm -ll
X_LIBRARIES = -lXm -lXmu -lXt -lXext -lX11
FOR_SYS_LIBRARIES = -lF77
EXTRA_LIBRARIES = -L/usr/local/lib -lsocket -lnsl -lgen
KLIBDIR = /research/devel/mirage/lib
FORLIBDIR = -L/opt/SUNWspro/SC2.0.1
XLIBDIR = -L/opt/SUNWmotif/lib -L/usr/openwin/lib
XINCLUDES = -I/opt/SUNWmotif/include -I/usr/openwin/include
ALLLIBDIRS = -L$(KLIBDIR) $(FORLIBDIR) $(XLIBDIR) $(XINCLUDES) $(EXTRALIBDIR)
OBJS = $(YOBJS) $(LOBJS) $(COBJS) $(FOBJS) $(C++OBJS)
SRCS = $(YSRCS) $(LSRCS) $(CSRCS) $(FSRCS) $(C++SRCS)
BOOTSTRAP_NAME = /research/devel/mirage/bootstrap
TOOLBOX_INCLUDE = -I$(DATASERV_NAME)/include \
 		-I$(BOOTSTRAP_NAME)/include
TOOLBOX_LIBDIR = -L$(DATASERV_NAME)/lib \
 		-L$(BOOTSTRAP_NAME)/lib
C_TOOLBOX_LIBRARIES = -lkapu \
 		-lkaps \
 		-lkdut \
 		-lkdms \
 		-lkfmt \
 		-lkgen \
 		-lkcms \
 		-lkclui \
 		-lkvf \
 		-lkexpr \
 		-lklibdb \
 		-lklm \
 		-lku
C_TOOLBOX_DEP_LIBRARIES = $(DATASERV_NAME)/lib/libkapu.a \
 		$(DATASERV_NAME)/lib/libkaps.a \
 		$(DATASERV_NAME)/lib/libkdut.a \
 		$(DATASERV_NAME)/lib/libkdms.a \
 		$(DATASERV_NAME)/lib/libkfmt.a \
 		$(BOOTSTRAP_NAME)/lib/libkgen.a \
 		$(BOOTSTRAP_NAME)/lib/libkcms.a \
 		$(BOOTSTRAP_NAME)/lib/libkclui.a \
 		$(BOOTSTRAP_NAME)/lib/libkvf.a \
 		$(BOOTSTRAP_NAME)/lib/libkexpr.a \
 		$(BOOTSTRAP_NAME)/lib/libklibdb.a \
 		$(BOOTSTRAP_NAME)/lib/libklm.a \
 		$(BOOTSTRAP_NAME)/lib/libku.a
LD_RUN_PATH = $(DATASERV_NAME)/lib:$(BOOTSTRAP_NAME)/lib
DATASERV_NAME = /research/devel/mirage/dataserv
BINDIR = $(DATASERV_NAME)/bin
LIBDIR = $(DATASERV_NAME)/lib
OBJECT_TYPE = testsuite
TOOLBOX_NAME = dataserv
CSRCS = test.c
COBJS = test.o
SCRIPTS = test.sh
BINARY_NAME = ktest
TESTSUITE_LIBRARIES = -lktu
TESTSUITE_DEP_LIBRARIES = $(BOOTSTRAP_NAME)/lib/libktu.a
LDLIBS = $(KHOROSLDOPTION)	 $(C_TOOLBOX_LIBRARIES) $(TESTSUITE_LIBRARIES) $(BOOTSTRAP_LIBRARIES) $(SYSTEMLDOPTION) $(EXTRA_LIBRARIES) $(SYS_LIBRARIES)
DEPLIBS = $(C_TOOLBOX_DEP_LIBRARIES)	 $(TESTSUITE_DEP_LIBRARIES) $(BOOTSTRAP_DEP_LIBRARIES)
CC = cc
LD = $(CC)
CDEBUGFLAGS = -g
COPTFLAGS = -O
CCOPTIONS = -Xc -v
INSTPGMFLAGS = -s
LDOPTIONS = $(OBJECTLIBDIR) $(ALLLIBDIRS) $(CCOPTIONS)
CFLAGS = $(CDEBUGFLAGS) \
 		$(CCOPTIONS) $(ALLDEFINES)
KHOROSLDOPTION = -Bdynamic
SYSTEMLDOPTION = -Bdynamic
all:: $(BINARY_NAME)

$(BINARY_NAME): $(OBJS) $(DEPLIBS)
	$(RM) $@
	$(LD) -o $@ $(OBJS) $(LDOPTIONS) $(LDLIBS) $(EXTRA_LOAD_FLAGS)

olit:
	$(RM) $(BINARY_NAME)
	@$(MAKEFILE_CMD) -DKUSEOLIT
	$(MAKE)
motif:
	$(RM) $(BINARY_NAME)
	@$(MAKEFILE_CMD) -DKUSEMOTIF
	$(MAKE)
athena:
	$(RM) $(BINARY_NAME)
	@$(MAKEFILE_CMD) -DKUSEATHENA
	$(MAKE)

debug:
	$(RM) $(BINARY_NAME)
	$(RM) $(OBJS)
	@$(MAKEFILE_CMD) -DOverRideOptimized
	$(MAKE)

optimize:
	$(RM) $(BINARY_NAME)
	$(RM) $(OBJS)
	@$(MAKEFILE_CMD) -DOverRideDebug
	$(MAKE)

static:
	$(RM) $(BINARY_NAME)
	@$(MAKEFILE_CMD) -DOverRideDynamic
	$(MAKE)

dynamic:
	$(RM) $(BINARY_NAME)
	@$(MAKEFILE_CMD) -DOverRideStatic
	$(MAKE)

saber:
	# load $(ALLDEFINES) $(CSRCS) $(TOOLBOX_LIBDIR) $(ALLLIBDIRS) $(LDLIBS)
codecenter:
	# load $(ALLDEFINES) $(CSRCS) $(TOOLBOX_LIBDIR) $(ALLLIBDIRS) $(LDLIBS)

osaber:
	# load $(ALLDEFINES) $(OBJS) $(TOOLBOX_LIBDIR) $(ALLLIBDIRS) $(LDLIBS)
ocodecenter:
	# load $(ALLDEFINES) $(OBJS) $(TOOLBOX_LIBDIR) $(ALLLIBDIRS) $(LDLIBS)

lint:
	$(LINT) $(LINTFLAGS) $(CSRCS)

klint::
	-$(KLINT) -tb $(TOOLBOX_NAME) -oname $(OBJECT_NAME)

purify: $(OBJS) $(DEPLIBS)
	purify $(LD) -o $(BINARY_NAME) $(OBJS) $(LDOPTIONS) $(LDLIBS) $(EXTRA_LOAD_FLAGS)

quantify: $(OBJS) $(DEPLIBS)
	quantify $(LD) -o $(BINARY_NAME) $(OBJS) $(LDOPTIONS) $(LDLIBS) $(EXTRA_LOAD_FLAGS)

install:: $(BINARY_NAME)
	$(INSTALL) $(INSTPGMFLAGS) $(BINARY_NAME)  $(BINDIR)
	$(RM) $(BINARY_NAME)

uninstall::
	$(RM)  $(BINDIR)/$(BINARY_NAME)

depends:: depend
depend::
	@$(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(CSRCS)
	@$(RM) Makefile.bak

sbrowser:
	$(RM_CMD) \KCOM*
	@$(MAKEFILE_CMD) -DKUSESB
	$(MAKE)

listincl::
	findincl $(ALLDEFINES) $(FDFLAGS) $(CSRCS) $(HEADERS)

spotless: clean uninstall cleanout

clean::
	$(RM) $(BINARY_NAME) $(BINARY_NAME).pure_* $(BINARY_NAME).pcv

RCSco:
	co -l $(SRCS) $(HEADERS) $(SCRIPTS)

RCSci:
	@if [ ! -d RCS ]; then mkdir RCS; fi;  ci $(SRCS) $(HEADERS) $(SCRIPTS)
proto::
	@$(RM) prototypes;
	@touch prototypes;
	-@for i in $(CSRCS); do  (echo " " >> prototypes; echo "    /* $$i */">> prototypes; echo " " >> prototypes; mkproto $(PROTOFLAGS) < $$i >> prototypes); done
protoize::
	-@for i in $(CSRCS); do  (protoize -c "$(PROTOIZEFLAGS) $(ALLDEFINES)" $$i); done
tags::
	$(TAGS) -w *.[chfylCF] > tags

clui::
	$(GHOSTWRITER) -force
gw::
	$(GHOSTWRITER) -force

gui::
	@if [ "$(OBJECT_TYPE)" = "xvroutine" ]; then  echo $(CONDUCTOR) -force; $(CONDUCTOR) -force; fi
cleanout::
	$(RM_CMD) Makefile

Makefiles:
Imakefiles:
GenImakefiles:

clean::
	$(RM_CMD) \KCOM*

Makefile::
	$(MAKEFILE_CMD)

Imakefile::
	$(KGENIMAKE) -tb $(TOOLBOX_NAME)

GenImakefile::
	$(KGENIMAKE) -tb $(TOOLBOX_NAME) -recreate

# dependencies generated by makedepend

test:
	@if [ $(OBJS) ]; then make all > /dev/null 2>&1 ; fi
	@$(RM) $(BINARY_NAME).$(ARCH)
	@date > $(BINARY_NAME).$(ARCH)
	-@for i in $(SCRIPTS); do  (echo " " 2>&1 >> $(BINARY_NAME).$(ARCH); echo "running $$i" >> $(BINARY_NAME).$(ARCH) 2>&1 ; $$i >> $(BINARY_NAME).$(ARCH) 2>&1 ; if [ $$? = 0 ]; then if [ -f $$i.ign ]; then echo "  `$(BASENAME) $(PWD)`  ($$i) ... passed (unexpected)"; else echo "  `$(BASENAME) $(PWD)`  ($$i) ... passed"; fi; elif [ -f $$i.ign ]; then echo "  `$(BASENAME) $(PWD)`  ($$i) ... failed (expected)"; else echo "  `$(BASENAME) $(PWD)`  ($$i) ... FAILED"; fi); done
# DO NOT DELETE

test.o: /research/devel/mirage/dataserv/include/dataserv.h
test.o: /research/devel/mirage/bootstrap/include/bootstrap.h
test.o: /research/devel/mirage/bootstrap/include/machine/cdefs.h
test.o: /research/devel/mirage/bootstrap/include/machine/kopsys.h
test.o: /research/devel/mirage/bootstrap/include/machine/kmachine.h
test.o: /research/devel/mirage/bootstrap/include/machine/includes.h
test.o: /usr/include/stdio.h /usr/include/sys/feature_tests.h
test.o: /usr/include/setjmp.h /usr/include/ctype.h /usr/include/pwd.h
test.o: /usr/include/sys/types.h /usr/include/sys/machtypes.h
test.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/string.h
test.o: /usr/include/fcntl.h /usr/include/sys/fcntl.h /usr/include/time.h
test.o: /usr/include/dirent.h /usr/include/sys/dirent.h /usr/include/unistd.h
test.o: /usr/include/sys/unistd.h /usr/include/stddef.h /usr/include/stdlib.h
test.o: /usr/include/sys/stat.h /usr/include/sys/time.h
test.o: /usr/include/sys/wait.h
test.o: /research/devel/mirage/bootstrap/include/machine/solaris.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kutils.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kvarargs.h
test.o: /usr/include/varargs.h
test.o: /research/devel/mirage/bootstrap/include/kutils/knotify.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kfile.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kparse.h
test.o: /research/devel/mirage/bootstrap/include/kutils/klist.h
test.o: /research/devel/mirage/bootstrap/include/kutils/karray.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kstrings.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kmemory.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kobject.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kstatus.h
test.o: /research/devel/mirage/bootstrap/include/kutils/kmach.h
test.o: /research/devel/mirage/bootstrap/include/klibdb/klibdb.h
test.o: /research/devel/mirage/bootstrap/include/klibdb/kdbm.h
test.o: /research/devel/mirage/bootstrap/include/klibm/klibm.h
test.o: /usr/include/math.h
test.o: /research/devel/mirage/bootstrap/include/klibm/kdata.h
test.o: /research/devel/mirage/bootstrap/include/kexpr/kexpr.h
test.o: /research/devel/mirage/bootstrap/include/kexpr/kevaluate.h
test.o: /research/devel/mirage/bootstrap/include/kforms/kforms.h
test.o: /research/devel/mirage/bootstrap/include/kforms/uislineinfo.h
test.o: /research/devel/mirage/bootstrap/include/kforms/kformsP.h
test.o: /research/devel/mirage/bootstrap/include/kclui/kclui.h
test.o: /research/devel/mirage/bootstrap/include/kcms/kcms.h
test.o: /research/devel/mirage/bootstrap/include/kcms/attributes.h
test.o: /research/devel/mirage/bootstrap/include/kcms/fileobj.h
test.o: /research/devel/mirage/bootstrap/include/kcms/cmobj.h
test.o: /research/devel/mirage/bootstrap/include/kcms/tbobj.h
test.o: /research/devel/mirage/bootstrap/include/kcms/ghost.h
test.o: /research/devel/mirage/bootstrap/include/kcms/error.h
test.o: /research/devel/mirage/bootstrap/include/kcms/keys.h
test.o: /research/devel/mirage/bootstrap/include/kcodegen/kcodegen.h
test.o: /research/devel/mirage/dataserv/include/kdataman/kdataman.h
test.o: /research/devel/mirage/dataserv/include/kappserv/kappserv.h
test.o: /research/devel/mirage/dataserv/include/kappserv/kmodel.h
test.o: /research/devel/mirage/dataserv/include/kappserv/kcolor.h
test.o: /research/devel/mirage/dataserv/include/kappserv/kpolymorphic.h
test.o: /research/devel/mirage/dataserv/include/kappserv/kgeometry.h
test.o: /research/devel/mirage/dataserv/include/kapputils/kapputils.h
test.o: /research/devel/mirage/dataserv/include/kapputils/append.h
