XCOMM $TOG: Imakefile /main/12 1998/08/10 15:56:48 mgreess $

XCOMM                         ** WARNING **
XCOMM 
XCOMM The files named here may appear in many different Imakefiles.
XCOMM If you add or remove a file, be sure to update all locations.
XCOMM It's unfortunate, but all this redundancy serves a purpose.
XCOMM
XCOMM Other possible locations are:
XCOMM		.../lib/DtMmdb/Imakefile
XCOMM		.../lib/DtMmdb/<subdir>/Imakefile
XCOMM		.../programs/dtinfo/mmdb/Imakefile
XCOMM		.../programs/dtinfo/mmdb/<subdir>/Imakefile

#define IHaveSubdirs
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CXXDEBUGFLAGS=$(CXXDEBUGFLAGS)'

MMDB_SUBDIRS = HardCopy StyleSheet dti_cc

SUBDIRS = \
	api			btree \
	btree_berkeley		compression \
	diskhash		dstr \
	dti_excs		dynhash \
	hmphf			index \
	mgrs			misc \
	object			oliasdb \
	schema			storage \
	utility			$(MMDB_SUBDIRS)

MMDB_DONES = HardCopy/DONE StyleSheet/DONE dti_cc/DONE

DONES = \
	api/DONE		btree/DONE \
	btree_berkeley/DONE	compression/DONE \
	diskhash/DONE		dstr/DONE \
	dti_excs/DONE		dynhash/DONE \
	hmphf/DONE		index/DONE \
	mgrs/DONE		misc/DONE \
	object/DONE		oliasdb/DONE \
	schema/DONE		storage/DONE \
	utility/DONE		$(MMDB_DONES)

EXTRALIBRARYDEPS = $(DONES)

XCOMM redefine TopLevelProject to build DtInfo with standard CDE config dir
#undef  TopLevelProject
#define TopLevelProject		DtInfo
IMAKE_DEF_DTINFO =  -DTopLevelProject=TopLevelProject \
		    -DProjectTmplFile='<DtInfo.tmpl>' \
		    -DProjectRulesFile='<DtInfo.rules>'

MakeSubdirs($(SUBDIRS))
ForceSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))


#define DoNormalLib	YES
#define DoSharedLib	NO
#define DoDebugLib	NO
#define DoProfileLib	NO
#define LibName		MMDB
#define LibHeaders	NO

#define CplusplusSource	YES

/*
 * N.B.:  All .o's should be built in the subdirectories.
 */

API_OBJS = \
	api/base.o			api/info_base.o \
	api/info_lib.o			api/smart_ptr.o \
	api/transaction.o		api/utility.o

BTREE_OBJS = \
	btree/mmdb_btree.o

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

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

COMPRESSION_OBJS = \
	compression/abs_agent.o		compression/zip.o \
	compression/huffman.o		compression/trie.o \
	compression/code.o		compression/lzss.o \
	compression/sgml.o		compression/ps.o

DISKHASH_OBJS = \
	diskhash/disk_bucket.o		diskhash/bucket_array.o \
	diskhash/disk_hash.o

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

DTI_EXCS_OBJS = \
	dti_excs/Jump_Environment.o	dti_excs/Exceptions.o \
	dti_excs/Exception.o		dti_excs/Destructable.o \
	dti_excs/terminate.o

DYNHASH_OBJS = \
	dynhash/data_t.o		dynhash/imp_bucket.o \
	dynhash/imp_die.o

HMPHF_OBJS = \
	hmphf/buckets.o			hmphf/mphf_funcs.o \
	hmphf/mphf_hash_table.o		hmphf/params.o \
	hmphf/pattern.o			hmphf/sorter.o

INDEX_OBJS = \
	index/btree_index.o		index/dyn_disk_index.o \
	index/dyn_index.o		index/dyn_memory_index.o \
	index/fast_mphf.o		index/hash.o \
	index/index.o			index/inv_lists.o \
	index/mphf_index.o

MGRS_OBJS = \
	mgrs/managers.o			mgrs/misc.o \
	mgrs/query_mgr.o		mgrs/template_mgr.o

MISC_OBJS = \
	misc/unique_id.o

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

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

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

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

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

DTI_CC_OBJS = \
	dti_cc/CC_Listbase.o		dti_cc/cc_exceptions.o \
	dti_cc/CC_String.o		dti_cc/CC_Tokenizer.o \
	dti_cc/CC_Stack.o		dti_cc/CC_Slist.o

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

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

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

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

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

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)

#include <Library.tmpl>

XCOMM Variables to switch on debug mode temporarily
XCOMM CDEBUGFLAGS = -g -DDEBUG
XCOMM CXXDEBUGFLAGS = -g -DDEBUG

#if defined(SunArchitecture) && CplusplusCompilerMajorVersion > 5
AllTarget(libMMDBTemplates.a)

libMMDBTemplates.a:
	$(RM) $@
	find ./templates/Templates.DB -name '*.o' -type f -print | xargs -n4 ar cq $@

clean::
	$(RM) libMMDBTemplates.a
	ptclean
#endif
