aix-makefileproto-updates-20040621
[openafs.git] / src / libafs / MakefileProto.AIX.in
index b95ffb1..6104277 100644 (file)
@@ -5,14 +5,8 @@
 # License.  For details, see the LICENSE file in the top-level source
 # directory or online at http://www.openafs.org/dl/license10.html
 
-# MakefileProto for AIX systems
-#
-DESTDIR=@DESTDIR@
-SRCDIR=@SRCDIR@
-TOP_SRCDIR=@TOP_SRCDIR@
-SYS_NAME=@AFS_SYSNAME@
-
-include config/Makefile.${SYS_NAME}
+srcdir=@srcdir@
+include @TOP_OBJDIR@/src/config/Makefile.config
 
 # OS specific object files:
 AFS_OS_OBJS = \
@@ -24,10 +18,7 @@ AFS_OS_OBJS = \
        osi_misc.o \
        osi_sleep.o \
        osi_timeout.o \
-       osi_vm.o \
-       xdr.o \
-       xdr_array.o \
-       xdr_int64.o
+       osi_vm.o
 
 AFSNOIAUTHOBJS = \
        afs_call.o \
@@ -52,7 +43,9 @@ OPT2   = -O
 
 IMPORTS = -bI:/lib/kernex.exp -bI:/lib/syscalls.exp -bI:/lib/sockets.exp \
        -bI:/lib/netinet.exp \
-       -bI:${DESTDIR}/lib/afs/extras.exp -bI:${DESTDIR}/lib/afs/export.exp
+       -bI:${TOP_LIBDIR}/extras.exp 
+IMPORTS32 = -bI:${TOP_LIBDIR}/export.exp
+IMPORTS64 = -bI:${TOP_LIBDIR}/export64.exp
 KDEFS = -U_IBMR2 -D_POWER -D_AIX -DNLS -D_NLS -DMSG -D__STR31__ -Daiws \
        -D_POWER_RS -D_POWER_PC -D_POWER_RS1 -D_POWER_RS2 -D_POWER_RSC \
         -D_POWER_601 -D_POWER_603 -D_POWER_604 -D_THREADS -M  -D_KERNEL \
@@ -60,38 +53,78 @@ KDEFS = -U_IBMR2 -D_POWER -D_AIX -DNLS -D_NLS -DMSG -D__STR31__ -Daiws \
         -DGETMOUNT -H8 -DAFS -DAFS_COMMON -D_VOPS -D_SUN -DKERNEL
 LDSTUFF= -b"binder:/usr/lib/bind glink:/usr/lib/glink.o" -bnoentry -b h:4 \
        -D0 -T512
-LDFLAGS = -m -eafs_config -bexport:${DESTDIR}/lib/afs/afs.exp ${IMPORTS} \
-        -lsys -lcsys 
+LDSTUFF64= -b"binder:/usr/lib/bind glink:/usr/lib/glink64.o" -bnoentry -b h:4 \
+       -D0 -T512
+LDFLAGS = -m -eafs_config -bexport:${TOP_LIBDIR}/afs.exp ${IMPORTS} \
+        -lsys -lcsys  ${KLDOPTS}
 
-CFLAGS=-I. -I.. -I${TOP_SRCDIR}/config ${FSINCLUDES} $(KDEFS) $(KOPTS) ${DBUG}
+CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(KDEFS) $(KOPTS) ${DBUG}
 
 # Name of directory to hold object files and libraries.
-KOBJ = MODLOAD
+KOBJ = MODLOAD MODLOAD64
 
 # This tells Makefile.common to use it's single directory build target.
-COMPDIRS = single_compdir
-INSTDIRS = single_instdir
+COMPDIRS = aix_compdirs
+INSTDIRS = aix_instdirs
+DESTDIRS = aix_destdirs
+
+<rs_aix42>
+KMODS=32 
+<rs_aix50 rs_aix51 rs_aix52>
+KMODS=32 64
+<all>
 
 include Makefile.common
 
 setup:
