1### config/lib.in 2# *** keep this in sync with libnover.in 3# 4# Makefile fragment that creates static, shared, and profiled libraries. 5# 6# The following variables must be set in the Makefile.in: 7# 8# LIBBASE library name without "lib" or extension 9# LIBMAJOR library major version 10# LIBMINOR library minor version 11# SHLIB_EXPDEPS list of libraries that this one has explicit 12# dependencies on, pref. in the form libfoo$(SHLIBEXT) 13# SHLIB_EXPLIBS list of libraries that this one has explicit 14# dependencies on, in "-lfoo" form. 15# RELDIR path to this directory relative to $(TOPLIBD) 16# 17# Makefile.in can also override the defaults for SHLIB_DIRS, 18# SHLIB_RDIRS, and STOBJLISTS from pre.in. 19 20LIBPREFIX=lib 21 22SHOBJLISTS=$(STOBJLISTS:.ST=.SH) 23PFOBJLISTS=$(STOBJLISTS:.ST=.PF) 24 25dummy-target-1 $(SUBDIROBJLISTS) $(SUBDIROBJLISTS:.ST=.SH) $(SUBDIROBJLISTS:.ST=.PF): all-recurse 26 27# Gets invoked as $(PARSE_OBJLISTS) list-of-OBJS.*-files 28PARSE_OBJLISTS= set -x && $(PERL) -p -e 'BEGIN { $$SIG{__WARN__} = sub {die @_} }; $$e=$$ARGV; $$e =~ s/OBJS\...$$//; s/^/ /; s/ $$//; s/ / $$e/g;' 29 30lib$(LIBBASE)$(STLIBEXT): $(STOBJLISTS) 31 $(RM) $@ 32 @echo "building static $(LIBBASE) library" 33 set -x; objlist=`$(PARSE_OBJLISTS) $(STOBJLISTS)` && $(AR) cq $@ $$objlist 34 $(RANLIB) $@ 35 36lib$(LIBBASE)$(SHLIBVEXT): $(SHOBJLISTS) $(SHLIB_EXPDEPS) $(SHLIB_EXPORT_FILE_DEP) 37 $(RM) $@ 38 @echo "building shared $(LIBBASE) library ($(LIBMAJOR).$(LIBMINOR))" 39 set -x; objlist=`$(PARSE_OBJLISTS) $(SHOBJLISTS)` && $(MAKE_SHLIB_COMMAND) 40 41lib$(LIBBASE)$(SHLIBSEXT): lib$(LIBBASE)$(SHLIBVEXT) 42 $(RM) $@ 43 $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) $@ 44lib$(LIBBASE)$(SHLIBEXT): lib$(LIBBASE)$(SHLIBVEXT) 45 $(RM) $@ 46 $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) $@ 47 48binutils.versions: $(SHLIB_EXPORT_FILE) Makefile 49 base=`echo "$(LIBBASE)" | sed -e 's/-/_/'`; \ 50 echo > binutils.versions "$${base}_$(LIBMAJOR)_MIT {" 51 sed >> binutils.versions < $(SHLIB_EXPORT_FILE) "s/$$/;/" 52 echo >> binutils.versions "};" 53 echo >> binutils.versions "HIDDEN { local: __*; _rest*; _save*; *; };" 54 55darwin.exports: $(SHLIB_EXPORT_FILE) Makefile 56 sed > darwin-exports.tmp < $(SHLIB_EXPORT_FILE) "s/^/_/" 57 $(MV) darwin-exports.tmp darwin.exports 58 59osf1.exports: $(SHLIB_EXPORT_FILE) Makefile 60 $(RM) osf1.tmp osf1.exports 61 sed "s/^/-exported_symbol /" < $(SHLIB_EXPORT_FILE) > osf1.tmp 62 for f in . $(LIBINITFUNC); do \ 63 if test "$$f" != "." ; then \ 64 echo " -init $$f"__auxinit >> osf1.tmp; \ 65 else :; fi; \ 66 done 67 a=""; \ 68 for f in . $(LIBFINIFUNC); do \ 69 if test "$$f" != "." ; then \ 70 a="-fini $$f $$a"; \ 71 else :; fi; \ 72 done; echo " $$a" >> osf1.tmp 73 mv -f osf1.tmp osf1.exports 74 75hpux.exports: $(SHLIB_EXPORT_FILE) Makefile 76 $(RM) hpux.tmp hpux.exports 77 sed "s/^/+e /" < $(SHLIB_EXPORT_FILE) > hpux.tmp 78 a=""; \ 79 for f in . $(LIBFINIFUNC); do \ 80 if test "$$f" != .; then \ 81 a="+I $${f}__auxfini $$a"; \ 82 else :; fi; \ 83 done; echo "$$a" >> hpux.tmp 84 echo "+e errno" >> hpux.tmp 85 base=`echo "$(LIBBASE)" | sed -e 's/-/_/'`; \ 86 echo "+e _GLOBAL__FD_lib$${base}_$(LIBMAJOR)_$(LIBMINOR)" >> hpux.tmp; \ 87 echo "+e _GLOBAL__FI_lib$${base}_$(LIBMAJOR)_$(LIBMINOR)" >> hpux.tmp 88 mv -f hpux.tmp hpux.exports 89 90lib$(LIBBASE)$(PFLIBEXT): $(PFOBJLISTS) 91 $(RM) $@ 92 @echo "building profiled $(LIBBASE) library" 93 set -x; objlist=`$(PARSE_OBJLISTS) $(PFOBJLISTS)` && $(AR) cq $@ $$objlist 94 $(RANLIB) $@ 95 96$(TOPLIBD)/lib$(LIBBASE)$(STLIBEXT): lib$(LIBBASE)$(STLIBEXT) 97 $(RM) $@ 98 (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(STLIBEXT) .) 99$(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT): lib$(LIBBASE)$(SHLIBEXT) 100 $(RM) $@ 101 (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(SHLIBEXT) .) 102$(TOPLIBD)/lib$(LIBBASE)$(SHLIBSEXT): lib$(LIBBASE)$(SHLIBSEXT) 103 $(RM) $@ 104 (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(SHLIBSEXT) .) 105$(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT): lib$(LIBBASE)$(SHLIBVEXT) 106 $(RM) $@ 107 (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(SHLIBVEXT) .) 108$(TOPLIBD)/lib$(LIBBASE)$(PFLIBEXT): lib$(LIBBASE)$(PFLIBEXT) 109 $(RM) $@ 110 (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(PFLIBEXT) .) 111 112all-libs: $(LIBLIST) 113all-liblinks: $(LIBLINKS) 114 115clean-libs: 116 $(RM) lib$(LIBBASE)$(STLIBEXT) 117 $(RM) lib$(LIBBASE)$(SHLIBVEXT) 118 $(RM) lib$(LIBBASE)$(SHLIBSEXT) 119 $(RM) lib$(LIBBASE)$(SHLIBEXT) 120 $(RM) lib$(LIBBASE)$(PFLIBEXT) 121 $(RM) binutils.versions osf1.exports darwin.exports hpux.exports 122 123clean-liblinks: 124 $(RM) $(TOPLIBD)/lib$(LIBBASE)$(STLIBEXT) 125 $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT) 126 $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBSEXT) 127 $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT) 128 $(RM) $(TOPLIBD)/lib$(LIBBASE)$(PFLIBEXT) 129 130install-libs: $(LIBINSTLIST) 131install-static: 132 $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(STLIBEXT) 133 $(INSTALL_DATA) lib$(LIBBASE)$(STLIBEXT) $(DESTDIR)$(KRB5_LIBDIR) 134 $(RANLIB) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(STLIBEXT) 135install-shared: 136 $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBVEXT) 137 $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBEXT) 138 $(INSTALL_SHLIB) lib$(LIBBASE)$(SHLIBVEXT) $(DESTDIR)$(KRB5_LIBDIR) 139 (cd $(DESTDIR)$(KRB5_LIBDIR) && $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) \ 140 lib$(LIBBASE)$(SHLIBEXT)) 141install-shlib-soname: install-shared 142 $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBSEXT) 143 (cd $(DESTDIR)$(KRB5_LIBDIR) && $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) \ 144 lib$(LIBBASE)$(SHLIBSEXT)) 145install-profiled: 146 $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(PFLIBEXT) 147 $(INSTALL_DATA) lib$(LIBBASE)$(PFLIBEXT) $(DESTDIR)$(KRB5_LIBDIR) 148 $(RANLIB) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(PFLIBEXT) 149 150Makefile: $(top_srcdir)/config/lib.in 151$(BUILDTOP)/config.status: $(top_srcdir)/config/shlib.conf 152 153# Use the following if links need to be made to $(TOPLIBD): 154# all-unix: all-liblinks 155# install-unix: install-libs 156# clean-unix:: clean-liblinks clean-libs 157 158# Use the following if links need not be made: 159# all-unix: all-libs 160# install-unix: install-libs 161# clean-unix:: clean-libs 162 163### 164### end config/lib.in 165