Make concurrent builds work.
authorRoland C. Dowdeswell <elric@imrryr.org>
Tue, 7 Aug 2012 23:04:04 +0000 (00:04 +0100)
committerRoland C. Dowdeswell <elric@imrryr.org>
Tue, 7 Aug 2012 23:04:04 +0000 (00:04 +0100)
To stop the errors when building concurrently, we make a number of
changes:

        1.  stop including generated files in *_SOURCES,

        2.  make *-protos.h and *-private.h depend on the *_SOURCES,

        3.  make all objects depend on *-{protos,private}.h,

        4.  in a few places change dir/header.h to $(srcdir)/dir/header.h,

This appears to work for me with make -j16 on a 4-way box.

appl/login/Makefile.am
kcm/Makefile.am
kdc/Makefile.am
lib/asn1/Makefile.am
lib/gssapi/Makefile.am
lib/hdb/Makefile.am
lib/hx509/Makefile.am
lib/kadm5/Makefile.am
lib/krb5/Makefile.am
lib/ntlm/Makefile.am

index c5a838d7ac9975158e5673ca01225a1db3d48dd3..d5a8d5d8c548eb76f2e9af017104374f90dd6d99 100644 (file)
@@ -12,7 +12,6 @@ login_SOURCES =                                       \
                login.c                         \
                login_access.c                  \
                login_locl.h                    \
-               login-protos.h                  \
                loginpaths.h                    \
                limits_conf.c                   \
                osfc2.c                         \
@@ -32,7 +31,7 @@ LDADD = $(LIB_otp) \
        $(LIB_security) \
        $(DBLIB)
 
-$(srcdir)/login-protos.h:
+$(srcdir)/login-protos.h: $(login_SOURCES)
        cd $(srcdir); perl ../../cf/make-proto.pl -o login-protos.h -q -P comment $(login_SOURCES) || rm -f login-protos.h
 
 $(login_OBJECTS): $(srcdir)/login-protos.h
index e06c4d29ef21d887ec63037ef68d1200e46ac133..8baeedfd287e184bada869f7bfe78d5d49839747 100644 (file)
@@ -17,14 +17,13 @@ kcm_SOURCES =               \
        glue.c          \
        headers.h       \
        kcm_locl.h      \
-       kcm-protos.h    \
        log.c           \
        main.c          \
        protocol.c      \
        sessions.c      \
        renew.c
 
-$(srcdir)/kcm-protos.h:
+$(srcdir)/kcm-protos.h: $(kcm_SOURCES)
        cd $(srcdir); perl ../cf/make-proto.pl -o kcm-protos.h -q -P comment $(kcm_SOURCES) || rm -f kcm-protos.h
 
 $(kcm_OBJECTS): $(srcdir)/kcm-protos.h
index 5c51bde132949062c4c7aa447ae0be828e4855b7..2102b54eebf1fc4fe25414fe13d46f03d0b32eda 100644 (file)
@@ -36,8 +36,6 @@ kdc_tester_SOURCES = \
        kdc-tester.c
 
 libkdc_la_SOURCES =            \
-       kdc-private.h           \
-       kdc-protos.h            \
        default_config.c        \
        set_dbinfo.c            \
        digest.c                \
@@ -53,8 +51,19 @@ libkdc_la_SOURCES =          \
        windc.c                 \
        rx.h
 
+KDC_PROTOS = $(srcdir)/kdc-protos.h $(srcdir)/kdc-private.h
 
