linux-srcdir-mapfile-20051210
[openafs.git] / src / sys / Makefile.in
index f3da11a..cbfc54a 100644 (file)
@@ -1,20 +1,30 @@
+# API version. When something changes, increment as appropriate. 
+# Ignore at your own risk.
+LIBAFSSETPAGMAJOR=1
+LIBAFSSETPAGMINOR=0
+
 # Copyright 2000, International Business Machines Corporation and others.
 # All Rights Reserved.
 # 
 # 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
 
 CFLAGS=-I. -I${srcdir} ${DBUG} -I${TOP_OBJDIR}/src/config -I${TOP_INCDIR}  ${XCFLAGS}
-SFLAGS=-P -I${TOP_INCDIR}
+SFLAGS=-I${TOP_INCDIR}
 LIBS=libsys.a ${TOP_LIBDIR}/librx.a libsys.a ${TOP_LIBDIR}/liblwp.a ${TOP_LIBDIR}/util.a ${XLIBS}
 
-OBJECTS= afssyscalls.o syscall.o
+OBJECTS= afssyscalls.o setpag.o glue.o syscall.o
+SHLIBOBJS = picobj/setpag.o picobj/glue.o syscall.o
 RMTOBJS=rmtsysnet.o rmtsysc.o rmtsys.cs.o rmtsys.xdr.o rmtsys.ss.o rmtsyss.o 
 
+LIBAFSSETPAG = libafssetpag.${SHLIB_SUFFIX}.${LIBAFSSETPAGMAJOR}.${LIBAFSSETPAGMINOR}
+
 all: \
        rmtsysd \
        pagsh \
@@ -24,6 +34,7 @@ all: \
        ${TOP_INCDIR}/afs/xfsattrs.h \
        ${TOP_LIBDIR}/afs.exp \
        ${TOP_LIBDIR}/libsys.a \
+       ${TOP_LIBDIR}/${LIBAFSSETPAG} \
        ${KERNELDIR}/afs \
        ${KERNELDIR}/afs/xfsattrs.h \
        ${UKERNELDIR}/afs \
@@ -39,15 +50,31 @@ libsys.a: ${OBJECTS} ${RMTOBJS} afsl.exp AFS_component_version_number.o
                        $(AR) crv $@ afsl.exp;;         \
        esac
 
+${LIBAFSSETPAG}: ${SHLIBOBJS}
+       case ${SYS_NAME} in \
+       *_linux*) \
+           ${SHLIB_LINKER} -Wl,-h,libafssetpag.so.${LIBAFSSETPAGMAJOR} \
+               -o ${LIBAFSSETPAG} -Wl,--version-script=${srcdir}/mapfile \
+               ${SHLIBOBJS};; \
+       rs_aix4*) \
+           ${SHLIB_LINKER} -o ${LIBAFSSETPAG} ${SHLIBOBJS} \
+               -bE:afssetpag.exp;; \
+       sun*_5*) \
+           ${SHLIB_LINKER} -h libafssetpag.so.${LIBAFSSETPAGMAJOR} \
+               -o ${LIBAFSSETPAG} ${SHLIBOBJS};; \
+       *) \
+           ${SHLIB_LINKER} -o ${LIBAFSSETPAG} ${SHLIBOBJS};; \
+       esac
+
 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_5?) \
-               /usr/ccs/lib/cpp  ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
+        sun4c_51 | sun4c_52 | sun4m_51 | sun4m_52 | sun4c_53 | sun4m_53  | sun4_53 | sun4_52 | sun4_54 | sun4c_54 | sun4m_54 | sun4x_5? | sun4x_5?? | sunx86_5? | sunx86_5?? ) \
+               /usr/ccs/lib/cpp -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
                as -o syscall.o syscall.ss;             \
                $(RM) syscall.ss;;                              \
-        sgi_* |ppc_darwin* ) \
+        sgi_* |*_darwin* ) \
                 ${CC} ${CFLAGS} -c ${srcdir}/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 ${srcdir}/syscall.s; \
@@ -55,16 +82,38 @@ syscall.o: syscall.s
                $(RM) -f syscall.ss syscall.i;; \
         hp_ux11? ) \
                touch syscall.o;; \
-       i386_*bsd*|*nbsd*) \
-               touch syscall.o;; \
+        amd64_fbsd*|i386_*bsd*|*nbsd*) \
+               ${CCOBJ} -E ${SFLAGS} syscall.s > syscall.S ; \
+               ${AS} syscall.S -o syscall.o ;  \
+               $(RM) -f syscall.S ;;\
         *) \
-               /lib/cpp  ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
+               /lib/cpp -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
                as -o syscall.o syscall.ss;             \
                $(RM) syscall.ss;;                              \
        esac
 
 afssyscalls.o: afssyscalls.c afssyscalls.h
