## Copyright 1992 OTC LIMITED
## Copyright 1995 DUMPLETON SOFTWARE CONSULTING PTY LIMITED

## Initialisation.

ifeq "$(SRCDIR)" ""
SRCDIR := .
endif

BLDROOT := ../..
SRCROOT := $(SRCDIR)/$(BLDROOT)

MODULES := combine check install
MAKEIT_OPTIONS := purify shlib ignore_repositories
COMBINE_OPTIONS := closure
CLOSURE_PREFIX := t_otc_
CLOSURE_OPTIONS := ignore_undefined_symbols

include $(SRCROOT)/project/init.mk

## Local definitions.

SUBDIRS := \
 debug \
 memory \
 refcnt \
 collctn \
 text \
 types \
 options \
 files \
 program \
 dispatch

ALLDIRS := ansi ostore thread $(SUBDIRS)

ifeq "$(C++COMPILERENV)" "OSTORE"
SUBDIRS := ostore $(SUBDIRS)
else
ifneq "$(filter OS%,$(C++COMPILER))" ""
SUBDIRS := ostore $(SUBDIRS)
endif
endif

ifneq "$(filter -DHAVE_%_THREADS,$($(C++COMPILER)_CPPFLAGS))" ""
SUBDIRS := thread $(SUBDIRS)
endif

ifneq "$(_makeit_cxx_supports_ansi_exceptions)" "YES"
ifneq "$(C++COMPILERENV)" "VERSANT"
SUBDIRS := ansi $(SUBDIRS)
endif
endif

LIBDIR := $(OSE_HOST_HOME)/lib/$(C++COMPILERTAG)

LIBRARY_RELTAG := $(subst .,X,$(OSE_RELEASE_NAME))
LIBRARY_PLTAG := $(patsubst pl00,,pl$(OSE_MAINTENANCE_RELEASE))
LIBRARY_CXXTAG := $(subst -,_,$(subst .,X,$(C++COMPILERTAG)))

LIBRARY_TAG := $(LIBRARY_RELTAG)$(LIBRARY_PLTAG)_$(LIBRARY_CXXTAG)

ifeq "$(HAVE_LONG_FILE_NAMES)" "YES"
LIBRARY := OTC_$(LIBRARY_TAG)_$(VARIANT)
else
LIBRARY := OTC_$(VARIANT)
endif
LIBVERSION := 1.0
PTMAPS := ../../include/OTC/PTMAP
ifeq "$(C++COMPILERENV)" "OSTORE"
PTDUMMYS := ../../include/OTC/PTDUMMYS
endif

CPPFLAGS += -I../../include

LDLIBS += ../OSE/$(WSPREFIX)$(MKTAG)_opt/lib$(LIBEXT)

ifeq "$(C++COMPILERENV)" "OSTORE"
ifeq "$(_makeit_cxx_supports_cfront_repositories)" "YES"
ifeq "$(_makeit_cxx_broken_library_search)" "YES"
LDLIBS += $(OS_ROOTDIR)/lib/libos.a
endif
endif
endif

## Makeit modules.

include $(SRCROOT)/project/modules.mk

## Local rules.

all.always :: lib.always shlib.always

install.target ::
	touch $(MK)/lib.a.standin
	touch $(MK)/lib.so.standin

ifneq "$(filter OS%,$(C++COMPILER))" ""
ifeq "$(C++COMPILERENV)" ""
ifneq "$(SCHEMA_DB_DIR)" ""
OS_COMPILATION_SCHEMA_DB_PATH := $(SCHEMA_DB_DIR)/libOTC_$(VARIANT).libschema
OS_APPLICATION_SCHEMA_DB_PATH := $(SCHEMA_DB_DIR)/appl_$(VARIANT).schema
else
OS_COMPILATION_SCHEMA_DB_PATH := libOTC_$(VARIANT).libschema
OS_APPLICATION_SCHEMA_DB_PATH := $(MK)/appl_$(VARIANT).schema
endif

install.always ::
	oscp $(OS_COMPILATION_SCHEMA_DB_PATH) $(LIBDIR)/lib$(LIBRARY).libschema
ifeq "$(OSE_BUILDALL)" "YES"
ifneq "$(VARIANT)" "$(DEFAULTVARIANT)"
	osrm -f $(OS_COMPILATION_SCHEMA_DB_PATH)
endif
endif

clean.always ::
	osrm -f $(OS_COMPILATION_SCHEMA_DB_PATH)
	osrm -f $(OS_APPLICATION_SCHEMA_DB_PATH)
endif
endif

ifeq "$(OSE_BUILDALL)" "YES"
install.always :: clean.subdirs
	$(RM) $(MK)/lib.so $(MK)/lib.so.standin
	$(RM) $(MK)/lib.so.a
	$(RM) $(MK).ptr/*
	$(RM) $(MK).ptr.pic/*
	- rmdir $(MK).ptr
	- rmdir $(MK).ptr.pic/*
endif
