XCOMM $TOG: Imakefile /main/27 1997/09/05 11:29:30 samborn $

DEPEND_DEFINES = $(DEPENDDEFINES)
CXXEXTRA_INCLUDES = -DEXPAND_TEMPLATES

NormalCplusplusObjectRule()

#ifdef RegenParserFiles
XCOMM lex flags
LFLAGS=-Cf -L -8 -s 
YFLAGS=-d
#endif
#ifdef DoLicenseManagement
LIC_FLAGS=-DLICENSE_MANAGEMENT
LIC_INCLUDES=$(LICENSE_L_INCLUDES) $(LICENSE_F_INCLUDES)
LIC_LIBS=$(LICENSE_L_LIBS)
#endif

#ifdef UseRWClasses
XCOMM make rogue into a defined item in site.def
INCLUDES=-I/VOB/olias/control/rogue 
ROGUE_LIBS=$(RW_LIBDIR) $(RW_LIB)
#endif

INCLUDES=$(CXXDEPENDINCLUDES) $(MMDB_INCLUDES) $(EXCEPTIONS_INCLUDES) \
         $(MISC_INCLUDES) $(GLOBAL_INCLUDES) $(DBUG_INCLUDES) \
	 $(COMMON_CLASS_INCLUDES) $(LIC_INCLUDES)


 
MMDB_DIR=../../../mmdb

#ifdef AIXArchitecture

API_OBJS = \
	$(MMDB_DIR)/api/base.o			$(MMDB_DIR)/api/info_base.o \
	$(MMDB_DIR)/api/info_lib.o			$(MMDB_DIR)/api/smart_ptr.o \
	$(MMDB_DIR)/api/transaction.o		$(MMDB_DIR)/api/utility.o

BTREE_OBJS = \
	$(MMDB_DIR)/btree/mmdb_btree.o

#if !defined(AIXArchitecture)
EXTRA_BTREE_BERKELEY_OBJS = $(MMDB_DIR)/btree_berkeley/memmove.o
#endif

BTREE_BERKELEY_OBJS = \
	$(MMDB_DIR)/btree_berkeley/bt_close.o	$(MMDB_DIR)/btree_berkeley/bt_conv.o \
	$(MMDB_DIR)/btree_berkeley/bt_debug.o	$(MMDB_DIR)/btree_berkeley/bt_delete.o \
	$(MMDB_DIR)/btree_berkeley/bt_get.o		$(MMDB_DIR)/btree_berkeley/bt_open.o \
	$(MMDB_DIR)/btree_berkeley/bt_overflow.o	$(MMDB_DIR)/btree_berkeley/bt_page.o \
	$(MMDB_DIR)/btree_berkeley/bt_put.o		$(MMDB_DIR)/btree_berkeley/bt_search.o \
	$(MMDB_DIR)/btree_berkeley/bt_seq.o		$(MMDB_DIR)/btree_berkeley/bt_split.o \
	$(MMDB_DIR)/btree_berkeley/bt_stack.o	$(MMDB_DIR)/btree_berkeley/bt_utils.o \
	$(MMDB_DIR)/btree_berkeley/mktemp.o		$(MMDB_DIR)/btree_berkeley/realloc.o \
	$(MMDB_DIR)/btree_berkeley/snprintf.o	$(EXTRA_BTREE_BERKELEY_OBJS) \
	$(MMDB_DIR)/btree_berkeley/mpool.o		$(MMDB_DIR)/btree_berkeley/db.o

COMPRESSION_OBJS = \
	$(MMDB_DIR)/compression/abs_agent.o		$(MMDB_DIR)/compression/zip.o \
	$(MMDB_DIR)/compression/huffman.o		$(MMDB_DIR)/compression/trie.o \
	$(MMDB_DIR)/compression/code.o		$(MMDB_DIR)/compression/lzss.o \
	$(MMDB_DIR)/compression/sgml.o		$(MMDB_DIR)/compression/ps.o

DISKHASH_OBJS = \
	$(MMDB_DIR)/diskhash/disk_bucket.o		$(MMDB_DIR)/diskhash/bucket_array.o \
	$(MMDB_DIR)/diskhash/disk_hash.o

