From eeca6e0f05ce59361e6084deab6117c240520cdb Mon Sep 17 00:00:00 2001 From: Diego Elio Pettenò Date: Fri, 17 Aug 2012 19:14:36 -0700 Subject: build: fix building with parallel make. By using a more automake-style handling of dependencies and a single convenience library, it's tremendously easy to build in parallel. Note that since the linking happens with the static archives, the unused objects are discarded and provide no overhead whatsoever. --- plugins/Makefile.am | 95 ++++++++++++++--------------------------------------- 1 file changed, 24 insertions(+), 71 deletions(-) diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 0eb0255b..64969dbf 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -39,15 +39,19 @@ EXTRA_PROGRAMS = check_mysql check_radius check_pgsql check_snmp check_hpjd \ check_nagios check_by_ssh check_dns check_nt check_ide_smart \ check_procs check_mysql_query check_apt check_dbi -EXTRA_DIST = t tests utils.c netutils.c sslutils.c popen.c utils.h netutils.h \ - popen.h common.h runcmd.c runcmd.h +EXTRA_DIST = t tests PLUGINHDRS = common.h -BASEOBJS = utils.o ../lib/libnagiosplug.a ../gl/libgnu.a -NETOBJS = netutils.o $(BASEOBJS) $(EXTRA_NETOBJS) -SSLOBJS = sslutils.o +noinst_LIBRARIES = libnpcommon.a + +libnpcommon_a_SOURCES = utils.c netutils.c sslutils.c runcmd.c \ + popen.c utils.h netutils.h popen.h common.h runcmd.c runcmd.h + +BASEOBJS = libnpcommon.a ../lib/libnagiosplug.a ../gl/libgnu.a +NETOBJS = $(BASEOBJS) $(EXTRA_NETOBLS) NETLIBS = $(NETOBJS) $(SOCKETLIBS) +SSLOBJS = $(BASEOBJS) $(NETLIBS) $(SSLLIBS) TESTS_ENVIRONMENT = perl -I $(top_builddir) -I $(top_srcdir) @@ -62,19 +66,19 @@ test-debug: ############################################################################## # the actual targets -check_apt_LDADD = $(BASEOBJS) runcmd.o +check_apt_LDADD = $(BASEOBJS) check_cluster_LDADD = $(BASEOBJS) check_dbi_LDADD = $(NETLIBS) $(DBILIBS) -check_dig_LDADD = $(NETLIBS) runcmd.o -check_disk_LDADD = $(BASEOBJS) popen.o -check_dns_LDADD = $(NETLIBS) runcmd.o +check_dig_LDADD = $(NETLIBS) +check_disk_LDADD = $(BASEOBJS) +check_dns_LDADD = $(NETLIBS) check_dummy_LDADD = $(BASEOBJS) -check_fping_LDADD = $(NETLIBS) popen.o -check_game_LDADD = $(BASEOBJS) runcmd.o -check_http_LDADD = $(SSLOBJS) $(NETLIBS) $(SSLLIBS) -check_hpjd_LDADD = $(NETLIBS) popen.o +check_fping_LDADD = $(NETLIBS) +check_game_LDADD = $(BASEOBJS) +check_http_LDADD = $(SSLOBJS) +check_hpjd_LDADD = $(NETLIBS) check_ldap_LDADD = $(NETLIBS) $(LDAPLIBS) -check_load_LDADD = $(BASEOBJS) popen.o +check_load_LDADD = $(BASEOBJS) check_mrtg_LDADD = $(BASEOBJS) check_mrtgtraf_LDADD = $(BASEOBJS) check_mysql_CFLAGS = $(MYSQLCFLAGS) -DNP_VERSION='"$(NP_VERSION)"' @@ -83,22 +87,22 @@ check_mysql_LDADD = $(NETLIBS) $(MYSQLLIBS) check_mysql_query_CFLAGS = $(MYSQLCFLAGS) -DNP_VERSION='"$(NP_VERSION)"' check_mysql_query_CPPFLAGS = $(MYSQLINCLUDE) check_mysql_query_LDADD = $(NETLIBS) $(MYSQLLIBS) -check_nagios_LDADD = $(BASEOBJS) runcmd.o +check_nagios_LDADD = $(BASEOBJS) check_nt_LDADD = $(NETLIBS) check_ntp_LDADD = $(NETLIBS) $(MATHLIBS) check_ntp_peer_LDADD = $(NETLIBS) $(MATHLIBS) check_nwstat_LDADD = $(NETLIBS) check_overcr_LDADD = $(NETLIBS) check_pgsql_LDADD = $(NETLIBS) $(PGLIBS) -check_ping_LDADD = $(NETLIBS) popen.o +check_ping_LDADD = $(NETLIBS) check_procs_LDADD = $(BASEOBJS) check_radius_LDADD = $(NETLIBS) $(RADIUSLIBS) check_real_LDADD = $(NETLIBS) check_snmp_LDADD = $(BASEOBJS) -check_smtp_LDADD = $(SSLOBJS) $(NETLIBS) $(SSLLIBS) +check_smtp_LDADD = $(SSLOBJS) check_ssh_LDADD = $(NETLIBS) -check_swap_LDADD = $(MATHLIBS) $(BASEOBJS) popen.o -check_tcp_LDADD = $(SSLOBJS) $(NETLIBS) $(SSLLIBS) +check_swap_LDADD = $(MATHLIBS) $(BASEOBJS) +check_tcp_LDADD = $(SSLOBJS) check_time_LDADD = $(NETLIBS) check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS) check_ups_LDADD = $(NETLIBS) @@ -106,62 +110,11 @@ check_users_LDADD = $(BASEOBJS) check_by_ssh_LDADD = $(NETLIBS) check_ide_smart_LDADD = $(BASEOBJS) negate_LDADD = $(BASEOBJS) -urlize_LDADD = $(BASEOBJS) popen.o - -check_apt_DEPENDENCIES = check_apt.c $(BASEOBJS) runcmd.o $(DEPLIBS) -check_cluster_DEPENDENCIES = check_cluster.c $(BASEOBJS) $(DEPLIBS) -check_dbi_DEPENDENCIES = check_dbi.c $(NETOBJS) $(DEPLIBS) -check_dig_DEPENDENCIES = check_dig.c $(NETOBJS) runcmd.o $(DEPLIBS) -check_disk_DEPENDENCIES = check_disk.c $(BASEOBJS) popen.o $(DEPLIBS) -check_dns_DEPENDENCIES = check_dns.c $(NETOBJS) runcmd.o $(DEPLIBS) -check_dummy_DEPENDENCIES = check_dummy.c $(DEPLIBS) -check_fping_DEPENDENCIES = check_fping.c $(NETOBJS) popen.o $(DEPLIBS) -check_game_DEPENDENCIES = check_game.c $(DEPLIBS) runcmd.o -check_http_DEPENDENCIES = check_http.c $(SSLOBJS) $(NETOBJS) $(DEPLIBS) -check_hpjd_DEPENDENCIES = check_hpjd.c $(NETOBJS) popen.o $(DEPLIBS) -check_ide_smart_DEPENDENCIES = check_ide_smart.c $(BASEOBJS) $(DEPLIBS) -check_ldap_DEPENDENCIES = check_ldap.c $(NETOBJS) $(DEPLIBS) -check_load_DEPENDENCIES = check_load.c $(BASEOBJS) popen.o $(DEPLIBS) -check_mrtg_DEPENDENCIES = check_mrtg.c $(DEPLIBS) -check_mrtgtraf_DEPENDENCIES = check_mrtgtraf.c $(DEPLIBS) -check_mysql_DEPENDENCIES = check_mysql.c $(NETOBJS) $(DEPLIBS) -check_mysql_query_DEPENDENCIES = check_mysql_query.c $(NETOBJS) $(DEPLIBS) -check_nagios_DEPENDENCIES = check_nagios.c $(BASEOBJS) runcmd.o $(DEPLIBS) -check_nt_DEPENDENCIES = check_nt.c $(NETOBJS) $(DEPLIBS) -check_ntp_DEPENDENCIES = check_ntp.c $(NETOBJS) $(DEPLIBS) -check_ntp_peer_DEPENDENCIES = check_ntp_peer.c $(NETOBJS) $(DEPLIBS) -check_nwstat_DEPENDENCIES = check_nwstat.c $(NETOBJS) $(DEPLIBS) -check_overcr_DEPENDENCIES = check_overcr.c $(NETOBJS) $(DEPLIBS) -check_pgsql_DEPENDENCIES = check_pgsql.c $(NETOBJS) $(DEPLIBS) -check_ping_DEPENDENCIES = check_ping.c $(NETOBJS) popen.o $(DEPLIBS) -check_procs_DEPENDENCIES = check_procs.c $(BASEOBJS) popen.o $(DEPLIBS) -check_radius_DEPENDENCIES = check_radius.c $(NETOBJS) $(DEPLIBS) -check_real_DEPENDENCIES = check_real.c $(NETOBJS) $(DEPLIBS) -check_snmp_DEPENDENCIES = check_snmp.c $(BASEOBJS) $(DEPLIBS) -check_smtp_DEPENDENCIES = check_smtp.c $(SSLOBJS) $(NETOBJS) $(DEPLIBS) -check_ssh_DEPENDENCIES = check_ssh.c $(NETOBJS) $(DEPLIBS) -check_swap_DEPENDENCIES = check_swap.c $(BASEOBJS) popen.o $(DEPLIBS) -check_tcp_DEPENDENCIES = check_tcp.c $(SSLOBJS) $(NETOBJS) $(DEPLIBS) -check_time_DEPENDENCIES = check_time.c $(NETOBJS) $(DEPLIBS) -check_ntp_time_DEPENDENCIES = check_ntp_time.c $(NETOBJS) $(DEPLIBS) -check_ups_DEPENDENCIES = check_ups.c $(NETOBJS) $(DEPLIBS) -check_users_DEPENDENCIES = check_users.c $(BASEOBJS) popen.o $(DEPLIBS) -check_by_ssh_DEPENDENCIES = check_by_ssh.c $(NETOBJS) $(DEPLIBS) -negate_DEPENDENCIES = negate.c $(BASEOBJS) $(DEPLIBS) -urlize_DEPENDENCIES = urlize.c $(BASEOBJS) popen.o $(DEPLIBS) +urlize_LDADD = $(BASEOBJS) ############################################################################## # secondary dependencies -popen.o: popen.c popen.h $(PLUGINHDRS) - -runcmd.o: runcmd.c runcmd.h $(PLUGINHDRS) - -utils.o: utils.c utils.h $(PLUGINHDRS) - -netutils.o: netutils.c netutils.h $(PLUGINHDRS) -sslutils.o: sslutils.c netutils.h $(PLUGINHDRS) - all-local: $(check_tcp_programs) $(check_tcp_programs): check_tcp -- cgit v1.2.3-74-g34f1