top-level-makefile-changes-to-allow-partial-afs-compile-20010530
[openafs.git] / src / Makefile
index ac5937b..09d129e 100644 (file)
@@ -12,7 +12,7 @@ INSTALL=${SRCDIR}bin/install
 WASHTOOL=${SRCDIR}bin/washtool
 
 #WASHTOOLRCSUPDATE=${WASHTOOL} rcsupdate
-WASHTOOLCMD=make
+WASHTOOLCMD=$(MAKE)
 WASHTOOLFLAGS=-argument install
 
 COMPILE_PART1=${WASHTOOL} ${WASHTOOLCMD}
@@ -20,6 +20,10 @@ COMPILE_PART2=${WASHTOOLFLAGS}
 
 MKDIR_IF_NEEDED=[ -d $$1 ] || mkdir -p $$1
 
+# Enable build+install of obsolete and insecure packages
+# Set to anything other than YES, or comment out to disable the build
+WITH_DEPRECATED=YES
+
 # To compile AFS from scratch in the src tree run "make SYS_NAME=<type>".
 #   This recursively calls "make install ..." and does not depend on the
 #   existence of any non-standard programs.
@@ -32,7 +36,7 @@ MKDIR_IF_NEEDED=[ -d $$1 ] || mkdir -p $$1
 
 all:
        set ${SYS_NAME}/dest; $(MKDIR_IF_NEEDED)
-       $(MAKE) install "COMPILE_PART1=cd obj; cd" "COMPILE_PART2=; $(MAKE) install SYS_NAME=${SYS_NAME} DESTDIR=`pwd`/${SYS_NAME}/dest/ SRCDIR=`pwd`/${SYS_NAME}/dest/" SYS_NAME=${SYS_NAME} "WASHTOOL=echo No washtool: "
+       $(MAKE) install "COMPILE_PART1=cd obj; cd" "COMPILE_PART2=; $(MAKE) install SYS_NAME=${SYS_NAME} DESTDIR=`pwd`/${SYS_NAME}/dest/ SRCDIR=`pwd`/${SYS_NAME}/dest/ TOP_SRCDIR=`pwd`/${SYS_NAME}/obj" "COMPILE_PART3=; $(MAKE) SYS_NAME=${SYS_NAME} DESTDIR=`pwd`/${SYS_NAME}/dest/ SRCDIR=`pwd`/${SYS_NAME}/dest/ TOP_SRCDIR=`pwd`/${SYS_NAME}/obj" SYS_NAME=${SYS_NAME} "WASHTOOL=echo No washtool: "
 
 basics:
        -if test -f "${WASHTOOL}"; \
@@ -60,6 +64,9 @@ procmgmt: basics config pinstall
 util: basics pinstall procmgmt
        ${COMPILE_PART1} util ${COMPILE_PART2}
 
+kernutil: basics pinstall
+       ${COMPILE_PART1} util ${COMPILE_PART3} kinstall
+
 audit: basics pinstall rx rxkad fsint
        ${COMPILE_PART1} audit ${COMPILE_PART2}
 
@@ -69,7 +76,7 @@ comerr: basics util
 cmd: basics comerr
        ${COMPILE_PART1} cmd ${COMPILE_PART2}
        @case ${SYS_NAME} in \
-       sgi_6* | sun4x_57 | sun4x_58 | hp_ux11* ) \
+       sgi_6* | sun4x_57 | sun4x_58 | hp_ux11* | sparc64_linux* | alpha_linux* ) \
                ${COMPILE_PART1} cmd ${COMPILE_PART2} install64 ;; \
        esac
 
@@ -91,27 +98,31 @@ rx: project lwp rxgen
 rxstat: rx
        ${COMPILE_PART1} rxstat ${COMPILE_PART2}
 
+krxstat:
+       ${COMPILE_PART1} rxstat ${COMPILE_PART3} kinstall
+
 rxincls: rxobj