-$(libkdc_la_OBJECTS): $(srcdir)/kdc-protos.h $(srcdir)/kdc-private.h
+ALL_OBJECTS  = $(kdc_OBJECTS)
+ALL_OBJECTS += $(kdc_replay_OBJECTS)
+ALL_OBJECTS += $(kdc_tester_OBJECTS)
+ALL_OBJECTS += $(libkdc_la_OBJECTS)
+ALL_OBJECTS += $(string_to_key_OBJECTS)
+ALL_OBJECTS += $(kstash_OBJECTS)
+ALL_OBJECTS += $(hprop_OBJECTS)
+ALL_OBJECTS += $(hpropd_OBJECTS)
+ALL_OBJECTS += $(digest_service_OBJECTS)
+
+$(ALL_OBJECTS): $(KDC_PROTOS)
 
 libkdc_la_LDFLAGS = -version-info 2:0:0
 
@@ -63,10 +72,10 @@ libkdc_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map
 endif
 $(libkdc_la_OBJECTS): $(srcdir)/version-script.map
 
-$(srcdir)/kdc-protos.h:
+$(srcdir)/kdc-protos.h: $(libkdc_la_SOURCES)
        cd $(srcdir) && perl ../cf/make-proto.pl -q -P comment -o kdc-protos.h $(libkdc_la_SOURCES) || rm -f kdc-protos.h
 
-$(srcdir)/kdc-private.h:
+$(srcdir)/kdc-private.h: $(libkdc_la_SOURCES)
        cd $(srcdir) && perl ../cf/make-proto.pl -q -P comment -p kdc-private.h $(libkdc_la_SOURCES) || rm -f kdc-private.h
 
 
@@ -125,7 +134,7 @@ digest_service_LDADD = \
 kdc_replay_LDADD = libkdc.la $(LDADD) $(LIB_pidfile)
 kdc_tester_LDADD = libkdc.la $(LDADD) $(LIB_pidfile) $(LIB_heimbase)
 
-include_HEADERS = kdc.h kdc-protos.h
+include_HEADERS = kdc.h $(srcdir)/kdc-protos.h
 
 
 krb5dir = $(includedir)/krb5
index 14beffc0a37f82a63999c2a2a5540557c19b4a88..18aa5cab94ca17477f7281537b675463ffdb30fc 100644 (file)
@@ -152,7 +152,8 @@ CLEANFILES = \
        test_template_asn1_files test_template_asn1*.h* \
        test_asn1_files test_asn1*.h*
 
-dist_include_HEADERS = der.h heim_asn1.h der-protos.h der-private.h
+dist_include_HEADERS  = der.h heim_asn1.h
+dist_include_HEADERS += $(srcdir)/der-protos.h $(srcdir)/der-private.h
 dist_include_HEADERS += asn1-common.h
 
 nodist_include_HEADERS = asn1_err.h
@@ -180,9 +181,8 @@ priv_headers += test_asn1.h test_asn1-priv.h
 
 
 
-$(asn1_compile_OBJECTS): asn1parse.h asn1parse.c $(srcdir)/der-protos.h $(srcdir)/der-private.h
-$(libasn1_la_OBJECTS): $(nodist_include_HEADERS) $(priv_headers) asn1_err.h $(srcdir)/der-protos.h $(srcdir)/der-private.h
-$(libasn1base_la_OBJECTS): asn1_err.h $(srcdir)/der-protos.h $(srcdir)/der-private.h
+$(asn1_compile_OBJECTS): asn1parse.h asn1parse.c
+$(libasn1_la_OBJECTS): $(nodist_include_HEADERS) $(priv_headers)
 $(check_gen_OBJECTS): test_asn1.h
 $(check_template_OBJECTS): test_template_asn1.h test_template_asn1-priv.h test_template_asn1_files
 $(asn1_print_OBJECTS): krb5_asn1.h
@@ -257,8 +257,19 @@ EXTRA_DIST =               \
        test.gen        \
        version-script.map
 
