Skip to content

Commit

Permalink
Make concurrent builds work.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
elric1 committed Aug 7, 2012
1 parent d9d8e94 commit be5afdb
Show file tree
Hide file tree
Showing 10 changed files with 102 additions and 45 deletions.
3 changes: 1 addition & 2 deletions appl/login/Makefile.am
Expand Up @@ -12,7 +12,6 @@ login_SOURCES = \
login.c \
login_access.c \
login_locl.h \
login-protos.h \
loginpaths.h \
limits_conf.c \
osfc2.c \
Expand All @@ -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
Expand Down
3 changes: 1 addition & 2 deletions kcm/Makefile.am
Expand Up @@ -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
Expand Down
21 changes: 15 additions & 6 deletions kdc/Makefile.am
Expand Up @@ -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 \
Expand All @@ -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

Expand All @@ -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


Expand Down Expand Up @@ -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
Expand Down
23 changes: 17 additions & 6 deletions lib/asn1/Makefile.am
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
13 changes: 6 additions & 7 deletions lib/gssapi/Makefile.am
Expand Up @@ -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 \
Expand Down Expand Up @@ -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 \
Expand All @@ -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 \
Expand All @@ -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 = \
Expand Down Expand Up @@ -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 \
Expand Down
17 changes: 12 additions & 5 deletions lib/hdb/Makefile.am
Expand Up @@ -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 \
Expand All @@ -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 = \
Expand All @@ -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
Expand Down
19 changes: 12 additions & 7 deletions lib/hx509/Makefile.am
Expand Up @@ -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 \
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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 = \
Expand Down
20 changes: 16 additions & 4 deletions lib/kadm5/Makefile.am
Expand Up @@ -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

Expand Down Expand Up @@ -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) \
Expand Down
24 changes: 20 additions & 4 deletions lib/krb5/Makefile.am
Expand Up @@ -15,7 +15,8 @@ noinst_PROGRAMS = \
test_gic \
test_kuserok \
test_renew \
test_rfc3961
test_rfc3961


noinst_LTLIBRARIES = \
librfc3961.la
Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions lib/ntlm/Makefile.am
Expand Up @@ -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

Expand All @@ -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
Expand Down

0 comments on commit be5afdb

Please sign in to comment.