mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-02-10 17:31:56 +02:00
build: don't use recursive make to build the 'src' subdirectory
* Makefile.am (SUBDIRS): Remove 'src'. Ensure '.' is listed before 'tests' and 'gnulib-tests'. (dist-hook): Adjust: we must now tweak the top-level Makefile.in in $(distdir), not the one in the 'src/' subdir (which is gone). (include): The '$(top_srcdir)/src/local.mk' file. * build-aux/gen-lists-of-programs.sh: Adjust the generation of the automake input fragment. * tests/Makefile.am (.built-programs): Adjust. * cfg.mk (all_programs): Remove this convenience rule; it's no longer needed, now that we can rely directly on the contents of $(all_programs). (sc_option_desc_uppercase, check-programs-vs-x:): Adjust lists of prerequisites accordingly. (all-progs-but-lbracket): Simplify definition accordingly. * configure.ac ($OPTIONAL_BIN_PROGS): Adjust definition. ($OPTIONAL_PKGLIB_PROGS): Likewise. ($NO_INSTALL_PROGS_DEFAULT): Tweak definition, for consistency. (AC_CONFIG_FILES): Remove 'src/Makefile'. * src/Makefile.am: Rename ... * src/local.mk: ... like this, with a lot of adjustments. In addition ... (all_programs): ... remove this now-unneeded convenience target.
This commit is contained in:
committed by
Jim Meyering
parent
4f2e62ba9f
commit
5e60e0d37e
@@ -17,7 +17,7 @@
|
||||
|
||||
ALL_RECURSIVE_TARGETS =
|
||||
|
||||
SUBDIRS = lib src po tests gnulib-tests
|
||||
SUBDIRS = lib po . tests gnulib-tests
|
||||
|
||||
changelog_etc = \
|
||||
ChangeLog-2005 \
|
||||
@@ -92,7 +92,7 @@ BUILT_SOURCES = .version
|
||||
# See the rm_subst comment for details.
|
||||
dist-hook: gen-ChangeLog
|
||||
$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
|
||||
$(AM_V_at)perl -pi -e '$(rm_subst)' $(distdir)/src/Makefile.in
|
||||
$(AM_V_at)perl -pi -e '$(rm_subst)' $(distdir)/Makefile.in
|
||||
|
||||
gen_start_date = 2008-02-08
|
||||
.PHONY: gen-ChangeLog
|
||||
@@ -170,5 +170,6 @@ check-git-hook-script-sync:
|
||||
rm -rf $$t; \
|
||||
test $$fail = 0
|
||||
|
||||
include $(top_srcdir)/src/local.mk
|
||||
include $(top_srcdir)/doc/local.mk
|
||||
include $(top_srcdir)/man/local.mk
|
||||
|
||||
@@ -164,17 +164,18 @@ END
|
||||
;;
|
||||
1,--automake|1,--for-automake)
|
||||
echo "## $msg"
|
||||
progsdir=src
|
||||
echo no_install__progs =
|
||||
for p in $disabled_by_default_progs; do
|
||||
echo no_install__progs += $p
|
||||
echo no_install__progs += $progsdir/$p
|
||||
done
|
||||
echo build_if_possible__progs =
|
||||
for p in $build_if_possible_progs; do
|
||||
echo build_if_possible__progs += $p
|
||||
echo build_if_possible__progs += $progsdir/$p
|
||||
done
|
||||
echo default__progs =
|
||||
for p in $normal_progs; do
|
||||
echo default__progs += $p
|
||||
echo default__progs += $progsdir/$p
|
||||
done
|
||||
;;
|
||||
*)
|
||||
|
||||
13
cfg.mk
13
cfg.mk
@@ -166,12 +166,6 @@ sc_long_lines:
|
||||
sed -e "s|^|$$file:|" -e '$(FILTER_LONG_LINES)'; \
|
||||
done | grep . && { msg="$$halt" $(_sc_say_and_exit) } || :
|
||||
|
||||
# TODO: remove once the build system in 'src/' is merged with the
|
||||
# top-level one.
|
||||
.PHONY: all_programs
|
||||
all_programs:
|
||||
@cd ./src && $(MAKE) -s $@
|
||||
|
||||
# Option descriptions should not start with a capital letter.
|
||||
# One could grep source directly as follows:
|
||||
# grep -E " {2,6}-.*[^.] [A-Z][a-z]" $$($(VC_LIST_EXCEPT) | grep '\.c$$')
|
||||
@@ -183,7 +177,7 @@ sc_option_desc_uppercase:
|
||||
&& { echo 1>&2 '$@: found initial capitals in --help'; exit 1; } || :
|
||||
sc_option_desc_uppercase: $(dist_man1_MANS) \
|
||||
$(patsubst %,man/%.1,$(NO_INSTALL_PROGS_DEFAULT)) \
|
||||
all_programs
|
||||
$(all_programs)
|
||||
|
||||
# Ensure all man/*.[1x] files are present.
|
||||
ALL_RECURSIVE_TARGETS += sc_man_file_correlation
|
||||
@@ -208,13 +202,12 @@ check-x-vs-1:
|
||||
|
||||
# Writing a portable rule to generate a manpage like '[.1' would be
|
||||
# a nightmare.
|
||||
all-progs-but-lbracket = $(filter-out [, $(shell \
|
||||
(cd ./src && MAKEFLAGS= ${MAKE} -s all_programs.list)))
|
||||
all-progs-but-lbracket = $(filter-out [,$(all_programs))
|
||||
|
||||
# Ensure that for each .x file in the 'man/' subdirectory, there is a
|
||||
# corresponding coreutils program.
|
||||
.PHONY: check-programs-vs-x
|
||||
check-programs-vs-x: all_programs
|
||||
check-programs-vs-x: $(all_programs)
|
||||
@status=0; \
|
||||
for p in dummy $(all-progs-but-lbracket); do \
|
||||
test $$p = dummy && continue; \
|
||||
|
||||
18
configure.ac
18
configure.ac
@@ -438,14 +438,23 @@ MAN=`
|
||||
test x$p = x'@<:@' && continue
|
||||
echo "man/$p.1"
|
||||
done`
|
||||
# Normalize whitespace.
|
||||
MAN=`echo $MAN`
|
||||
|
||||
NO_INSTALL_PROGS_DEFAULT=$no_install_progs_default
|
||||
OPTIONAL_PKGLIB_PROGS=`
|
||||
for p in $optional_pkglib_progs; do echo src/$p; done`
|
||||
# Since this is AC_SUBST'd, Automake won't be able to perform rewrite
|
||||
# with $(EXEEXT) appending on it, so we have to do it ourselves.
|
||||
OPTIONAL_BIN_PROGS=`
|
||||
for p in $optional_bin_progs; do echo "src/$p\$(EXEEXT)"; done`
|
||||
|
||||
# Normalize whitespace.
|
||||
MAN=`echo $MAN`
|
||||
NO_INSTALL_PROGS_DEFAULT=`echo $NO_INSTALL_PROGS_DEFAULT`
|
||||
OPTIONAL_BIN_PROGS=`echo $OPTIONAL_BIN_PROGS`
|
||||
OPTIONAL_PKGLIB_PROGS=`echo $OPTIONAL_PKGLIB_PROGS`
|
||||
|
||||
AC_SUBST([NO_INSTALL_PROGS_DEFAULT])
|
||||
OPTIONAL_BIN_PROGS=`echo "$optional_bin_progs "|sed 's/ /\$(EXEEXT) /g;s/ $//'`
|
||||
AC_SUBST([OPTIONAL_BIN_PROGS])
|
||||
OPTIONAL_PKGLIB_PROGS=`echo "$optional_pkglib_progs " | sed 's/ $//'`
|
||||
AC_SUBST([OPTIONAL_PKGLIB_PROGS])
|
||||
|
||||
AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes])
|
||||
@@ -464,7 +473,6 @@ AC_CONFIG_FILES(
|
||||
Makefile
|
||||
lib/Makefile
|
||||
po/Makefile.in
|
||||
src/Makefile
|
||||
tests/Makefile
|
||||
gnulib-tests/Makefile
|
||||
)
|
||||
|
||||
560
src/Makefile.am
560
src/Makefile.am
@@ -1,560 +0,0 @@
|
||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
||||
|
||||
## Copyright (C) 1990-2012 Free Software Foundation, Inc.
|
||||
|
||||
## This program is free software: you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published by
|
||||
## the Free Software Foundation, either version 3 of the License, or
|
||||
## (at your option) any later version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
## 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_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
|
||||
|
||||
# The list of all programs (separated in different variables to express
|
||||
# the how and when they should be installed) is defined in this makefile
|
||||
# fragment, autogenerated by the 'gen-lists-of-programs.sh' auxiliary
|
||||
# script.
|
||||
include $(srcdir)/cu-progs.mk
|
||||
|
||||
EXTRA_PROGRAMS = \
|
||||
$(no_install__progs) \
|
||||
$(build_if_possible__progs) \
|
||||
$(default__progs)
|
||||
|
||||
bin_PROGRAMS = $(OPTIONAL_BIN_PROGS)
|
||||
|
||||
noinst_PROGRAMS = setuidgid getlimits
|
||||
|
||||
pkglibexec_PROGRAMS = $(OPTIONAL_PKGLIB_PROGS)
|
||||
|
||||
noinst_HEADERS = \
|
||||
chown-core.h \
|
||||
copy.h \
|
||||
cp-hash.h \
|
||||
dircolors.h \
|
||||
fiemap.h \
|
||||
find-mount-point.h \
|
||||
fs.h \
|
||||
fs-is-local.h \
|
||||
group-list.h \
|
||||
ioblksize.h \
|
||||
ls.h \
|
||||
operand2sig.h \
|
||||
prog-fprintf.h \
|
||||
remove.h \
|
||||
system.h \
|
||||
wheel-size.h \
|
||||
wheel.h \
|
||||
uname.h
|
||||
|
||||
EXTRA_DIST = dcgen dircolors.hin tac-pipe.c \
|
||||
wheel-gen.pl extract-magic c99-to-c89.diff
|
||||
BUILT_SOURCES =
|
||||
CLEANFILES = $(SCRIPTS)
|
||||
|
||||
# Also remove these sometimes-built programs.
|
||||
# For example, even when excluded, they're built via _sc_check-AUTHORS.
|
||||
CLEANFILES += $(no_install__progs)
|
||||
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/lib
|
||||
|
||||
noinst_LIBRARIES = libver.a
|
||||
nodist_libver_a_SOURCES = version.c version.h
|
||||
|
||||
# Tell the linker to omit references to unused shared libraries.
|
||||
AM_LDFLAGS = $(IGNORE_UNUSED_LIBRARIES_CFLAGS)
|
||||
|
||||
# Extra libraries needed by more than one program. Will be updated later.
|
||||
copy_ldadd =
|
||||
remove_ldadd =
|
||||
|
||||
# Sometimes, the expansion of $(LIBINTL) includes -lc which may
|
||||
# include modules defining variables like 'optind', so libcoreutils.a
|
||||
# must precede $(LIBINTL) in order to ensure we use GNU getopt.
|
||||
# But libcoreutils.a must also follow $(LIBINTL), since libintl uses
|
||||
# replacement functions defined in libcoreutils.a.
|
||||
LDADD = libver.a ../lib/libcoreutils.a $(LIBINTL) ../lib/libcoreutils.a
|
||||
|
||||
# First, list all programs, to make listing per-program libraries easier.
|
||||
# See [ below.
|
||||
arch_LDADD = $(LDADD)
|
||||
base64_LDADD = $(LDADD)
|
||||
basename_LDADD = $(LDADD)
|
||||
cat_LDADD = $(LDADD)
|
||||
chcon_LDADD = $(LDADD)
|
||||
chgrp_LDADD = $(LDADD)
|
||||
chmod_LDADD = $(LDADD)
|
||||
chown_LDADD = $(LDADD)
|
||||
chroot_LDADD = $(LDADD)
|
||||
cksum_LDADD = $(LDADD)
|
||||
comm_LDADD = $(LDADD)
|
||||
nproc_LDADD = $(LDADD)
|
||||
cp_LDADD = $(LDADD)
|
||||
csplit_LDADD = $(LDADD)
|
||||
cut_LDADD = $(LDADD)
|
||||
date_LDADD = $(LDADD)
|
||||
dd_LDADD = $(LDADD)
|
||||
df_LDADD = $(LDADD)
|
||||
# See dir_LDADD below
|
||||
dircolors_LDADD = $(LDADD)
|
||||
dirname_LDADD = $(LDADD)
|
||||
du_LDADD = $(LDADD)
|
||||
echo_LDADD = $(LDADD)
|
||||
env_LDADD = $(LDADD)
|
||||
expand_LDADD = $(LDADD)
|
||||
expr_LDADD = $(LDADD)
|
||||
factor_LDADD = $(LDADD)
|
||||
false_LDADD = $(LDADD)
|
||||
fmt_LDADD = $(LDADD)
|
||||
fold_LDADD = $(LDADD)
|
||||
getlimits_LDADD = $(LDADD)
|
||||
ginstall_LDADD = $(LDADD)
|
||||
groups_LDADD = $(LDADD)
|
||||
head_LDADD = $(LDADD)
|
||||
hostid_LDADD = $(LDADD)
|
||||
hostname_LDADD = $(LDADD)
|
||||
id_LDADD = $(LDADD)
|
||||
join_LDADD = $(LDADD)
|
||||
kill_LDADD = $(LDADD)
|
||||
link_LDADD = $(LDADD)
|
||||
ln_LDADD = $(LDADD)
|
||||
logname_LDADD = $(LDADD)
|
||||
ls_LDADD = $(LDADD)
|
||||
md5sum_LDADD = $(LDADD)
|
||||
mkdir_LDADD = $(LDADD)
|
||||
mkfifo_LDADD = $(LDADD)
|
||||
mknod_LDADD = $(LDADD)
|
||||
mktemp_LDADD = $(LDADD)
|
||||
mv_LDADD = $(LDADD)
|
||||
nice_LDADD = $(LDADD)
|
||||
nl_LDADD = $(LDADD)
|
||||
nohup_LDADD = $(LDADD)
|
||||
od_LDADD = $(LDADD)
|
||||
paste_LDADD = $(LDADD)
|
||||
pathchk_LDADD = $(LDADD)
|
||||
pinky_LDADD = $(LDADD)
|
||||
pr_LDADD = $(LDADD)
|
||||
printenv_LDADD = $(LDADD)
|
||||
printf_LDADD = $(LDADD)
|
||||
ptx_LDADD = $(LDADD)
|
||||
pwd_LDADD = $(LDADD)
|
||||
readlink_LDADD = $(LDADD)
|
||||
realpath_LDADD = $(LDADD)
|
||||
rm_LDADD = $(LDADD)
|
||||
rmdir_LDADD = $(LDADD)
|
||||
runcon_LDADD = $(LDADD)
|
||||
seq_LDADD = $(LDADD)
|
||||
setuidgid_LDADD = $(LDADD)
|
||||
sha1sum_LDADD = $(LDADD)
|
||||
sha224sum_LDADD = $(LDADD)
|
||||
sha256sum_LDADD = $(LDADD)
|
||||
sha384sum_LDADD = $(LDADD)
|
||||
sha512sum_LDADD = $(LDADD)
|
||||
shred_LDADD = $(LDADD)
|
||||
shuf_LDADD = $(LDADD)
|
||||
sleep_LDADD = $(LDADD)
|
||||
sort_LDADD = $(LDADD)
|
||||
split_LDADD = $(LDADD)
|
||||
stat_LDADD = $(LDADD)
|
||||
stdbuf_LDADD = $(LDADD)
|
||||
stty_LDADD = $(LDADD)
|
||||
sum_LDADD = $(LDADD)
|
||||
sync_LDADD = $(LDADD)
|
||||
tac_LDADD = $(LDADD)
|
||||
tail_LDADD = $(LDADD)
|
||||
tee_LDADD = $(LDADD)
|
||||
test_LDADD = $(LDADD)
|
||||
timeout_LDADD = $(LDADD)
|
||||
touch_LDADD = $(LDADD)
|
||||
tr_LDADD = $(LDADD)
|
||||
true_LDADD = $(LDADD)
|
||||
truncate_LDADD = $(LDADD)
|
||||
tsort_LDADD = $(LDADD)
|
||||
tty_LDADD = $(LDADD)
|
||||
uname_LDADD = $(LDADD)
|
||||
unexpand_LDADD = $(LDADD)
|
||||
uniq_LDADD = $(LDADD)
|
||||
unlink_LDADD = $(LDADD)
|
||||
uptime_LDADD = $(LDADD)
|
||||
users_LDADD = $(LDADD)
|
||||
# See vdir_LDADD below
|
||||
wc_LDADD = $(LDADD)
|
||||
who_LDADD = $(LDADD)
|
||||
whoami_LDADD = $(LDADD)
|
||||
yes_LDADD = $(LDADD)
|
||||
|
||||
# Synonyms. Recall that Automake transliterates '[' to '_'.
|
||||
__LDADD = $(test_LDADD)
|
||||
dir_LDADD = $(ls_LDADD)
|
||||
vdir_LDADD = $(ls_LDADD)
|
||||
|
||||
cp_LDADD += $(copy_ldadd)
|
||||
ginstall_LDADD += $(copy_ldadd)
|
||||
mv_LDADD += $(copy_ldadd)
|
||||
|
||||
mv_LDADD += $(remove_ldadd)
|
||||
rm_LDADD += $(remove_ldadd)
|
||||
|
||||
# for eaccess, euidaccess
|
||||
copy_ldadd += $(LIB_EACCESS)
|
||||
remove_ldadd += $(LIB_EACCESS)
|
||||
sort_LDADD += $(LIB_EACCESS)
|
||||
test_LDADD += $(LIB_EACCESS)
|
||||
|
||||
# for selinux use
|
||||
copy_ldadd += $(LIB_SELINUX)
|
||||
chcon_LDADD += $(LIB_SELINUX)
|
||||
ginstall_LDADD += $(LIB_SELINUX)
|
||||
id_LDADD += $(LIB_SELINUX)
|
||||
ls_LDADD += $(LIB_SELINUX)
|
||||
mkdir_LDADD += $(LIB_SELINUX)
|
||||
mkfifo_LDADD += $(LIB_SELINUX)
|
||||
mknod_LDADD += $(LIB_SELINUX)
|
||||
runcon_LDADD += $(LIB_SELINUX)
|
||||
stat_LDADD += $(LIB_SELINUX)
|
||||
|
||||
# for gettime, settime, utimecmp, utimens
|
||||
copy_ldadd += $(LIB_CLOCK_GETTIME)
|
||||
date_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
ginstall_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
ls_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
pr_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
timeout_LDADD += $(LIB_TIMER_TIME)
|
||||
touch_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
|
||||
# for gethrxtime
|
||||
dd_LDADD += $(LIB_GETHRXTIME)
|
||||
|
||||
# for cap_get_file
|
||||
ls_LDADD += $(LIB_CAP)
|
||||
|
||||
# for fdatasync
|
||||
dd_LDADD += $(LIB_FDATASYNC)
|
||||
shred_LDADD += $(LIB_FDATASYNC)
|
||||
|
||||
# for xnanosleep
|
||||
sleep_LDADD += $(LIB_NANOSLEEP)
|
||||
sort_LDADD += $(LIB_NANOSLEEP)
|
||||
tail_LDADD += $(LIB_NANOSLEEP)
|
||||
|
||||
# for various GMP functions
|
||||
expr_LDADD += $(LIB_GMP)
|
||||
factor_LDADD += $(LIB_GMP)
|
||||
|
||||
# for getloadavg
|
||||
uptime_LDADD += $(GETLOADAVG_LIBS)
|
||||
|
||||
# for various ACL functions
|
||||
copy_ldadd += $(LIB_ACL)
|
||||
ls_LDADD += $(LIB_ACL)
|
||||
|
||||
# for various xattr functions
|
||||
copy_ldadd += $(LIB_XATTR)
|
||||
|
||||
# for print_unicode_char, proper_name_utf8
|
||||
cat_LDADD += $(LIBICONV)
|
||||
cp_LDADD += $(LIBICONV)
|
||||
df_LDADD += $(LIBICONV)
|
||||
du_LDADD += $(LIBICONV)
|
||||
getlimits_LDADD += $(LIBICONV)
|
||||
printf_LDADD += $(LIBICONV)
|
||||
ptx_LDADD += $(LIBICONV)
|
||||
realpath_LDADD += $(LIBICONV)
|
||||
split_LDADD += $(LIBICONV)
|
||||
stdbuf_LDADD += $(LIBICONV)
|
||||
timeout_LDADD += $(LIBICONV)
|
||||
truncate_LDADD += $(LIBICONV)
|
||||
|
||||
# for canon_host
|
||||
pinky_LDADD += $(GETADDRINFO_LIB)
|
||||
who_LDADD += $(GETADDRINFO_LIB)
|
||||
|
||||
# for gethostname, uname
|
||||
hostname_LDADD += $(GETHOSTNAME_LIB)
|
||||
uname_LDADD += $(GETHOSTNAME_LIB)
|
||||
|
||||
# for strsignal
|
||||
kill_LDADD += $(LIBTHREAD)
|
||||
|
||||
# for pthread
|
||||
sort_LDADD += $(LIB_PTHREAD)
|
||||
|
||||
$(PROGRAMS): ../lib/libcoreutils.a
|
||||
|
||||
# Get the release year from ../lib/version-etc.c.
|
||||
RELEASE_YEAR = \
|
||||
`sed -n '/.*COPYRIGHT_YEAR = \([0-9][0-9][0-9][0-9]\) };/s//\1/p' \
|
||||
$(top_srcdir)/lib/version-etc.c`
|
||||
|
||||
copy_sources = copy.c cp-hash.c extent-scan.c extent-scan.h
|
||||
|
||||
# Use 'ginstall' in the definition of PROGRAMS and in dependencies to avoid
|
||||
# confusion with the 'install' target. The install rule transforms 'ginstall'
|
||||
# to install before applying any user-specified name transformations.
|
||||
|
||||
transform = s/ginstall/install/; $(program_transform_name)
|
||||
ginstall_SOURCES = install.c prog-fprintf.c $(copy_sources)
|
||||
|
||||
# This is for the '[' program. Automake transliterates '[' to '_'.
|
||||
__SOURCES = lbracket.c
|
||||
|
||||
cp_SOURCES = cp.c $(copy_sources)
|
||||
dir_SOURCES = ls.c ls-dir.c
|
||||
vdir_SOURCES = ls.c ls-vdir.c
|
||||
id_SOURCES = id.c group-list.c
|
||||
groups_SOURCES = groups.c group-list.c
|
||||
ls_SOURCES = ls.c ls-ls.c
|
||||
ln_SOURCES = ln.c relpath.c relpath.h
|
||||
chown_SOURCES = chown.c chown-core.c
|
||||
chgrp_SOURCES = chgrp.c chown-core.c
|
||||
kill_SOURCES = kill.c operand2sig.c
|
||||
realpath_SOURCES = realpath.c relpath.c relpath.h
|
||||
timeout_SOURCES = timeout.c operand2sig.c
|
||||
|
||||
mv_SOURCES = mv.c remove.c $(copy_sources)
|
||||
rm_SOURCES = rm.c remove.c
|
||||
|
||||
mkdir_SOURCES = mkdir.c prog-fprintf.c
|
||||
rmdir_SOURCES = rmdir.c prog-fprintf.c
|
||||
|
||||
df_SOURCES = df.c find-mount-point.c
|
||||
stat_SOURCES = stat.c find-mount-point.c
|
||||
|
||||
uname_SOURCES = uname.c uname-uname.c
|
||||
arch_SOURCES = uname.c uname-arch.c
|
||||
|
||||
md5sum_CPPFLAGS = -DHASH_ALGO_MD5=1 $(AM_CPPFLAGS)
|
||||
sha1sum_SOURCES = md5sum.c
|
||||
sha1sum_CPPFLAGS = -DHASH_ALGO_SHA1=1 $(AM_CPPFLAGS)
|
||||
sha224sum_SOURCES = md5sum.c
|
||||
sha224sum_CPPFLAGS = -DHASH_ALGO_SHA224=1 $(AM_CPPFLAGS)
|
||||
sha256sum_SOURCES = md5sum.c
|
||||
sha256sum_CPPFLAGS = -DHASH_ALGO_SHA256=1 $(AM_CPPFLAGS)
|
||||
sha384sum_SOURCES = md5sum.c
|
||||
sha384sum_CPPFLAGS = -DHASH_ALGO_SHA384=1 $(AM_CPPFLAGS)
|
||||
sha512sum_SOURCES = md5sum.c
|
||||
sha512sum_CPPFLAGS = -DHASH_ALGO_SHA512=1 $(AM_CPPFLAGS)
|
||||
|
||||
ginstall_CPPFLAGS = -DENABLE_MATCHPATHCON=1 $(AM_CPPFLAGS)
|
||||
|
||||
# Ensure we don't link against libcoreutils.a as that lib is
|
||||
# not compiled with -fPIC which causes issues on 64 bit at least
|
||||
libstdbuf_so_LDADD =
|
||||
|
||||
# Note libstdbuf is only compiled if GCC is available
|
||||
# (as per the check in configure.ac), so these flags should be available.
|
||||
# libtool is probably required to relax this dependency.
|
||||
libstdbuf_so_LDFLAGS = -shared
|
||||
libstdbuf_so_CFLAGS = -fPIC $(AM_CFLAGS)
|
||||
|
||||
BUILT_SOURCES += dircolors.h
|
||||
dircolors.h: dcgen dircolors.hin
|
||||
$(AM_V_GEN)rm -f $@ $@-t
|
||||
$(AM_V_at)$(PERL) -w -- $(srcdir)/dcgen $(srcdir)/dircolors.hin > $@-t
|
||||
$(AM_V_at)chmod a-w $@-t
|
||||
$(AM_V_at)mv $@-t $@
|
||||
|
||||
wheel_size = 5
|
||||
|
||||
BUILT_SOURCES += wheel-size.h
|
||||
wheel-size.h: Makefile.am
|
||||
$(AM_V_GEN)rm -f $@ $@-t
|
||||
$(AM_V_at)echo '#define WHEEL_SIZE $(wheel_size)' > $@-t
|
||||
$(AM_V_at)chmod a-w $@-t
|
||||
$(AM_V_at)mv $@-t $@
|
||||
|
||||
BUILT_SOURCES += wheel.h
|
||||
wheel.h: wheel-gen.pl Makefile.am
|
||||
$(AM_V_GEN)rm -f $@ $@-t
|
||||
$(AM_V_at)$(srcdir)/wheel-gen.pl $(wheel_size) > $@-t
|
||||
$(AM_V_at)chmod a-w $@-t
|
||||
$(AM_V_at)mv $@-t $@
|
||||
|
||||
# false exits nonzero even with --help or --version.
|
||||
# test doesn't support --help or --version.
|
||||
# Tell automake to exempt then from that installcheck test.
|
||||
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = false test
|
||||
|
||||
# Compare fs.h with the list of file system names/magic-numbers in the
|
||||
# Linux statfs man page. This target prints any new name/number pairs.
|
||||
# Also compare against /usr/include/linux/magic.h
|
||||
.PHONY: fs-magic-compare
|
||||
fs-magic-compare: fs-magic fs-kernel-magic fs-def
|
||||
join -v1 -t@ fs-magic fs-def
|
||||
join -v1 -t@ fs-kernel-magic fs-def
|
||||
|
||||
CLEANFILES += fs-def
|
||||
fs-def: fs.h
|
||||
grep '^# *define ' fs.h | $(ASSORT) > $@-t && mv $@-t $@
|
||||
|
||||
# Massage bits of the statfs man page and definitions from
|
||||
# /usr/include/linux/magic.h to be in a form consistent with what's in fs.h.
|
||||
fs_normalize_perl_subst = \
|
||||
-e 's/MINIX_SUPER_MAGIC\b/MINIX/;' \
|
||||
-e 's/MINIX_SUPER_MAGIC2\b/MINIX_30/;' \
|
||||
-e 's/MINIX2_SUPER_MAGIC\b/MINIX_V2/;' \
|
||||
-e 's/MINIX2_SUPER_MAGIC2\b/MINIX_V2_30/;' \
|
||||
-e 's/MINIX3_SUPER_MAGIC\b/MINIX_V3/;' \
|
||||
-e 's/CIFS_MAGIC_NUMBER/CIFS/;' \
|
||||
-e 's/(_SUPER)?_MAGIC//;' \
|
||||
-e 's/\s+0x(\S+)/" 0x" . uc $$1/e;' \
|
||||
-e 's/(\s+0x)(\X{3})\b/$${1}0$$2/;' \
|
||||
-e 's/(\s+0x)(\X{6})\b/$${1}00$$2/;' \
|
||||
-e 's/(\s+0x)(\X{7})\b/$${1}0$$2/;' \
|
||||
-e 's/^\s+//;' \
|
||||
-e 's/^\043define\s+//;' \
|
||||
-e 's/^_(XIAFS)/$$1/;' \
|
||||
-e 's/^USBDEVICE/USBDEVFS/;' \
|
||||
-e 's/NTFS_SB/NTFS/;' \
|
||||
-e 's/^/\043 define S_MAGIC_/;' \
|
||||
-e 's,\s*/\* .*? \*/,,;'
|
||||
|
||||
CLEANFILES += fs-magic
|
||||
fs-magic: Makefile
|
||||
man statfs \
|
||||
|perl -ne '/File system types:/.../Nobody kno/ and print' \
|
||||
|grep 0x | perl -p \
|
||||
$(fs_normalize_perl_subst) \
|
||||
| grep -Ev 'S_MAGIC_EXT[34]|STACK_END' \
|
||||
| $(ASSORT) \
|
||||
> $@-t && mv $@-t $@
|
||||
|
||||
CLEANFILES += fs-kernel-magic
|
||||
fs-kernel-magic: Makefile
|
||||
perl -ne '/^#define.*0x/ and print' /usr/include/linux/magic.h \
|
||||
| perl -p \
|
||||
$(fs_normalize_perl_subst) \
|
||||
| grep -Ev 'S_MAGIC_EXT[34]|STACK_END' \
|
||||
| $(ASSORT) \
|
||||
> $@-t && mv $@-t $@
|
||||
|
||||
BUILT_SOURCES += fs-is-local.h
|
||||
fs-is-local.h: stat.c extract-magic
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)$(PERL) $(srcdir)/extract-magic --local $(srcdir)/stat.c \
|
||||
> $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
BUILT_SOURCES += fs.h
|
||||
fs.h: stat.c extract-magic
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)$(PERL) $(srcdir)/extract-magic $(srcdir)/stat.c > $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
BUILT_SOURCES += version.c
|
||||
version.c: Makefile
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)printf '#include <config.h>\n' > $@t
|
||||
$(AM_V_at)printf 'char const *Version = "$(PACKAGE_VERSION)";\n' >> $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
BUILT_SOURCES += version.h
|
||||
version.h: Makefile
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)printf 'extern char const *Version;\n' > $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
DISTCLEANFILES = version.c version.h
|
||||
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
# Sort in traditional ASCII order, regardless of the current locale;
|
||||
# otherwise we may get into trouble with distinct strings that the
|
||||
# current locale considers to be equal.
|
||||
ASSORT = LC_ALL=C sort
|
||||
|
||||
all_programs = \
|
||||
$(bin_PROGRAMS) \
|
||||
$(bin_SCRIPTS) \
|
||||
$(EXTRA_PROGRAMS)
|
||||
|
||||
built_programs.list:
|
||||
@echo $(bin_PROGRAMS) $(bin_SCRIPTS) | tr ' ' '\n' \
|
||||
| sed -e 's,$(EXEEXT)$$,,' | $(ASSORT) -u | tr '\n' ' '
|
||||
|
||||
all_programs.list:
|
||||
@echo $(all_programs) | tr ' ' '\n' | sed -e 's,$(EXEEXT)$$,,' \
|
||||
| sed /libstdbuf/d \
|
||||
| $(ASSORT) -u
|
||||
|
||||
# This is required because we have broken inter-directory dependencies:
|
||||
# in order to generate all man pages, even those for which we don't
|
||||
# install a binary, require that all programs be built at distribution time.
|
||||
dist-hook: $(all_programs)
|
||||
|
||||
# Ensure that all programs are built so we can for example
|
||||
# subsequently syntax check all man pages.
|
||||
.PHONY: all_programs
|
||||
all_programs: $(all_programs)
|
||||
|
||||
pm = progs-makefile
|
||||
pr = progs-readme
|
||||
# Ensure that the list of programs in README matches the list
|
||||
# of programs we can build.
|
||||
check: check-README check-duplicate-no-install
|
||||
.PHONY: check-README
|
||||
check-README:
|
||||
$(AM_V_GEN)rm -rf $(pr) $(pm)
|
||||
$(AM_V_at)echo $(all_programs) \
|
||||
| tr -s ' ' '\n' | sed -e 's,$(EXEEXT)$$,,;s/ginstall/install/' \
|
||||
| sed /libstdbuf/d \
|
||||
| $(ASSORT) -u > $(pm) && \
|
||||
sed -n '/^The programs .* are:/,/^[a-zA-Z]/p' $(top_srcdir)/README \
|
||||
| sed -n '/^ */s///p' | tr -s ' ' '\n' > $(pr)
|
||||
$(AM_V_at)diff $(pm) $(pr) && rm -rf $(pr) $(pm)
|
||||
|
||||
# Ensure that a by-default-not-installed program (listed in
|
||||
# $(no_install__progs) is not also listed as another $(EXTRA_PROGRAMS)
|
||||
# entry, because if that were to happen, it *would* be installed
|
||||
# by default.
|
||||
.PHONY: check-duplicate-no-install
|
||||
check-duplicate-no-install: tr
|
||||
$(AM_V_GEN)test -z "`echo '$(EXTRA_PROGRAMS)'| ./tr ' ' '\n' | uniq -d`"
|
||||
|
||||
# Ensure that the list of programs and author names is accurate.
|
||||
# We need a UTF8 locale. If a lack of locale support or a missing
|
||||
# translation inhibits printing of UTF-8 names, just skip this test.
|
||||
au_dotdot = authors-dotdot
|
||||
au_actual = authors-actual
|
||||
.PHONY: _sc_check-AUTHORS
|
||||
_sc_check-AUTHORS: $(all_programs)
|
||||
@locale=en_US.UTF-8; \
|
||||
LC_ALL=$$locale ./cat --version \
|
||||
| grep ' Torbjorn ' > /dev/null \
|
||||
&& { echo "$@: skipping this check"; exit 0; }; \
|
||||
rm -f $(au_actual) $(au_dotdot); \
|
||||
for i in `ls $(all_programs) | sed -e 's,$(EXEEXT)$$,,' \
|
||||
| sed /libstdbuf/d \
|
||||
| $(ASSORT) -u`; do \
|
||||
test "$$i" = '[' && continue; \
|
||||
exe=$$i; \
|
||||
if test "$$i" = install; then \
|
||||
exe=ginstall; \
|
||||
elif test "$$i" = test; then \
|
||||
exe='['; \
|
||||
fi; \
|
||||
LC_ALL=$$locale ./$$exe --version \
|
||||
| perl -0 -pi -e 's/,\n/, /gm' \
|
||||
| sed -n -e '/Written by /{ s//'"$$i"': /;' \
|
||||
-e 's/,* and /, /; s/\.$$//; p; }'; \
|
||||
done > $(au_actual) && \
|
||||
sed -n '/^[^ ][^ ]*:/p' $(top_srcdir)/AUTHORS > $(au_dotdot) && \
|
||||
diff $(au_actual) $(au_dotdot) && rm -f $(au_actual) $(au_dotdot)
|
||||
|
||||
# Use the just-built ./ginstall, when not cross-compiling.
|
||||
if CROSS_COMPILING
|
||||
cu_install_program = @INSTALL_PROGRAM@
|
||||
else
|
||||
cu_install_program = ./ginstall
|
||||
endif
|
||||
INSTALL_PROGRAM = $(cu_install_program)
|
||||
567
src/local.mk
Normal file
567
src/local.mk
Normal file
@@ -0,0 +1,567 @@
|
||||
# Make coreutils programs. -*-Makefile-*-
|
||||
# This is included by the top-level Makefile.am.
|
||||
|
||||
## Copyright (C) 1990-2012 Free Software Foundation, Inc.
|
||||
|
||||
## This program is free software: you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published by
|
||||
## the Free Software Foundation, either version 3 of the License, or
|
||||
## (at your option) any later version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
## 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_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
|
||||
|
||||
# The list of all programs (separated in different variables to express
|
||||
# the how and when they should be installed) is defined in this makefile
|
||||
# fragment, autogenerated by the 'gen-lists-of-programs.sh' auxiliary
|
||||
# script.
|
||||
include $(srcdir)/src/cu-progs.mk
|
||||
|
||||
EXTRA_PROGRAMS = \
|
||||
$(no_install__progs) \
|
||||
$(build_if_possible__progs) \
|
||||
$(default__progs)
|
||||
|
||||
bin_PROGRAMS = $(OPTIONAL_BIN_PROGS)
|
||||
|
||||
noinst_PROGRAMS = src/setuidgid src/getlimits
|
||||
|
||||
pkglibexec_PROGRAMS = $(OPTIONAL_PKGLIB_PROGS)
|
||||
|
||||
noinst_HEADERS = \
|
||||
src/chown-core.h \
|
||||
src/copy.h \
|
||||
src/cp-hash.h \
|
||||
src/dircolors.h \
|
||||
src/fiemap.h \
|
||||
src/find-mount-point.h \
|
||||
src/fs.h \
|
||||
src/fs-is-local.h \
|
||||
src/group-list.h \
|
||||
src/ioblksize.h \
|
||||
src/ls.h \
|
||||
src/operand2sig.h \
|
||||
src/prog-fprintf.h \
|
||||
src/remove.h \
|
||||
src/system.h \
|
||||
src/wheel-size.h \
|
||||
src/wheel.h \
|
||||
src/uname.h
|
||||
|
||||
EXTRA_DIST += \
|
||||
src/dcgen \
|
||||
src/dircolors.hin \
|
||||
src/tac-pipe.c \
|
||||
src/wheel-gen.pl \
|
||||
src/extract-magic \
|
||||
src/c99-to-c89.diff
|
||||
|
||||
CLEANFILES = $(SCRIPTS)
|
||||
|
||||
# Also remove these sometimes-built programs.
|
||||
# For example, even when excluded, they're built via _sc_check-AUTHORS.
|
||||
CLEANFILES += $(no_install__progs)
|
||||
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/lib
|
||||
|
||||
noinst_LIBRARIES = src/libver.a
|
||||
nodist_src_libver_a_SOURCES = src/version.c src/version.h
|
||||
|
||||
# Tell the linker to omit references to unused shared libraries.
|
||||
AM_LDFLAGS = $(IGNORE_UNUSED_LIBRARIES_CFLAGS)
|
||||
|
||||
# Extra libraries needed by more than one program. Will be updated later.
|
||||
copy_ldadd =
|
||||
remove_ldadd =
|
||||
|
||||
# Sometimes, the expansion of $(LIBINTL) includes -lc which may
|
||||
# include modules defining variables like 'optind', so libcoreutils.a
|
||||
# must precede $(LIBINTL) in order to ensure we use GNU getopt.
|
||||
# But libcoreutils.a must also follow $(LIBINTL), since libintl uses
|
||||
# replacement functions defined in libcoreutils.a.
|
||||
LDADD = src/libver.a lib/libcoreutils.a $(LIBINTL) lib/libcoreutils.a
|
||||
|
||||
# First, list all programs, to make listing per-program libraries easier.
|
||||
# See [ below.
|
||||
src_arch_LDADD = $(LDADD)
|
||||
src_base64_LDADD = $(LDADD)
|
||||
src_basename_LDADD = $(LDADD)
|
||||
src_cat_LDADD = $(LDADD)
|
||||
src_chcon_LDADD = $(LDADD)
|
||||
src_chgrp_LDADD = $(LDADD)
|
||||
src_chmod_LDADD = $(LDADD)
|
||||
src_chown_LDADD = $(LDADD)
|
||||
src_chroot_LDADD = $(LDADD)
|
||||
src_cksum_LDADD = $(LDADD)
|
||||
src_comm_LDADD = $(LDADD)
|
||||
src_nproc_LDADD = $(LDADD)
|
||||
src_cp_LDADD = $(LDADD)
|
||||
src_csplit_LDADD = $(LDADD)
|
||||
src_cut_LDADD = $(LDADD)
|
||||
src_date_LDADD = $(LDADD)
|
||||
src_dd_LDADD = $(LDADD)
|
||||
src_df_LDADD = $(LDADD)
|
||||
# See dir_LDADD below
|
||||
src_dircolors_LDADD = $(LDADD)
|
||||
src_dirname_LDADD = $(LDADD)
|
||||
src_du_LDADD = $(LDADD)
|
||||
src_echo_LDADD = $(LDADD)
|
||||
src_env_LDADD = $(LDADD)
|
||||
src_expand_LDADD = $(LDADD)
|
||||
src_expr_LDADD = $(LDADD)
|
||||
src_factor_LDADD = $(LDADD)
|
||||
src_false_LDADD = $(LDADD)
|
||||
src_fmt_LDADD = $(LDADD)
|
||||
src_fold_LDADD = $(LDADD)
|
||||
src_getlimits_LDADD = $(LDADD)
|
||||
src_ginstall_LDADD = $(LDADD)
|
||||
src_groups_LDADD = $(LDADD)
|
||||
src_head_LDADD = $(LDADD)
|
||||
src_hostid_LDADD = $(LDADD)
|
||||
src_hostname_LDADD = $(LDADD)
|
||||
src_id_LDADD = $(LDADD)
|
||||
src_join_LDADD = $(LDADD)
|
||||
src_kill_LDADD = $(LDADD)
|
||||
src_link_LDADD = $(LDADD)
|
||||
src_ln_LDADD = $(LDADD)
|
||||
src_logname_LDADD = $(LDADD)
|
||||
src_ls_LDADD = $(LDADD)
|
||||
src_md5sum_LDADD = $(LDADD)
|
||||
src_mkdir_LDADD = $(LDADD)
|
||||
src_mkfifo_LDADD = $(LDADD)
|
||||
src_mknod_LDADD = $(LDADD)
|
||||
src_mktemp_LDADD = $(LDADD)
|
||||
src_mv_LDADD = $(LDADD)
|
||||
src_nice_LDADD = $(LDADD)
|
||||
src_nl_LDADD = $(LDADD)
|
||||
src_nohup_LDADD = $(LDADD)
|
||||
src_od_LDADD = $(LDADD)
|
||||
src_paste_LDADD = $(LDADD)
|
||||
src_pathchk_LDADD = $(LDADD)
|
||||
src_pinky_LDADD = $(LDADD)
|
||||
src_pr_LDADD = $(LDADD)
|
||||
src_printenv_LDADD = $(LDADD)
|
||||
src_printf_LDADD = $(LDADD)
|
||||
src_ptx_LDADD = $(LDADD)
|
||||
src_pwd_LDADD = $(LDADD)
|
||||
src_readlink_LDADD = $(LDADD)
|
||||
src_realpath_LDADD = $(LDADD)
|
||||
src_rm_LDADD = $(LDADD)
|
||||
src_rmdir_LDADD = $(LDADD)
|
||||
src_runcon_LDADD = $(LDADD)
|
||||
src_seq_LDADD = $(LDADD)
|
||||
src_setuidgid_LDADD = $(LDADD)
|
||||
src_sha1sum_LDADD = $(LDADD)
|
||||
src_sha224sum_LDADD = $(LDADD)
|
||||
src_sha256sum_LDADD = $(LDADD)
|
||||
src_sha384sum_LDADD = $(LDADD)
|
||||
src_sha512sum_LDADD = $(LDADD)
|
||||
src_shred_LDADD = $(LDADD)
|
||||
src_shuf_LDADD = $(LDADD)
|
||||
src_sleep_LDADD = $(LDADD)
|
||||
src_sort_LDADD = $(LDADD)
|
||||
src_split_LDADD = $(LDADD)
|
||||
src_stat_LDADD = $(LDADD)
|
||||
src_stdbuf_LDADD = $(LDADD)
|
||||
src_stty_LDADD = $(LDADD)
|
||||
src_sum_LDADD = $(LDADD)
|
||||
src_sync_LDADD = $(LDADD)
|
||||
src_tac_LDADD = $(LDADD)
|
||||
src_tail_LDADD = $(LDADD)
|
||||
src_tee_LDADD = $(LDADD)
|
||||
src_test_LDADD = $(LDADD)
|
||||
src_timeout_LDADD = $(LDADD)
|
||||
src_touch_LDADD = $(LDADD)
|
||||
src_tr_LDADD = $(LDADD)
|
||||
src_true_LDADD = $(LDADD)
|
||||
src_truncate_LDADD = $(LDADD)
|
||||
src_tsort_LDADD = $(LDADD)
|
||||
src_tty_LDADD = $(LDADD)
|
||||
src_uname_LDADD = $(LDADD)
|
||||
src_unexpand_LDADD = $(LDADD)
|
||||
src_uniq_LDADD = $(LDADD)
|
||||
src_unlink_LDADD = $(LDADD)
|
||||
src_uptime_LDADD = $(LDADD)
|
||||
src_users_LDADD = $(LDADD)
|
||||
# See vdir_LDADD below
|
||||
src_wc_LDADD = $(LDADD)
|
||||
src_who_LDADD = $(LDADD)
|
||||
src_whoami_LDADD = $(LDADD)
|
||||
src_yes_LDADD = $(LDADD)
|
||||
|
||||
# Synonyms. Recall that Automake transliterates '[' and '/' to '_'.
|
||||
src___LDADD = $(src_test_LDADD)
|
||||
src_dir_LDADD = $(src_ls_LDADD)
|
||||
src_vdir_LDADD = $(src_ls_LDADD)
|
||||
|
||||
src_cp_LDADD += $(copy_ldadd)
|
||||
src_ginstall_LDADD += $(copy_ldadd)
|
||||
src_mv_LDADD += $(copy_ldadd)
|
||||
|
||||
src_mv_LDADD += $(remove_ldadd)
|
||||
src_rm_LDADD += $(remove_ldadd)
|
||||
|
||||
# for eaccess, euidaccess
|
||||
copy_ldadd += $(LIB_EACCESS)
|
||||
remove_ldadd += $(LIB_EACCESS)
|
||||
src_sort_LDADD += $(LIB_EACCESS)
|
||||
src_test_LDADD += $(LIB_EACCESS)
|
||||
|
||||
# for selinux use
|
||||
copy_ldadd += $(LIB_SELINUX)
|
||||
src_chcon_LDADD += $(LIB_SELINUX)
|
||||
src_ginstall_LDADD += $(LIB_SELINUX)
|
||||
src_id_LDADD += $(LIB_SELINUX)
|
||||
src_ls_LDADD += $(LIB_SELINUX)
|
||||
src_mkdir_LDADD += $(LIB_SELINUX)
|
||||
src_mkfifo_LDADD += $(LIB_SELINUX)
|
||||
src_mknod_LDADD += $(LIB_SELINUX)
|
||||
src_runcon_LDADD += $(LIB_SELINUX)
|
||||
src_stat_LDADD += $(LIB_SELINUX)
|
||||
|
||||
# for gettime, settime, utimecmp, utimens
|
||||
copy_ldadd += $(LIB_CLOCK_GETTIME)
|
||||
src_date_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
src_ginstall_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
src_ls_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
src_pr_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
src_timeout_LDADD += $(LIB_TIMER_TIME)
|
||||
src_touch_LDADD += $(LIB_CLOCK_GETTIME)
|
||||
|
||||
# for gethrxtime
|
||||
src_dd_LDADD += $(LIB_GETHRXTIME)
|
||||
|
||||
# for cap_get_file
|
||||
src_ls_LDADD += $(LIB_CAP)
|
||||
|
||||
# for fdatasync
|
||||
src_dd_LDADD += $(LIB_FDATASYNC)
|
||||
src_shred_LDADD += $(LIB_FDATASYNC)
|
||||
|
||||
# for xnanosleep
|
||||
src_sleep_LDADD += $(LIB_NANOSLEEP)
|
||||
src_sort_LDADD += $(LIB_NANOSLEEP)
|
||||
src_tail_LDADD += $(LIB_NANOSLEEP)
|
||||
|
||||
# for various GMP functions
|
||||
src_expr_LDADD += $(LIB_GMP)
|
||||
src_factor_LDADD += $(LIB_GMP)
|
||||
|
||||
# for getloadavg
|
||||
src_uptime_LDADD += $(GETLOADAVG_LIBS)
|
||||
|
||||
# for various ACL functions
|
||||
copy_ldadd += $(LIB_ACL)
|
||||
src_ls_LDADD += $(LIB_ACL)
|
||||
|
||||
# for various xattr functions
|
||||
copy_ldadd += $(LIB_XATTR)
|
||||
|
||||
# for print_unicode_char, proper_name_utf8
|
||||
src_cat_LDADD += $(LIBICONV)
|
||||
src_cp_LDADD += $(LIBICONV)
|
||||
src_df_LDADD += $(LIBICONV)
|
||||
src_du_LDADD += $(LIBICONV)
|
||||
src_getlimits_LDADD += $(LIBICONV)
|
||||
src_printf_LDADD += $(LIBICONV)
|
||||
src_ptx_LDADD += $(LIBICONV)
|
||||
src_realpath_LDADD += $(LIBICONV)
|
||||
src_split_LDADD += $(LIBICONV)
|
||||
src_stdbuf_LDADD += $(LIBICONV)
|
||||
src_timeout_LDADD += $(LIBICONV)
|
||||
src_truncate_LDADD += $(LIBICONV)
|
||||
|
||||
# for canon_host
|
||||
src_pinky_LDADD += $(GETADDRINFO_LIB)
|
||||
src_who_LDADD += $(GETADDRINFO_LIB)
|
||||
|
||||
# for gethostname, uname
|
||||
src_hostname_LDADD += $(GETHOSTNAME_LIB)
|
||||
src_uname_LDADD += $(GETHOSTNAME_LIB)
|
||||
|
||||
# for strsignal
|
||||
src_kill_LDADD += $(LIBTHREAD)
|
||||
|
||||
# for pthread
|
||||
src_sort_LDADD += $(LIB_PTHREAD)
|
||||
|
||||
$(PROGRAMS): lib/libcoreutils.a
|
||||
|
||||
# Get the release year from lib/version-etc.c.
|
||||
RELEASE_YEAR = \
|
||||
`sed -n '/.*COPYRIGHT_YEAR = \([0-9][0-9][0-9][0-9]\) };/s//\1/p' \
|
||||
$(top_srcdir)/lib/version-etc.c`
|
||||
|
||||
copy_sources = \
|
||||
src/copy.c \
|
||||
src/cp-hash.c \
|
||||
src/extent-scan.c \
|
||||
src/extent-scan.h
|
||||
|
||||
# Use 'ginstall' in the definition of PROGRAMS and in dependencies to avoid
|
||||
# confusion with the 'install' target. The install rule transforms 'ginstall'
|
||||
# to install before applying any user-specified name transformations.
|
||||
|
||||
transform = s/ginstall/install/; $(program_transform_name)
|
||||
src_ginstall_SOURCES = src/install.c src/prog-fprintf.c $(copy_sources)
|
||||
|
||||
# This is for the '[' program. Automake transliterates '[' and '/' to '_'.
|
||||
src___SOURCES = src/lbracket.c
|
||||
|
||||
src_cp_SOURCES = src/cp.c $(copy_sources)
|
||||
src_dir_SOURCES = src/ls.c src/ls-dir.c
|
||||
src_vdir_SOURCES = src/ls.c src/ls-vdir.c
|
||||
src_id_SOURCES = src/id.c src/group-list.c
|
||||
src_groups_SOURCES = src/groups.c src/group-list.c
|
||||
src_ls_SOURCES = src/ls.c src/ls-ls.c
|
||||
src_ln_SOURCES = src/ln.c src/relpath.c src/relpath.h
|
||||
src_chown_SOURCES = src/chown.c src/chown-core.c
|
||||
src_chgrp_SOURCES = src/chgrp.c src/chown-core.c
|
||||
src_kill_SOURCES = src/kill.c src/operand2sig.c
|
||||
src_realpath_SOURCES = src/realpath.c src/relpath.c src/relpath.h
|
||||
src_timeout_SOURCES = src/timeout.c src/operand2sig.c
|
||||
|
||||
src_mv_SOURCES = src/mv.c src/remove.c $(copy_sources)
|
||||
src_rm_SOURCES = src/rm.c src/remove.c
|
||||
|
||||
src_mkdir_SOURCES = src/mkdir.c src/prog-fprintf.c
|
||||
src_rmdir_SOURCES = src/rmdir.c src/prog-fprintf.c
|
||||
|
||||
src_df_SOURCES = src/df.c src/find-mount-point.c
|
||||
src_stat_SOURCES = src/stat.c src/find-mount-point.c
|
||||
|
||||
src_uname_SOURCES = src/uname.c src/uname-uname.c
|
||||
src_arch_SOURCES = src/uname.c src/uname-arch.c
|
||||
|
||||
src_md5sum_CPPFLAGS = -DHASH_ALGO_MD5=1 $(AM_CPPFLAGS)
|
||||
src_sha1sum_SOURCES = src/md5sum.c
|
||||
src_sha1sum_CPPFLAGS = -DHASH_ALGO_SHA1=1 $(AM_CPPFLAGS)
|
||||
src_sha224sum_SOURCES = src/md5sum.c
|
||||
src_sha224sum_CPPFLAGS = -DHASH_ALGO_SHA224=1 $(AM_CPPFLAGS)
|
||||
src_sha256sum_SOURCES = src/md5sum.c
|
||||
src_sha256sum_CPPFLAGS = -DHASH_ALGO_SHA256=1 $(AM_CPPFLAGS)
|
||||
src_sha384sum_SOURCES = src/md5sum.c
|
||||
src_sha384sum_CPPFLAGS = -DHASH_ALGO_SHA384=1 $(AM_CPPFLAGS)
|
||||
src_sha512sum_SOURCES = src/md5sum.c
|
||||
src_sha512sum_CPPFLAGS = -DHASH_ALGO_SHA512=1 $(AM_CPPFLAGS)
|
||||
|
||||
src_ginstall_CPPFLAGS = -DENABLE_MATCHPATHCON=1 $(AM_CPPFLAGS)
|
||||
|
||||
# Ensure we don't link against libcoreutils.a as that lib is
|
||||
# not compiled with -fPIC which causes issues on 64 bit at least
|
||||
src_libstdbuf_so_LDADD =
|
||||
|
||||
# Note libstdbuf is only compiled if GCC is available
|
||||
# (as per the check in configure.ac), so these flags should be available.
|
||||
# libtool is probably required to relax this dependency.
|
||||
src_libstdbuf_so_LDFLAGS = -shared
|
||||
src_libstdbuf_so_CFLAGS = -fPIC $(AM_CFLAGS)
|
||||
|
||||
BUILT_SOURCES += src/dircolors.h
|
||||
src/dircolors.h: src/dcgen src/dircolors.hin
|
||||
$(AM_V_GEN)rm -f $@ $@-t
|
||||
$(AM_V_at)$(PERL) -w -- $(srcdir)/src/dcgen \
|
||||
$(srcdir)/src/dircolors.hin > $@-t
|
||||
$(AM_V_at)chmod a-w $@-t
|
||||
$(AM_V_at)mv $@-t $@
|
||||
|
||||
wheel_size = 5
|
||||
|
||||
BUILT_SOURCES += src/wheel-size.h
|
||||
src/wheel-size.h: Makefile.am
|
||||
$(AM_V_GEN)rm -f $@ $@-t
|
||||
$(AM_V_at)echo '#define WHEEL_SIZE $(wheel_size)' > $@-t
|
||||
$(AM_V_at)chmod a-w $@-t
|
||||
$(AM_V_at)mv $@-t $@
|
||||
|
||||
BUILT_SOURCES += src/wheel.h
|
||||
src/wheel.h: src/wheel-gen.pl Makefile.am
|
||||
$(AM_V_GEN)rm -f $@ $@-t
|
||||
$(AM_V_at)$(srcdir)/src/wheel-gen.pl $(wheel_size) > $@-t
|
||||
$(AM_V_at)chmod a-w $@-t
|
||||
$(AM_V_at)mv $@-t $@
|
||||
|
||||
# false exits nonzero even with --help or --version.
|
||||
# test doesn't support --help or --version.
|
||||
# Tell automake to exempt then from that installcheck test.
|
||||
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = src/false src/test
|
||||
|
||||
# Compare fs.h with the list of file system names/magic-numbers in the
|
||||
# Linux statfs man page. This target prints any new name/number pairs.
|
||||
# Also compare against /usr/include/linux/magic.h
|
||||
.PHONY: src/fs-magic-compare
|
||||
src/fs-magic-compare: src/fs-magic src/fs-kernel-magic src/fs-def
|
||||
join -v1 -t@ src/fs-magic src/fs-def
|
||||
join -v1 -t@ src/fs-kernel-magic src/fs-def
|
||||
|
||||
CLEANFILES += src/fs-def
|
||||
src/fs-def: src/fs.h
|
||||
grep '^# *define ' src/fs.h | $(ASSORT) > $@-t && mv $@-t $@
|
||||
|
||||
# Massage bits of the statfs man page and definitions from
|
||||
# /usr/include/linux/magic.h to be in a form consistent with what's in fs.h.
|
||||
fs_normalize_perl_subst = \
|
||||
-e 's/MINIX_SUPER_MAGIC\b/MINIX/;' \
|
||||
-e 's/MINIX_SUPER_MAGIC2\b/MINIX_30/;' \
|
||||
-e 's/MINIX2_SUPER_MAGIC\b/MINIX_V2/;' \
|
||||
-e 's/MINIX2_SUPER_MAGIC2\b/MINIX_V2_30/;' \
|
||||
-e 's/MINIX3_SUPER_MAGIC\b/MINIX_V3/;' \
|
||||
-e 's/CIFS_MAGIC_NUMBER/CIFS/;' \
|
||||
-e 's/(_SUPER)?_MAGIC//;' \
|
||||
-e 's/\s+0x(\S+)/" 0x" . uc $$1/e;' \
|
||||
-e 's/(\s+0x)(\X{3})\b/$${1}0$$2/;' \
|
||||
-e 's/(\s+0x)(\X{6})\b/$${1}00$$2/;' \
|
||||
-e 's/(\s+0x)(\X{7})\b/$${1}0$$2/;' \
|
||||
-e 's/^\s+//;' \
|
||||
-e 's/^\043define\s+//;' \
|
||||
-e 's/^_(XIAFS)/$$1/;' \
|
||||
-e 's/^USBDEVICE/USBDEVFS/;' \
|
||||
-e 's/NTFS_SB/NTFS/;' \
|
||||
-e 's/^/\043 define S_MAGIC_/;' \
|
||||
-e 's,\s*/\* .*? \*/,,;'
|
||||
|
||||
CLEANFILES += src/fs-magic
|
||||
src/fs-magic: Makefile
|
||||
man statfs \
|
||||
|perl -ne '/File system types:/.../Nobody kno/ and print' \
|
||||
|grep 0x | perl -p \
|
||||
$(fs_normalize_perl_subst) \
|
||||
| grep -Ev 'S_MAGIC_EXT[34]|STACK_END' \
|
||||
| $(ASSORT) \
|
||||
> $@-t && mv $@-t $@
|
||||
|
||||
CLEANFILES += src/fs-kernel-magic
|
||||
src/fs-kernel-magic: Makefile
|
||||
perl -ne '/^#define.*0x/ and print' /usr/include/linux/magic.h \
|
||||
| perl -p \
|
||||
$(fs_normalize_perl_subst) \
|
||||
| grep -Ev 'S_MAGIC_EXT[34]|STACK_END' \
|
||||
| $(ASSORT) \
|
||||
> $@-t && mv $@-t $@
|
||||
|
||||
BUILT_SOURCES += src/fs-is-local.h
|
||||
src/fs-is-local.h: src/stat.c src/extract-magic
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)$(PERL) $(srcdir)/src/extract-magic \
|
||||
--local $(srcdir)/src/stat.c > $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
BUILT_SOURCES += src/fs.h
|
||||
src/fs.h: src/stat.c src/extract-magic
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)$(PERL) $(srcdir)/src/extract-magic \
|
||||
$(srcdir)/src/stat.c > $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
BUILT_SOURCES += src/version.c
|
||||
src/version.c: Makefile
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)printf '#include <config.h>\n' > $@t
|
||||
$(AM_V_at)printf 'char const *Version = "$(PACKAGE_VERSION)";\n' >> $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
BUILT_SOURCES += src/version.h
|
||||
src/version.h: Makefile
|
||||
$(AM_V_GEN)rm -f $@
|
||||
$(AM_V_at)printf 'extern char const *Version;\n' > $@t
|
||||
$(AM_V_at)chmod a-w $@t
|
||||
$(AM_V_at)mv $@t $@
|
||||
|
||||
DISTCLEANFILES += src/version.c src/version.h
|
||||
MAINTAINERCLEANFILES += $(BUILT_SOURCES)
|
||||
|
||||
all_programs = \
|
||||
$(bin_PROGRAMS) \
|
||||
$(bin_SCRIPTS) \
|
||||
$(EXTRA_PROGRAMS)
|
||||
|
||||
built_programs.list:
|
||||
@echo $(bin_PROGRAMS) $(bin_SCRIPTS) | tr ' ' '\n' \
|
||||
| sed -e 's,$(EXEEXT)$$,,' -e 's,^src/,,' \
|
||||
| $(ASSORT) -u | tr '\n' ' '
|
||||
|
||||
all_programs.list:
|
||||
@echo $(all_programs) | tr ' ' '\n' | sed -e 's,$(EXEEXT)$$,,' \
|
||||
| sed /libstdbuf/d \
|
||||
| $(ASSORT) -u
|
||||
|
||||
# This is required because we have broken inter-directory dependencies:
|
||||
# in order to generate all man pages, even those for which we don't
|
||||
# install a binary, require that all programs be built at distribution time.
|
||||
dist-hook: $(all_programs)
|
||||
|
||||
pm = progs-makefile
|
||||
pr = progs-readme
|
||||
# Ensure that the list of programs in README matches the list
|
||||
# of programs we can build.
|
||||
check: check-README check-duplicate-no-install
|
||||
.PHONY: check-README
|
||||
check-README:
|
||||
$(AM_V_GEN)rm -rf $(pr) $(pm)
|
||||
$(AM_V_at)echo $(all_programs) \
|
||||
| tr -s ' ' '\n' \
|
||||
| sed -e 's,$(EXEEXT)$$,,' \
|
||||
-e 's,^src/,,' \
|
||||
-e 's/^ginstall$$/install/' \
|
||||
| sed /libstdbuf/d \
|
||||
| $(ASSORT) -u > $(pm) && \
|
||||
sed -n '/^The programs .* are:/,/^[a-zA-Z]/p' $(top_srcdir)/README \
|
||||
| sed -n '/^ */s///p' | tr -s ' ' '\n' > $(pr)
|
||||
$(AM_V_at)diff $(pm) $(pr) && rm -rf $(pr) $(pm)
|
||||
|
||||
# Ensure that a by-default-not-installed program (listed in
|
||||
# $(no_install__progs) is not also listed as another $(EXTRA_PROGRAMS)
|
||||
# entry, because if that were to happen, it *would* be installed
|
||||
# by default.
|
||||
.PHONY: check-duplicate-no-install
|
||||
check-duplicate-no-install: src/tr
|
||||
$(AM_V_GEN)test -z "`echo '$(EXTRA_PROGRAMS)' | tr ' ' '\n' | uniq -d`"
|
||||
|
||||
# Ensure that the list of programs and author names is accurate.
|
||||
# We need a UTF8 locale. If a lack of locale support or a missing
|
||||
# translation inhibits printing of UTF-8 names, just skip this test.
|
||||
au_dotdot = authors-dotdot
|
||||
au_actual = authors-actual
|
||||
.PHONY: _sc_check-AUTHORS
|
||||
_sc_check-AUTHORS: $(all_programs)
|
||||
@locale=en_US.UTF-8; \
|
||||
LC_ALL=$$locale ./cat --version \
|
||||
| grep ' Torbjorn ' > /dev/null \
|
||||
&& { echo "$@: skipping this check"; exit 0; }; \
|
||||
rm -f $(au_actual) $(au_dotdot); \
|
||||
for i in `ls $(all_programs) \
|
||||
| sed -e 's,^src/,,' -e 's,$(EXEEXT)$$,,' \
|
||||
| sed /libstdbuf/d \
|
||||
| $(ASSORT) -u`; do \
|
||||
test "$$i" = '[' && continue; \
|
||||
exe=$$i; \
|
||||
if test "$$i" = install; then \
|
||||
exe=ginstall; \
|
||||
elif test "$$i" = test; then \
|
||||
exe='['; \
|
||||
fi; \
|
||||
LC_ALL=$$locale ./$$exe --version \
|
||||
| perl -0 -pi -e 's/,\n/, /gm' \
|
||||
| sed -n -e '/Written by /{ s//'"$$i"': /;' \
|
||||
-e 's/,* and /, /; s/\.$$//; p; }'; \
|
||||
done > $(au_actual) && \
|
||||
sed -n '/^[^ ][^ ]*:/p' $(top_srcdir)/AUTHORS > $(au_dotdot) && \
|
||||
diff $(au_actual) $(au_dotdot) && rm -f $(au_actual) $(au_dotdot)
|
||||
|
||||
# Use the just-built 'ginstall', when not cross-compiling.
|
||||
if CROSS_COMPILING
|
||||
cu_install_program = @INSTALL_PROGRAM@
|
||||
else
|
||||
cu_install_program = src/ginstall
|
||||
endif
|
||||
INSTALL_PROGRAM = $(cu_install_program)
|
||||
@@ -40,10 +40,10 @@ check: vc_exe_in_TESTS
|
||||
CLEANFILES =
|
||||
CLEANFILES += .built-programs
|
||||
check_DATA = .built-programs
|
||||
.built-programs: $(top_srcdir)/src/Makefile.am
|
||||
$(AM_V_GEN)(cd $(top_builddir)/src \
|
||||
.built-programs: $(top_srcdir)/Makefile.am
|
||||
$(AM_V_GEN)(cd $(top_builddir) \
|
||||
&& MAKEFLAGS= $(MAKE) -s built_programs.list) \
|
||||
> $@-t && mv $@-t $@
|
||||
| sed s,^src/,, > $@-t && mv $@-t $@
|
||||
|
||||
TEST_EXTENSIONS = .sh .pl .xpl
|
||||
|
||||
|
||||
Reference in New Issue
Block a user