-$(srcdir)/der-protos.h:
+DER_PROTOS = $(srcdir)/der-protos.h $(srcdir)/der-private.h
+
+ALL_OBJECTS  = $(libasn1_la_OBJECTS)
+ALL_OBJECTS += $(libasn1base_la_OBJECTS)
+ALL_OBJECTS += $(asn1_print_OBJECTS)
+ALL_OBJECTS += $(asn1_compile_OBJECTS)
+ALL_OBJECTS += $(asn1_gen_OBJECTS)
+ALL_OBJECTS += $(check_template_OBJECTS)
+
+$(ALL_OBJECTS): $(DER_PROTOS) asn1_err.h
+
+$(srcdir)/der-protos.h: $(dist_libasn1base_la_SOURCES)
        cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -o der-protos.h $(dist_libasn1base_la_SOURCES) || rm -f der-protos.h
 
-$(srcdir)/der-private.h:
+$(srcdir)/der-private.h: $(dist_libasn1base_la_SOURCES)
        cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p der-private.h $(dist_libasn1base_la_SOURCES) || rm -f der-private.h
index bcce45f6017452d3c79923458444c59b2d796ac9..492fa81b8fb0afc19edba1cf8bfbe53acaf70c36 100644 (file)
@@ -45,7 +45,7 @@ krb5src = \
        krb5/external.c \
        krb5/get_mic.c \
        krb5/gsskrb5_locl.h \
-       krb5/gsskrb5-private.h \
+       $(srcdir)/krb5/gsskrb5-private.h \
        krb5/import_name.c \
        krb5/import_sec_context.c \
        krb5/indicate_mechs.c \
@@ -164,7 +164,7 @@ spnegosrc = \
        spnego/external.c \
        spnego/init_sec_context.c \
        spnego/spnego_locl.h \
-       spnego/spnego-private.h
+       $(srcdir)/spnego/spnego-private.h
 
 ntlmsrc = \
        ntlm/accept_sec_context.c \
@@ -183,7 +183,6 @@ ntlmsrc = \
        ntlm/export_sec_context.c \
        ntlm/external.c \
        ntlm/ntlm.h \
-       ntlm/ntlm-private.h \
        ntlm/import_name.c \
        ntlm/import_sec_context.c \
        ntlm/indicate_mechs.c \
@@ -199,7 +198,7 @@ ntlmsrc = \
        ntlm/release_name.c \
        ntlm/kdc.c
 
-$(srcdir)/ntlm/ntlm-private.h:
+$(srcdir)/ntlm/ntlm-private.h: $(ntlmsrc)
        cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p ntlm/ntlm-private.h $(ntlmsrc) || rm -f ntlm/ntlm-private.h
 
 dist_libgssapi_la_SOURCES  = \
@@ -234,9 +233,9 @@ man_MANS = gssapi.3 gss_acquire_cred.3 mech/mech.5
 include_HEADERS = gssapi.h
 noinst_HEADERS = \
        gssapi_mech.h \
-       ntlm/ntlm-private.h \
-       spnego/spnego-private.h \
-       krb5/gsskrb5-private.h
+       $(srcdir)/ntlm/ntlm-private.h \
+       $(srcdir)/spnego/spnego-private.h \
+       $(srcdir)/krb5/gsskrb5-private.h
 
 nobase_include_HEADERS = \
        gssapi/gssapi.h \
index 9c7ea1f400fe0e3e0d245ef9c2be18bbf5fd7940..1db9d08c8aac9168d2b6e61f535e4507fb07f772 100644 (file)
@@ -85,7 +85,6 @@ dist_libhdb_la_SOURCES =                      \
        hdb-keytab.c                            \
        hdb-mitdb.c                             \
        hdb_locl.h                              \
-       hdb-private.h                           \
        keys.c                                  \
        keytab.c                                \
        dbinfo.c                                \
@@ -97,7 +96,7 @@ nodist_libhdb_la_SOURCES = $(BUILT_SOURCES)
 
 libhdb_la_DEPENDENCIES = version-script.map
 
-include_HEADERS = hdb.h hdb-protos.h
+include_HEADERS = hdb.h $(srcdir)/hdb-protos.h
 nodist_include_HEADERS =  hdb_err.h hdb_asn1.h
 
 libhdb_la_LIBADD = \
