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