DSTR_OBJS = \
	$(MMDB_DIR)/dstr/set.o			$(MMDB_DIR)/dstr/bset.o \
	$(MMDB_DIR)/dstr/slist.o			$(MMDB_DIR)/dstr/dlist_cell.o \
	$(MMDB_DIR)/dstr/dlist.o			$(MMDB_DIR)/dstr/heap.o \
	$(MMDB_DIR)/dstr/void_ptr_array.o		$(MMDB_DIR)/dstr/void_ptr_stack.o \
	$(MMDB_DIR)/dstr/memory_pool.o		$(MMDB_DIR)/dstr/dstr_test.o \
	$(MMDB_DIR)/dstr/index_agent.o		$(MMDB_DIR)/dstr/token_stack.o \
	$(MMDB_DIR)/dstr/slist_char_ptr_cell.o

DTI_EXCS_OBJS = \
	$(MMDB_DIR)/dti_excs/Jump_Environment.o	$(MMDB_DIR)/dti_excs/Exceptions.o \
	$(MMDB_DIR)/dti_excs/Exception.o		$(MMDB_DIR)/dti_excs/Destructable.o \
	$(MMDB_DIR)/dti_excs/terminate.o

DYNHASH_OBJS = \
	$(MMDB_DIR)/dynhash/data_t.o		$(MMDB_DIR)/dynhash/imp_bucket.o \
	$(MMDB_DIR)/dynhash/imp_die.o

HMPHF_OBJS = \
	$(MMDB_DIR)/hmphf/buckets.o			$(MMDB_DIR)/hmphf/mphf_funcs.o \
	$(MMDB_DIR)/hmphf/mphf_hash_table.o		$(MMDB_DIR)/hmphf/params.o \
	$(MMDB_DIR)/hmphf/pattern.o			$(MMDB_DIR)/hmphf/sorter.o

INDEX_OBJS = \
	$(MMDB_DIR)/index/btree_index.o		$(MMDB_DIR)/index/dyn_disk_index.o \
	$(MMDB_DIR)/index/dyn_index.o		$(MMDB_DIR)/index/dyn_memory_index.o \
	$(MMDB_DIR)/index/fast_mphf.o		$(MMDB_DIR)/index/hash.o \
	$(MMDB_DIR)/index/index.o			$(MMDB_DIR)/index/inv_lists.o \
	$(MMDB_DIR)/index/mphf_index.o

MGRS_OBJS = \
	$(MMDB_DIR)/mgrs/managers.o			$(MMDB_DIR)/mgrs/misc.o \
	$(MMDB_DIR)/mgrs/query_mgr.o		$(MMDB_DIR)/mgrs/template_mgr.o

MISC_OBJS = \
	$(MMDB_DIR)/misc/unique_id.o

OBJECT_OBJS = \
	$(MMDB_DIR)/object/composite.o		$(MMDB_DIR)/object/compressed_pstring.o \
	$(MMDB_DIR)/object/cset.o			$(MMDB_DIR)/object/dl_list.o \
	$(MMDB_DIR)/object/dl_list_cell.o		$(MMDB_DIR)/object/handler.o \
	$(MMDB_DIR)/object/integer.o		$(MMDB_DIR)/object/long_pstring.o \
	$(MMDB_DIR)/object/oid.o			$(MMDB_DIR)/object/oid_list.o \
	$(MMDB_DIR)/object/oid_t.o			$(MMDB_DIR)/object/primitive.o \
	$(MMDB_DIR)/object/pstring.o		$(MMDB_DIR)/object/random_gen.o \
	$(MMDB_DIR)/object/root.o			$(MMDB_DIR)/object/short_list.o \
	$(MMDB_DIR)/object/tuple.o

