Unix: Rework build system
[openafs.git] / src / sys / Makefile.in
1 # Copyright 2000, International Business Machines Corporation and others.
2 # All Rights Reserved.
3
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
7 #
8 # Portions Copyright (c) 2003 Apple Computer, Inc.
9
10 srcdir=@srcdir@
11 include @TOP_OBJDIR@/src/config/Makefile.config
12 include @TOP_OBJDIR@/src/config/Makefile.lwp
13
14 INSTALL = @INSTALL@
15 INSTALL_DATA = @INSTALL_DATA@
16 INSTALL_PROGRAM = @INSTALL_PROGRAM@
17 INSTALL_SCRIPT = @INSTALL_SCRIPT@
18
19 SFLAGS=-I${TOP_INCDIR}
20 LIBS=libsys.a ${TOP_LIBDIR}/librx.a libsys.a ${TOP_LIBDIR}/liblwp.a ${TOP_LIBDIR}/util.a ${XLIBS}
21
22 OBJECTS= afssyscalls.o setpag.o pioctl.o glue.o \
23         AFS_component_version_number.o
24 SHLIBOBJS = picobj/setpag.o picobj/glue.o syscall.o
25 RMTOBJS=rmtsysnet.o rmtsysc.o rmtsys.cs.o rmtsys.xdr.o rmtsys.ss.o rmtsyss.o 
26
27 all: \
28     rmtsysd \
29     pagsh \
30     pagsh.krb \
31     ${TOP_INCDIR}/afs/afssyscalls.h \
32     ${TOP_INCDIR}/afs/afs.exp \
33     ${TOP_INCDIR}/afs/xfsattrs.h \
34     ${TOP_INCDIR}/afs/sys_prototypes.h \
35     ${TOP_LIBDIR}/afs.exp \
36     ${TOP_LIBDIR}/libsys.a \
37     ${KERNELDIR}/afs/xfsattrs.h \
38     ${UKERNELDIR}/afs/afsl.exp
39
40 generated: \
41         rmtsys.cs.c rmtsys.ss.c rmtsys.xdr.c rmtsys.h \
42         Krmtsys.cs.c Krmtsys.xdr.c Krmtsys.h
43
44 ${TOP_INCDIR}/afs/afssyscalls.h: afssyscalls.h
45         ${INSTALL_DATA} $? $@
46
47 ${TOP_INCDIR}/afs/rmtsys.h: rmtsys.h
48         ${INSTALL_DATA} $? $@
49
50 ${TOP_INCDIR}/afs/afs.exp: afs.exp
51         @set -x; case ${SYS_NAME} in \
52                 rs_aix* ) \
53                         ${INSTALL_DATA} $? $@ ;; \
54         esac
55
56 ${TOP_LIBDIR}/afs.exp: afs.exp
57         @set -x; case ${SYS_NAME} in \
58                 rs_aix* ) \
59                         ${INSTALL_DATA} $? $@ ;; \
60         esac
61
62 ${TOP_INCDIR}/afs/xfsattrs.h: xfsattrs.h
63         ${INSTALL_DATA} $? $@
64
65 ${TOP_INCDIR}/afs/sys_prototypes.h: sys_prototypes.h
66         ${INSTALL_DATA} $? $@
67
68 ${TOP_LIBDIR}/libsys.a: libsys.a
69         ${INSTALL_DATA} $? $@
70
71 ${UKERNELDIR}/afs/afsl.exp: afsl.exp
72         ${INSTALL} -d ${UKERNELDIR}/afs
73         @set -x; case ${SYS_NAME} in \
74                 rs_aix* ) \
75                         ${INSTALL_DATA} $? $@ ;; \
76         esac
77
78 ${KERNELDIR}/afs/xfsattrs.h: xfsattrs.h
79         ${INSTALL} -d ${KERNELDIR}/afs
80         ${INSTALL_DATA} $? $@
81
82 depinstall: \
83         ${TOP_INCDIR}/afs/afssyscalls.h \
84         ${TOP_INCDIR}/afs/rmtsys.h \
85         ${TOP_INCDIR}/afs/afs.exp \
86         ${TOP_INCDIR}/afs/xfsattrs.h \
87         ${TOP_INCDIR}/afs/sys_prototypes.h \
88         ${TOP_LIBDIR}/afs.exp \
89         ${KERNELDIR}/afs/xfsattrs.h \
90         ${UKERNELDIR}/afs/afsl.exp \
91         Krmtsys.cs.c Krmtsys.h Krmtsys.xdr.c rmtsys.h 
92
93 libsys.a: ${OBJECTS} ${RMTOBJS} syscall.o afsl.exp AFS_component_version_number.o
94         $(RM) -f $@
95         @set -e; set -x; case "$(SYS_NAME)" in \
96         sgi_* | hp_ux10*) \
97                 ${AR} crv $@ ${OBJECTS} ${RMTOBJS} syscall.o ;; \
98         rs_aix*) \
99                 ${AR} crv $@ ${OBJECTS} ${RMTOBJS} syscall.o afsl.exp ;; \
100         *) \
101                 ${AR} crv $@ ${OBJECTS} ${RMTOBJS} ;; \
102         esac
103         $(RANLIB) $@
104
105 tests:  pagsh pagsh.krb fixit iinc idec icreate iopen istat rmtsysd
106
107 syscall.o: syscall.s
108         @set -e; set -x; case "$(SYS_NAME)" in \
109         sgi_*) \
110                 ${CC} ${AFS_CFLAGS} -c ${srcdir}/syscall.s; \
111                 ;; \
112         rs_aix* | hp_ux10*) \
113                 $(PATH_CPP) -P ${SFLAGS} ${srcdir}/syscall.s > syscall.ss; \
114                 as -o syscall.o syscall.ss; \
115                 $(RM) syscall.ss; \
116                 ;; \
117         *) \
118                 touch syscall.o ; \
119                 ;; \
120         esac
121
122 afssyscalls.o: afssyscalls.c afssyscalls.h
123 glue.o: glue.c afssyscalls.h
124 setpag.o: setpag.c afssyscalls.h
125 pioctl.o: pioctl.c afssyscalls.h
126
127 rmtsysnet.o rmtsysc.o rmtsyss.o rmtsysd.o: rmtsys.h
128 rmtsysd: AFS_component_version_number.o afs.exp afsl.exp
129
130 rmtsys.cs.c: rmtsys.xg
131         ${RXGEN} -A -C -o $@ ${srcdir}/rmtsys.xg
132
133 rmtsys.ss.c: rmtsys.xg
134         ${RXGEN} -A -S -o $@ ${srcdir}/rmtsys.xg
135
136 rmtsys.xdr.c: rmtsys.xg
137         ${RXGEN} -A -c -o $@ ${srcdir}/rmtsys.xg
138
139 rmtsys.h: rmtsys.xg
140         ${RXGEN} -A -h -o $@ ${srcdir}/rmtsys.xg
141
142 Krmtsys.cs.c: rmtsys.xg Krmtsys.h
143         ${RXGEN} -A -k -C -o Krmtsys.cs.c ${srcdir}/rmtsys.xg
144
145 Krmtsys.xdr.c: rmtsys.xg
146         ${RXGEN} -A -k -c -o Krmtsys.xdr.c ${srcdir}/rmtsys.xg
147
148 Krmtsys.h: rmtsys.xg
149         ${RXGEN} -A -k -h -o Krmtsys.h ${srcdir}/rmtsys.xg
150
151 rmtsysd: rmtsysd.o libsys.a
152         $(AFS_LDRULE) rmtsysd.o ${LIBS}
153
154 pagsh:  pagsh.o libsys.a AFS_component_version_number.o
155         $(AFS_LDRULE) pagsh.o ${LIBS}
156
157 CFLAGS_pagsh.krb.o = -DAFS_KERBEROS_ENV
158 pagsh.krb.o: pagsh.c
159         $(AFS_CCRULE) $(srcdir)/pagsh.c 
160
161 pagsh.krb: libsys.a pagsh.krb.o ${TOP_LIBDIR}/libauth.krb.a ${TOP_LIBDIR}/librxkad.a ${TOP_LIBDIR}/libdes.a
162         $(AFS_LDRULE) pagsh.krb.o ${TOP_LIBDIR}/libauth.krb.a \
163                 ${TOP_LIBDIR}/librxkad.a ${TOP_LIBDIR}/libdes.a ${LIBS}
164
165 #
166 # Test programs.
167 #
168
169 iinc:   iinc.c 
170         $(CC) -o iinc $(AFS_CFLAGS) ${srcdir}/iinc.c ${LIBS}
171
172 idec:   idec.c  AFS_component_version_number.c
173         $(CC) -o idec $(AFS_CFLAGS) ${srcdir}/idec.c ${LIBS}
174
175 icreate:icreate.c  AFS_component_version_number.c
176         $(CC) -o icreate $(AFS_CFLAGS) ${srcdir}/icreate.c ${LIBS}
177
178 iopen:  iopen.c  AFS_component_version_number.c
179         $(CC) -o iopen $(AFS_CFLAGS) ${srcdir}/iopen.c ${LIBS}
180
181 iread:  iread.c  AFS_component_version_number.c
182         ${CC} -o iread $(AFS_CFLAGS) ${srcdir}/iread.c ${LIBS}
183
184 iwrite: iwrite.c  AFS_component_version_number.c
185         ${CC} -o iwrite $(AFS_CFLAGS) ${srcdir}/iwrite.c ${LIBS}
186
187 istat:  istat.c  AFS_component_version_number.c
188         $(CC) -o istat $(AFS_CFLAGS) ${srcdir}/istat.c ${LIBS}
189
190 fixit:  fixit.c AFS_component_version_number.c
191         $(CC) -o fixit $(AFS_CFLAGS) ${srcdir}/fixit.c ${LIBS}
192
193
194 xfsinode: xfsinode.c  AFS_component_version_number.c
195         @set -x; case "${SYS_NAME}" in \
196                 sgi_62 | sgi_64 ) \
197                 $(CC) -o xfsinode $(AFS_CFLAGS) ${srcdir}/xfsinode.c ${LIBS}
198         esac
199
200 afs.exp: ${srcdir}/afs4.exp ${srcdir}/afs5.exp
201         @set -x; case ${SYS_NAME} in \
202                 rs_aix[56]* ) \
203                         cp -p ${srcdir}/afs5.exp afs.exp ;; \
204                 rs_aix* ) \
205                         cp -p ${srcdir}/afs4.exp afs.exp ;; \
206                 * ) \
207                         touch afs.exp ;; \
208         esac
209
210 afsl.exp: ${srcdir}/afsl4.exp ${srcdir}/afsl5.exp
211         @set -x; case ${SYS_NAME} in \
212                 rs_aix[56]* ) \
213                         cp -p ${srcdir}/afsl5.exp afsl.exp ;; \
214                 rs_aix* ) \
215                         cp -p ${srcdir}/afsl4.exp afsl.exp ;; \
216                 * ) \
217                         touch afsl.exp ;; \
218         esac
219
220 #
221 # Installation targets
222 #
223 install: libsys.a rmtsysd afssyscalls.h pagsh pagsh.krb afs.exp xfsattrs.h
224         ${INSTALL} -d ${DESTDIR}${libdir}/afs
225         ${INSTALL} -d ${DESTDIR}${sbindir}
226         ${INSTALL} -d ${DESTDIR}${includedir}/afs
227         ${INSTALL_DATA} libsys.a ${DESTDIR}${libdir}/afs/libsys.a
228         ${INSTALL_PROGRAM} rmtsysd ${DESTDIR}${sbindir}/rmtsysd
229         ${INSTALL_DATA} ${srcdir}/afssyscalls.h ${DESTDIR}${includedir}/afs/afssyscalls.h
230         ${INSTALL_PROGRAM} pagsh ${DESTDIR}${bindir}/pagsh
231         ${INSTALL_PROGRAM} pagsh.krb ${DESTDIR}${bindir}/pagsh.krb
232         ${INSTALL_DATA} ${srcdir}/xfsattrs.h ${DESTDIR}${includedir}/afs/xfsattrs.h
233         @set -x; case ${SYS_NAME} in \
234         rs_aix*) \
235                 ${INSTALL_DATA} afs.exp ${DESTDIR}${includedir}/afs/afs.exp;; \
236         esac
237
238 dest: libsys.a rmtsysd afssyscalls.h pagsh pagsh.krb afs.exp xfsattrs.h
239         ${INSTALL} -d ${DEST}/lib/afs
240         ${INSTALL} -d ${DEST}/etc
241         ${INSTALL} -d ${DEST}/bin
242         ${INSTALL} -d ${DEST}/include/afs
243         ${INSTALL_DATA} libsys.a ${DEST}/lib/afs/libsys.a
244         ${INSTALL_PROGRAM} rmtsysd ${DEST}/etc/rmtsysd
245         ${INSTALL_PROGRAM} pagsh ${DEST}/bin/pagsh
246         ${INSTALL_PROGRAM} pagsh.krb ${DEST}/bin/pagsh.krb
247         ${INSTALL_DATA} ${srcdir}/afssyscalls.h ${DEST}/include/afs/afssyscalls.h
248         ${INSTALL_DATA} ${srcdir}/xfsattrs.h ${DEST}/include/afs/xfsattrs.h
249         @set -x; case ${SYS_NAME} in \
250         rs_aix*) \
251                 ${INSTALL_DATA} afs.exp ${DEST}/include/afs/afs.exp ;; \
252         esac
253
254 #
255 # Misc targets
256 #
257 include ../config/Makefile.version
258
259 clean:
260         $(RM) -f *.o libsys.a xfsinode iinc idec icreate iopen istat core \
261         rmtsysc rmtsyss *.o rmtsys.ss.c rmtsys.cs.c rmtsys.xdr.c rmtsys.h \
262         rmtsysd AFS_component_version_number.c pagsh pagsh.krb \
263         afs.exp afsl.exp libafssetpag.* Krmtsys.cs.c Krmtsys.h Krmtsys.xdr.c
264         $(RM) -rf picobj