@@ -111,13 +110,21 @@ libhdb_la_LIBADD = \
        $(DBLIB) \
        $(LIB_NDBM)
 
-$(libhdb_la_OBJECTS): $(srcdir)/hdb-protos.h $(srcdir)/hdb-private.h
+HDB_PROTOS = $(srcdir)/hdb-protos.h $(srcdir)/hdb-private.h
+
+ALL_OBJECTS  = $(libhdb_la_OBJECTS)
+ALL_OBJECTS += $(test_dbinfo_OBJECTS)
+ALL_OBJECTS += $(test_hdbkeys_OBJECTS)
+ALL_OBJECTS += $(test_mkey_OBJECTS)
+
+$(ALL_OBJECTS): $(HDB_PROTOS)
+
 $(libhdb_la_OBJECTS): hdb_asn1.h hdb_asn1-priv.h hdb_err.h
 
-$(srcdir)/hdb-protos.h:
+$(srcdir)/hdb-protos.h: $(dist_libhdb_la_SOURCES)
        cd $(srcdir); perl ../../cf/make-proto.pl -q -P comment -o hdb-protos.h $(dist_libhdb_la_SOURCES) || rm -f hdb-protos.h
 
-$(srcdir)/hdb-private.h:
+$(srcdir)/hdb-private.h: $(dist_libhdb_la_SOURCES)
        cd $(srcdir); perl ../../cf/make-proto.pl -q -P comment -p hdb-private.h $(dist_libhdb_la_SOURCES) || rm -f hdb-private.h
 
 $(gen_files_hdb) hdb_asn1.hx hdb_asn1-priv.hx: hdb_asn1_files
index a113deb34db0760fd9fb543850776e843691dede..d8220f4dbe8328947ee91def84796b28eaa6d853 100644 (file)
@@ -62,8 +62,6 @@ dist_libhx509_la_SOURCES = \
        error.c \
        env.c \
        file.c \
-       hx509-private.h \
-       hx509-protos.h \
        hx509.h \
        hx_locl.h \
        sel.c \
@@ -116,7 +114,7 @@ $(gen_files_ocsp) ocsp_asn1.hx ocsp_asn1-priv.hx: ocsp_asn1_files
 $(gen_files_pkcs10) pkcs10_asn1.hx pkcs10_asn1-priv.hx: pkcs10_asn1_files
 $(gen_files_crmf) crmf_asn1.hx crmf_asn1-priv.hx: crmf_asn1_files
 
-dist_include_HEADERS = hx509.h hx509-protos.h
+dist_include_HEADERS = hx509.h $(srcdir)/hx509-protos.h
 
 nodist_include_HEADERS = hx509_err.h
 nodist_include_HEADERS += ocsp_asn1.h
@@ -137,13 +135,20 @@ pkcs10_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/pkcs10.asn1 $(srcdir)/pkcs10.op
 crmf_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/crmf.asn1
        $(heim_verbose)$(ASN1_COMPILE) $(srcdir)/crmf.asn1 crmf_asn1 || (rm -f crmf_asn1_files ; exit 1)
 
-$(libhx509_la_OBJECTS): $(srcdir)/hx509-protos.h $(srcdir)/hx509-private.h $(srcdir)/hx_locl.h
+HX509_PROTOS = $(srcdir)/hx509-protos.h $(srcdir)/hx509-private.h
+
+ALL_OBJECTS  = $(libhx509_la_OBJECTS)
+ALL_OBJECTS += $(hxtool_OBJECTS)
+
+$(ALL_OBJECTS): $(HX509_PROTOS)
+
+$(libhx509_la_OBJECTS): $(srcdir)/hx_locl.h
 $(libhx509_la_OBJECTS): ocsp_asn1.h pkcs10_asn1.h
 