OLIASDB_OBJS = \
	$(MMDB_DIR)/oliasdb/asciiIn_filters.o 	$(MMDB_DIR)/oliasdb/collectionIterator.o \
	$(MMDB_DIR)/oliasdb/dlp_hd.o 		$(MMDB_DIR)/oliasdb/dlp_test.o \
	$(MMDB_DIR)/oliasdb/doc_hd.o 		$(MMDB_DIR)/oliasdb/doc_test.o \
	$(MMDB_DIR)/oliasdb/graphic_hd.o 		$(MMDB_DIR)/oliasdb/graphic_test.o \
	$(MMDB_DIR)/oliasdb/loc_test.o 		$(MMDB_DIR)/oliasdb/locator_hd.o \
	$(MMDB_DIR)/oliasdb/mark.o 			$(MMDB_DIR)/oliasdb/mark_base.o  \
	$(MMDB_DIR)/oliasdb/mark_test.o 		$(MMDB_DIR)/oliasdb/mmdb.o \
	$(MMDB_DIR)/oliasdb/node_hd.o 		$(MMDB_DIR)/oliasdb/node_test.o \
	$(MMDB_DIR)/oliasdb/olias_funcs.o 		$(MMDB_DIR)/oliasdb/olias_test.o \
	$(MMDB_DIR)/oliasdb/stylesheet_hd.o 	$(MMDB_DIR)/oliasdb/stylesheet_test.o \
	$(MMDB_DIR)/oliasdb/toc_hd.o 		$(MMDB_DIR)/oliasdb/toc_test.o \
	$(MMDB_DIR)/oliasdb/user_base.o

SCHEMA_OBJS = \
	$(MMDB_DIR)/schema/desc.o			$(MMDB_DIR)/schema/store_desc.o \
	$(MMDB_DIR)/schema/object_dict.o		$(MMDB_DIR)/schema/stored_object_desc.o \
	$(MMDB_DIR)/schema/index_desc.o		$(MMDB_DIR)/schema/inv_desc.o \
	$(MMDB_DIR)/schema/agent_desc.o		$(MMDB_DIR)/schema/container_desc.o \
	$(MMDB_DIR)/schema/sheet.o			$(MMDB_DIR)/schema/token.o

STORAGE_OBJS = \
	$(MMDB_DIR)/storage/abs_storage.o		$(MMDB_DIR)/storage/chunks_index.o	\
	$(MMDB_DIR)/storage/heap_comp_funcs.o	$(MMDB_DIR)/storage/lru.o \
	$(MMDB_DIR)/storage/page.o			$(MMDB_DIR)/storage/page_cache.o \
	$(MMDB_DIR)/storage/page_rep.o		$(MMDB_DIR)/storage/page_storage.o \
	$(MMDB_DIR)/storage/rep_cell.o		$(MMDB_DIR)/storage/rep_policy.o \
	$(MMDB_DIR)/storage/store_test.o		$(MMDB_DIR)/storage/unixf_storage.o \
	$(MMDB_DIR)/storage/version.o		$(MMDB_DIR)/storage/vm_storage.o

UTILITY_OBJS = \
	$(MMDB_DIR)/utility/funcs.o			$(MMDB_DIR)/utility/ostring.o \
	$(MMDB_DIR)/utility/pm_random.o		$(MMDB_DIR)/utility/atoi_pearson.o \
	$(MMDB_DIR)/utility/xtime.o			$(MMDB_DIR)/utility/buffer.o \
	$(MMDB_DIR)/utility/atoi_larson.o		$(MMDB_DIR)/utility/atomic_lock.o \
	$(MMDB_DIR)/utility/rw_lock.o		$(MMDB_DIR)/utility/atoi_fast.o \
	$(MMDB_DIR)/utility/filter.o		$(MMDB_DIR)/utility/mmdb_exception.o \
	$(MMDB_DIR)/utility/randomize.o

DTI_CC_OBJS = \
	$(MMDB_DIR)/dti_cc/CC_Listbase.o		$(MMDB_DIR)/dti_cc/cc_exceptions.o \
	$(MMDB_DIR)/dti_cc/CC_String.o		$(MMDB_DIR)/dti_cc/CC_Tokenizer.o \
	$(MMDB_DIR)/dti_cc/CC_Stack.o		$(MMDB_DIR)/dti_cc/CC_Slist.o