-       ${COMPILE_PART1} rx ${COMPILE_PART2}
+       ${COMPILE_PART1} rx ${COMPILE_PART3} kinstall
 
 rxtests: rxobj
-       ${COMPILE_PART1} rx ${COMPILE_PART2}
+       ${COMPILE_PART1} rx ${COMPILE_PART3} test
 
 fsint: project kfsint
-
-kfsint: rxgen rxincls lwp
        ${COMPILE_PART1} fsint ${COMPILE_PART2}
 
+kfsint: rxgen rxincls
+       ${COMPILE_PART1} fsint ${COMPILE_PART3} kinstall
+
 export2: project fsint
 
-export: minproject fsint
+export: minproject kfsint
        @case ${SYS_NAME} in \
        rs_aix*)        \
            ${COMPILE_PART1} export ${COMPILE_PART2} ;; \
          * ) echo skipping export for ${SYS_NAME} ;; \
        esac
 
-afs: minproject export
+afs: project export
        ${COMPILE_PART1} afs ${COMPILE_PART2}
 
 des: minproject config
@@ -129,6 +140,11 @@ rxkad: project des
        ${WASHTOOL} object rxkad/domestic
        ${COMPILE_PART1} rxkad ${COMPILE_PART2}
 
+kernrxkad: minproject
+       ${WASHTOOL} object rxkad
+       ${WASHTOOL} object rxkad/domestic
+       ${COMPILE_PART1} rxkad ${COMPILE_PART3} kinstall
+
 kernauth: 
        ${COMPILE_PART1} auth ${COMPILE_PART2}
 
@@ -138,8 +154,9 @@ auth: project comerr des lwp rx sys rxkad audit
 ubik: project auth 
        ${COMPILE_PART1} ubik ${COMPILE_PART2}
 
+#      cd obj/ubik; $(MAKE) test SYS_NAME=${SYS_NAME} 
 ubiktests: ubik sys
-       cd obj/ubik; $(MAKE) test SYS_NAME=${SYS_NAME} 
+       ${COMPILE_PART1} ubik ${COMPILE_PART3}
 
 ptserver: project ubik cmd comerr auth audit
        ${COMPILE_PART1} ptserver ${COMPILE_PART2}
@@ -150,13 +167,16 @@ kauth: project ubik cmd auth comerr ptserver audit libacl
 dauth: project ubik cmd auth comerr
        ${COMPILE_PART1} dauth ${COMPILE_PART2}
 
+kernacl:
+       ${COMPILE_PART1} libacl ${COMPILE_PART3} kinstall
+
 libacl: project ptserver
        ${COMPILE_PART1} libacl ${COMPILE_PART2}
 
 kerndir: minproject 
-       ${COMPILE_PART1} dir ${COMPILE_PART2}
+       ${COMPILE_PART1} dir ${COMPILE_PART3} kinstall
 
-dir: project libacl
+dir: project
        ${COMPILE_PART1} dir ${COMPILE_PART2}
 
 # Removed from sgi_* case below:
@@ -175,12 +195,15 @@ vol: project dir afs sgiefs
 vlserver: project vol audit
        ${COMPILE_PART1} vlserver ${COMPILE_PART2}
 
+kvlserver: minproject
+       ${COMPILE_PART1} vlserver ${COMPILE_PART3} kinstall
+
 viced: project vlserver audit
        ${COMPILE_PART1} viced  ${COMPILE_PART2}
 
 tviced: project viced vlserver libafsrpc libafsauthent
        case ${SYS_NAME} in \
-       alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux*) \
+       alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
                ${COMPILE_PART1} tviced  ${COMPILE_PART2} ;; \
        *) \
                echo Not building MT viced for ${SYS_NAME} ;; \
@@ -201,7 +224,7 @@ null: project
 
 gtx: project null auth # kauth rxkad ?
        case ${SYS_NAME} in \