-       -mkdir $(KOBJ)
-       -rm $(KOBJ)/Makefile $(KOBJ)/Makefile.common $(KOBJ)/config
-       ln -s ../Makefile $(KOBJ)/Makefile
-       ln -s ../Makefile.common $(KOBJ)/Makefile.common
-       ln -s ../config $(KOBJ)/config
-       -rm -f  h net netinet rpc ufs nfs  machine sys
-       ln -s /usr/include/sys h
-       ln -s /usr/include/net net
-       ln -s /usr/include/netinet netinet
-       ln -s /usr/include/rpc rpc
-       ln -s /usr/include/sys sys
-       ln -s /usr/include/nfs nfs
-       ln -s /usr/include/jfs ufs
-
-
-
-
+       -$(RM) -f  h net netinet rpc ufs nfs  machine sys
+       ln -fs /usr/include/sys h
+       ln -fs /usr/include/net net
+       ln -fs /usr/include/netinet netinet
+       ln -fs /usr/include/rpc rpc
+       ln -fs /usr/include/sys sys
+       ln -fs /usr/include/nfs nfs
+       ln -fs /usr/include/jfs ufs
+       for m in ${KMODS} ; do \
+               KDIR=MODLOAD-$$m ; \
+               mkdir -p $${KDIR} ; \
+               ln -fs ../Makefile $${KDIR}/Makefile ; \
+               ln -fs ../Makefile.common $${KDIR}/Makefile.common ; \
+               ln -fs ../config $${KDIR}/config ; \
+       done
+
+${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
+       for m in ${KMODS} ; do \
+               KDIR=MODLOAD-$$m ; \
+               echo Building in directory: $${KDIR} ; \
+               if [ "$$m" = "32" ] ; then \
+                       KOPTS="-q32" ; \
+                       KLDOPTS="-b32" ; \
+                       KASOPTS="32" ; \
+                       TARG="afs.ext.32" ; \
+               elif [ "$$m" = "64" ] ; then \
+                       KOPTS="-q64 -DAFS_64BIT_KERNEL -D__64BIT_KERNEL" ; \
+                       KLDOPTS="-b64" ; \
+                       KASOPTS="64" ; \
+                       TARG="afs.ext.64" ; \
+               fi ; \
+               cd $${KDIR} ; \
+               $(MAKE) DEST="$${DEST}" KOPTS="$${KOPTS}"  KLDOPTS="$${KLDOPTS}" KASOPTS="$${KASOPTS}" $@_$${TARG} || exit $$?; \
+               cd ../ ; \
+       done
+
+aix_compdirs_afs.ext.32: afs.ext.32
+aix_compdirs_afs.ext.64: afs.ext.64
+aix_instdirs_afs.ext.32: install_afs.ext.32
+aix_instdirs_afs.ext.64: install_afs.ext.64
+aix_destdirs_afs.ext.32: dest_afs.ext.32
+aix_destdirs_afs.ext.64: dest_afs.ext.64
+
+dest_afs.ext.32: $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.32
+       echo Install for 32-bit Kernel Complete
+
+dest_afs.ext.64: $(DEST)/root.client/usr/vice/etc/dkload/afs.ext.64
+       echo Install for 64-bit Kernel Complete
 
 # Standard AFS->NFS translator support is removed in AFS 3.5 in favor of
 # the iauth authentication mechanism. The model was changed by IBM in the
@@ -99,16 +132,23 @@ setup:
 # later 4.1.x (if they are ever made) and AIX 4.2.1 (and later AIX 4.2.x if
 # they are ever made. AIX 4.3 also uses the iauth translator.
 
-CLIENTDIR = $(DESTDIR)root.client/usr/vice/etc/dkload
-LIBAFSIAUTH = afs.ext.iauth
-LIBAFS = afs.ext
+LIBAFSIAUTH = afs.ext.32.iauth
+LIBAFS = afs.ext.32
+
+DEST_LIBAFSIAUTH = $(DEST)/root.client/usr/vice/etc/dkload/$(LIBAFSIAUTH)
+DEST_LIBAFS = $(DEST)/root.client/usr/vice/etc/dkload/$(LIBAFS)
 
-DEST_LIBAFSIAUTH = $(CLIENTDIR)/$(LIBAFSIAUTH)
-DEST_LIBAFS = $(CLIENTDIR)/$(LIBAFS)
+INST_LIBAFSIAUTH = ${DESTDIR}${afskerneldir}/$(LIBAFSIAUTH)
+INST_LIBAFS = ${DESTDIR}${afskerneldir}/$(LIBAFS)
 
-$(DEST_LIBAFS): $(LIBAFS)
+$(DEST)/root.client/usr/vice/etc/dkload/afs.ext.32: afs.ext.32
        $(INSTALL) -f $? $@
-       -${STRIP} $@
+       -${STRIP} -X 32 $@
+       $(INSTALL) -f $?.map $@.map
+       
+$(DEST)/root.client/usr/vice/etc/dkload/afs.ext.64: afs.ext.64
+       $(INSTALL) -f $? $@
+       -${STRIP} -X 64 $@
        $(INSTALL) -f $?.map $@.map
        
 $(DEST_LIBAFSIAUTH): $(LIBAFSIAUTH)
@@ -116,64 +156,58 @@ $(DEST_LIBAFSIAUTH): $(LIBAFSIAUTH)
        -${STRIP} $@
        $(INSTALL) -f $?.map $@.map
        
+$(INST_LIBAFS): $(LIBAFS)
+       $(INSTALL) -f $? $@
+       -${STRIP} $@
+       $(INSTALL) -f $?.map $@.map
+       
+$(INST_LIBAFSIAUTH): $(LIBAFSIAUTH)
+       $(INSTALL) -f $? $@
+       -${STRIP} $@
+       $(INSTALL) -f $?.map $@.map
        
 
 $(LIBAFSIAUTH): $(AFSAOBJS) $(AFSIAUTHOBJS)
-       ${LD} ${LDSTUFF}  -bloadmap:afs.ext.iauth.loadmap \
-        -bmap:afs.ext.iauth.map -o afs.ext.iauth \
-       ${AFSAOBJS} ${AFSIAUTHOBJS} ${LIBS} ${LDFLAGS}
-
-$(LIBAFS): $(AFSAOBJS) $(AFSNOIAUTHOBJS)
-       ${LD} ${LDSTUFF}  -bloadmap:afs.ext.loadmap \
-        -bmap:afs.ext.map -o afs.ext \
-       ${AFSAOBJS} $(AFSNOIAUTHOBJS) ${LIBS} ${LDFLAGS}
-
-libafs: $(LIBAFS) $(LIBAFSIAUTH)
-install_libafs: $(DEST_LIBAFS) $(DEST_LIBAFSIAUTH)
-
-
-# Object build rules:
-# Common objects
-xdr.o: $(RX)/xdr.c
-       $(CRULE1);
-xdr_int64.o: $(RX)/xdr_int64.c
-       $(CRULE1);
-
-xdr_array.o: $(RX)/xdr_array.c
-       $(CRULE1);
-
-osi_assem.o:   ${AFS}/osi_assem.s
-       ${AS} -o osi_assem.o ${AFS}/osi_assem.s
-osi_config.o: $(AFS)/osi_config.c
-       $(CRULE1);
-osi_groups.o: $(AFS)/osi_groups.c
-       $(CRULE1);
-osi_file.o: $(AFS)/osi_file.c
-       $(CRULE1);
-osi_inode.o: $(AFS)/osi_inode.c
-       $(CRULE1);
-osi_misc.o: $(AFS)/osi_misc.c
-       $(CRULE1);
-osi_sleep.o: $(AFS)/osi_sleep.c
-       $(CRULE1);
-osi_timeout.o: $(AFS)/osi_timeout.c
-       $(CRULE1);
-osi_vfsops.o: $(AFS)/osi_vfsops.c
-       $(CRULE1);
-osi_vm.o: $(AFS)/osi_vm.c
-       $(CRULE1);
-osi_vnodeops.o: $(AFS)/osi_vnodeops.c
-       $(CRULE1);
+       ${LD} ${LDSTUFF} -bloadmap:afs.ext.iauth.loadmap \
+               -bmap:afs.ext.iauth.map -o afs.ext.iauth \
+               ${AFSAOBJS} ${AFSIAUTHOBJS} ${LIBS} ${LDFLAGS} ${IMPORTS32}
+
+afs.ext.32: $(AFSAOBJS) $(AFSNOIAUTHOBJS)
+       ${LD} ${LDSTUFF} -bloadmap:afs.ext.32.loadmap \
+               -bmap:afs.ext.32.map -o afs.ext.32 \
+               ${AFSAOBJS} ${AFSNOIAUTHOBJS} ${LIBS} \
+               ${LDFLAGS} ${IMPORTS32}
+
+afs.ext.64: $(AFSAOBJS) $(AFSNOIAUTHOBJS)
+       ${LD} ${LDSTUFF64} -b64 -bloadmap:afs.ext.64.loadmap \
+               -bmap:afs.ext.64.map -o afs.ext.64 \
+               ${AFSAOBJS} ${AFSNOIAUTHOBJS} ${LIBS} \
+               ${LDFLAGS} ${IMPORTS64}
+
+libafs: $(LIBAFS) $(LIBAFS64) $(LIBAFSIAUTH)
+install_libafs: $(INST_LIBAFS) $(INST_LIBAFSIAUTH)
+dest_libafs: $(DEST_LIBAFS) $(DEST_LIBAFSIAUTH)
+
+
+osi_assem.o:   osi_assem.s
+       ${AS} -a${KASOPTS} -o osi_assem.o osi_assem.s
+osi_assem.s: $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem32.s $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem64.s
+       case bit${KASOPTS} in \
+               bit64 ) \
+                       cp -p $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem64.s osi_assem.s ;; \
+               * ) \
+                       cp -p $(TOP_SRCDIR)/afs/$(MKAFS_OSTYPE)/osi_assem32.s osi_assem.s ;; \
+       esac
 
 
 # Build rules for iauth objects.