#if defined(HPArchitecture) || !defined(CplusplusCompilerMajorVersion) || (CplusplusCompilerMajorVersion < 4)
EXTRA_HARDCOPY_OBJS = $(MMDB_DIR)/HardCopy/TemplatesAutoNumber.o
#endif

HARDCOPY_OBJS = \
	$(MMDB_DIR)/HardCopy/FPset.o		$(MMDB_DIR)/HardCopy/HardCopyFP.o \
	$(MMDB_DIR)/HardCopy/autoNumber.o		$(MMDB_DIR)/HardCopy/autoNumberFP.o \
	$(EXTRA_HARDCOPY_OBJS)

#if defined(HPArchitecture) || !defined(CplusplusCompilerMajorVersion) || (CplusplusCompilerMajorVersion < 4)
EXTRA_STYLESHEET_OBJS = $(MMDB_DIR)/StyleSheet/SSTemplates.o
#endif

STYLESHEET_OBJS = \
	$(MMDB_DIR)/StyleSheet/Attribute.o		$(MMDB_DIR)/StyleSheet/AttributeList.o \
	$(MMDB_DIR)/StyleSheet/BitVector.o		$(MMDB_DIR)/StyleSheet/DocParser.o \
	$(MMDB_DIR)/StyleSheet/Element.o		$(MMDB_DIR)/StyleSheet/Expression.o \
	$(MMDB_DIR)/StyleSheet/Feature.o		$(MMDB_DIR)/StyleSheet/FeatureDefDictionary.o \
	$(MMDB_DIR)/StyleSheet/FeatureSet.o		$(MMDB_DIR)/StyleSheet/FeatureValue.o \
	$(MMDB_DIR)/StyleSheet/PathQualifier.o		$(MMDB_DIR)/StyleSheet/PathTable.o \
	$(MMDB_DIR)/StyleSheet/Resolver.o		$(MMDB_DIR)/StyleSheet/ResolverStack.o \
	$(MMDB_DIR)/StyleSheet/SSPath.o			$(MMDB_DIR)/StyleSheet/StyleSheet.o \
	$(MMDB_DIR)/StyleSheet/StyleSheetExceptions.o \
	$(MMDB_DIR)/StyleSheet/SymTab.o			$(MMDB_DIR)/StyleSheet/VariableTable.o \
	$(MMDB_DIR)/StyleSheet/defParser.o		$(MMDB_DIR)/StyleSheet/defToken.o \
	$(MMDB_DIR)/StyleSheet/style.o			$(MMDB_DIR)/StyleSheet/tokenStyle.o \
	$(MMDB_DIR)/StyleSheet/RendererHCV.o	$(EXTRA_STYLESHEET_OBJS)

MMDB_OBJS = $(HARDCOPY_OBJS) $(STYLESHEET_OBJS) $(DTI_CC_OBJS)

ALL_MMDB_OBJS =	$(API_OBJS)		$(BTREE_OBJS) \
	$(BTREE_BERKELEY_OBJS)	$(COMPRESSION_OBJS) \
	$(DISKHASH_OBJS)	$(DSTR_OBJS) \
	$(DTI_EXCS_OBJS) 	$(DYNHASH_OBJS) \
	$(HMPHF_OBJS)		$(INDEX_OBJS) \
	$(MGRS_OBJS)		$(MISC_OBJS) \
	$(OBJECT_OBJS)		$(OLIASDB_OBJS) \
	$(SCHEMA_OBJS)		$(STORAGE_OBJS) \
	$(UTILITY_OBJS)		$(MMDB_OBJS)
#endif

#ifdef AIXArchitecture
Libs =  $(LINKLIBS) $(ALL_MMDB_OBJS) $(LIC_LIBS) $(DBUG_LIBS) $(DTSVCLIB) $(TTLIB) $(MATH_LIB)
#else
Libs =  $(LINKLIBS) $(MMDB_LIBS) $(LIC_LIBS) $(DBUG_LIBS) $(MATH_LIB)
#endif

#ifdef UseQSearch
SEARCHENG=QSearch
#else
#ifdef UseDtSearch
SEARCHENG=AusText
#endif
#endif