-         rs_aix* | sun4x_5? | sgi_6? | *linux*) \
+         rs_aix* | sun4x_5? | sgi_6? | *linux* | ppc_darwin* | *fbsd*) \
                rm -f ${DESTDIR}lib/afs/libtermlib.a; \
                ln -s libnull.a ${DESTDIR}lib/afs/libtermlib.a; \
                ${COMPILE_PART1} gtx ${COMPILE_PART2};; \
@@ -217,28 +240,9 @@ fsprobe: project util fsint
 scout: project gtx fsprobe
        ${COMPILE_PART1} scout ${COMPILE_PART2}
 
-mpp: project
-       ${COMPILE_PART1} mpp ${COMPILE_PART2}
-
-package: project mpp
-       ${COMPILE_PART1} package ${COMPILE_PART2}
-
-package.files: package
-       ${DESTDIR}/bin/makepkgfiles afs.dev
-
 uss: des kauth project rx vlserver vol
        ${COMPILE_PART1} uss ${COMPILE_PART2}
 
-ntp: project volser
-       case ${SYS_NAME} in \
-         sun4x_58 ) echo skipping ntp for ${SYS_NAME} ;; \
-         *linux* ) echo skipping ntp for ${SYS_NAME} ;; \
-         * ) ${COMPILE_PART1} ntp ${COMPILE_PART2} ;; \
-       esac
-
-#convert: project ntp
-#      ${COMPILE_PART1} convert ${COMPILE_PART2}
-
 bozo: project ntp audit
        ${COMPILE_PART1} bozo ${COMPILE_PART2}
 
@@ -251,11 +255,7 @@ bozo: project ntp audit
 vfsck: minproject vol
        set -x; \
        case ${SYS_NAME} in \
-       sgi_* | *linux*) \
-               echo skip vfsck for ${SYS_NAME} ;; \
-       rs_aix42)       \
-               echo skip vfsck for ${SYS_NAME} ;; \
-       sun4x_58 )  \
+       sgi_* | *linux* | rs_aix42 | ppc_darwin* | hp_ux* | *fbsd* ) \
                echo skip vfsck for ${SYS_NAME} ;; \
         * ) \
                ${COMPILE_PART1} vfsck ${COMPILE_PART2} ;; \
@@ -273,58 +273,24 @@ login: project kauth rxkad
                ${COMPILE_PART1} sia ${COMPILE_PART2} ;; \
        sun4x_55 ) \
                 ${COMPILE_PART1} login ${COMPILE_PART2} ;; \
-       sun4x_* | hp_ux11* | *linux* ) \
+       sun4x_* | hp_ux11* | *linux* | *fbsd* ) \
                ${COMPILE_PART1} pam ${COMPILE_PART2} ;; \
+       ppc_darwin* ) \
+               echo Skipping login for ${SYS_NAME} ;; \
        * ) \
                ${COMPILE_PART1} login ${COMPILE_PART2} ;; \
        esac
 
-ftpd43+: project kauth rxkad
-       case ${SYS_NAME} in \
-       rs_aix* | sun4x_55 | *linux*) \
-               ${COMPILE_PART1} ftpd43+ ${COMPILE_PART2} ;; \
-       * )     echo skip ftpd43+ for ${SYS_NAME} ;; \
-       esac
-
-inetd: project kauth rxkad
-       ${COMPILE_PART1} inetd ${COMPILE_PART2} 
-
-rsh: project inetd
-       ${COMPILE_PART1} rsh ${COMPILE_PART2} 
-
-rlogind: project rsh ftpd43+ login
-       case ${SYS_NAME} in \
-       rs_aix*) \
-               ${COMPILE_PART1} rlogind ${COMPILE_PART2} ;; \
-       * )     echo skipping rlogind for ${SYS_NAME} ;; \
-       esac
-
-sgistuff: project rlogind
-       case ${SYS_NAME} in \
-       sgi_* ) ${COMPILE_PART1} sgistuff ${COMPILE_PART2} ;; \
-       * )     echo skipping sgistuff for ${SYS_NAME} ;; \
-       esac
-
-rcp: project rsh inetd
-       case ${SYS_NAME} in \
-       sgi_* ) echo skip rcp for ${SYS_NAME} ;; \
-       *)      ${COMPILE_PART1} rcp ${COMPILE_PART2} ;; \
-       esac
-
-allrcmds: project rcp rlogind
-
 KERNELDIR= \
   afs \