-$(srcdir)/hx509-protos.h:
+$(srcdir)/hx509-protos.h: $(dist_libhx509_la_SOURCES)
        $(heim_verbose)cd $(srcdir) && perl ../../cf/make-proto.pl -R '^(_|^C)' -E HX509_LIB -q -P comment -o hx509-protos.h $(dist_libhx509_la_SOURCES) || rm -f hx509-protos.h
 
-$(srcdir)/hx509-private.h:
+$(srcdir)/hx509-private.h: $(dist_libhx509_la_SOURCES)
        $(heim_verbose)cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p hx509-private.h $(dist_libhx509_la_SOURCES) || rm -f hx509-private.h
 
 bin_PROGRAMS = hxtool
@@ -154,7 +159,7 @@ hxtool-commands.c hxtool-commands.h: hxtool-commands.in $(SLC)
 dist_hxtool_SOURCES = hxtool.c
 nodist_hxtool_SOURCES = hxtool-commands.c hxtool-commands.h
 
-$(hxtool_OBJECTS): hxtool-commands.h
+$(hxtool_OBJECTS): hxtool-commands.h hx509_err.h
 
 hxtool_CPPFLAGS = $(INCLUDE_hcrypto)
 hxtool_LDADD = \
index e25ccd11784efea5ced9eb15d58f5ca9fa8276d1..78648ec1acc3e40999650f505befaebe7c1d845f 100644 (file)
@@ -33,7 +33,7 @@ kadm5includedir = $(includedir)/kadm5
 buildkadm5include = $(buildinclude)/kadm5
 
 dist_kadm5include_HEADERS = admin.h private.h kadm5-pwcheck.h
-dist_kadm5include_HEADERS += kadm5-protos.h kadm5-private.h
+dist_kadm5include_HEADERS += $(srcdir)/kadm5-protos.h $(srcdir)/kadm5-private.h
 
 nodist_kadm5include_HEADERS = kadm5_err.h
 
@@ -164,17 +164,29 @@ CLEANFILES = kadm5_err.c kadm5_err.h iprop-commands.h iprop-commands.c
 
 kadm5_err.h: kadm5_err.et
 
-$(libkadm5clnt_la_OBJECTS) $(libkadm5srv_la_OBJECTS): $(srcdir)/kadm5-protos.h $(srcdir)/kadm5-private.h
+ALL_OBJECTS  = $(libkadm5clnt_la_OBJECTS)
+ALL_OBJECTS += $(libkadm5srv_la_OBJECTS)
+ALL_OBJECTS += $(ipropd_master_OBJECTS)
+ALL_OBJECTS += $(ipropd_slave_OBJECTS)
+ALL_OBJECTS += $(iprop_log_OBJECTS)
+ALL_OBJECTS += $(test_pw_quality_OBJECTS)
+ALL_OBJECTS += $(sample_passwd_check_la_OBJECTS)
+ALL_OBJECTS += $(default_keys_OBJECTS)
+
+$(ALL_OBJECTS): $(srcdir)/kadm5-protos.h $(srcdir)/kadm5-private.h
+
+KADM5_PROTOS_SRCS  = $(dist_libkadm5clnt_la_SOURCES)
+KADM5_PROTOS_SRCS += $(dist_libkadm5srv_la_SOURCES)
 
 proto_opts = -q -R '^(_|kadm5_c_|kadm5_s_|kadm5_log)' -P comment
-$(srcdir)/kadm5-protos.h:
+$(srcdir)/kadm5-protos.h: $(KADM5_PROTOS_SRCS)
        cd $(srcdir); perl ../../cf/make-proto.pl $(proto_opts) \
                -o kadm5-protos.h \
                $(dist_libkadm5clnt_la_SOURCES) \
                $(dist_libkadm5srv_la_SOURCES) \
                || rm -f kadm5-protos.h
 
