From 1c70ed1f9ce3a58147d38cb0ce5ac2c24456b9fa Mon Sep 17 00:00:00 2001 From: Jeffrey Hutzelman Date: Wed, 29 Aug 2001 20:17:19 +0000 Subject: [PATCH] libafs-make-subtree-during-build-for-later-use-20010829 at build time, create a subtree for use later which can be used to build *only* kernel modules, but only for the afs sysname you were building for in the first place currently. --- Makefile.in | 30 ++- configure-libafs.in | 414 ++++++++++++++++++++++++++++++++++++ regen.sh | 3 + src/libafs/Makefile.common | 13 +- src/libafs/MakefileProto.AIX.in | 9 +- src/libafs/MakefileProto.DARWIN.in | 9 +- src/libafs/MakefileProto.DUX.in | 11 +- src/libafs/MakefileProto.FBSD.in | 15 +- src/libafs/MakefileProto.HPUX.in | 16 +- src/libafs/MakefileProto.IRIX.in | 30 ++- src/libafs/MakefileProto.LINUX.in | 33 ++- src/libafs/MakefileProto.SOLARIS.in | 18 +- 12 files changed, 549 insertions(+), 52 deletions(-) create mode 100644 configure-libafs.in diff --git a/Makefile.in b/Makefile.in index d6416d1..88e498e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -44,15 +44,18 @@ COMPILE_CLEAN=; $(MAKE) clean all: force ${SYS_NAME}/dest $(MAKE) install -${SYS_NAME}/dest: - mkdir -p ${SYS_NAME}/dest - all_nolibafs: ${SYS_NAME}/dest $(MAKE) install TARGET=finale_nolibafs only_libafs: ${SYS_NAME}/dest $(MAKE) install TARGET=libafs +only_libafs_tree: ${SYS_NAME}/dest + $(MAKE) install TARGET=libafs_tree + +${SYS_NAME}/dest: + mkdir -p ${SYS_NAME}/dest + project: cmd comerr config: @@ -289,6 +292,22 @@ UKERNELDIR= \ libafs: libafs_setup ${KERNELDIR} ${COMPILE_PART1} libafs ${COMPILE_PART2} +libafs_tree: libafs_setup ${KERNELDIR} + -/bin/rm -rf libafs_tree + for d in afs afsint rx config; do \ + [ -d libafs_tree/$$d ] || mkdir -p libafs_tree/$$d; \ + done + for f in `cd src/libafs; find . -name '*.[ch]'` \ + Makefile.common Makefile.extradefs \ + afs.shutdown afs.startup redhat.sh sgi_master sgi_system \ + ; do \ + ${INSTALL} -c -f src/libafs/$$f libafs_tree/$$f; \ + done + src/config/config src/libafs/MakefileProto.${MKAFS_OSTYPE}.in libafs_tree/Makefile.in ${SYS_NAME} + ${INSTALL} -c src/config/Makefile.${SYS_NAME}.in libafs_tree/config + ${INSTALL} -c src/config/afsconfig.h.in libafs_tree/config + ${INSTALL} -c -f -ns configure-libafs libafs_tree/configure + libuafs: libuafs_setup ${UKERNELDIR} set -x; \ case ${SYS_NAME} in \ @@ -503,6 +522,9 @@ clean2: -${COMPILE_PART1} rcp ${COMPILE_CLEAN} -${COMPILE_PART1} libafs ${COMPILE_CLEAN} -${COMPILE_PART1} libuafs ${COMPILE_CLEAN} + -(cd src/libafs; /bin/rm -rf afs afsint config rx) + -(cd src/libuafs; /bin/rm -rf afs afsint config rx des) + -/bin/rm -rf libafs_tree ${SYS_NAME} distclean: clean @@ -621,7 +643,7 @@ distclean: clean src/xstat/Makefile pristine: distclean - /bin/rm -f src/config/afsconfig.h.in configure aclocal.m4 + /bin/rm -f src/config/afsconfig.h.in configure configure-libafs aclocal.m4 # # Below targets are all deprecated, insecure, or obsolte, diff --git a/configure-libafs.in b/configure-libafs.in new file mode 100644 index 0000000..2be7c2a --- /dev/null +++ b/configure-libafs.in @@ -0,0 +1,414 @@ +AC_INIT(Makefile.common) +AM_INIT_AUTOMAKE(openafs-libafs,devel) +AC_CANONICAL_HOST +AC_CONFIG_HEADER(config/afsconfig.h) + +#BOZO_SAVE_CORES BOS_RESTRICTED_MODE BOS_NEW_CONFIG pam sia +AC_ARG_WITH(afs-sysname, +[ --with-afs-sysname=sys use sys for the afs sysname] +) +AC_ARG_ENABLE( obsolete, +[ --enable-obsolete enable obsolete portions of AFS (mpp, ntp and package)],, enable_obsolete="no") +AC_ARG_ENABLE( insecure, +[ --enable-insecure enable insecure portions of AFS (ftpd, inetd, rcp, rlogind and rsh)],, enable_insecure="no") +AC_ARG_ENABLE( afsdb, +[ --disable-afsdb disable AFSDB RR support],, enable_afsdb="yes") +AC_ARG_ENABLE( bos-restricted-mode, +[ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no") +AC_ARG_ENABLE( namei-fileserver, +[ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no") +AC_ARG_ENABLE( fast-restart, +[ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no") +AC_ARG_ENABLE( bitmap-later, +[ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no") +AC_ARG_ENABLE( full-vos-listvol-switch, +[ --enable-full-vos-listvol-switch enable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="no") +AC_ARG_WITH(dux-kernel-headers, +[ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)] +) +AC_ARG_WITH(linux-kernel-headers, +[ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux)] +) +AC_ARG_ENABLE(kernel-module, +[ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes" +) +AC_ARG_ENABLE(redhat-buildsys, +[ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no" +) + +AC_PROG_CC + +dnl weird ass systems +AC_AIX +AC_ISC_POSIX +AC_MINIX + +dnl Various compiler setup. +AC_C_INLINE +AC_C_CONST +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SIGNAL + +dnl Checks for programs. +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_RANLIB +AC_PROG_YACC +AM_PROG_LEX + +OPENAFS_CHECK_BIGENDIAN + +AC_MSG_CHECKING(your OS) +system=$host +case $system in + *-linux*) + MKAFS_OSTYPE=LINUX + if test "x$enable_redhat_buildsys" = "xyes"; then + AC_DEFINE(ENABLE_REDHAT_BUILDSYS) + fi + if test "x$enable_kernel_module" = "xyes"; then + if test "x$with_linux_kernel_headers" != "x"; then + LINUX_KERNEL_PATH="$with_linux_kernel_headers" + else + LINUX_KERNEL_PATH="/usr/src/linux" + fi + if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then + linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $2 }'|tail -1` + if test "x$linux_kvers" = "x"; then + if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then + linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $2 }'|tail -1` + if test "x$linux_kvers" = "x"; then + + AC_MSG_ERROR(Linux headers lack version definition [2]) + exit 1 + else + LINUX_VERSION="$linux_kvers" + fi + else + AC_MSG_ERROR(Linux headers lack version definition) + exit 1 + fi + else + LINUX_VERSION="$linux_kvers" + fi + else + enable_kernel_module="no" + fi + if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then + enable_kernel_module="no" + fi + if test "x$enable_kernel_module" = "xno"; then + if test "x$with_linux_kernel_headers" != "x"; then + AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH) + exit 1 + else + AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module) + fi + fi + fi + AC_MSG_RESULT(linux) + if test "x$enable_kernel_module" = "xyes"; then + LINUX_FS_STRUCT_INODE_HAS_I_BYTES + LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK + LINUX_FS_STRUCT_INODE_HAS_I_CDEV + LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM + LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS + LINUX_FS_STRUCT_INODE_HAS_I_MAPPING_OVERLOAD + LINUX_INODE_SETATTR_RETURN_TYPE + LINUX_NEED_RHCONFIG + LINUX_WHICH_MODULES + if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then + AC_DEFINE(INODE_SETATTR_NOT_VOID) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_mapping_overload" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_MAPPING_OVERLOAD) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_cdev" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_CDEV) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_bytes" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_BYTES) + fi + if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then + AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK) + fi + : + fi + ;; + *-solaris*) + MKAFS_OSTYPE=SOLARIS + AC_MSG_RESULT(sun4) + SOLARIS_UFSVFS_HAS_DQRWLOCK + ;; + *-hpux*) + MKAFS_OSTYPE=HPUX + AC_MSG_RESULT(hp_ux) + ;; + *-irix*) + MKAFS_OSTYPE=IRIX + AC_MSG_RESULT(sgi) + ;; + *-aix*) + MKAFS_OSTYPE=AIX + AC_MSG_RESULT(rs_aix) + ;; + *-osf*) + MKAFS_OSTYPE=DUX + AC_MSG_RESULT(alpha_dux) + if test "x$enable_kernel_module" = "xyes"; then + if test "x$with_dux_kernel_headers" != "x"; then + HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'` + else + HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'` + fi + fi + if test "$HEADER_RT" = "*" ; then + AC_MSG_ERROR([Need a configured kernel directory]) + fi + AC_SUBST([HEADER_RT]) + ;; + *-darwin*) + MKAFS_OSTYPE=DARWIN + AC_MSG_RESULT(ppc_darwin) + ;; + *-freebsd*) + MKAFS_OSTYPE=FBSD + AC_MSG_RESULT(i386_fbsd) + ;; + *) + AC_MSG_RESULT($system) + ;; +esac + +if test "x$with_afs_sysname" != "x"; then + AFS_SYSNAME="$with_afs_sysname" +else + AC_MSG_CHECKING(your AFS sysname) + case $host in + i?86-*-freebsd4.2*) + AFS_SYSNAME="i386_fbsd_42" + ;; + hppa*-hp-hpux11*) + AFS_SYSNAME="hp_ux110" + ;; + hppa*-hp-hpux10*) + AFS_SYSNAME="hp_ux102" + ;; + powerpc-apple-darwin1.2*) + AFS_SYSNAME="ppc_darwin_12" + ;; + powerpc-apple-darwin1.3*) + AFS_SYSNAME="ppc_darwin_13" + ;; + sparc-sun-solaris2.5*) + AFS_SYSNAME="sun4x_55" + ;; + sparc-sun-solaris2.6) + AFS_SYSNAME="sun4x_56" + ;; + sparc-sun-solaris2.7) + AFS_SYSNAME="sun4x_57" + ;; + sparc-sun-solaris2.8) + AFS_SYSNAME="sun4x_58" + ;; + alpha*-dec-osf4.0*) + AFS_SYSNAME="alpha_dux40" + ;; + alpha*-dec-osf5.0*) + AFS_SYSNAME="alpha_dux50" + ;; + mips-sgi-irix6.5) + AFS_SYSNAME="sgi_65" + ;; + ia64-*-linux*) + AFS_SYSNAME="ia64_linuxXX" + ;; + powerpc-*-linux*) + AFS_SYSNAME="ppc_linuxXX" + ;; + alpha*-linux*) + AFS_SYSNAME="alpha_linux_XX" + ;; + s390-*-linux*) + AFS_SYSNAME="s390_linuxXX" + ;; + sparc-*-linux*) + AFS_SYSNAME="sparc_linuxXX" + ;; + sparc64-*-linux*) + AFS_SYSNAME="sparc64_linuxXX" + ;; + i?86-*-linux*) + AFS_SYSNAME="i386_linuxXX" + ;; + power*-ibm-aix4.2*) + AFS_SYSNAME="rs_aix42" + ;; + power*-ibm-aix4.3*) + AFS_SYSNAME="rs_aix42" + ;; + *) + AC_MSG_ERROR(An AFS sysname is required) + exit 1 + ;; + esac + case $AFS_SYSNAME in + *_linux*) + AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $1 $2}'` + if test "x${AFS_SYSKVERS}" = "x"; then + AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.) + fi + _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/` + AFS_SYSNAME="$_AFS_SYSNAME" + ;; + esac + AC_MSG_RESULT($AFS_SYSNAME) +fi + + +if test "x${MKAFS_OSTYPE}" = "xIRIX"; then + echo Skipping library tests because they confuse Irix. +else + AC_CHECK_FUNCS(socket) + + if test "$ac_cv_func_socket" = no; then + for lib in socket inet; do + if test "$HAVE_SOCKET" != 1; then + AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET)) + fi + done + fi + + AC_CHECK_FUNCS(connect) + + if test "$ac_cv_func_connect" = no; then + for lib in nsl; do + if test "$HAVE_CONNECT" != 1; then + AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT)) + fi + done + fi + + AC_CHECK_FUNCS(gethostbyname) + if test "$ac_cv_func_gethostbyname" = no; then + for lib in dns nsl resolv; do + if test "$HAVE_GETHOSTBYNAME" != 1; then + AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME)) + fi + done + fi + + AC_CHECK_FUNCS(res_search) + if test "$ac_cv_func_res_search" = no; then + for lib in dns nsl resolv; do + if test "$HAVE_RES_SEARCH" != 1; then + AC_CHECK_LIB(${lib}, res_search, LIBS="$LIBS -l$lib";HAVE_RES_SEARCH=1;AC_DEFINE(HAVE_RES_SEARCH)) + fi + done + if test "$HAVE_RES_SEARCH" = 1; then + LIB_res_search="-l$lib" + fi + fi +fi + +PTHREAD_LIBS=error +AC_CHECK_LIB(pthread, pthread_attr_init, + PTHREAD_LIBS="-lpthread") +if test "x$PTHREAD_LIBS" = xerror; then + AC_CHECK_LIB(pthreads, pthread_attr_init, + PTHREAD_LIBS="-lpthreads") +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_CHECK_LIB(c_r, pthread_attr_init, + PTHREAD_LIBS="-lc_r") +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="") +fi +if test "x$PTHREAD_LIBS" = xerror; then + AC_MSG_WARN(*** Unable to locate working posix thread library ***) +fi +AC_SUBST(PTHREAD_LIBS) + +WITH_OBSOLETE=NO +if test "$enable_obsolete" = "yes"; then + WITH_OBSOLETE=YES +fi + +WITH_INSECURE=NO +if test "$enable_insecure" = "yes"; then + WITH_INSECURE=YES +fi + +# Fast restart +if test "$enable_fast_restart" = "yes"; then + AC_DEFINE(FAST_RESTART) +fi + +if test "$enable_bitmap_later" = "yes"; then + AC_DEFINE(BITMAP_LATER) +fi + +if test "$enable_full_vos_listvol_switch" = "yes"; then + AC_DEFINE(FULL_LISTVOL_SWITCH) +fi + +if test "$enable_bos_restricted_mode" = "yes"; then + AC_DEFINE(BOS_RESTRICTED_MODE) +fi + +if test "$enable_namei_fileserver" = "yes"; then + AC_DEFINE(AFS_NAMEI_ENV) +fi + +if test "$enable_afsdb" = "yes"; then + LIB_AFSDB="$LIB_res_search" + AC_DEFINE(AFS_AFSDB_ENV) +fi + +SRCDIR_PARENT=`pwd` +TOP_SRCDIR="${SRCDIR_PARENT}" +DESTDIR="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest/" +SRCDIR="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest/" + +dnl checks for header files. +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_HEADER_DIRENT +AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h) +AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h) +AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h) +AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h) +AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h) +AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h) + +AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf re_comp re_exec) + +if test "x$enable_kernel_module" = "xyes"; then +ENABLE_KERNEL_MODULE=libafs +fi + +AC_SUBST(AFS_SYSNAME) +AC_SUBST(ENABLE_KERNEL_MODULE) +AC_SUBST(LIB_AFSDB) +AC_SUBST(LINUX_KERNEL_PATH) +AC_SUBST(LINUX_VERSION) +AC_SUBST(MKAFS_OSTYPE) +AC_SUBST(TOP_SRCDIR) +AC_SUBST(DESTDIR) +AC_SUBST(SRCDIR) +AC_SUBST(WITH_OBSOLETE) +AC_SUBST(WITH_INSECURE) + +AC_OUTPUT( \ +Makefile \ +config/Makefile.${AFS_SYSNAME} \ +) diff --git a/regen.sh b/regen.sh index 9875b78..1aa0953 100755 --- a/regen.sh +++ b/regen.sh @@ -3,6 +3,9 @@ echo "Running aclocal" aclocal -I src/cf echo "Running autoconf" autoconf +echo "Running autoconf for configure-libafs" +autoconf configure-libafs.in > configure-libafs +chmod +x configure-libafs echo "Running autoheader" autoheader #echo "Running automake" diff --git a/src/libafs/Makefile.common b/src/libafs/Makefile.common index abe6916..385afd2 100644 --- a/src/libafs/Makefile.common +++ b/src/libafs/Makefile.common @@ -34,17 +34,20 @@ CRULE2= $(CC) $(OPTF) $(CFLAGS) -c $? CRULE3= $(CC) $(OPTF2) $(CFLAGS) -c $? CRULE4= $(CC) $(DBG) $(CFLAGS) -c $? -system: install +system: all kinstall: install -install: all +install: all $(INSTDIRS) all: setup $(COMPDIRS) -single_compdir: +single_compdir single_instdir: cd $(KOBJ) ; \ - echo $(MAKE) DESTDIR=${DESTDIR} libafs; \ - $(MAKE) DESTDIR=${DESTDIR} libafs; + echo $(MAKE) DESTDIR=${DESTDIR} $@_libafs; \ + $(MAKE) DESTDIR=${DESTDIR} $@_libafs; + +single_compdir_libafs: libafs +single_instdir_libafs: install_libafs AFSAOBJS = \ afs_atomlist.o \ diff --git a/src/libafs/MakefileProto.AIX.in b/src/libafs/MakefileProto.AIX.in index 08e13dc..b95ffb1 100644 --- a/src/libafs/MakefileProto.AIX.in +++ b/src/libafs/MakefileProto.AIX.in @@ -12,7 +12,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -include ../config/Makefile.${SYS_NAME} +include config/Makefile.${SYS_NAME} # OS specific object files: AFS_OS_OBJS = \ @@ -70,14 +70,16 @@ KOBJ = MODLOAD # This tells Makefile.common to use it's single directory build target. COMPDIRS = single_compdir +INSTDIRS = single_instdir include Makefile.common setup: -mkdir $(KOBJ) - -rm $(KOBJ)/Makefile $(KOBJ)/Makefile.common + -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 @@ -126,7 +128,8 @@ $(LIBAFS): $(AFSAOBJS) $(AFSNOIAUTHOBJS) -bmap:afs.ext.map -o afs.ext \ ${AFSAOBJS} $(AFSNOIAUTHOBJS) ${LIBS} ${LDFLAGS} -libafs: $(DEST_LIBAFS) $(DEST_LIBAFSIAUTH) +libafs: $(LIBAFS) $(LIBAFSIAUTH) +install_libafs: $(DEST_LIBAFS) $(DEST_LIBAFSIAUTH) # Object build rules: diff --git a/src/libafs/MakefileProto.DARWIN.in b/src/libafs/MakefileProto.DARWIN.in index d177051..9fb1ab3 100644 --- a/src/libafs/MakefileProto.DARWIN.in +++ b/src/libafs/MakefileProto.DARWIN.in @@ -8,7 +8,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -include ../config/Makefile.${SYS_NAME} +include config/Makefile.${SYS_NAME} # OS specific object files: @@ -48,14 +48,16 @@ KOBJ = MODLOAD # This tells Makefile.common to use it's single directory build target. COMPDIRS = single_compdir +INSTDIRS = single_instdir include Makefile.common setup: -mkdir $(KOBJ) - -rm $(KOBJ)/Makefile $(KOBJ)/Makefile.common + -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 vm mach kern -ln -s $(KROOT)/System/Library/Frameworks/Kernel.framework/Headers/net net -ln -s $(KROOT)/System/Library/Frameworks/Kernel.framework/Headers/machine machine @@ -75,7 +77,8 @@ DEST_LIBAFS = ${DESTDIR}/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs-nf DEST_LIBAFSNONFS = ${DESTDIR}/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs -libafs: $(DEST_LIBAFSNONFS) ; +libafs: $(LIBAFSNONFS) ; +install_libafs: $(DEST_LIBAFSNONFS) ; $(DEST_LIBAFS): $(LIBAFS) diff --git a/src/libafs/MakefileProto.DUX.in b/src/libafs/MakefileProto.DUX.in index a59d65a..045f204 100644 --- a/src/libafs/MakefileProto.DUX.in +++ b/src/libafs/MakefileProto.DUX.in @@ -12,7 +12,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -include ../config/Makefile.${SYS_NAME} +include config/Makefile.${SYS_NAME} # OS specific object files: @@ -51,14 +51,16 @@ KOBJ = STATIC # This tells Makefile.common to use it's single directory build target. COMPDIRS = single_compdir +INSTDIRS = single_instdir include Makefile.common setup: -mkdir $(KOBJ) - -rm $(KOBJ)/Makefile $(KOBJ)/Makefile.common + -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 vm -ln -s /usr/sys/include/net net -ln -s /usr/sys/include/machine machine @@ -84,8 +86,9 @@ DEST_AFSMOD = ${DESTDIR}/root.client/bin/${AFSMOD} # libafs: ${DEST_LIBAFS} ${DEST_LIBAFSNONFS} ${DEST_AFSMOD} -.PHONY: libafs -libafs: ${DEST_LIBAFSNONFS} ${DEST_AFSMOD} +.PHONY: libafs install_libafs +libafs: ${LIBAFSNONFS} ${AFSMOD} +install_libafs: ${DEST_LIBAFSNONFS} ${DEST_AFSMOD} ${DEST_LIBAFS}: ${LIBAFS} diff --git a/src/libafs/MakefileProto.FBSD.in b/src/libafs/MakefileProto.FBSD.in index 9ab25a0..df534dd 100644 --- a/src/libafs/MakefileProto.FBSD.in +++ b/src/libafs/MakefileProto.FBSD.in @@ -7,7 +7,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -# include ../config/Makefile.${SYS_NAME} +# include config/Makefile.${SYS_NAME} # OS specific object files: AFS_OS_OBJS = \ @@ -46,14 +46,16 @@ KOBJ = STATIC # This tells Makefile.common to use it's single directory build target. COMPDIRS = single_compdir +INSTDIRS = single_instdir include Makefile.common setup: -mkdir $(KOBJ) - -rm $(KOBJ)/Makefile $(KOBJ)/Makefile.common + -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 vm -ln -s /usr/src/sys/net net -ln -s /usr/src/sys/i386/include machine @@ -75,11 +77,16 @@ DEST_LIBAFS = ${DESTDIR}/root.client/bin/${LIBAFS} DEST_LIBAFSNONFS = ${DESTDIR}/root.client/bin/${LIBAFSNONFS} -# libafs: $(DEST_LIBAFS) $(DEST_LIBAFSNONFS) -# libafs: $(DEST_LIBAFSNONFS) +# libafs: $(LIBAFS) $(LIBAFSNONFS) +# libafs: $(LIBAFSNONFS) +# install_libafs: $(DEST_LIBAFS) $(DEST_LIBAFSNONFS) +# install_libafs: $(DEST_LIBAFSNONFS) libafs: echo WARNING: No kernel module for ${SYS_NAME} +install_libafs: + echo WARNING: No kernel module for ${SYS_NAME} + $(DEST_LIBAFS): $(LIBAFS) $(INSTALL) -f $? $@ diff --git a/src/libafs/MakefileProto.HPUX.in b/src/libafs/MakefileProto.HPUX.in index e6e2de4..7938ccc 100644 --- a/src/libafs/MakefileProto.HPUX.in +++ b/src/libafs/MakefileProto.HPUX.in @@ -12,7 +12,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -include ../config/Makefile.${SYS_NAME} +include config/Makefile.${SYS_NAME} # OS specific object files: AFS_OS_OBJS = \ @@ -73,6 +73,7 @@ KOBJ=STATIC #COMPDIRS = single_compdir # This is the hpux multiple directory target. COMPDIRS = hpux_compdirs +INSTDIRS = hpux_instdirs include Makefile.common @@ -95,15 +96,16 @@ setup: dir=$$t.$$b; \ echo Making directory: $$dir; \ mkdir -p $$dir; \ - rm -f $$dir/Makefile $$dir/Makefile.common; \ + rm -f $$dir/Makefile $$dir/Makefile.common $$dir/config; \ ln -s ../Makefile $$dir/Makefile; \ ln -s ../Makefile.common $$dir/Makefile.common; \ + ln -s ../config $$dir/config; \ done; \ done echo Setup complete. # Compile the clients. -${COMPDIRS}: +${COMPDIRS} ${INSTDIRS}: if false; then \ for b in $(BITS); do \ for t in $(KOBJ); do \ @@ -114,12 +116,15 @@ ${COMPDIRS}: 64) bopts="$(KDEFS_64)"; bsuff="64";; \ esac; \ cd $$dir; \ - $(MAKE) BITSUFFIX=$$bsuff CPU_KDEFS="$$bopts" libafs || exit $$?; \ + $(MAKE) BITSUFFIX=$$bsuff CPU_KDEFS="$$bopts" $@_libafs || exit $$?; \ cd ..; \ done; \ done; \ fi +hpux_compdirs_libafs: libafs +hpux_instdirs_libafs: install_libafs + # Below this line are targets when in the static directory: LIBAFS = libafs$(BITSUFFIX).a @@ -131,7 +136,8 @@ DEST_LIBAFSNONFS = ${DESTDIR}root.client/bin/${LIBAFSNONFS} # libafs: ${DEST_LIBAFS} ${DEST_LIBAFSNONFS} -libafs: ${DEST_LIBAFSNONFS} +libafs: ${LIBAFSNONFS} +install_libafs: ${DEST_LIBAFSNONFS} $(DEST_LIBAFS): $(LIBAFS) ${INSTALL} -f $? $@ diff --git a/src/libafs/MakefileProto.IRIX.in b/src/libafs/MakefileProto.IRIX.in index 7dd0229..99c40f8 100644 --- a/src/libafs/MakefileProto.IRIX.in +++ b/src/libafs/MakefileProto.IRIX.in @@ -12,7 +12,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -include ../config/Makefile.${SYS_NAME} +include config/Makefile.${SYS_NAME} # OS specific object files: AFS_OS_OBJS = \ @@ -199,6 +199,7 @@ CFLAGS=-I. -I.. -I${TOP_SRCDIR}/config ${FSINCLUDES} $(DEFINES) -G 0 $(KDEFS) $( #COMPDIRS = single_compdir # This is the irix multiple directory target. COMPDIRS = irix_compdirs +INSTDIRS = irix_instdirs include Makefile.common @@ -236,9 +237,10 @@ setup: dir=$$t.$$n.$$p ; \ echo Making directory: $$dir; \ mkdir -p $$dir; \ - rm -f $$dir/Makefile.common $$dir/Makefile; \ + rm -f $$dir/Makefile.common $$dir/Makefile $$dir/config; \ ln -s ../Makefile.common $$dir/Makefile.common; \ ln -s ../Makefile $$dir/Makefile; \ + ln -s ../config $$dir/config; \ done; \ done; \ done @@ -252,9 +254,10 @@ setup: dir=$$t.$$p ; \ echo Making directory: $$dir; \ mkdir -p $$dir; \ - rm -f $$dir/Makefile.common $$dir/Makefile; \ + rm -f $$dir/Makefile.common $$dir/Makefile $$dir/config; \ ln -s ../Makefile.common $$dir/Makefile.common; \ ln -s ../Makefile $$dir/Makefile; \ + ln -s ../config $$dir/config; \ done; \ done @@ -263,7 +266,7 @@ setup: # Compile static and modload versions of the clients. -${COMPDIRS}: +${COMPDIRS} ${INSTDIRS}: BUILDPROCS="${PROCESSORS}" ; \ if [ "${CPUARCH}" != "" ] ; then \ BUILDPROCS=${CPUARCH}; \ @@ -307,13 +310,13 @@ ${COMPDIRS}: export CPU_KDEFS ;\ export LDFLAGS; \ cd $$dir ; \ - $(MAKE) CPUARCH=$$p MPSP=$$n $$t.libafs || exit $$?;\ + $(MAKE) CPUARCH=$$p MPSP=$$n $@_$$t.libafs || exit $$?;\ cd ../ ; \ done; \ done; \ done -${COMPDIRS}: +${COMPDIRS} ${INSTDIRS}: BUILDPROCS="${PROCESSORS}" ; \ if [ "${IPNO}" != "" ] ; then \ BUILDPROCS="${IPNO}"; \ @@ -344,23 +347,31 @@ ${COMPDIRS}: export CPU_KDEFS ;\ export LDFLAGS ;\ cd $$dir ; \ - $(MAKE) IPNO=$$p $$t.libafs || exit $$?; \ + $(MAKE) IPNO=$$p $@_$$t.libafs || exit $$?; \ cd ../ ; \ done; \ done +irix_compdirs_STATIC.libafs: STATIC.libafs +irix_compdirs_MODLOAD.libafs: MODLOAD.libafs +irix_instdirs_STATIC.libafs: install_STATIC.libafs +irix_instdirs_MODLOAD.libafs: install_MODLOAD.libafs + LIBAFSNONFSA = libafs.nonfs.a COPYFILES = copyfiles LINKFILES = linkfiles +${INSTDIRS}: ${COPYFILES} ${LINKFILES} + STATICCLIENTDIR = ${DESTDIR}root.client/bin MODLOADCLIENTDIR = ${DESTDIR}root.client/usr/vice/etc/sgiload # Make the NFS and no-NFS clients for this directory. # STATIC.libafs: ${LIBAFSNONFSA} ${COPYFILES} ${LINKFILES} -STATIC.libafs: ${LIBAFSNONFSA} ${COPYFILES} ${LINKFILES} +STATIC.libafs: ${LIBAFSNONFSA} +install_STATIC.libafs: ${LIBAFSNONFSA} ${CP} ${LIBAFSNONFSA} \ ${STATICCLIENTDIR}/libafs.${MPSP}.${CPUARCH}.nonfs.a @@ -375,7 +386,8 @@ ${LIBAFSNONFSA}: $(AFSAOBJS) $(AFSNONFSOBJS) LIBAFSNONFSO = libaf.nonfs.o # MODLOAD.libafs: ${LIBAFSNONFSO} ${COPYFILES} ${LINKFILES} -MODLOAD.libafs: ${LIBAFSNONFSO} ${COPYFILES} ${LINKFILES} +MODLOAD.libafs: ${LIBAFSNONFSO} +install_MODLOAD.libafs: ${LIBAFSNONFSO} ${CP} ${LIBAFSNONFSO} \ ${MODLOADCLIENTDIR}/libafs.${MPSP}.${CPUARCH}.nonfs.o diff --git a/src/libafs/MakefileProto.LINUX.in b/src/libafs/MakefileProto.LINUX.in index 8062a3e..2d3eb18 100644 --- a/src/libafs/MakefileProto.LINUX.in +++ b/src/libafs/MakefileProto.LINUX.in @@ -12,7 +12,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -include ../config/Makefile.${SYS_NAME} +include config/Makefile.${SYS_NAME} # OS specific object files: AFS_OS_OBJS = \ @@ -83,6 +83,7 @@ MPS = @MPS@ # COMPDIRS is called in Makefile.common to do the actual builds. COMPDIRS=linux_compdirs +INSTDIRS=linux_instdirs include Makefile.common @@ -99,11 +100,12 @@ setup: mkdir -p $${KDIR}; \ ln -fs ../Makefile $${KDIR}/Makefile ; \ ln -fs ../Makefile.common $${KDIR}/Makefile.common; \ + ln -fs ../config $${KDIR}/config; \ done # Compile SP and MP clients as requested -${COMPDIRS}: +${COMPDIRS} ${INSTDIRS}: rm -f h ln -s ${LINUX_KERNEL_PATH}/include/linux h rm -f linux @@ -147,6 +149,11 @@ ${COMPDIRS}: cd ../ ; \ done +linux_compdirs_libafs: libafs +linux_compdirs_libafs.mp: libafs.mp +linux_instdirs_libafs: install_libafs +linux_instdirs_libafs.mp: install_libafs.mp + # Below this line are targets when in the COMMON directory: # For Linux there is no kernel NFS server. @@ -157,18 +164,12 @@ DEST_LIBAFS = ${DESTDIR}/root.client/usr/vice/etc/modload/${LIBAFS} DEST_LIBAFS_MP = ${DESTDIR}/root.client/usr/vice/etc/modload/${LIBAFS_MP} -libafs: $(DEST_LIBAFS) +libafs: $(LIBAFS) echo SP Build Complete -libafs.mp: $(DEST_LIBAFS_MP) +libafs.mp: $(LIBAFS_MP) echo MP Build Complete -$(DEST_LIBAFS): $(LIBAFS) - ${INSTALL} -f $? $@ - -$(DEST_LIBAFS_MP): $(LIBAFS_MP) - ${INSTALL} -f $? $@ - ${LIBAFS}: $(AFSAOBJS) $(AFSNONFSOBJS) $(RM) -f $@ $(LD) -r -o $@ $(AFSAOBJS) $(AFSNONFSOBJS) @@ -177,6 +178,18 @@ ${LIBAFS_MP}: $(AFSAOBJS) $(AFSNONFSOBJS) $(RM) -f $@ $(LD) -r -o $@ $(AFSAOBJS) $(AFSNONFSOBJS) +install_libafs: $(DEST_LIBAFS) + echo SP Install Complete + +install_libafs.mp: $(DEST_LIBAFS_MP) + echo MP Install Complete + +$(DEST_LIBAFS): $(LIBAFS) + ${INSTALL} -f $? $@ + +$(DEST_LIBAFS_MP): $(LIBAFS_MP) + ${INSTALL} -f $? $@ + # Linux specific objects osi_alloc.o: $(AFS)/osi_alloc.c diff --git a/src/libafs/MakefileProto.SOLARIS.in b/src/libafs/MakefileProto.SOLARIS.in index 28de739..40bf4c8 100644 --- a/src/libafs/MakefileProto.SOLARIS.in +++ b/src/libafs/MakefileProto.SOLARIS.in @@ -12,7 +12,7 @@ SRCDIR=@SRCDIR@ TOP_SRCDIR=@TOP_SRCDIR@ SYS_NAME=@AFS_SYSNAME@ -include ../config/Makefile.${SYS_NAME} +include config/Makefile.${SYS_NAME} # OS specific object files: AFS_OS_OBJS = \ @@ -56,9 +56,11 @@ KOBJ = MODLOAD32 MODLOAD64 # This tells Makefile.common to use it's single directory build target. COMPDIRS = single_compdir +INSTDIRS = single_instdir COMPDIRS = solaris_compdirs +INSTDIRS = solaris_instdirs include Makefile.common @@ -77,9 +79,10 @@ setup: for t in ${KOBJ} ; do \ echo Making directory: $$t; \ mkdir -p $$t; \ - rm -f $$t/Makefile.common $$t/Makefile ; \ + rm -f $$t/Makefile.common $$t/Makefile $$t/config ; \ ln -s ../Makefile.common $$t/Makefile.common ; \ ln -s ../Makefile $$t/Makefile ;\ + ln -s ../config $$t/config ;\ done @@ -87,7 +90,7 @@ setup: ## the 64 bit libafs in MODLOAD32 and MODLOAD64 directories respectively -${COMPDIRS}: +${COMPDIRS} ${INSTDIRS}: for t in ${KOBJ} ; do \ echo Building directory: $$t ; \ case $$t in \ @@ -101,10 +104,13 @@ ${COMPDIRS}: export ARCH_DEFS ; \ export BITS ; \ cd $$t ; \ - $(MAKE) libafs ; \ + $(MAKE) $@_libafs ; \ cd ../ ;\ done +solaris_compdirs_libafs: libafs +solaris_instdirs_libafs: install_libafs + # Below this line are targets when in the COMMON directory: @@ -119,7 +125,8 @@ DEST_LIBAFSNONFS = ${DESTDIR}/root.client/usr/vice/etc/modload/${LIBAFSNONFS} .PHONY: libafs # libafs: $(DEST_LIBAFS) $(DEST_LIBAFSNONFS) -libafs: $(DEST_LIBAFSNONFS) +libafs: $(LIBAFSNONFS) +install_libafs: $(DEST_LIBAFSNONFS) $(DEST_LIBAFS): $(LIBAFS) @@ -141,6 +148,7 @@ ${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS) MODLOADDIR = ${DESTDIR}root.client/usr/vice/etc/modload libafs: ${LIBAFSNONFS} +install_libafs: ${LIBAFSNONFS} ${INSTALL} -f ${LIBAFSNONFS} ${MODLOADDIR}/libafs${BITS}.nonfs.o -- 1.9.4