-  dir \
-  rx \
-  fsint \
-  auth \
-  rxkad \
-  util \
-  libacl \
-  vlserver \
+  kerndir \
+  kfsint \
+  kernrxkad \
+  kernutil \
+  kernacl \
+  kvlserver \
   sgiefs  \
-  rxstat
+  krxstat
 
 
 UKERNELDIR= \
@@ -346,7 +312,13 @@ libafs: minproject libafs_setup ${KERNELDIR}
        ${COMPILE_PART1} libafs ${COMPILE_PART2}
 
 libuafs: minproject libuafs_setup ${UKERNELDIR}
-       ${COMPILE_PART1} libuafs ${COMPILE_PART2}
+       set -x; \
+       case ${SYS_NAME} in \
+       hp_ux102* ) \
+               echo Skipping libuafs for ${SYS_NAME} ;; \
+       * ) \
+               ${COMPILE_PART1} libuafs ${COMPILE_PART2} ;; \
+       esac
 
 afsweb: minproject kauth dauth 
        ${COMPILE_PART1} afsweb ${COMPILE_PART2}
@@ -374,7 +346,7 @@ butc: project bubasics butm budb bucoord cmd
 
 tbutc: project bubasics butm budb bucoord cmd butc
        case ${SYS_NAME} in \
-       alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux*) \
+       alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux110) \
                ${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \
        *) \
                echo Not building MT butc for ${SYS_NAME} ;; \
@@ -392,6 +364,9 @@ xstat: project
 afsmonitor: project gtx xstat
        ${COMPILE_PART1} afsmonitor ${COMPILE_PART2}
 
+#
+# Washtool internal targets
+#
 ircs: project
        case ${SYS_NAME} in \
        sgi_* ) \
@@ -412,12 +387,22 @@ tests: rxtests ubiktests
 
 # pthread based user space RX library
 libafsrpc: rx rxkad des
-       ${COMPILE_PART1} libafsrpc  ${COMPILE_PART2}
+       case ${SYS_NAME} in \
+       alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
+       ${COMPILE_PART1} libafsrpc  ${COMPILE_PART2} ;; \
+       *) \
+               echo Not building MT libafsrpc for ${SYS_NAME} ;; \
+       esac
 
 libafsauthent: ubik auth kauth libafsrpc
-       ${COMPILE_PART1} libafsauthent  ${COMPILE_PART2}
+       case ${SYS_NAME} in \
+       alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
+       ${COMPILE_PART1} libafsauthent  ${COMPILE_PART2} ;; \
+       *) \
+               echo Not building MT libafsrpc for ${SYS_NAME} ;; \
+       esac
 
-libadmin: libafsauthent bozo
+libadmin_real: 
        ${COMPILE_PART1} libadmin ${COMPILE_PART2}
        ${COMPILE_PART1} libadmin/adminutil ${COMPILE_PART2}
        ${COMPILE_PART1} libadmin/vos ${COMPILE_PART2}
@@ -429,6 +414,19 @@ libadmin: libafsauthent bozo
        ${COMPILE_PART1} libadmin/test ${COMPILE_PART2}
        ${COMPILE_PART1} libadmin/samples ${COMPILE_PART2}
 