-       ${CC} ${CFLAGS} -c ${srcdir}/afssyscalls.c
+       ${CCOBJ} ${CFLAGS} -c ${srcdir}/afssyscalls.c
+
+glue.o: glue.c afssyscalls.h
+       ${CCOBJ} ${CFLAGS} -c ${srcdir}/glue.c
+
+setpag.o: setpag.c afssyscalls.h
+       ${CCOBJ} ${CFLAGS} -c ${srcdir}/setpag.c
+
+picobj: afssyscalls.h
+       mkdir -p picobj
+       cp ${srcdir}/afssyscalls.h picobj/afssyscalls.h
+
+picobj/glue.o: picobj glue.c afssyscalls.h
+       rm -f picobj/glue.c
+       cp ${srcdir}/glue.c picobj/glue.c
+       cd picobj && ${CCOBJ} ${CFLAGS} ${SHLIB_CFLAGS} -c glue.c
+
+picobj/setpag.o: picobj setpag.c afssyscalls.h
+       rm -f picobj/setpag.c
+       cp ${srcdir}/setpag.c picobj/setpag.c
+       cd picobj && ${CCOBJ} ${CFLAGS} ${SHLIB_CFLAGS} -c setpag.c
 
 rmtsysnet.o rmtsysc.o rmtsyss.o rmtsysd.o: rmtsys.h
 rmtsysd: AFS_component_version_number.o afs.exp afsl.exp
@@ -127,6 +176,12 @@ xfsinode: xfsinode.c  AFS_component_version_number.c
                $(CC) -o xfsinode ${CFLAGS} ${srcdir}/xfsinode.c ${LIBS}
        esac
 
+${TOP_LIBDIR}/${LIBAFSSETPAG}: ${LIBAFSSETPAG}
+       ${INSTALL} ${LIBAFSSETPAG} ${TOP_LIBDIR}/${LIBAFSSETPAG}
+       -ln -f -s ${LIBAFSSETPAG} ${TOP_LIBDIR}/libafssetpag.${SHLIB_SUFFIX}
+       -ln -f -s ${LIBAFSSETPAG} ${TOP_LIBDIR}/libafssetpag.${SHLIB_SUFFIX}.${LIBAFSSETPAGMAJOR}
+
 afs.exp: ${srcdir}/afs4.exp ${srcdir}/afs5.exp
        case ${SYS_NAME} in \
                rs_aix5* ) \
@@ -187,8 +242,16 @@ ${KERNELDIR}/afs:
 ${KERNELDIR}/afs/xfsattrs.h: xfsattrs.h
        ${INSTALL} $? $@
 
+depinstall: \
+       ${TOP_INCDIR}/afs/afssyscalls.h \
+       ${TOP_INCDIR}/afs/afs.exp \
+       ${TOP_INCDIR}/afs/xfsattrs.h \
+       ${KERNELDIR}/afs/xfsattrs.h \
+       ${UKERNELDIR}/afs/afsl.exp
+
 install: \
        ${DESTDIR}${libdir}/afs/libsys.a \
+       ${DESTDIR}${libdir}/${LIBAFSSETPAG} \
        ${DESTDIR}${sbindir}/rmtsysd \
        ${DESTDIR}${includedir}/afs/afssyscalls.h \
        ${DESTDIR}${bindir}/pagsh \
@@ -199,6 +262,13 @@ install: \
 ${DESTDIR}${libdir}/afs/libsys.a: libsys.a
        ${INSTALL} $? $@
 
+${DESTDIR}${libdir}/${LIBAFSSETPAG}: ${LIBAFSSETPAG}
+       ${INSTALL} ${LIBAFSSETPAG} ${DESTDIR}${libdir}/${LIBAFSSETPAG}
+       -ln -f -s ${LIBAFSSETPAG} \
+           ${DESTDIR}${libdir}/libafssetpag.${SHLIB_SUFFIX}
+       -ln -f -s ${LIBAFSSETPAG} \
+           ${DESTDIR}${libdir}/libafssetpag.${SHLIB_SUFFIX}.${LIBAFSSETPAGMAJOR}
+
 ${DESTDIR}${sbindir}/rmtsysd: rmtsysd
        ${INSTALL} -s $? $@
 
@@ -222,6 +292,7 @@ ${DESTDIR}${includedir}/afs/xfsattrs.h: xfsattrs.h
 
 dest: \
        ${DEST}/lib/afs/libsys.a \
+       ${TOP_LIBDIR}/${LIBAFSSETPAG} \
        ${DEST}/etc/rmtsysd \
        ${DEST}/bin/pagsh \
        ${DEST}/bin/pagsh.krb \
@@ -262,4 +333,5 @@ 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 \
-       afs.exp afsl.exp
+       afs.exp afsl.exp libafssetpag.*
+       $(RM) -rf picobj