-$(srcdir)/kadm5-private.h:
+$(srcdir)/kadm5-private.h: $(KADM5_PROTOS_SRCS)
        cd $(srcdir); perl ../../cf/make-proto.pl $(proto_opts) \
                -p kadm5-private.h \
                $(dist_libkadm5clnt_la_SOURCES) \
index 45f70cccfa7562375d59d22e9a028668c5710273..9365fd3c6fdcc9539063a7fa7d2777759fe46591 100644 (file)
@@ -15,7 +15,8 @@ noinst_PROGRAMS =                             \
        test_gic                                \
        test_kuserok                            \
        test_renew                              \
-       test_rfc3961                            
+       test_rfc3961
+
 
 noinst_LTLIBRARIES =                           \
        librfc3961.la
@@ -247,7 +248,22 @@ if versionscript
 libkrb5_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map
 endif
 
-$(libkrb5_la_OBJECTS) $(verify_krb5_conf_OBJECTS) $(librfc3961_la_OBJECTS): $(srcdir)/krb5-protos.h $(srcdir)/krb5-private.h krb5_err.h heim_err.h k524_err.h krb5_err.h krb_err.h k524_err.h
+ALL_OBJECTS  = $(libkrb5_la_OBJECTS)
+ALL_OBJECTS += $(verify_krb5_conf_OBJECTS)
+ALL_OBJECTS += $(librfc3961_la_OBJECTS)
+ALL_OBJECTS += $(librfc3961_la_OBJECTS)
+ALL_OBJECTS += $(krbhst_test_OBJECTS)
+ALL_OBJECTS += $(test_alname_OBJECTS)
+ALL_OBJECTS += $(test_crypto_OBJECTS)
+ALL_OBJECTS += $(test_forward_OBJECTS)
+ALL_OBJECTS += $(test_get_addrs_OBJECTS)
+ALL_OBJECTS += $(test_gic_OBJECTS)
+ALL_OBJECTS += $(test_kuserok_OBJECTS)
+ALL_OBJECTS += $(test_renew_OBJECTS)
+ALL_OBJECTS += $(test_rfc3961_OBJECTS)
+
+$(ALL_OBJECTS): $(srcdir)/krb5-protos.h $(srcdir)/krb5-private.h
+$(ALL_OBJECTS): krb5_err.h heim_err.h k524_err.h krb5_err.h krb_err.h k524_err.h
 
 librfc3961_la_SOURCES =                                \
        crc.c                                   \
@@ -341,8 +357,8 @@ man_MANS =                                  \
 
 dist_include_HEADERS = \
        krb5.h \
-       krb5-protos.h \
-       krb5-private.h \
+       $(srcdir)/krb5-protos.h \
+       $(srcdir)/krb5-private.h \
        krb5_ccapi.h
 
 nodist_include_HEADERS = krb5_err.h heim_err.h k524_err.h
index 8b36bbc14e4815b2aa06ee50d2c35a16931fb08f..53ed60ddb1a532ca2d32c2430631ccda4641e94a 100644 (file)
@@ -6,7 +6,7 @@ AM_CPPFLAGS += $(INCLUDE_hcrypto)
 
 lib_LTLIBRARIES = libheimntlm.la
 
-dist_include_HEADERS = heimntlm.h heimntlm-protos.h
+dist_include_HEADERS = heimntlm.h $(srcdir)/heimntlm-protos.h
 
 nodist_include_HEADERS = ntlm_err.h
 
@@ -26,7 +26,7 @@ libheimntlm_la_LIBADD = \
        $(LIB_hcrypto) \
        $(LIBADD_roken)
 
-$(srcdir)/heimntlm-protos.h:
+$(srcdir)/heimntlm-protos.h: $(dist_libheimntlm_la_SOURCES)
        cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -o heimntlm-protos.h $(dist_libheimntlm_la_SOURCES) || rm -f heimntlm-protos.h
 
 $(libheimntlm_la_OBJECTS): $(srcdir)/heimntlm-protos.h ntlm_err.h