# This software has been released under the terms of the IBM Public
# License. For details, see the LICENSE file in the top-level source
# directory or online at http://www.openafs.org/dl/license10.html
+#
+# Portions Copyright (c) 2003 Apple Computer, Inc.
+
+srcdir=@srcdir@
+include @TOP_OBJDIR@/src/config/Makefile.config
+include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
+
+SFLAGS=-I${TOP_INCDIR}
+LIBS=libsys.a \
+ ${TOP_LIBDIR}/librx.a \
+ libsys.a \
+ ${TOP_LIBDIR}/liblwp.a \
+ $(TOP_LIBDIR)/libafsutil.a \
+ ${TOP_LIBDIR}/libopr.a \
+ ${TOP_LIBDIR}/libafshcrypto_lwp.a \
+ ${XLIBS}
+
+LT_objs = afssyscalls.lo setpag.lo pioctl.lo glue.lo \
+ rmtsysnet.lo rmtsysc.lo rmtsys.cs.lo rmtsys.xdr.lo rmtsys.ss.lo \
+ rmtsyss.lo
+LT_deps = $(top_builddir)/src/rx/liboafs_rx.la
+
+all: \
+ liboafs_sys.la \
+ libafsrpc_sys.la \
+ libsys_pic.la \
+ rmtsysd \
+ ${TOP_INCDIR}/afs/afssyscalls.h \
+ ${TOP_INCDIR}/afs/afs.exp \
+ ${TOP_INCDIR}/afs/xfsattrs.h \
+ ${TOP_INCDIR}/afs/sys_prototypes.h \
+ ${TOP_LIBDIR}/afs.exp \
+ ${TOP_LIBDIR}/libsys.a \
+ ${KERNELDIR}/afs/xfsattrs.h \
+ ${UKERNELDIR}/afs/afsl.exp
+
+generated: \
+ rmtsys.cs.c rmtsys.ss.c rmtsys.xdr.c rmtsys.h \
+ Krmtsys.cs.c Krmtsys.xdr.c Krmtsys.h
+
+${TOP_INCDIR}/afs/afssyscalls.h: afssyscalls.h
+ ${INSTALL_DATA} $? $@
+
+${TOP_INCDIR}/afs/rmtsys.h: rmtsys.h
+ ${INSTALL_DATA} $? $@
+
+${TOP_INCDIR}/afs/afs.exp: afs.exp
+ @set -x; case ${SYS_NAME} in \
+ rs_aix* ) \
+ ${INSTALL_DATA} $? $@ ;; \
+ esac
-# System calls.
-
-DESTDIR=@DESTDIR@
-SRCDIR=@SRCDIR@
-TOP_SRCDIR=@TOP_SRCDIR@
-SYS_NAME=@AFS_SYSNAME@
-
-SHELL = /bin/sh
-
-include ../config/Makefile.${SYS_NAME}
-
-MKDIR_IF_NEEDED=[ -d $$1 ] || mkdir -p $$1
-
-UKERNELDIR=../libuafs/
-CFLAGS= ${DBUG} -I${TOP_SRCDIR}/config -I${SRCDIR}include ${XCFLAGS}
-SFLAGS=-P -I${SRCDIR}include
-LIBS= libsys.a ${SRCDIR}lib/librx.a libsys.a ${SRCDIR}lib/liblwp.a ${SRCDIR}lib/afs/util.a ${XLIBS}
-UKSRCS=afsl.exp
+${TOP_LIBDIR}/afs.exp: afs.exp
+ @set -x; case ${SYS_NAME} in \
+ rs_aix* ) \
+ ${INSTALL_DATA} $? $@ ;; \
+ esac
-OBJECTS= afssyscalls.o syscall.o
-RMTOBJS=rmtsysnet.o rmtsysc.o rmtsys.cs.o rmtsys.xdr.o rmtsys.ss.o rmtsyss.o
+${TOP_INCDIR}/afs/xfsattrs.h: xfsattrs.h
+ ${INSTALL_DATA} $? $@
-include ../config/Makefile.version
+${TOP_INCDIR}/afs/sys_prototypes.h: sys_prototypes.h
+ ${INSTALL_DATA} $? $@
-all: libsys.a ${DESTDIR}etc/rmtsysd ${DESTDIR}include/afs/afssyscalls.h \
- ${DESTDIR}bin/pagsh ${DESTDIR}bin/pagsh.krb
+${TOP_LIBDIR}/libsys.a: libsys.a
+ ${INSTALL_DATA} $? $@
-${DESTDIR}etc/rmtsysd: rmtsysd
- ${INSTALL} -s rmtsysd ${DESTDIR}etc/rmtsysd
-
-${DESTDIR}bin/pagsh: pagsh
- ${INSTALL} -s pagsh ${DESTDIR}bin/pagsh
+${UKERNELDIR}/afs/afsl.exp: afsl.exp
+ ${INSTALL} -d ${UKERNELDIR}/afs
+ @set -x; case ${SYS_NAME} in \
+ rs_aix* ) \
+ ${INSTALL_DATA} $? $@ ;; \
+ esac
-${DESTDIR}bin/pagsh.krb: pagsh.krb
- ${INSTALL} -s pagsh.krb ${DESTDIR}bin/pagsh.krb
+${KERNELDIR}/afs/xfsattrs.h: xfsattrs.h
+ ${INSTALL} -d ${KERNELDIR}/afs
+ ${INSTALL_DATA} $? $@
+
+depinstall: \
+ ${TOP_INCDIR}/afs/afssyscalls.h \
+ ${TOP_INCDIR}/afs/rmtsys.h \
+ ${TOP_INCDIR}/afs/afs.exp \
+ ${TOP_INCDIR}/afs/xfsattrs.h \
+ ${TOP_INCDIR}/afs/sys_prototypes.h \
+ ${TOP_LIBDIR}/afs.exp \
+ ${KERNELDIR}/afs/xfsattrs.h \
+ ${UKERNELDIR}/afs/afsl.exp \
+ Krmtsys.cs.c Krmtsys.h Krmtsys.xdr.c rmtsys.h
+
+libsys.a: $(LT_objs) afsl.exp syscall.lo
+ @set -e; set -x; case "$(SYS_NAME)" in \
+ rs_aix*) \
+ $(LT_LDLIB_lwp_NOQ) $(LT_objs) syscall.o afsl.exp ;; \
+ *) \
+ $(LT_LDLIB_lwp_NOQ) $(LT_objs) syscall.o ;; \
+ esac
-${DESTDIR}include/afs/afssyscalls.h: afssyscalls.h
- ${INSTALL} afssyscalls.h ${DESTDIR}include/afs/afssyscalls.h
+# On AIX, liboafs_sys uses lsetpag() and lpioctl() which are syscall stubs,
+# we need to include afsl.exp in order to link against them
+liboafs_sys.la: liboafs_sys.la.sym $(LT_objs) $(LT_deps) afsl.exp
+ @set -e; set -x; case "$(SYS_NAME)" in \
+ rs_aix*) \
+ $(LT_LDLIB_shlib) -Wl,-bI:afsl.exp $(LT_objs) $(LT_deps) ;\
+ $(AR) crv .libs/liboafs_sys.a ../sys/afsl.exp ;; \
+ *) \
+ $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) ;; \
+ esac
-libsys.a: ${OBJECTS} ${RMTOBJS} AFS_component_version_number.o
- -rm -f libsys.a
- ${AR} r libsys.a ${OBJECTS} ${RMTOBJS} AFS_component_version_number.o
- $(RANLIB) libsys.a
- case "${SYS_NAME}" in \
- rs_aix*) \
- ${AR} r libsys.a afsl.exp;; \
+libafsrpc_sys.la: syscall.lo
+ $(LT_LDLIB_pic) syscall.lo
+
+libsys_pic.la: $(LT_objs)
+ $(LT_LDLIB_pic) $(LT_objs)
+
+tests: fixit iinc idec icreate iopen istat rmtsysd
+
+syscall.lo: syscall.s
+ @set -e; set -x; case "$(SYS_NAME)" in \
+ sgi_*) \
+ ${CC} ${AFS_CFLAGS} -c ${srcdir}/syscall.s; \
+ ;; \
+ rs_aix* | hp_ux10*) \
+ $(PATH_CPP) -P ${SFLAGS} ${srcdir}/syscall.s > syscall.ss; \
+ as -o syscall.o syscall.ss; \
+ $(RM) syscall.ss; \
+ ;; \
+ *) \
+ touch syscall.c ; \
+ $(CC) $(AFS_CFLAGS) -c syscall.c -o syscall.o; \
+ ;; \
esac
+ rm -f $@
+ echo "# Generated by libtool (GNU libtool) 0.0.0" > $@
+ echo "pic_object='syscall.o'" >> $@
+ echo "non_pic_object='syscall.o'" >> $@
-system: install
+afssyscalls.lo: afssyscalls.c afssyscalls.h
+glue.lo: glue.c afssyscalls.h
+setpag.lo: setpag.c afssyscalls.h
+pioctl.lo: pioctl.c afssyscalls.h
-kinstall:
- case "${SYS_NAME}" in \
- rs_aix*) \
- ${INSTALL} afs.exp ${DESTDIR}lib/afs;; \
- sgi_6? ) \
- ${INSTALL} xfsattrs.h ../libafs/afs;; \
- *) \
- echo No $@ source here;; \
- esac
+rmtsysnet.lo rmtsysc.lo rmtsyss.lo rmtsysd.lo: rmtsys.h
+rmtsysd: AFS_component_version_number.o afs.exp afsl.exp
-install: all kinstall ukinstall
- ${INSTALL} libsys.a ${DESTDIR}lib/afs
- case "${SYS_NAME}" in \
- sgi_6? ) \
- ${INSTALL} xfsattrs.h ${DESTDIR}include/afs;; \
- esac
+rmtsys.cs.c: rmtsys.xg
+ ${RXGEN} -A -C -o $@ ${srcdir}/rmtsys.xg
-ukinstall webinstall: ${UKSRCS}
- set ${UKERNELDIR}afs; $(MKDIR_IF_NEEDED)
- ${INSTALL} ${UKSRCS} ${UKERNELDIR}afs
-
-tests: pagsh pagsh.krb fixit iinc idec icreate iopen istat rmtsysd
-
-syscall.o: syscall.s
- case "$(SYS_NAME)" in \
- sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53 | sun4_53 | sun4_52 | sun4_54 | sun4c_54 | sun4m_54 | sun4x_5? | sunx86_54) \
- /usr/ccs/lib/cpp ${SFLAGS} syscall.s syscall.ss; \
- as -o syscall.o syscall.ss; \
- rm syscall.ss;; \
- sgi_* |ppc_darwin* ) \
- ${CC} ${CFLAGS} -c syscall.s;; \
- alpha_osf1 | alpha_osf20 | alpha_osf30 | alpha_osf32 | alpha_osf32c | alpha_dux?? ) \
- ${AS} -P ${CFLAGS} -D_NO_PROTO -DMACH -DOSF -nostdinc -traditional -DASSEMBLER syscall.s; \
- ${AS} -o syscall.o syscall.i; \
- rm -f syscall.ss syscall.i;; \
- hp_ux11? ) \
- touch syscall.o;; \
- i386_fbsd* ) \
- touch syscall.o;; \
- *) \
- /lib/cpp ${SFLAGS} syscall.s syscall.ss; \
- as -o syscall.o syscall.ss; \
- rm syscall.ss;; \
- esac
+rmtsys.ss.c: rmtsys.xg
+ ${RXGEN} -A -S -o $@ ${srcdir}/rmtsys.xg
+rmtsys.xdr.c: rmtsys.xg
+ ${RXGEN} -A -c -o $@ ${srcdir}/rmtsys.xg
-afssyscalls.o: afssyscalls.c afssyscalls.h
- ${CC} ${CFLAGS} -c afssyscalls.c
+rmtsys.h: rmtsys.xg
+ ${RXGEN} -A -h -o $@ ${srcdir}/rmtsys.xg
-rmtsysnet.o rmtsysc.o rmtsyss.o rmtsysd.o: rmtsys.h
-rmtsysd: AFS_component_version_number.o
+Krmtsys.cs.c: rmtsys.xg Krmtsys.h
+ ${RXGEN} -A -k -C -o Krmtsys.cs.c ${srcdir}/rmtsys.xg
-rmtsys.cs.c rmtsys.ss.c rmtsys.xdr.c rmtsys.h: rmtsys.xg
- ${SRCDIR}bin/rxgen rmtsys.xg
+Krmtsys.xdr.c: rmtsys.xg
+ ${RXGEN} -A -k -c -o Krmtsys.xdr.c ${srcdir}/rmtsys.xg
-rmtsysd: rmtsysd.o libsys.a
- ${CC} ${CFLAGS} -o rmtsysd rmtsysd.o ${LIBS}
+Krmtsys.h: rmtsys.xg
+ ${RXGEN} -A -k -h -o Krmtsys.h ${srcdir}/rmtsys.xg
+rmtsysd: rmtsysd.o libsys.a
+ $(AFS_LDRULE) rmtsysd.o ${LIBS} $(LIB_roken)
-pagsh: libsys.a AFS_component_version_number.o
- ${CC} ${CFLAGS} -c pagsh.c
- ${CC} ${CFLAGS} -o pagsh pagsh.o ${LIBS}
-pagsh.krb: libsys.a
- ${CC} ${CFLAGS} -c pagsh.c -DAFS_KERBEROS_ENV
- ${CC} ${CFLAGS} -o pagsh.krb pagsh.o ${LIBS}
+#
# Test programs.
+#
+
+iinc: iinc.c
+ $(CC) -o iinc $(AFS_CFLAGS) ${srcdir}/iinc.c ${LIBS}
-iinc: iinc.c
- case "${SYS_NAME}" in \
- sgi_6*) \
- $(CC) -o iinc ${CFLAGS} iinc.c libsys.a;; \
- *) \
- $(CC) -o iinc -I${SRCDIR}include iinc.c ${LIBS} ${XLIBS};; \
- esac
idec: idec.c AFS_component_version_number.c
- case "${SYS_NAME}" in \
- sgi_6* ) \
- $(CC) -o idec ${CFLAGS} idec.c libsys.a;; \
- *) \
- $(CC) -o idec -I${SRCDIR}include idec.c ${LIBS} ${XLIBS};; \
- esac
+ $(CC) -o idec $(AFS_CFLAGS) ${srcdir}/idec.c ${LIBS}
+
icreate:icreate.c AFS_component_version_number.c
- case "${SYS_NAME}" in \
- sgi_6* ) \
- $(CC) -o icreate ${CFLAGS} icreate.c libsys.a;; \
- *) \
- $(CC) -o icreate -I${SRCDIR}include icreate.c ${XLIBS};; \
- esac
+ $(CC) -o icreate $(AFS_CFLAGS) ${srcdir}/icreate.c ${LIBS}
+
iopen: iopen.c AFS_component_version_number.c
- case "${SYS_NAME}" in \
- sgi_6* ) \
- $(CC) -o iopen ${CFLAGS} iopen.c libsys.a;; \
- *) \
- $(CC) -o iopen -I${SRCDIR}include iopen.c ${XLIBS};; \
- esac
+ $(CC) -o iopen $(AFS_CFLAGS) ${srcdir}/iopen.c ${LIBS}
+
iread: iread.c AFS_component_version_number.c
- case "${SYS_NAME}" in \
- sgi_6* ) \
- ${CC} -o iread ${CFLAGS} iread.c libsys.a;; \
- *) \
- ${CC} -o iread -I${SRCDIR}include iread.c ${XLIBS};; \
- esac
+ ${CC} -o iread $(AFS_CFLAGS) ${srcdir}/iread.c ${LIBS}
+
iwrite: iwrite.c AFS_component_version_number.c
- case "${SYS_NAME}" in \
- sgi_6* ) \
- ${CC} -o iwrite ${CFLAGS} iwrite.c libsys.a;; \
- *) \
- ${CC} -o iwrite -I${SRCDIR}include iwrite.c ${XLIBS};; \
- esac
+ ${CC} -o iwrite $(AFS_CFLAGS) ${srcdir}/iwrite.c ${LIBS}
+
istat: istat.c AFS_component_version_number.c
- case "${SYS_NAME}" in \
- sgi_6* ) \
- $(CC) -o istat ${CFLAGS} istat.c libsys.a;; \
- *) \
- $(CC) -o istat -I${SRCDIR}include istat.c ${XLIBS};; \
- esac
+ $(CC) -o istat $(AFS_CFLAGS) ${srcdir}/istat.c ${LIBS}
+
fixit: fixit.c AFS_component_version_number.c
- $(CC) -o fixit -IDEST/include fixit.c libsys.a
+ $(CC) -o fixit $(AFS_CFLAGS) ${srcdir}/fixit.c ${LIBS}
xfsinode: xfsinode.c AFS_component_version_number.c
- case "${SYS_NAME}" in \
+ @set -x; case "${SYS_NAME}" in \
sgi_62 | sgi_64 ) \
- $(CC) -o xfsinode ${CFLAGS} xfsinode.c libsys.a;; \
+ $(CC) -o xfsinode $(AFS_CFLAGS) ${srcdir}/xfsinode.c ${LIBS}
+ esac
+
+afs.exp: ${srcdir}/afs4.exp ${srcdir}/afs5.exp
+ @set -x; case ${SYS_NAME} in \
+ rs_aix[567]* ) \
+ cp -p ${srcdir}/afs5.exp afs.exp ;; \
+ rs_aix* ) \
+ cp -p ${srcdir}/afs4.exp afs.exp ;; \
+ * ) \
+ touch afs.exp ;; \
+ esac
+
+afsl.exp: ${srcdir}/afsl4.exp ${srcdir}/afsl5.exp
+ @set -x; case ${SYS_NAME} in \
+ rs_aix[567]* ) \
+ cp -p ${srcdir}/afsl5.exp afsl.exp ;; \
+ rs_aix* ) \
+ cp -p ${srcdir}/afsl4.exp afsl.exp ;; \
+ * ) \
+ touch afsl.exp ;; \
esac
+#
+# Installation targets
+#
+install: libsys.a rmtsysd afssyscalls.h afs.exp xfsattrs.h
+ ${INSTALL} -d ${DESTDIR}${libdir}/afs
+ ${INSTALL} -d ${DESTDIR}${sbindir}
+ ${INSTALL} -d ${DESTDIR}${includedir}/afs
+ ${INSTALL_DATA} libsys.a ${DESTDIR}${libdir}/afs/libsys.a
+ ${INSTALL_PROGRAM} rmtsysd ${DESTDIR}${sbindir}/rmtsysd
+ ${INSTALL_DATA} ${srcdir}/afssyscalls.h ${DESTDIR}${includedir}/afs/afssyscalls.h
+ ${INSTALL_DATA} ${srcdir}/xfsattrs.h ${DESTDIR}${includedir}/afs/xfsattrs.h
+ @set -x; case ${SYS_NAME} in \
+ rs_aix*) \
+ ${INSTALL_DATA} afs.exp ${DESTDIR}${includedir}/afs/afs.exp;; \
+ esac
+dest: libsys.a rmtsysd afssyscalls.h afs.exp xfsattrs.h
+ ${INSTALL} -d ${DEST}/lib/afs
+ ${INSTALL} -d ${DEST}/etc
+ ${INSTALL} -d ${DEST}/bin
+ ${INSTALL} -d ${DEST}/include/afs
+ ${INSTALL_DATA} libsys.a ${DEST}/lib/afs/libsys.a
+ ${INSTALL_PROGRAM} rmtsysd ${DEST}/etc/rmtsysd
+ ${INSTALL_DATA} ${srcdir}/afssyscalls.h ${DEST}/include/afs/afssyscalls.h
+ ${INSTALL_DATA} ${srcdir}/xfsattrs.h ${DEST}/include/afs/xfsattrs.h
+ @set -x; case ${SYS_NAME} in \
+ rs_aix*) \
+ ${INSTALL_DATA} afs.exp ${DEST}/include/afs/afs.exp ;; \
+ esac
+
+#
+# Misc targets
+#
+include ../config/Makefile.version
clean:
- rm -f *.o libsys.a xfsinode iinc idec icreate iopen istat core \
+ $(LT_CLEAN)
+ $(RM) -f *.o libsys.a xfsinode iinc idec icreate iopen istat core \
rmtsysc rmtsyss *.o rmtsys.ss.c rmtsys.cs.c rmtsys.xdr.c rmtsys.h \
- rmtsysd AFS_component_version_number.c pagsh pagsh.krb
-
-beancount:
- wc -l *.c *.s
+ rmtsysd AFS_component_version_number.c syscall.c \
+ afs.exp afsl.exp libafssetpag.* Krmtsys.cs.c Krmtsys.h Krmtsys.xdr.c