dtinfo/mmdb: redo the way this library is built

Specifically:

- use libtool so that the top level library contains the actual
  objects, and not just the sub-archives, which the linker will just
  ignore.
- create the source files via symlinks rather than referencing them
  with relative paths.  Doing it that way causes a 'make clean' to
  delete objects in DtMmdb/ which is wrong.
- fix up utility/ - it seemed to be building more source files than
  the original Imakefile listed.  Other changes may need to be done
  here if similar mistakes were made in other subdirs.
This commit is contained in:
Jon Trulson
2021-12-04 15:27:14 -07:00
parent b24fd04619
commit 97b2f86eba
22 changed files with 350 additions and 301 deletions

View File

@@ -1,14 +1,22 @@
MAINTAINERCLEANFILES = Makefile.in
noinst_LIBRARIES = libapi.a
include $(top_srcdir)/programs/dtinfo/dtinfo/src/templates/dtinfo_env.mk
BASE = ../../DtMmdb/api
BUILT_SOURCES = base.C info_base.C info_lib.C smart_ptr.C \
transaction.C utility.C
$(BUILT_SOURCES):
$(LN_S) $(BASE)/$@ $@
CLEANFILES = $(BUILT_SOURCES)
noinst_LTLIBRARIES = libapi.la
libapi_la_CXXFLAGS = $(DTINFO_DEFINES) -I../../DtMmdb -I../../DtMmdb/misc \
-I../../DtMmdb/dti_excs -I$(BASE) $(DTINFO_DEFINES)
libapi_la_SOURCES = $(BUILT_SOURCES)
AUTOMAKE_OPTIONS = no-dependencies
libapi_a_CXXFLAGS = -I../../DtMmdb -I../../DtMmdb/misc -I../../DtMmdb/dti_excs
libapi_a_SOURCES = ../../DtMmdb/api/base.C \
../../DtMmdb/api/info_base.C \
../../DtMmdb/api/info_lib.C \
../../DtMmdb/api/smart_ptr.C \
../../DtMmdb/api/transaction.C \
../../DtMmdb/api/utility.C