Merge branch 'fix_parallel_build' into 'master'

build-sys: use proper dependencies on libproc.la

Use `LDADD` or `*_LDADD` instead of `AM_LDFLAGS` to refer to `libproc.la`.

This is recommended in the automake manual:
http://www.gnu.org/software/automake/manual/html_node/Linking.html

Before this commit, parallel builds may break, as there is no explicit dependency to ensure the library is built before the binaries that try to link to it.

Tested by running `make -jNN` repeatedly for different levels of parallelism to ensure the build works. Also checked that `make check` and `make distcheck` still work as expected. Also made sure that a parallel make invocation works with `make -j distcheck`.

Reported-by: Jim Warner <james.warner@comcast.net>

Signed-off-by: Filipe Brandenburger <filbranden@google.com>

See merge request !2
This commit is contained in:
Craig Small 2015-05-13 11:57:10 +00:00
commit 2753a8f3db

View File

@ -14,7 +14,7 @@ SUBDIRS = \
testsuite
AM_CFLAGS = -Iproc
AM_LDFLAGS = ./proc/libprocps.la
LDADD = ./proc/libprocps.la
transform = s/pscommand/ps/; $(program_transform_name)
@ -93,16 +93,16 @@ dist_man_MANS += \
watch.1 \
top/top.1
slabtop_SOURCES = slabtop.c lib/strutils.c lib/fileutils.c
slabtop_LDADD = @NCURSES_LIBS@
slabtop_LDADD = $(LDADD) @NCURSES_LIBS@
watch_SOURCES = watch.c lib/strutils.c lib/fileutils.c
watch_LDADD = @WATCH_NCURSES_LIBS@
watch_LDADD = $(LDADD) @WATCH_NCURSES_LIBS@
top_top_SOURCES = \
top/top.h \
top/top.c \
top/top_nls.h \
top/top_nls.c \
lib/fileutils.c
top_top_LDADD = @NCURSES_LIBS@ $(DL_LIB)
top_top_LDADD = $(LDADD) @NCURSES_LIBS@ $(DL_LIB)
dist_procpsng_DATA += \
top/README.top
endif
@ -220,8 +220,11 @@ ps_pscommand_SOURCES = \
noinst_PROGRAMS = lib/test_strutils lib/test_fileutils lib/test_nsutils
lib_test_strutils_SOURCES = lib/test_strutils.c lib/strutils.c
lib_test_strutils_LDADD =
lib_test_fileutils_SOURCES = lib/test_fileutils.c lib/fileutils.c
lib_test_fileutils_LDADD =
lib_test_nsutils_SOURCES = lib/test_nsutils.c lib/nsutils.c
lib_test_nsutils_LDADD =
if EXAMPLE_FILES
sysconf_DATA = sysctl.conf