pinstall-collateral-damage-20080327
[openafs.git] / src / libafs / MakefileProto.AIX.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 srcdir=@srcdir@
9 include @TOP_OBJDIR@/src/config/Makefile.config
10 INSTALL = @INSTALL@
11 INSTALL_DATA = @INSTALL_DATA@
12 INSTALL_PROGRAM = @INSTALL_PROGRAM@
13 INSTALL_SCRIPT = @INSTALL_SCRIPT@
14
15 # OS specific object files:
16 AFS_OS_OBJS = \
17         osi_assem.o \
18         osi_config.o \
19         osi_groups.o \
20         osi_file.o \
21         osi_inode.o \
22         osi_misc.o \
23         osi_sleep.o \
24         osi_timeout.o \
25         osi_vm.o
26
27 AFSNOIAUTHOBJS = \
28         afs_call.o \
29         afs_pioctl.o \
30         osi_vfsops.o \
31         osi_vnodeops.o
32
33
34 # Object files for iauth NFS->AFS authenticator.
35 AFSIAUTHOBJS = \
36         afs_call_iauth.o \
37         afs_nfsclnt_iauth.o \
38         afs_pioctl_iauth.o \
39         osi_vfsops_iauth.o \
40         osi_vnodeops_iauth.o
41
42 AFS_OS_CLEAN = \
43         *.exp \
44         export.h
45
46 # System specific build commands
47 STRIP = /bin/strip
48 DBUG  = -g
49 #OPT   = -O
50 OPT2   = -O
51
52 IMPORTS = -bI:/lib/kernex.exp -bI:/lib/syscalls.exp -bI:/lib/sockets.exp \
53         -bI:/lib/netinet.exp \
54         -bI:${TOP_LIBDIR}/extras.exp 
55 IMPORTS32 = -bI:${TOP_LIBDIR}/export.exp
56 IMPORTS64 = -bI:${TOP_LIBDIR}/export64.exp
57 KDEFS = -U_IBMR2 -D_POWER -D_AIX -DNLS -D_NLS -DMSG -D__STR31__ -Daiws \
58         -D_POWER_RS -D_POWER_PC -D_POWER_RS1 -D_POWER_RS2 -D_POWER_RSC \
59          -D_POWER_601 -D_POWER_603 -D_POWER_604 -D_THREADS -M  -D_KERNEL \
60         -D_POWER_MP -UKOFF -DAFSDEBUG -DVICE -DNFS -DUFS -DINET -DQUOTA \
61          -DGETMOUNT -H8 -DAFS -DAFS_COMMON -D_VOPS -D_SUN -DKERNEL
62 LDSTUFF= -b"binder:/usr/lib/bind glink:/usr/lib/glink.o" -bnoentry -b h:4 \
63         -D0 -T512
64 LDSTUFF64= -b"binder:/usr/lib/bind glink:/usr/lib/glink64.o" -bnoentry -b h:4 \
65         -D0 -T512
66 LDFLAGS = -m -eafs_config -bexport:${TOP_LIBDIR}/afs.exp ${IMPORTS} \
67          -lsys -lcsys  ${KLDOPTS}
68
69 CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(KDEFS) $(KOPTS) ${DBUG}
70
71 # Name of directory to hold object files and libraries.
72 KOBJ = MODLOAD MODLOAD64
73
74 # This tells Makefile.common to use it's single directory build target.
75 COMPDIRS = aix_compdirs
76 INSTDIRS = aix_instdirs
77 DESTDIRS = aix_destdirs
78
79 <rs_aix42>
80 KMODS=32 
81 <rs_aix50 rs_aix51 rs_aix52 rs_aix53>
82 KMODS=32 64
83 <all>
84
85 include Makefile.common
86
87 setup:
88         -$(RM) -f  h net netinet rpc ufs nfs  machine sys
89         ln -fs /usr/include/sys h
90         ln -fs /usr/include/net net
91         ln -fs /usr/include/netinet netinet
92         ln -fs /usr/include/rpc rpc
93         ln -fs /usr/include/sys sys
94         ln -fs /usr/include/nfs nfs
95         ln -fs /usr/include/jfs ufs
96         for m in ${KMODS} ; do \
97                 KDIR=MODLOAD-$$m ; \
98                 mkdir -p $${KDIR} ; \
99                 ln -fs ../Makefile $${KDIR}/Makefile ; \
100                 ln -fs ../Makefile.common $${KDIR}/Makefile.common ; \
101                 ln -fs ../config $${KDIR}/config ; \
102         done
103
104 ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
105         for m in ${KMODS} ; do \
106                 KDIR=MODLOAD-$$m ; \
107                 echo Building in directory: $${KDIR} ; \
108                 if [ "$$m" = "32" ] ; then \
109                         KOPTS="-q32" ; \
110                         KLDOPTS="-b32" ; \
111                         KASOPTS="32" ; \
112                         TARG="afs.ext.32" ; \
113                 elif [ "$$m" = "64" ] ; then \
114                         KOPTS="-q64 -DAFS_64BIT_KERNEL -D__64BIT_KERNEL" ; \
115                         KLDOPTS="-b64" ; \
116                         KASOPTS="64" ; \
117                         TARG="afs.ext.64" ; \
118                 fi ; \
119                 $(MAKE) DEST="$${DEST}" KOPTS="$${KOPTS}"  KLDOPTS="$${KLDOPTS}" KASOPTS="$${KASOPTS}" SUBDIR=$${KDIR} $@_$${TARG} || exit $$?; \
120         done
121
122 aix_compdirs_afs.ext.32: 
123         if true; then \
124         cd $${SUBDIR}; \
125         $(MAKE) afs.ext.32 || exit $$?; \
126         cd ..; \
127         fi
128 aix_compdirs_afs.ext.64: 
129         if true; then \
130         cd $${SUBDIR}; \
131         $(MAKE) afs.ext.64 || exit $$?; \
132         cd ..; \
133         fi
134 aix_instdirs_afs.ext.32: install_afs.ext.32
135 aix_instdirs_afs.ext.64: install_afs.ext.64
136 aix_destdirs_afs.ext.32: dest_afs.ext.32
137 aix_destdirs_afs.ext.64: dest_afs.ext.64
138
139 dest_afs.ext.32: afs.ext.32
140         ${INSTALL} -d $(DEST)/root.client/usr/vice/etc/dkload
141         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.32 $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.32
142         -${STRIP} -X 32 $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.32
143         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.32.map $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.32.map
144         echo Install for 32-bit Kernel Complete
145
146 dest_afs.ext.64: afs.ext.64
147         ${INSTALL} -d $(DEST)/root.client/usr/vice/etc/dkload
148         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.64 $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.64
149         -${STRIP} -X 64 $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.32
150         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.64.map $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.64.map
151         echo Install for 64-bit Kernel Complete
152
153 install_afs.ext.32: afs.ext.32
154         ${INSTALL} -d $(DESTDIR)$(afskerneldir)
155         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.32 $(DESTDIR)$(afskerneldir)/afs.ext.32
156         -${STRIP} -X 32 $(DESTDIR)$(afskerneldir)/afs.ext.32
157         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.32.map $(DESTDIR)$(afskerneldir)/afs.ext.32.map
158         echo Install for 32-bit Kernel Complete
159
160 install_afs.ext.64: afs.ext.64
161         ${INSTALL} -d $(DESTDIR)$(afskerneldir) 
162         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.64 $(DESTDIR)$(afskerneldir)/afs.ext.64
163         -${STRIP} -X 64 $(DESTDIR)$(afskerneldir)/afs.ext.64
164         $(INSTALL) -m 644 $(SUBDIR)/afs.ext.64.map $(DESTDIR)$(afskerneldir)/afs.ext.64.map
165         echo Install for 64-bit Kernel Complete
166
167 # Standard AFS->NFS translator support is removed in AFS 3.5 in favor of
168 # the iauth authentication mechanism. The model was changed by IBM in the
169 # middle of an OS release. So iauth is only supported on AIX 4.1.5 and 
170 # later 4.1.x (if they are ever made) and AIX 4.2.1 (and later AIX 4.2.x if
171 # they are ever made. AIX 4.3 also uses the iauth translator.
172
173 LIBAFSIAUTH = afs.ext.32.iauth
174
175 DEST_LIBAFSIAUTH = $(DEST)/root.client/usr/vice/etc/dkload/$(LIBAFSIAUTH)
176
177 INST_LIBAFSIAUTH = ${DESTDIR}${afskerneldir}/$(LIBAFSIAUTH)
178
179 $(DEST_LIBAFSIAUTH): $(LIBAFSIAUTH)
180
181 $(INST_LIBAFSIAUTH): $(LIBAFSIAUTH)
182
183
184 $(LIBAFSIAUTH): $(AFSAOBJS) $(AFSIAUTHOBJS)
185         ${LD} ${LDSTUFF} -bloadmap:afs.ext.iauth.loadmap \
186                 -bmap:afs.ext.iauth.map -o afs.ext.iauth \
187                 ${AFSAOBJS} ${AFSIAUTHOBJS} ${LIBS} ${LDFLAGS} ${IMPORTS32}
188
189 afs.ext.32: $(AFSAOBJS) $(AFSNOIAUTHOBJS)
190         ${LD} ${LDSTUFF} -bloadmap:afs.ext.32.loadmap \
191                 -bmap:afs.ext.32.map -o afs.ext.32 \
192                 ${AFSAOBJS} ${AFSNOIAUTHOBJS} ${LIBS} \
193                 ${LDFLAGS} ${IMPORTS32}
194
195 afs.ext.64: $(AFSAOBJS) $(AFSNOIAUTHOBJS)
196         ${LD} ${LDSTUFF64} -b64 -bloadmap:afs.ext.64.loadmap \
197                 -bmap:afs.ext.64.map -o afs.ext.64 \
198                 ${AFSAOBJS} ${AFSNOIAUTHOBJS} ${LIBS} \
199                 ${LDFLAGS} ${IMPORTS64}
200
201 libafs: $(LIBAFS) $(LIBAFS64) $(LIBAFSIAUTH)
202
203 install_libafs: $(INST_LIBAFSIAUTH)
204         ${INSTALL} -d ${DESTDIR}${afskerneldir}
205         $(INSTALL) -m 644 $(SUBDIR)/$(LIBAFSIAUTH) $(INST_LIBAFSIAUTH)
206         -${STRIP} $(INST_LIBAFSIAUTH)
207         $(INSTALL) -m 644 $(SUBDIR)/$(LIBAFSIAUTH).map $(INST_LIBAFSIAUTH).map
208
209 dest_libafs: $(DEST_LIBAFSIAUTH)
210         ${INSTALL} -d $(DEST)/root.client/usr/vice/etc/dkload
211         $(INSTALL) -m 644 $(SUBDIR)/$(LIBAFSIAUTH) $(DEST_LIBAFSIAUTH)
212         -${STRIP} $(DEST_LIBAFSIAUTH)
213         $(INSTALL) -m 644 $(SUBDIR)/$(LIBAFSIAUTH).map $(DEST_LIBAFSIAUTH).map
214
215 osi_assem.o:    osi_assem.s
216         ${AS} -a${KASOPTS} -o osi_assem.o osi_assem.s
217 osi_assem.s: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem32.s $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem64.s
218         case bit${KASOPTS} in \
219                 bit64 ) \
220                         cp -p $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem64.s osi_assem.s ;; \
221                 * ) \
222                         cp -p $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem32.s osi_assem.s ;; \
223         esac
224
225
226 # Build rules for iauth objects.
227 afs_call_iauth.o:       $(TOP_SRCDIR)/afs/afs_call.c
228         $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_call_iauth.o
229 afs_nfsclnt_iauth.o:    $(TOP_SRCDIR)/afs/afs_nfsclnt.c
230         $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_nfsclnt_iauth.o
231 afs_pioctl_iauth.o:     $(TOP_SRCDIR)/afs/afs_pioctl.c
232         $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_pioctl_iauth.o
233 osi_vfsops_iauth.o: $(TOP_SRCDIR)/afs/osi_vfsops.c
234         $(CRULE1) -DAFS_NONFSTRANS  -DAFS_AIX_IAUTH_ENV -o osi_vfsops_iauth.o
235 osi_vnodeops_iauth.o:   $(TOP_SRCDIR)/afs/osi_vnodeops.c
236         $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o osi_vnodeops_iauth.o