#ifdef UseDtSearch
SEARCH_SRCS=$(SEARCHENG).C $(SEARCHENG)Storage.C
SEARCH_OBJS=$(SEARCHENG).o $(SEARCHENG)Storage.o
#else
SEARCH_OBJS=$(SEARCHENG)
#endif

NORMAL_SRCS = \
	AttributeData.C \
	AttributeList.C \
	AttributeRec.C \
	BookCaseDB.C \
	BookTasks.C \
	BTCollectable.C \
	ConcatTask.C \
	Content.C \
	OL_DataExpr.C \
	ContentType.C \
	DataBase.C \
	DataTask.C \
	DataRepository.C \
	Dispatch.C \
	EntityList.C \
	Expression.C \
	ExprList.C \
	FirstOf.C \
	FlexBuffer.C \
	GenericId.C \
	gr_type.C \
	GraphicsTask.C \
	Handler.C \
	LcfTask.C \
	NodeData.C \
	NodeTask.C \
	OL-Data.C \
	OLAF.C \
	ReplaceIdIdref.C \
	SGMLDefn.C \
	SGMLName.C \
	SearchEng.C \
	SearchPath.C \
	SearchStorage.C \
	StringList.C \
	StyleTask.C \
	StyleTaskDB.C \
	StyleValidate.C \
	TOCTask.C \
	Task.C \
	Token.C \
	lex.C

NORMAL_OBJS = $(NORMAL_SRCS:.C=.o) $(SEARCH_OBJS)

SRCS=$(NORMAL_SRCS) $(SEARCH_SRCS)
#ifndef DtinfoClient
OBJS=$(NORMAL_OBJS) PostScript.o
#else
OBJS=$(NORMAL_OBJS)
#endif

CMD_SRCS = NodeParser.C \
	NCFGen.C \
	MixedGen.C \
	RemoteId.C \
	StyleUpdate.C
CMD_OBJS = $(CMD_SRCS:.C=.o)

