Hi! Here's a patch that improves the Makefile.am files, and reduces dependencies so that programs do not end up lining against unneeded shared libraries. Please let me know if this is fine as it is, or if you prefer it split, or the format changed etc. I'll provide ChangeLog entries once this is settled.
thanks, guillem
commit eb0f804b827b7a2cb963cb06f888c97fa3ef8794 Author: Guillem Jover <[email protected]> Date: Wed Oct 19 18:25:41 2011 +0200 Improve dependencies and automake variables diff --git a/ftp/Makefile.am b/ftp/Makefile.am index 7cb69f4..7c92e06 100644 --- a/ftp/Makefile.am +++ b/ftp/Makefile.am @@ -17,6 +17,20 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +@PATHDEFS_MAKE@ + +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils \ + $(PATHDEF_TMP) $(PATHDEF_BSHELL) + +READLINE = $(LIBREADLINE) $(LIBTERMCAP) $(LIBHISTORY) +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a \ + $(LIBGLOB) $(READLINE) + bin_PROGRAMS = @ftp_BUILD@ EXTRA_PROGRAMS = ftp @@ -24,11 +38,3 @@ EXTRA_PROGRAMS = ftp ftp_SOURCES = cmds.c cmdtab.c domacro.c ftp.c main.c ruserpass.c noinst_HEADERS = extern.h ftp_var.h - -@PATHDEFS_MAKE@ - -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils -AM_CPPFLAGS = $(PATHDEF_TMP) $(PATHDEF_BSHELL) - -READLINE = $(LIBREADLINE) $(LIBTERMCAP) $(LIBHISTORY) -LDADD = -L../libinetutils -linetutils ../lib/libgnu.a $(LIBGLOB) $(READLINE) diff --git a/ftpd/Makefile.am b/ftpd/Makefile.am index a613f42..481ae27 100644 --- a/ftpd/Makefile.am +++ b/ftpd/Makefile.am @@ -17,6 +17,22 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +@PATHDEFS_MAKE@ + +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils \ + $(PATHDEF_FTPWELCOME) $(PATHDEF_FTPUSERS) \ + $(PATHDEF_FTPLOGINMESG) $(PATHDEF_FTPCHROOT) $(PATHDEF_FTPDPID) \ + $(PATHDEF_DEVNULL) $(PATHDEF_NOLOGIN) $(PATHDEF_BSHELL) + +LDADD = \ + $(LIBLS) \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a \ + $(LIBCRYPT) $(LIBWRAP) $(LIBPAM) + inetdaemondir = @inetdaemondir@ inetdaemon_PROGRAMS = @ftpd_BUILD@ @@ -28,14 +44,4 @@ ftpd_SOURCES = ftpcmd.y ftpd.c logwtmp.c popen.c pam.c auth.c \ noinst_HEADERS = extern.h -@PATHDEFS_MAKE@ - -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils -AM_CPPFLAGS = $(PATHDEF_FTPWELCOME) $(PATHDEF_FTPUSERS) \ - $(PATHDEF_FTPLOGINMESG) $(PATHDEF_FTPCHROOT) $(PATHDEF_FTPDPID) \ - $(PATHDEF_DEVNULL) $(PATHDEF_NOLOGIN) $(PATHDEF_BSHELL) - -LDADD = -L../libinetutils -linetutils $(LIBLS) ../lib/libgnu.a \ - $(LIBCRYPT) $(LIBWRAP) $(LIBPAM) - EXTRA_DIST = ftpcmd.c diff --git a/ifconfig/Makefile.am b/ifconfig/Makefile.am index f971fe0..a2fd676 100644 --- a/ifconfig/Makefile.am +++ b/ifconfig/Makefile.am @@ -19,6 +19,18 @@ SUBDIRS=system +@PATHDEFS_MAKE@ + +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils \ + $(PATHDEF_PROCNET_DEV) + +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a + bin_PROGRAMS = @ifconfig_BUILD@ EXTRA_PROGRAMS = ifconfig @@ -26,8 +38,3 @@ EXTRA_PROGRAMS = ifconfig ifconfig_SOURCES = ifconfig.c flags.c changeif.c options.c printif.c system.c if_index.c noinst_HEADERS = ifconfig.h if_index.h flags.h options.h printif.h system.h - -@PATHDEFS_MAKE@ -AM_CPPFLAGS=$(PATHDEF_PROCNET_DEV) -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils -LDADD = -L../libinetutils -linetutils ../lib/libgnu.a diff --git a/libinetutils/Makefile.am b/libinetutils/Makefile.am index 9e84994..9186a75 100644 --- a/libinetutils/Makefile.am +++ b/libinetutils/Makefile.am @@ -17,6 +17,15 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +@PATHDEFS_MAKE@ + +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils \ + $(PATHDEF_WTMPX) $(PATHDEF_TTY_PFX) $(PATHDEF_DEVNULL) \ + $(PATHDEF_HEQUIV) + noinst_LIBRARIES = libinetutils.a noinst_HEADERS = argcv.h libinetutils.h tftpsubs.h shishi_def.h @@ -40,10 +49,6 @@ libinetutils_a_SOURCES = \ utmp_init.c\ utmp_logout.c -libinetutils_a_LIBADD = daemon.o $(top_builddir)/lib/libgnu.a - -@PATHDEFS_MAKE@ - -AM_CPPFLAGS = $(PATHDEF_WTMPX) $(PATHDEF_TTY_PFX) $(PATHDEF_DEVNULL) $(PATHDEF_HEQUIV) - -INCLUDES = -I$(top_srcdir)/libinetutils -I$(top_srcdir)/lib -I../lib +libinetutils_a_LIBADD = \ + daemon.o \ + ../lib/libgnu.a diff --git a/libls/Makefile.am b/libls/Makefile.am index b90370c..c90201a 100644 --- a/libls/Makefile.am +++ b/libls/Makefile.am @@ -17,6 +17,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib + noinst_LIBRARIES = @libls_BUILD@ EXTRA_LIBRARIES = libls.a @@ -24,5 +28,3 @@ EXTRA_LIBRARIES = libls.a libls_a_SOURCES = cmp.c stat_flags.c ls.c print.c util.c fts.c noinst_HEADERS = extern.h ls.h fts.h - -INCLUDES=-I$(top_srcdir)/lib -I../lib diff --git a/libtelnet/Makefile.am b/libtelnet/Makefile.am index f5381cd..8a48512 100644 --- a/libtelnet/Makefile.am +++ b/libtelnet/Makefile.am @@ -17,10 +17,17 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. -INCLUDES = $(INCAUTH) -I$(top_srcdir)/lib -I../lib +AM_CPPFLAGS = \ + $(INCAUTH) \ + -I../lib \ + -I$(top_srcdir)/lib noinst_LIBRARIES = libtelnet.a -libtelnet_a_SOURCES = auth.c enc_des.c encrypt.c forward.c genget.c getent.c kerberos.c kerberos5.c misc.c read_passwd.c shishi.c +libtelnet_a_SOURCES = \ + auth.c enc_des.c encrypt.c forward.c genget.c getent.c \ + kerberos.c kerberos5.c misc.c read_passwd.c shishi.c -noinst_HEADERS = auth-proto.h auth.h enc-proto.h encrypt.h genget.h key-proto.h misc-proto.h misc.h +noinst_HEADERS = \ + auth-proto.h auth.h enc-proto.h encrypt.h genget.h key-proto.h \ + misc-proto.h misc.h diff --git a/ping/Makefile.am b/ping/Makefile.am index b0c6ee3..7b36975 100644 --- a/ping/Makefile.am +++ b/ping/Makefile.am @@ -17,14 +17,21 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libicmp \ + -I$(top_srcdir)/libinetutils + +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a + bin_PROGRAMS = @ping_BUILD@ @ping6_BUILD@ EXTRA_PROGRAMS = ping ping6 -ping_LDADD = -L../libinetutils -linetutils -L../libicmp -licmp ../lib/libgnu.a -ping6_LDADD = ../lib/libgnu.a -L../libinetutils -linetutils -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libicmp \ - -I$(top_srcdir)/libinetutils +ping_LDADD = ../libicmp/libicmp.a $(LDADD) ping_SOURCES = ping.c ping_common.c ping_echo.c ping_address.c \ ping_router.c ping_timestamp.c ping_common.h ping_impl.h ping.h libping.c diff --git a/src/Makefile.am b/src/Makefile.am index fc4c950..abadcbe 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -17,9 +17,29 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. -inetdaemondir = @inetdaemondir@ +@PATHDEFS_MAKE@ # Initialise variables. +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils \ + -I$(top_srcdir)/libicmp \ + $(PATHDEF_BSHELL) $(PATHDEF_CONSOLE) $(PATHDEF_CP) \ + $(PATHDEF_DEFPATH) $(PATHDEF_DEV) $(PATHDEF_INETDCONF) \ + $(PATHDEF_INETDDIR) $(PATHDEF_INETDPID) $(PATHDEF_KLOG) \ + $(PATHDEF_LOG) $(PATHDEF_LOGCONF) $(PATHDEF_LOGCONFD) \ + $(PATHDEF_LOGIN) $(PATHDEF_LOGPID) $(PATHDEF_NOLOGIN) \ + $(PATHDEF_RLOGIN) $(PATHDEF_RSH) $(PATHDEF_TTY) \ + $(PATHDEF_UTMP) $(PATHDEF_UUCICO) + +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a \ + $(LIBUTIL) + +inetdaemondir = @inetdaemondir@ + inetdaemon_PROGRAMS = bin_PROGRAMS = EXTRA_PROGRAMS = @@ -35,6 +55,7 @@ EXTRA_PROGRAMS += logger bin_PROGRAMS += @rcp_BUILD@ rcp_SOURCES = rcp.c +rcp_LDADD = $(LDADD) $(LIBAUTH) EXTRA_PROGRAMS += rcp bin_PROGRAMS += @rexec_BUILD@ @@ -43,10 +64,12 @@ EXTRA_PROGRAMS += rexec bin_PROGRAMS += @rlogin_BUILD@ rlogin_SOURCES = rlogin.c +rlogin_LDADD = $(LDADD) $(LIBAUTH) EXTRA_PROGRAMS += rlogin bin_PROGRAMS += @rsh_BUILD@ rsh_SOURCES = rsh.c +rsh_LDADD = $(LDADD) $(LIBAUTH) EXTRA_PROGRAMS += rsh bin_PROGRAMS += @tftp_BUILD@ @@ -55,6 +78,7 @@ EXTRA_PROGRAMS += tftp bin_PROGRAMS += @traceroute_BUILD@ traceroute_SOURCES = traceroute.c +traceroute_LDADD = ../libicmp/libicmp.a $(LDADD) EXTRA_PROGRAMS += traceroute inetdaemon_PROGRAMS += @inetd_BUILD@ @@ -63,14 +87,17 @@ EXTRA_PROGRAMS += inetd inetdaemon_PROGRAMS += @rexecd_BUILD@ rexecd_SOURCES = rexecd.c +rexecd_LDADD = $(LDADD) $(LIBCRYPT) EXTRA_PROGRAMS += rexecd inetdaemon_PROGRAMS += @rlogind_BUILD@ rlogind_SOURCES = rlogind.c +rlogind_LDADD = $(LDADD) $(LIBAUTH) EXTRA_PROGRAMS += rlogind inetdaemon_PROGRAMS += @rshd_BUILD@ rshd_SOURCES = rshd.c +rshd_LDADD = $(LDADD) $(LIBAUTH) EXTRA_PROGRAMS += rshd inetdaemon_PROGRAMS += @syslogd_BUILD@ @@ -83,19 +110,9 @@ EXTRA_PROGRAMS += tftpd inetdaemon_PROGRAMS += @uucpd_BUILD@ uucpd_SOURCES = uucpd.c +uucpd_LDADD = $(LDADD) $(LIBCRYPT) EXTRA_PROGRAMS += uucpd -INCLUDES = -I$(top_srcdir)/lib -I$(top_builddir)/lib \ - -I$(top_srcdir)/libinetutils \ - -I$(top_srcdir)/libicmp - -LDADD = -L$(top_builddir)/libicmp -licmp \ - -L$(top_builddir)/libinetutils -linetutils \ - -L$(top_builddir)/lib ../lib/libgnu.a \ - $(LIBAUTH) $(LIBCRYPT) $(LIBUTIL) - -AM_CPPFLAGS = $(PATHDEF_BSHELL) $(PATHDEF_CONSOLE) $(PATHDEF_CP) $(PATHDEF_DEFPATH) $(PATHDEF_DEV) $(PATHDEF_INETDCONF) $(PATHDEF_INETDDIR) $(PATHDEF_INETDPID) $(PATHDEF_KLOG) $(PATHDEF_LOG) $(PATHDEF_LOGCONF) $(PATHDEF_LOGCONFD) $(PATHDEF_LOGIN) $(PATHDEF_LOGPID) $(PATHDEF_NOLOGIN) $(PATHDEF_RLOGIN) $(PATHDEF_RSH) $(PATHDEF_TTY) $(PATHDEF_UTMP) $(PATHDEF_UUCICO) - SUIDMODE = -o root -m 4775 install-exec-hook: @traceroute_INSTALL_HOOK@ @rsh_INSTALL_HOOK@ @rlogin_INSTALL_HOOK@ @rcp_INSTALL_HOOK@ @@ -127,5 +144,3 @@ install-rcp-hook: echo "WARNING: insufficient access; not installing rcp"; \ echo "NOTE: To install rcp run 'make install' as root"; \ fi - -@PATHDEFS_MAKE@ diff --git a/talk/Makefile.am b/talk/Makefile.am index e0f3cbc..c4804f5 100644 --- a/talk/Makefile.am +++ b/talk/Makefile.am @@ -17,6 +17,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils \ + $(NCURSES_INCLUDE) + +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a \ + $(LIBCURSES) + + bin_PROGRAMS = @talk_BUILD@ EXTRA_PROGRAMS = talk @@ -24,7 +36,3 @@ EXTRA_PROGRAMS = talk talk_SOURCES = ctl.c ctl_transact.c display.c get_addrs.c get_names.c init_disp.c invite.c io.c look_up.c msgs.c talk.c noinst_HEADERS = talk.h talk_ctl.h - -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils $(NCURSES_INCLUDE) - -LDADD = $(LIBCURSES) -L../libinetutils -linetutils ../lib/libgnu.a diff --git a/talkd/Makefile.am b/talkd/Makefile.am index e72c3d7..f3ce9ee 100644 --- a/talkd/Makefile.am +++ b/talkd/Makefile.am @@ -17,6 +17,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +@PATHDEFS_MAKE@ + +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I${top_srcdir}/libinetutils \ + $(PATHDEF_DEV) + +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a + inetdaemondir = @inetdaemondir@ inetdaemon_PROGRAMS = @talkd_BUILD@ @@ -31,10 +43,3 @@ talkd_SOURCES = \ table.c\ talkd.c\ intalkd.h - -@PATHDEFS_MAKE@ - -AM_CPPFLAGS = $(PATHDEF_DEV) -INCLUDES = -I$(top_srcdir)/lib -I../lib -I${top_srcdir}/libinetutils - -LDADD = -L../libinetutils -linetutils ../lib/libgnu.a diff --git a/telnet/Makefile.am b/telnet/Makefile.am index 8209bd6..ffb02e6 100644 --- a/telnet/Makefile.am +++ b/telnet/Makefile.am @@ -17,6 +17,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +AM_CPPFLAGS = \ + -DTERMCAP -DLINEMODE -DKLUDGELINEMODE -DENV_HACK \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils + +LDADD = \ + ../libtelnet/libtelnet.a \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a \ + $(LIBTERMCAP) $(LIBCRYPT) $(LIBAUTH) + bin_PROGRAMS = @telnet_BUILD@ EXTRA_PROGRAMS = telnet @@ -25,9 +37,3 @@ telnet_SOURCES = authenc.c commands.c main.c network.c ring.c sys_bsd.c \ telnet.c terminal.c tn3270.c utilities.c noinst_HEADERS = defines.h externs.h general.h ring.h types.h - -INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils -AM_CPPFLAGS=-DTERMCAP -DLINEMODE -DKLUDGELINEMODE -DENV_HACK - -LDADD = -L../libinetutils -L../libtelnet -linetutils \ - -ltelnet ../lib/libgnu.a $(LIBTERMCAP) $(LIBCRYPT) $(LIBAUTH) diff --git a/telnetd/Makefile.am b/telnetd/Makefile.am index bc1b000..50accd4 100644 --- a/telnetd/Makefile.am +++ b/telnetd/Makefile.am @@ -17,6 +17,22 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +@PATHDEFS_MAKE@ + +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir) \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils \ + $(INCAUTH) \ + $(PATHDEF_DEV) $(PATHDEF_TTY) $(PATHDEF_LOGIN) + +LDADD = \ + ../libtelnet/libtelnet.a \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a \ + $(LIBTERMCAP) $(LIBUTIL) $(LIBCRYPT) $(LIBAUTH) + inetdaemondir = @inetdaemondir@ inetdaemon_PROGRAMS = @telnetd_BUILD@ @@ -24,15 +40,5 @@ inetdaemon_PROGRAMS = @telnetd_BUILD@ EXTRA_PROGRAMS = telnetd telnetd_SOURCES = telnetd.c pty.c term.c utility.c state.c termstat.c slc.c -noinst_HEADERS = telnetd.h -@PATHDEFS_MAKE@ - -AM_CPPFLAGS = $(PATHDEF_DEV) $(PATHDEF_TTY) $(PATHDEF_LOGIN) -INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/lib -I../lib \ - -I$(top_srcdir)/libinetutils $(INCAUTH) - -LDADD = -L../libinetutils -linetutils \ - -L../libtelnet -ltelnet \ - ../lib/libgnu.a \ - $(LIBTERMCAP) $(LIBUTIL) $(LIBCRYPT) $(LIBAUTH) +noinst_HEADERS = telnetd.h diff --git a/tests/Makefile.am b/tests/Makefile.am index a70193d..b4fb3f4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -17,9 +17,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. -AM_CPPFLAGS = -I$(top_srcdir)/libinetutils -I$(top_srcdir)/lib +AM_CPPFLAGS = \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils -LDADD = -L../libinetutils -linetutils ../lib/libgnu.a +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a check_PROGRAMS = localhost if ENABLE_inetd diff --git a/whois/Makefile.am b/whois/Makefile.am index 819c683..a030b5c 100644 --- a/whois/Makefile.am +++ b/whois/Makefile.am @@ -17,6 +17,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see `http://www.gnu.org/licenses/'. +AM_CPPFLAGS = \ + -I../lib \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libinetutils +LDADD = \ + ../libinetutils/libinetutils.a \ + ../lib/libgnu.a + bin_PROGRAMS = @whois_BUILD@ EXTRA_PROGRAMS = whois @@ -30,9 +38,6 @@ EXTRA_DIST = as_del_list ip_del_list tld_serv_list \ noinst_HEADERS = data.h as_del.h ip_del.h tld_serv.h whois.h BUILT_SOURCES=as_del.h ip_del.h tld_serv.h -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils -LDADD = -L../libinetutils -linetutils ../lib/libgnu.a - as_del.h: $(srcdir)/as_del_list $(srcdir)/make_as_del.pl perl $(srcdir)/make_as_del.pl < $(srcdir)/as_del_list > as_del.h