-afs_call_iauth.o:      $(AFS)/afs_call.c
-       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_call_iauth.o;
-afs_nfsclnt_iauth.o:   $(AFS)/afs_nfsclnt.c
-       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_nfsclnt_iauth.o;
-afs_pioctl_iauth.o:    $(AFS)/afs_pioctl.c
-       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_pioctl_iauth.o;
-osi_vfsops_iauth.o: $(AFS)/osi_vfsops.c
-       $(CRULE1) -DAFS_NONFSTRANS  -DAFS_AIX_IAUTH_ENV -o osi_vfsops_iauth.o;
-osi_vnodeops_iauth.o:  $(AFS)/osi_vnodeops.c
-       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o osi_vnodeops_iauth.o;
+afs_call_iauth.o:      $(TOP_SRCDIR)/afs/afs_call.c
+       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_call_iauth.o
+afs_nfsclnt_iauth.o:   $(TOP_SRCDIR)/afs/afs_nfsclnt.c
+       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_nfsclnt_iauth.o
+afs_pioctl_iauth.o:    $(TOP_SRCDIR)/afs/afs_pioctl.c
+       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o afs_pioctl_iauth.o
+osi_vfsops_iauth.o: $(TOP_SRCDIR)/afs/osi_vfsops.c
+       $(CRULE1) -DAFS_NONFSTRANS  -DAFS_AIX_IAUTH_ENV -o osi_vfsops_iauth.o
+osi_vnodeops_iauth.o:  $(TOP_SRCDIR)/afs/osi_vnodeops.c
+       $(CRULE1) -DAFS_NONFSTRANS -DAFS_AIX_IAUTH_ENV -o osi_vnodeops_iauth.o