summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/gssapi/ChangeLog7
-rw-r--r--src/lib/gssapi/Makefile.in47
2 files changed, 46 insertions, 8 deletions
diff --git a/src/lib/gssapi/ChangeLog b/src/lib/gssapi/ChangeLog
index fa2832e0b0..26747104bc 100644
--- a/src/lib/gssapi/ChangeLog
+++ b/src/lib/gssapi/ChangeLog
@@ -1,3 +1,10 @@
+2003-03-08 Ken Raeburn <raeburn@mit.edu>
+
+ * Makefile.in ($(BUILDTOP)/include/gssapi/gssapi.h,
+ generic/gssapi.h, generic/gssapi_err_generic.h,
+ krb5/gssapi_err_krb5.h): Comment out old rules and dependencies;
+ depend on all-recurse and supply a no-op rule.
+
2003-03-07 Alexandra Ellwood <lxs@mit.edu>
* gss_libinit.c: Changed USE_HARDCODED_FALLBACK_ERROR_TABLES macro
diff --git a/src/lib/gssapi/Makefile.in b/src/lib/gssapi/Makefile.in
index c0a69b6265..baa776e5bc 100644
--- a/src/lib/gssapi/Makefile.in
+++ b/src/lib/gssapi/Makefile.in
@@ -70,14 +70,45 @@ clean-windows::
cd ..
@echo Making clean in gssapi
-$(BUILDTOP)/include/gssapi/gssapi.h: generic/gssapi.h
- (cd generic && $(MAKE) gssapi-include)
-generic/gssapi.h: generic/gssapi.hin
- (cd generic && $(MAKE) gssapi.h)
-generic/gssapi_err_generic.h: generic/gssapi_err_generic.et
- (cd generic && $(MAKE) gssapi_err_generic.h)
-krb5/gssapi_err_krb5.h: krb5/gssapi_err_krb5.et
- (cd krb5 && $(MAKE) gssapi_err_krb5.h)
+# These rules are an attempt to handle several different problems:
+#
+# Certain files in subdirectories must be made current by the
+# recursion step before we can build files in this directory that
+# depend on them. Existing but out-of-date versions must not be used.
+#
+# In a parallel make, nothing should be built more than once. This
+# effect can be exaggerated for testing by sticking "sleep 5" into the
+# rules for generating the files in subdirectories. For example, in
+# between testing for a directory and creating it -- do you then get
+# mkdir complaining that the directory exists? Adding the sleep
+# command may also exaggerate the build-with-outdated-headers problem,
+# by causing the timestamp on the newly generated header to be several
+# seconds newer than object files built with its old version, even on
+# fast machines where the UNIX filesystem's one-second granularity
+# would mask the problem.
+#
+# We must not cause these files to always be considered newly updated
+# when it comes time to build the object files in this directory.
+# Otherwise, we wind up recompiling some files every time we run make.
+
+# This set of rules fails the parallel make case; it can build
+# gssapi-include and all-recurse at the same time, and both will
+# create include/gssapi and gssapi.h.
+#$(BUILDTOP)/include/gssapi/gssapi.h: generic/gssapi.h
+# (cd generic && $(MAKE) gssapi-include)
+#generic/gssapi.h: generic/gssapi.hin
+# (cd generic && $(MAKE) gssapi.h)
+#generic/gssapi_err_generic.h: generic/gssapi_err_generic.et
+# (cd generic && $(MAKE) gssapi_err_generic.h)
+#krb5/gssapi_err_krb5.h: krb5/gssapi_err_krb5.et
+# (cd krb5 && $(MAKE) gssapi_err_krb5.h)
+
+# This version, without the no-op command to run, reportedly caused
+# repeated rebuilds in certain cases. With the no-op command, it
+# appears to be properly serializing the subdir processing and local
+# compiles... so far.
+$(BUILDTOP)/include/gssapi/gssapi.h generic/gssapi.h krb5/gssapi_err_krb5.h generic/gssapi_err_generic.h: all-recurse
+ : $@ updated by recursion rule
# @lib_frag@
# @libobj_frag@