+libadmin: libafsauthent bozo
+       case ${SYS_NAME} in \
+       alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \
+                       $(MAKE) libadmin_real SYS_NAME=$(SYS_NAME) \
+                       WASHTOOL="$(WASHTOOL)" \
+                       COMPILE_PART1="$(COMPILE_PART1)" \
+                       COMPILE_PART2="$(COMPILE_PART2)" \
+                       SRCDIR=$(SRCDIR) DESTDIR=$(DESTDIR) \
+                       DBG_DEFS=$(DBG_DEFS) ;; \
+       *) \
+               echo Not building MT libadmin for ${SYS_NAME} ;; \
+       esac
+
 finale: project cmd comerr afsd allrcmds butc tbutc libafs libuafs audit kauth log package \
        ptserver scout bu_utils ubik uss bozo vfsck volser \
        venus update xstat afsmonitor dauth tests libafsrpc \
@@ -444,18 +442,22 @@ libafs_setup: config minproject export
 # Warning: The next few lines are _extremely_ sensitive to spaces and tabs.
        ${WASHTOOL} object libafs
        case ${SYS_NAME} in \
-       alpha_dux4* ) \
+       alpha_dux* ) \
                MKAFS_OSTYPE=DUX;; \
        hp_ux* ) \
                MKAFS_OSTYPE=HPUX;; \
        *linux*) \
                MKAFS_OSTYPE=LINUX;; \
+       *fbsd*) \
+               MKAFS_OSTYPE=FBSD;; \
        rs_aix* ) \
                MKAFS_OSTYPE=AIX;; \
        sgi_* ) \
                MKAFS_OSTYPE=IRIX;; \
        sun4x_5* ) \
                MKAFS_OSTYPE=SOLARIS;; \
+       ppc_darwin* ) \
+               MKAFS_OSTYPE=DARWIN;; \
        * ) \
                echo WARNING: No MakefileProto for sys ${SYS_NAME} ; \
        esac; \
@@ -471,14 +473,18 @@ libuafs_setup: config minproject export
                MKAFS_OSTYPE=HPUX;; \
        *linux*) \
                MKAFS_OSTYPE=LINUX;; \
+       *fbsd*) \
+               MKAFS_OSTYPE=FBSD;; \
        rs_aix* ) \
                MKAFS_OSTYPE=AIX;; \
        sun4x_5* ) \
                MKAFS_OSTYPE=SOLARIS;; \
-       alpha_dux4* ) \
+       alpha_dux* ) \
                MKAFS_OSTYPE=DUX;; \
        sgi_6* ) \
                MKAFS_OSTYPE=IRIX;; \
+       ppc_darwin* ) \
+               MKAFS_OSTYPE=DARWIN;; \
        * ) \
                echo WARNING: No MakefileProto for sys ${SYS_NAME} ; \
        esac; \
@@ -486,8 +492,9 @@ libuafs_setup: config minproject export
 
 # "COMPILE_PART1=${COMPILE_PART1}" "COMPILE_PART2=${COMPILE_PART2}" SYS_NAME=${SYS_NAME} ;; 
 
+TARGET=finale
 install:
-       $(MAKE) finale "SYS_NAME=${SYS_NAME}" "WASHTOOL=${WASHTOOL}" \
+       $(MAKE) $(TARGET) "SYS_NAME=${SYS_NAME}" "WASHTOOL=${WASHTOOL}" \
                "COMPILE_PART1=${COMPILE_PART1}" \
                "COMPILE_PART2=${COMPILE_PART2}" \
                 DESTDIR=`pwd`/${SYS_NAME}/dest/ \
