1 # Copyright 2000, International Business Machines Corporation and others.
4 # This software has been released under the terms of the IBM Public
5 # License. For details, see the LICENSE file in the top-level source
6 # directory or online at http://www.openafs.org/dl/license10.html
12 TOP_SRCDIR=@TOP_SRCDIR@
13 SYS_NAME=@AFS_SYSNAME@
17 include ../config/Makefile.${SYS_NAME}
20 CFLAGS = ${DBG} -w -I${TOP_SRCDIR}/config ${MT_CFLAGS}
22 LDFLAGS = ${DBG} ${XLDFLAGS}
37 # ----------------------------------------------------------------
38 # The default is to build butc without using the TSM API libraries.
39 # To build with TSM support, set XBSA_NOBUILD="". Be sure you have
40 # the TSM API version 3.7.1 installed.
41 # ----------------------------------------------------------------
44 BUCOORDOBJS=ubik_db_if.o ${BUCOORD}/volstub.o ${BUCOORD}/dlq.o \
45 ${BUCOORD}/status.o ${BUCOORD}/bucoord_errs.o
47 VOLSERLIBOBJ=${VOLSER}/volint.cs.o vsprocs.o ${VOLSER}/vsutils.o \
48 ${VOLSER}/lockprocs.o ${VOLSER}/volint.xdr.o ${VOLSER}/volerr.o \
49 ${VOLSER}/volint.ss.o AFS_component_version_number.o
50 VOLSERLIBS=libvolser.a
56 BUTMINCLS =${SRCDIR}/include/afs/com_err.h ${SRCDIR}/include/afs/butm.h
57 BUTMINCLUDE=-I${SRCDIR}/include
59 BUTCOBJS =dbentries.o tcprocs.o lwps.o tcmain.o list.o recoverDb.o \
60 tcudbprocs.o dump.o tcstatus.o butc_xbsa.o \
61 ${LWPOBJS} ${BUCOORDOBJS}
62 BUTCINCLS =${SRCDIR}/include/afs/partition.h \
63 ${SRCDIR}/include/afs/volume.h \
64 ${SRCDIR}/include/afs/vlserver.h \
65 ${SRCDIR}/include/rx/rx.h \
66 ${SRCDIR}/include/rx/xdr.h \
67 ${SRCDIR}/include/afs/keys.h \
68 ${SRCDIR}/include/afs/cellconfig.h \
69 ${SRCDIR}/include/ubik.h \
70 ${SRCDIR}/include/afs/cmd.h \
71 ${SRCDIR}/include/afs/butc.h \
72 ${SRCDIR}/include/afs/tcdata.h \
73 ${SRCDIR}/include/afs/bubasics.h \
74 ${SRCDIR}/include/afs/butm.h
75 BUTCINCLUDE=-I. -I${SRCDIR}/include
76 BUTCLIBS =${SRCDIR}/lib/afs/libbudb.a \
77 ${SRCDIR}/lib/afs/libbubasics.a \
80 ${SRCDIR}/lib/afs/libvldb.a \
81 ${SRCDIR}/lib/libafsauthent.a \
82 ${SRCDIR}/lib/libafsrpc.a \
83 ${SRCDIR}/lib/afs/libcmd.a \
84 ${SRCDIR}/lib/afs/util.a \
85 ${SRCDIR}/lib/afs/libusd.a \
86 ${SRCDIR}/lib/afs/libprocmgmt.a \
89 include ../config/Makefile.version
91 #----------------------------------------------- BUTC
93 butc: pre ${BUTCOBJS} ${BUTCLIBS}
94 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
97 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
98 else hdrdir=-I"${XBSA_HDRDIR}" ; \
100 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
101 ${CC} ${CFLAGS} $$xbsaflags ${BUTCOBJS} ${BUTCLIBS} $$hdrdir ${MTLIBS} ${XLIBS} -o butc
103 dbentries.o: ${BUTC}/dbentries.c ${BUTCINCLS}
104 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
107 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
108 else hdrdir=-I"${XBSA_HDRDIR}" ; \
110 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
111 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/dbentries.c
113 tcprocs.o: ${BUTC}/tcprocs.c ${BUTCINCLS}
114 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
117 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
118 else hdrdir=-I"${XBSA_HDRDIR}" ; \
120 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
121 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/tcprocs.c
123 lwps.o: ${BUTC}/lwps.c ${BUTCINCLS}
124 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
127 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
128 else hdrdir=-I"${XBSA_HDRDIR}" ; \
130 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
131 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/lwps.c
133 tcmain.o: ${BUTC}/tcmain.c ${BUTCINCLS} AFS_component_version_number.c
134 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
137 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
138 else hdrdir=-I"${XBSA_HDRDIR}" ; \
140 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
141 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/tcmain.c
143 list.o: ${BUTC}/list.c ${BUTCINCLS}
144 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
147 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
148 else hdrdir=-I"${XBSA_HDRDIR}" ; \
150 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
151 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/list.c
153 recoverDb.o: ${BUTC}/recoverDb.c ${BUTCINCLS}
154 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
157 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
158 else hdrdir=-I"${XBSA_HDRDIR}" ; \
160 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
161 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/recoverDb.c
163 tcudbprocs.o: ${BUTC}/tcudbprocs.c ${BUTCINCLS}
164 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
167 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
168 else hdrdir=-I"${XBSA_HDRDIR}" ; \
170 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
171 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/tcudbprocs.c
173 dump.o: ${BUTC}/dump.c ${BUTCINCLS}
174 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
177 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
178 else hdrdir=-I"${XBSA_HDRDIR}" ; \
180 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
181 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/dump.c
183 tcstatus.o: ${BUTC}/tcstatus.c ${BUTCINCLS}
184 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
187 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
188 else hdrdir=-I"${XBSA_HDRDIR}" ; \
190 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
191 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/tcstatus.c
193 butc_xbsa.o: ${BUTC}/butc_xbsa.c ${BUTC}/butc_xbsa.h ${BUTCINCLS}
194 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
197 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
198 else hdrdir=-I"${XBSA_HDRDIR}" ; \
200 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
201 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUTC}/butc_xbsa.c
203 #----------------------------------------------- BUCOORD
205 ubik_db_if.o: ${BUCOORD}/ubik_db_if.c
206 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
209 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
210 else hdrdir=-I"${XBSA_HDRDIR}" ; \
212 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
213 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${BUCOORD}/ubik_db_if.c
215 #----------------------------------------------- VOLSER
216 # Build the libvolser.a library here. The file compiled
217 # for is is vsprocs.c. The rest are from the VOLSER dir.
219 libvolser.a: vsprocs.o ${VOLSERLIBOBJ}
221 $(AR) crv $@ vsprocs.o ${VOLSERLIBOBJ}
224 vsprocs.o: ${VOLSER}/vsprocs.c
225 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
228 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
229 else hdrdir=-I"${XBSA_HDRDIR}" ; \
231 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
232 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${VOLSER}/vsprocs.c
234 #----------------------------------------------- LWP
236 lock.o: ${LWP}/lock.c
237 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
240 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
241 else hdrdir=-I"${XBSA_HDRDIR}" ; \
243 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
244 ${CC} ${CFLAGS} $$xbsaflags ${BUTCINCLUDE} $$hdrdir -c ${LWP}/lock.c
246 #----------------------------------------------- BUTC
248 file_tm.o: ${BUTM}/file_tm.c ${BUTMINCLS}
249 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
252 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir=-I"${XBSADIR}" ; \
253 else hdrdir=-I"${XBSA_HDRDIR}" ; \
255 if [ "$$xbsaflags" = "" ]; then hdrdir="" ; fi; \
256 ${CC} ${CFLAGS} $$xbsaflags ${BUTMINCLUDE} $$hdrdir -c ${BUTM}/file_tm.c
258 libbutm.a: ${BUTMOBJS} AFS_component_version_number.o
260 $(AR) crv libbutm.a $(BUTMOBJS) AFS_component_version_number.o
263 #-----------------------------------------------
265 $(RM) -f *.o *.a core AFS_component_version_number.c butc
268 if [ "${XBSA_NOBUILD}" = "" ]; then xbsaflags="${XBSA_FLAGS}" ; \
271 if [ "$$xbsaflags" = "" ]; then \
272 echo 'Will not build with XBSA'; \
274 if [ "${XBSA_HDRDIR}" = "" ]; then hdrdir="${XBSADIR}" ; \
275 else hdrdir="${XBSA_HDRDIR}" ; \
277 if test "$$hdrdir" != "" -a ! -f "$$hdrdir/xbsa.h"; then \
278 echo '*** This build of butc cannot support XBSA because'; \
279 echo '*** the required header file "'$$hdrdir'/xbsa.h"'; \
280 echo '*** does not exist. If you know the pathname to the'; \
281 echo '*** header file, then use XBSA_HDRDIR="<path>" as a make'; \
282 echo '*** argument.'; \
283 echo '*** If you do not want to build an XBSA version of butc,'; \
284 echo '*** then use XBSA_NOBUILD="true" as a make argument.'; \
287 echo 'Will use XBSA header files from "'$$hdrdir'" (XBSA_HDRDIR)'; \
291 all: butc ${BUTMLIBS}
292 install install.noversion: all
293 ${INSTALL} butc ${DESTDIR}/etc/butc