Add libedit/readline support to ss
[krb5.git] / src / config / lib.in
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 # STOBJLISTS    list of files, each of which is an OBJS.ST created by
12 #                       libobj.in; *DO NOT* use ./OBJS.ST for the current
13 #                       directory as that will cause some makes to lose.
14 # SHLIB_EXPDEPS list of libraries that this one has explicit
15 #                       dependencies on, pref. in the form libfoo$(SHLIBEXT)
16 # SHLIB_EXPLIBS list of libraries that this one has explicit
17 #                       dependencies on, in "-lfoo" form.
18 # SHLIB_DIRS    list of directories where $(SHLIB_EXPLIBS) can be
19 #                       found, in the form -Ldir1 -Ldir2 ...
20 #                       since there are very few systems where -L is the
21 #                       wrong thing (notable exception of SunOS but we
22 #                       deal with it...)
23 # SHLIB_RDIRS   rpath directories to search; given in the
24 #                       form dir1:dir2 ...
25 # RELDIR        path to this directory relative to $(TOPLIBD)
26
27 LIBPREFIX=lib
28
29 # STOBJLISTS=dir1/OBJS.ST dir2/OBJS.ST etc...
30 SHOBJLISTS=$(STOBJLISTS:.ST=.SH)
31 PFOBJLISTS=$(STOBJLISTS:.ST=.PF)
32
33 dummy-target-1 $(SUBDIROBJLISTS) $(SUBDIROBJLISTS:.ST=.SH) $(SUBDIROBJLISTS:.ST=.PF): all-recurse
34
35 # Gets invoked as $(PARSE_OBJLISTS) list-of-OBJS.*-files
36 PARSE_OBJLISTS= set -x && $(PERL) -p -e 'BEGIN { $$SIG{__WARN__} = sub {die @_} }; $$e=$$ARGV; $$e =~ s/OBJS\...$$//; s/^/ /; s/ $$//; s/ / $$e/g;'
37
38 lib$(LIBBASE)$(STLIBEXT): $(STOBJLISTS)
39         $(RM) $@
40         @echo "building static $(LIBBASE) library"
41         set -x; objlist=`$(PARSE_OBJLISTS) $(STOBJLISTS)` && $(AR) cq $@ $$objlist
42         $(RANLIB) $@
43
44 lib$(LIBBASE)$(SHLIBVEXT): $(SHOBJLISTS) $(SHLIB_EXPDEPS) $(SHLIB_EXPORT_FILE_DEP)
45         $(RM) $@
46         @echo "building shared $(LIBBASE) library ($(LIBMAJOR).$(LIBMINOR))"
47         set -x; objlist=`$(PARSE_OBJLISTS) $(SHOBJLISTS)` && $(MAKE_SHLIB_COMMAND)
48
49 lib$(LIBBASE)$(SHLIBSEXT): lib$(LIBBASE)$(SHLIBVEXT)
50         $(RM) $@
51         $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) $@
52 lib$(LIBBASE)$(SHLIBEXT): lib$(LIBBASE)$(SHLIBVEXT)
53         $(RM) $@
54         $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) $@
55
56 binutils.versions: $(SHLIB_EXPORT_FILE) Makefile
57         echo >  binutils.versions "$(LIBBASE)_$(LIBMAJOR)_MIT {"
58         sed  >> binutils.versions < $(SHLIB_EXPORT_FILE) "s/$$/;/"
59         echo >> binutils.versions "};"
60         echo >> binutils.versions "HIDDEN { local: __*; _rest*; _save*; *; };"
61
62 darwin.exports: $(SHLIB_EXPORT_FILE) Makefile
63         sed > darwin-exports.tmp < $(SHLIB_EXPORT_FILE) "s/^/_/"
64         $(MV) darwin-exports.tmp darwin.exports
65
66 osf1.exports: $(SHLIB_EXPORT_FILE) Makefile
67         $(RM) osf1.tmp osf1.exports
68         sed "s/^/-exported_symbol /" < $(SHLIB_EXPORT_FILE) > osf1.tmp
69         for f in . $(LIBINITFUNC); do \
70           if test "$$f" != "." ; then \
71             echo " -init $$f"__auxinit >> osf1.tmp; \
72           else :; fi; \
73         done
74         a=""; \
75         for f in . $(LIBFINIFUNC); do \
76           if test "$$f" != "." ; then \
77             a="-fini $$f $$a"; \
78           else :; fi; \
79         done; echo " $$a" >> osf1.tmp
80         mv -f osf1.tmp osf1.exports
81
82 hpux10.exports: $(SHLIB_EXPORT_FILE) Makefile
83         $(RM) hpux10.tmp hpux10.exports
84         sed "s/^/+e /" < $(SHLIB_EXPORT_FILE) > hpux10.tmp
85         a=""; \
86         for f in . $(LIBFINIFUNC); do \
87           if test "$$f" != .; then \
88             a="+I $${f}__auxfini $$a"; \
89           else :; fi; \
90         done; echo "$$a" >> hpux10.tmp
91         echo "+e errno" >> hpux10.tmp
92         echo "+e _GLOBAL__FD_lib$(LIBBASE)_$(LIBMAJOR)_$(LIBMINOR)" >> hpux10.tmp
93         echo "+e _GLOBAL__FI_lib$(LIBBASE)_$(LIBMAJOR)_$(LIBMINOR)" >> hpux10.tmp
94         mv -f hpux10.tmp hpux10.exports
95
96 lib$(LIBBASE)$(PFLIBEXT): $(PFOBJLISTS)
97         $(RM) $@
98         @echo "building profiled $(LIBBASE) library"
99         set -x; objlist=`$(PARSE_OBJLISTS) $(PFOBJLISTS)` && $(AR) cq $@ $$objlist
100         $(RANLIB) $@
101
102 $(TOPLIBD)/lib$(LIBBASE)$(STLIBEXT): lib$(LIBBASE)$(STLIBEXT)
103         $(RM) $@
104         (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(STLIBEXT) .)
105 $(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT): lib$(LIBBASE)$(SHLIBEXT)
106         $(RM) $@
107         (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(SHLIBEXT) .)
108 $(TOPLIBD)/lib$(LIBBASE)$(SHLIBSEXT): lib$(LIBBASE)$(SHLIBSEXT)
109         $(RM) $@
110         (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(SHLIBSEXT) .)
111 $(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT): lib$(LIBBASE)$(SHLIBVEXT)
112         $(RM) $@
113         (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(SHLIBVEXT) .)
114 $(TOPLIBD)/lib$(LIBBASE)$(PFLIBEXT): lib$(LIBBASE)$(PFLIBEXT)
115         $(RM) $@
116         (cd $(TOPLIBD) && $(LN_S) $(RELDIR)/lib$(LIBBASE)$(PFLIBEXT) .)
117
118 all-libs: $(LIBLIST)
119 all-liblinks: $(LIBLINKS)
120
121 clean-libs:
122         $(RM) lib$(LIBBASE)$(STLIBEXT)
123         $(RM) lib$(LIBBASE)$(SHLIBVEXT)
124         $(RM) lib$(LIBBASE)$(SHLIBSEXT)
125         $(RM) lib$(LIBBASE)$(SHLIBEXT)
126         $(RM) lib$(LIBBASE)$(PFLIBEXT)
127         $(RM) binutils.versions osf1.exports darwin.exports hpux10.exports
128
129 clean-liblinks:
130         $(RM) $(TOPLIBD)/lib$(LIBBASE)$(STLIBEXT)
131         $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT)
132         $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBSEXT)
133         $(RM) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT)
134         $(RM) $(TOPLIBD)/lib$(LIBBASE)$(PFLIBEXT)
135
136 install-libs: $(LIBINSTLIST)
137 install-static:
138         $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(STLIBEXT)
139         $(INSTALL_DATA) lib$(LIBBASE)$(STLIBEXT) $(DESTDIR)$(KRB5_LIBDIR)
140         $(RANLIB) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(STLIBEXT)
141 install-shared:
142         $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBVEXT)
143         $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBEXT)
144         $(INSTALL_SHLIB) lib$(LIBBASE)$(SHLIBVEXT) $(DESTDIR)$(KRB5_LIBDIR)
145         (cd $(DESTDIR)$(KRB5_LIBDIR) && $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) \
146                 lib$(LIBBASE)$(SHLIBEXT))
147 install-shlib-soname: install-shared
148         $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(SHLIBSEXT)
149         (cd $(DESTDIR)$(KRB5_LIBDIR) && $(LN_S) lib$(LIBBASE)$(SHLIBVEXT) \
150                 lib$(LIBBASE)$(SHLIBSEXT))
151 install-profiled:
152         $(RM) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(PFLIBEXT)
153         $(INSTALL_DATA) lib$(LIBBASE)$(PFLIBEXT) $(DESTDIR)$(KRB5_LIBDIR)
154         $(RANLIB) $(DESTDIR)$(KRB5_LIBDIR)/lib$(LIBBASE)$(PFLIBEXT)
155
156 Makefile: $(top_srcdir)/config/lib.in
157 $(BUILDTOP)/config.status: $(top_srcdir)/config/shlib.conf
158
159 # Use the following if links need to be made to $(TOPLIBD):
160 # all-unix:: all-liblinks
161 # install-unix:: install-libs
162 # clean-unix:: clean-liblinks clean-libs
163
164 # Use the following if links need not be made:
165 # all-unix:: all-libs
166 # install-unix:: install-libs
167 # clean-unix:: clean-libs
168
169 ###
170 ### end config/lib.in