summaryrefslogtreecommitdiff
path: root/src/config/lib.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/lib.in')
-rw-r--r--src/config/lib.in166
1 files changed, 166 insertions, 0 deletions
diff --git a/src/config/lib.in b/src/config/lib.in
new file mode 100644
index 000000000000..882e60267ae5
--- /dev/null
+++ b/src/config/lib.in
@@ -0,0 +1,166 @@
+### config/lib.in
+# *** keep this in sync with libnover.in
+#
+# Makefile fragment that creates static, shared, and profiled libraries.
+#
+# The following variables must be set in the Makefile.in:
+#
+# LIBBASE library name without "lib" or extension
+# LIBMAJOR library major version
+# LIBMINOR library minor version
+# SHLIB_EXPDEPS list of libraries that this one has explicit
+# dependencies on, pref. in the form libfoo$(SHLIBEXT)
+# SHLIB_EXPLIBS list of libraries that this one has explicit
+# dependencies on, in "-lfoo" form.
+# RELDIR path to this directory relative to $(TOPLIBD)
+#
+# Makefile.in can also override the defaults for SHLIB_DIRS,
+# SHLIB_RDIRS, and STOBJLISTS from pre.in.
+
+LIBPREFIX=lib
+
+SHOBJLISTS=$(STOBJLISTS:.ST=.SH)
+PFOBJLISTS=$(STOBJLISTS:.ST=.PF)
+
+dummy-target-1 $(SUBDIROBJLISTS) $(SUBDIROBJLISTS:.ST=.SH) $(SUBDIROBJLISTS:.ST=.PF): all-recurse
+
+# Gets invoked as $(PARSE_OBJLISTS) list-of-OBJS.*-files
+PARSE_OBJLISTS= set -x && $(PERL) -p -e 'BEGIN { $$SIG{__WARN__} = sub {die @_} }; $$e=$$ARGV; $$e =~ s/OBJS\...$$//; s/^/ /; s/ $$//; s/ / $$e/g;'
+
+lib$(LIBBASE)$(STLIBEXT): $(STOBJLISTS)
+ $(RM) $@
+ @echo "building static $(LIBBASE) library"
+ set -x; objlist=`$(PARSE_OBJLISTS) $(STOBJLISTS)` && $(AR) cq $@ $$objlist
+ $(RANLIB) $@
+
+lib$(LIBBASE)$(SHLIBVEXT): $(SHOBJLISTS) $(SHLIB_EXPDEPS) $(SHLIB_EXPORT_FILE_DEP)
+ $(RM) $@
+ @echo "building shared $(LIBBASE) library ($(LIBMAJOR).$(LIBMINOR))"
+ set -x; objlist=`$(PARSE_OBJLISTS) $(SHOBJLISTS)` && $(MAKE_SHLIB_COMMAND)
+
+lib$(LIBBASE)$(SHLIBSEXT): lib$(LIBBASE)$(SHLIBVEXT)
+ $(RM) $@
+ $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) $@
+lib$(LIBBASE)$(SHLIBEXT): lib$(LIBBASE)$(SHLIBVEXT)
+ $(RM) $@
+ $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) $@
+
+binutils.versions: $(SHLIB_EXPORT_FILE) Makefile
+ base=`echo "$(LIBBASE)" | sed -e 's/-/_/'`; \
+ echo > binutils.versions "$${base}_$(LIBMAJOR)_MIT {"
+ sed >> binutils.versions < $(SHLIB_EXPORT_FILE) "s/$$/;/"
+ echo >> binutils.versions "};"
+ echo >> binutils.versions "HIDDEN { local: __*; _rest*; _save*; *; };"
+
+darwin.exports: $(SHLIB_EXPORT_FILE) Makefile
+ sed > darwin-exports.tmp < $(SHLIB_EXPORT_FILE) "s/^/_/"
+ $(MV) darwin-exports.tmp darwin.exports
+
+osf1.exports: $(SHLIB_EXPORT_FILE) Makefile
+ $(RM) osf1.tmp osf1.exports
+ sed "s/^/-exported_symbol /" < $(SHLIB_EXPORT_FILE) > osf1.tmp
+ for f in . $(LIBINITFUNC); do \
+ if test "$$f" != "." ; then \
+ echo " -init $$f"__auxinit >> osf1.tmp; \
+ else :; fi; \
+ done
+ a=""; \
+ for f in . $(LIBFINIFUNC); do \
+ if test "$$f" != "." ; then \
+ a="-fini $$f $$a"; \
+ else :; fi; \
+ done; echo " $$a" >> osf1.tmp
+ mv -f osf1.tmp osf1.exports
+
+hpux.exports: $(SHLIB_EXPORT_FILE) Makefile
+ $(RM) hpux.tmp hpux.exports
+ sed "s/^/+e /" < $(SHLIB_EXPORT_FILE) > hpux.tmp
+ a=""; \
+ for f in . $(LIBFINIFUNC); do \
+ if test "$$f" != .; then \
+ a="+I $${f}__auxfini $$a"; \
+ else :; fi; \
+ done; echo "$$a" >> hpux.tmp
+ echo "+e errno" >> hpux.tmp
+ base=`echo "$(LIBBASE)" | sed -e 's/-/_/'`; \
+ echo "+e _GLOBAL__FD_lib$${base}_$(LIBMAJOR)_$(LIBMINOR)" >> hpux.tmp; \
+ echo "+e _GLOBAL__FI_lib$${base}_$(LIBMAJOR)_$(LIBMINOR)" >> hpux.tmp
+ mv -f hpux.tmp hpux.exports
+
+lib$(LIBBASE)$(PFLIBEXT): $(PFOBJLISTS)
+ $(RM) $@
+ @echo "building profiled $(LIBBASE) library"
+ set -x; objlist=`$(PARSE_OBJLISTS) $(PFOBJLISTS)` && $(AR) cq $@ $$objlist
+ $(RANLIB) $@
+
+$(TOPLIBD)/lib$(LIBBASE)$(STLIBEXT): lib$(LIBBASE)$(STLIBEXT)
+ $(RM) $@
+ (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(STLIBEXT) .)
+$(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT): lib$(LIBBASE)$(SHLIBEXT)
+ $(RM) $@
+ (cd $(TOPLIBD) && \
+ $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) lib$(LIBBASE)$(SHLIBEXT))
+$(TOPLIBD)/lib$(LIBBASE)$(SHLIBSEXT): lib$(LIBBASE)$(SHLIBSEXT)
+ $(RM) $@
+ (cd $(TOPLIBD) && \
+ $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) lib$(LIBBASE)$(SHLIBSEXT))
+$(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT): lib$(LIBBASE)$(SHLIBVEXT)
+ $(RM) $@
+ (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(SHLIBVEXT) .)
+$(TOPLIBD)/lib$(LIBBASE)$(PFLIBEXT): lib$(LIBBASE)$(PFLIBEXT)
+ $(RM) $@
+ (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(PFLIBEXT) .)
+
+all-libs: $(LIBLIST)
+all-liblinks: $(LIBLINKS)
+
+clean-libs:
+ $(RM) lib$(LIBBASE)$(STLIBEXT)
+ $(RM) lib$(LIBBASE)$(SHLIBVEXT)
+ $(RM) lib$(LIBBASE)$(SHLIBSEXT)
+ $(RM) lib$(LIBBASE)$(SHLIBEXT)
+ $(RM) lib$(LIBBASE)$(PFLIBEXT)
+ $(RM) binutils.versions osf1.exports darwin.exports hpux.exports
+
+clean-liblinks:
+ $(RM) $(TOPLIBD)/lib$(LIBBASE)$(STLIBEXT)
+ $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT)
+ $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBSEXT)
+ $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT)
+ $(RM) $(TOPLIBD)/lib$(LIBBASE)$(PFLIBEXT)
+
+install-libs: $(LIBINSTLIST)
+install-static:
+ $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(STLIBEXT)
+ $(INSTALL_DATA) lib$(LIBBASE)$(STLIBEXT) $(DESTDIR)$(KRB5_LIBDIR)
+ $(RANLIB) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(STLIBEXT)
+install-shared:
+ $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBVEXT)
+ $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBEXT)
+ $(INSTALL_SHLIB) lib$(LIBBASE)$(SHLIBVEXT) $(DESTDIR)$(KRB5_LIBDIR)
+ (cd $(DESTDIR)$(KRB5_LIBDIR) && $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) \
+ lib$(LIBBASE)$(SHLIBEXT))
+install-shlib-soname: install-shared
+ $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBSEXT)
+ (cd $(DESTDIR)$(KRB5_LIBDIR) && $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) \
+ lib$(LIBBASE)$(SHLIBSEXT))
+install-profiled:
+ $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(PFLIBEXT)
+ $(INSTALL_DATA) lib$(LIBBASE)$(PFLIBEXT) $(DESTDIR)$(KRB5_LIBDIR)
+ $(RANLIB) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(PFLIBEXT)
+
+Makefile: $(top_srcdir)/config/lib.in
+$(BUILDTOP)/config.status: $(top_srcdir)/config/shlib.conf
+
+# Use the following if links need to be made to $(TOPLIBD):
+# all-unix: all-liblinks
+# install-unix: install-libs
+# clean-unix:: clean-liblinks clean-libs
+
+# Use the following if links need not be made:
+# all-unix: all-libs
+# install-unix: install-libs
+# clean-unix:: clean-libs
+
+###
+### end config/lib.in