1 # A roken library for AFS
4 include @TOP_OBJDIR@/src/config/Makefile.config
5 include @TOP_OBJDIR@/src/config/Makefile.libtool
6 include @TOP_OBJDIR@/src/config/Makefile.pthread
12 # ROKEN_LTLIBOBJS incorporates the pieces which configure has detected we
13 # need to replace/provide. The values contained therein include a prefix
14 # ${LIBOBJDIR}, which is not set, so they will be sought in this directory.
15 LT_objs = $(ROKEN_LTLIBOBJS) base64.lo cloexec.lo ct.lo hex.lo issuid.lo \
16 mkdir.lo net_read.lo net_write.lo socket.lo snprintf.lo \
19 HEADERS = ${TOP_INCDIR}/base64.h \
20 ${TOP_INCDIR}/roken.h \
21 ${TOP_INCDIR}/roken-common.h
23 UPSTREAM = $(TOP_SRCDIR)/external/heimdal/roken
25 # TOP_LIBDIR is a convenient place where we can ensure that both the shared
26 # and static versions of the library will end up (I'm looking at you, AIX).
27 # Otherwise we could just use .libs directly, since only openafs-internal
28 # tools will be linking roken from that directory.
29 all: $(ROKEN_HEADERS) $(HEADERS) $(TOP_LIBDIR)/librokenafs.$(SHLIB_SUFFIX) \
30 $(TOP_LIBDIR)/librokenafs.a
32 buildtools: $(ROKEN_HEADERS) $(HEADERS)
34 install: librokenafs.la librokenafs.a
35 $(LT_INSTALL_DATA) librokenafs.la $(DESTDIR)$(libdir)/librokenafs.la
36 $(RM) $(DESTDIR)$(libdir)/librokenafs.la
37 $(INSTALL_DATA) librokenafs.a $(DESTDIR)$(libdir)/librokenafs.a
39 dest: librokenafs.la librokenafs.a
40 $(LT_INSTALL_DATA) librokenafs.la $(DEST)/lib/librokenafs.la
41 $(RM) $(DEST)/lib/librokenafs.la
42 $(INSTALL_DATA) librokenafs.a $(DEST)/lib/librokenafs.a
46 $(RM) -f $(OBJECTS) librokenafs.a err.h roken.h
48 $(TOP_LIBDIR)/librokenafs.$(SHLIB_SUFFIX): librokenafs.la
49 $(LT_INSTALL_DATA) librokenafs.la $(TOP_LIBDIR)/librokenafs.la
50 # libtool gets confused if we leave these around
51 $(RM) $(TOP_LIBDIR)/librokenafs.la
53 librokenafs.la: librokenafs.la.sym $(LT_objs)
54 $(LT_LDLIB_shlib_missing) $(LT_objs)
56 $(TOP_LIBDIR)/librokenafs.a: librokenafs.a
59 librokenafs.a: $(LT_objs)
60 $(LT_LDLIB_static) $(LT_objs)
62 $(TOP_INCDIR)/base64.h: ${UPSTREAM}/base64.h
65 $(TOP_INCDIR)/err.h: ${UPSTREAM}/err.hin
68 $(TOP_INCDIR)/roken.h: roken.h
71 $(TOP_INCDIR)/roken-common.h: $(UPSTREAM)/roken-common.h
74 err.h: ${UPSTREAM}/err.hin
77 roken.h: $(UPSTREAM)/roken.h.in roken-post.h
78 cat $(UPSTREAM)/roken.h.in $(srcdir)/roken-post.h >$@
80 # Here we have explicit rules for all the libtool objects we might need to
81 # build. The implicit rules don't work since the sources are in a different
83 base64.lo: $(UPSTREAM)/base64.c ${HEADERS}
84 $(LT_CCRULE) $(UPSTREAM)/base64.c
86 cloexec.lo: ${UPSTREAM}/cloexec.c ${HEADERS}
87 $(LT_CCRULE) $(UPSTREAM)/cloexec.c
89 ct.lo: ${UPSTREAM}/ct.c ${HEADERS}
90 $(LT_CCRULE) $(UPSTREAM)/ct.c
92 daemon.lo: ${UPSTREAM}/daemon.c ${HEADERS}
93 $(LT_CCRULE) $(UPSTREAM)/daemon.c
95 ecalloc.lo: ${UPSTREAM}/ecalloc.c ${HEADERS}
96 $(LT_CCRULE) $(UPSTREAM)/ecalloc.c
98 emalloc.lo: ${UPSTREAM}/emalloc.c ${HEADERS}
99 $(LT_CCRULE) $(UPSTREAM)/emalloc.c
101 erealloc.lo: ${UPSTREAM}/erealloc.c ${HEADERS}
102 $(LT_CCRULE) $(UPSTREAM)/erealloc.c
104 err.lo: ${UPSTREAM}/err.c err.h ${HEADERS}
105 $(LT_CCRULE) $(UPSTREAM)/err.c
107 errx.lo: ${UPSTREAM}/errx.c err.h ${HEADERS}
108 $(LT_CCRULE) $(UPSTREAM)/errx.c
110 flock.lo: ${UPSTREAM}/flock.c ${HEADERS}
111 $(LT_CCRULE) $(UPSTREAM)/flock.c
113 getopt.lo: ${UPSTREAM}/getopt.c ${HEADERS}
114 $(LT_CCRULE) $(UPSTREAM)/getopt.c
116 getprogname.lo: ${UPSTREAM}/getprogname.c ${HEADERS}
117 $(LT_CCRULE) $(UPSTREAM)/getprogname.c
119 hex.lo: ${UPSTREAM}/hex.c ${HEADERS}
120 $(LT_CCRULE) $(UPSTREAM)/hex.c
122 issuid.lo: ${UPSTREAM}/issuid.c ${HEADERS}
123 $(LT_CCRULE) $(UPSTREAM)/issuid.c
125 mkstemp.lo: ${UPSTREAM}/mkstemp.c ${HEADERS}
126 $(LT_CCRULE) $(UPSTREAM)/mkstemp.c
128 mkdir.lo: ${UPSTREAM}/mkdir.c ${HEADERS}
129 $(LT_CCRULE) $(UPSTREAM)/mkdir.c
131 net_read.lo: ${UPSTREAM}/net_read.c ${HEADERS}
132 $(LT_CCRULE) $(UPSTREAM)/net_read.c
134 net_write.lo: ${UPSTREAM}/net_write.c ${HEADERS}
135 $(LT_CCRULE) $(UPSTREAM)/net_write.c
137 setenv.lo: ${UPSTREAM}/setenv.c ${HEADERS}
138 $(LT_CCRULE) $(UPSTREAM)/setenv.c
140 setprogname.lo: ${UPSTREAM}/setprogname.c ${HEADERS}
141 $(LT_CCRULE) $(UPSTREAM)/setprogname.c
143 socket.lo: ${UPSTREAM}/socket.c ${HEADERS}
144 $(LT_CCRULE) $(UPSTREAM)/socket.c
146 # The upstream snprintf.c has some pointer warnings in it
147 CFLAGS_snprintf.lo = @CFLAGS_NOERROR@
149 snprintf.lo: ${UPSTREAM}/snprintf.c ${HEADERS}
150 $(LT_CCRULE) $(UPSTREAM)/snprintf.c
152 strlcat.lo: ${UPSTREAM}/strlcat.c ${HEADERS}
153 $(LT_CCRULE) $(UPSTREAM)/strlcat.c
155 strlcpy.lo: ${UPSTREAM}/strlcpy.c ${HEADERS}
156 $(LT_CCRULE) $(UPSTREAM)/strlcpy.c
158 strnlen.lo: ${UPSTREAM}/strnlen.c ${HEADERS}
159 $(LT_CCRULE) $(UPSTREAM)/strnlen.c
161 strsep.lo: ${UPSTREAM}/strsep.c ${HEADERS}
162 $(LT_CCRULE) $(UPSTREAM)/strsep.c
164 unsetenv.lo: ${UPSTREAM}/unsetenv.c ${HEADERS}
165 $(LT_CCRULE) $(UPSTREAM)/unsetenv.c
167 verr.lo: ${UPSTREAM}/verr.c err.h ${HEADERS}
168 $(LT_CCRULE) $(UPSTREAM)/verr.c
170 verrx.lo: ${UPSTREAM}/verrx.c err.h ${HEADERS}
171 $(LT_CCRULE) $(UPSTREAM)/verrx.c
173 vsyslog.lo: ${UPSTREAM}/vsyslog.c ${HEADERS}
174 $(LT_CCRULE) $(UPSTREAM)/vsyslog.c
176 vwarn.lo: ${UPSTREAM}/vwarn.c err.h ${HEADERS}
177 $(LT_CCRULE) $(UPSTREAM)/vwarn.c
179 vwarnx.lo: ${UPSTREAM}/vwarnx.c err.h ${HEADERS}
180 $(LT_CCRULE) $(UPSTREAM)/vwarnx.c
182 warn.lo: ${UPSTREAM}/warn.c err.h ${HEADERS}
183 $(LT_CCRULE) $(UPSTREAM)/warn.c
185 warnerr.lo: ${UPSTREAM}/warnerr.c err.h ${HEADERS}
186 $(LT_CCRULE) $(UPSTREAM)/warnerr.c
188 warnx.lo: ${UPSTREAM}/warnx.c err.h ${HEADERS}
189 $(LT_CCRULE) $(UPSTREAM)/warnx.c