XCOMM #######################################
XCOMM Template handling
XCOMM #######################################
#if defined(SunArchitecture) && CplusplusCompilerMajorVersion > 5
all::$(CMD_OBJS)
SimpleLibraryT(OLAFParse,$(OBJS),$(LIBDIR))
SimpleCPlusPlusProgram(NodeParser, NodeParser.o libOLAFParse.a libOLAFParseT.a,$(Libs))
SimpleCPlusPlusProgram(NCFGen, NCFGen.o libOLAFParse.a libOLAFParseT.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(MixedGen, MixedGen.o RemoteId.o libOLAFParse.a libOLAFParseT.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(StyleUpdate, StyleUpdate.o libOLAFParse.a libOLAFParseT.a,$(Libs) $(DTSVCLIB) $(TTLIB))
#elif defined(LinuxArchitecture) || defined(BSDArchitecture) || \
      defined(SunArchitecture)
TEMPLATE_OBJS = TKTemplate.o
RealLibrary(OLAFParse,$(OBJS),$(LIBDIR))
SimpleCPlusPlusProgram(NodeParser, NodeParser.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs))
SimpleCPlusPlusProgram(NCFGen, NCFGen.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(MTF_LIBRARIES) $(TTLIB))
SimpleCPlusPlusProgram(MixedGen, MixedGen.o RemoteId.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(MTF_LIBRARIES) $(TTLIB))
SimpleCPlusPlusProgram(StyleUpdate, StyleUpdate.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(MTF_LIBRARIES) $(TTLIB))
#else
TEMPLATE_OBJS = TKTemplate.o
RealLibrary(OLAFParse,$(OBJS),$(LIBDIR))
SimpleCPlusPlusProgram(NodeParser, NodeParser.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs))
SimpleCPlusPlusProgram(NCFGen, NCFGen.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(MixedGen, MixedGen.o RemoteId.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(TTLIB))
SimpleCPlusPlusProgram(StyleUpdate, StyleUpdate.o $(TEMPLATE_OBJS) libOLAFParse.a,$(Libs) $(DTSVCLIB) $(TTLIB))
#ifdef HPArchitecture
SpecialCPlusPlusObjectRule($(TEMPLATE_OBJS),,+pti all_tmpls)
#else
#if defined(SunArchitecture) && CplusplusCompilerMajorVersion < 4
SpecialCPlusPlusObjectRule($(TEMPLATE_OBJS),,+Tall_tmpls)
#endif
#endif
#endif

XCOMM  lex.C gr_type.C ReplaceIdIdref.C ContentType.C RemoteId.C
XCOMM  and OL_DataExpr.C are generated from flex and byacc files
#ifdef RegenParserFiles
SimpleCPlusPlusLexTarget(lex)
LexTarget (gr_type,graphics_task)
LexTarget (ReplaceIdIdref,nodedata)
LexTarget (ContentType,ol_data)
LexTarget (RemoteId,remote)
YaccTarget(OL_DataExpr,ol_data)
#else
OL_DataExpr.o : OL_DataExpr.C
	CplusObjectCompile($(_NOOP_))
ContentType.o : ContentType.C
	CplusObjectCompile($(_NOOP_))
gr_type.o : gr_type.C
	CplusObjectCompile($(_NOOP_))
ReplaceIdIdref.o : ReplaceIdIdref.C
	CplusObjectCompile($(_NOOP_))
lex.o : lex.C
	CplusObjectCompile($(_NOOP_))
RemoteId.o : RemoteId.C
	CplusObjectCompile($(_NOOP_))
#endif

XCOMM This passes BookTasks.C the necessary flag to compile-in licensing
SpecialCPlusPlusObjectRule(BookTasks.o,,$(LIC_FLAGS))

InstallBuildToolsBinary(NodeParser)
InstallBuildToolsBinary(NCFGen)
InstallBuildToolsBinary(MixedGen)
InstallBuildToolsBinary(StyleUpdate)
InstallBuildToolsScript(dtinfogen)
InstallBuildToolsBinary(dtinfogen_worker)
#ifndef DtinfoClient
InstallMultipleDest(install_buildtools,psbox.ps,$(INSTALL_ETC_DIR))
#endif


XCOMM symlinks used by dtinfogen when run from the build tree

LinkSourceFile(hardcopy.feature.spec,$(CDELIBSRC)/DtMmdb/StyleSheet)
LinkSourceFile(online.feature.spec,$(CDELIBSRC)/DtMmdb/StyleSheet)
LinkSourceFile(mmdb.infolib.spec,$(CDELIBSRC)/DtMmdb/oliasdb)
LinkSourceFile(dtsr,$(PROGRAMSRC))
LinkFile(C.ISO-8859-1,$(PROGRAMSRC)/localized/C)
LinkFile(de_DE.UTF-8,$(PROGRAMSRC)/localized/de_DE.UTF-8)
LinkFile(es_ES.UTF-8,$(PROGRAMSRC)/localized/es_ES.UTF-8)
LinkFile(fr_FR.UTF-8,$(PROGRAMSRC)/localized/fr_FR.UTF-8)
LinkFile(it_IT.UTF-8,$(PROGRAMSRC)/localized/it_IT.UTF-8)
LinkFile(ja_JP.EUC-JP,$(PROGRAMSRC)/localized/ja_JP.dt-eucJP)
LinkFile(C,C.ISO-8859-1)

#if defined(SunArchitecture)
SYS_LIBRARIES = -lgen
#endif

DEPLIBS2 = $(DEPDTSVCLIB) $(DEPTTLIB) /* $(DEPXMLIB) $(DEPXTOOLLIB) $(DEPXLIB) */
LOCAL_LIBRARIES2 = $(DTSVCLIB) $(TTLIB) $(XMLIB) $(XTOOLLIB) $(XLIB)

SRCS2 = dtinfogen_worker.c
OBJS2 = dtinfogen_worker.o

AllTarget(dtinfogen_worker)
ComplexProgramTarget_2(dtinfogen_worker,$(LOCAL_LIBRARIES2),NullParameter)

clean::
	RemoveFiles(dtinfogen_worker)

DependTarget3($(NORMAL_SRCS),$(CMD_SRCS),$(SRCS2))