@@ -522,12 +529,104 @@ links:
        - /bin/rm -rf @sys/dest/* ;
        - /bin/mkdir @sys/obj ;
        echo "Create the obj directories"
+       here=`pwd` ; \
        cd src; \
        for file in `find [!NW]* -type d -print` ; do \
-               /bin/mkdir ../obj/$${file} ; \
+               /bin/mkdir $${here}/obj/$${file} ; \
        done;
        echo "Create the obj file links"
+       here=`pwd` ; \
        cd src; \
        for file in `find [!NW]* -type f -print` ; do \
-               /bin/ln -s `pwd`/$${file} ../obj/$${file} ; \
-       done;
+               /bin/ln -s `pwd`/$${file} $${here}/obj/$${file} ; \
+       done; \
+       /bin/ln -s $${here}/obj/afsconfig.h.in $${here}/obj/config/afsconfig.h ;
+
+# config.h link will eventually be replaced with generating the file 
+# directly from config.h.in via configure run. I'm linking instead of
+# copying to ease development for now
+
+#
+# Below targets are all deprecated, insecure, or obsolte, 
+# see README.OBSOLETE and README.INSECURE for more info
+#
+
+mpp: project
+       @case ${WITH_DEPRECATED} in \
+       YES)    ${COMPILE_PART1} mpp ${COMPILE_PART2} ;; \
+       *)      echo skipping deprecated target: mpp ;; \
+       esac
+
+package: project mpp
+       @case ${WITH_DEPRECATED} in \
+       YES)    ${COMPILE_PART1} package ${COMPILE_PART2} ;; \
+       *)      echo skipping deprecated target: package ;; \
+       esac
+
+package.files: package
+       @case ${WITH_DEPRECATED} in \
+       YES)    ${DESTDIR}/bin/makepkgfiles afs.dev ;; \
+       *)      echo skipping deprecated target: package.files ;; \
+       esac
+
+ntp: project volser
+       @case ${WITH_DEPRECATED} in \
+       YES)    case ${SYS_NAME} in \
+               sun4x_58 | *linux* | *fbsd* | ppc_darwin* ) echo skipping ntp for ${SYS_NAME} ;; \
+               * ) ${COMPILE_PART1} ntp ${COMPILE_PART2} ;; \
+               esac ;; \
+       *)      echo skipping deprecated target: ntp ;; \
+       esac
+
+sgistuff: project rlogind
+       @case ${WITH_DEPRECATED} in \
+       YES)    case ${SYS_NAME} in \
+               sgi_* ) ${COMPILE_PART1} sgistuff ${COMPILE_PART2} ;; \
+               * ) echo skipping sgistuff for ${SYS_NAME} ;; \
+               esac ;; \
+       *)      echo skipping deprecated target: sgistuff ;; \
+       esac
+
+ftpd43+: project kauth rxkad
+       @case ${WITH_DEPRECATED} in \
+       YES)    case ${SYS_NAME} in \
+               rs_aix* | sun4x_55 | *linux*) \
+                       ${COMPILE_PART1} ftpd43+ ${COMPILE_PART2} ;; \
+               *) echo skip ftpd43+ for ${SYS_NAME} ;; \
+               esac ;; \
+       *)      echo skipping deprecated target: ftpd43+ ;; \
+       esac
+
+inetd: project kauth rxkad
+       @case ${WITH_DEPRECATED} in \
+       YES)    ${COMPILE_PART1} inetd ${COMPILE_PART2} ;; \
+       *)      echo skipping deprecated target: inetd ;; \
+       esac
+
+rsh: project inetd
+       @case ${WITH_DEPRECATED} in \
+       YES)    ${COMPILE_PART1} rsh ${COMPILE_PART2} ;; \
+       *)      echo skipping deprecated target: rsh ;; \
+       esac
+
+rlogind: project rsh ftpd43+ login
+       @case ${WITH_DEPRECATED} in \
+       YES)    case ${SYS_NAME} in \
+               rs_aix*) ${COMPILE_PART1} rlogind ${COMPILE_PART2} ;; \
+               *) echo skipping rlogind for ${SYS_NAME} ;; \
+               esac ;; \
+       *)      echo skipping deprecated target: rlogind ;; \
+       esac
+
+rcp: project rsh inetd
+       @case ${WITH_DEPRECATED} in \
+       YES)    case ${SYS_NAME} in \
+               sgi_* ) echo skip rcp for ${SYS_NAME} ;; \
+               *)      ${COMPILE_PART1} rcp ${COMPILE_PART2} ;; \
+               esac ;; \
+       *)      echo skipping deprecated target: rcp ;; \
+       esac
+
+allrcmds: project rcp rlogind
+
+