ls: fix possible incorrect exit status when recursing directories
[coreutils.git] / src / local.mk
blob646fbada191e8b05e9e822009f58ab2f91b9a617
1 # Make coreutils programs. -*-Makefile-*-
2 # This is included by the top-level Makefile.am.
4 ## Copyright (C) 1990-2013 Free Software Foundation, Inc.
6 ## This program is free software: you can redistribute it and/or modify
7 ## it under the terms of the GNU General Public License as published by
8 ## the Free Software Foundation, either version 3 of the License, or
9 ## (at your option) any later version.
11 ## This program is distributed in the hope that it will be useful,
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ## GNU General Public License for more details.
16 ## You should have received a copy of the GNU General Public License
17 ## along with this program. If not, see <http://www.gnu.org/licenses/>.
19 # FIXME: once lib/ and gnulib-tests/ are also converted, hoist to Makefile.am
20 AM_CFLAGS = $(WERROR_CFLAGS)
22 # The list of all programs (separated in different variables to express
23 # the how and when they should be installed) is defined in this makefile
24 # fragment, autogenerated by the 'gen-lists-of-programs.sh' auxiliary
25 # script.
26 include $(srcdir)/src/cu-progs.mk
28 EXTRA_PROGRAMS = \
29 $(no_install__progs) \
30 $(build_if_possible__progs) \
31 $(default__progs)
33 # The user can tweak these lists at configure time.
34 bin_PROGRAMS = @bin_PROGRAMS@
35 pkglibexec_PROGRAMS = @pkglibexec_PROGRAMS@
37 # Needed by the testsuite.
38 noinst_PROGRAMS = \
39 src/getlimits \
40 src/make-prime-list \
41 src/setuidgid
43 noinst_HEADERS = \
44 src/chown-core.h \
45 src/copy.h \
46 src/cp-hash.h \
47 src/dircolors.h \
48 src/fiemap.h \
49 src/find-mount-point.h \
50 src/fs.h \
51 src/fs-is-local.h \
52 src/group-list.h \
53 src/ioblksize.h \
54 src/longlong.h \
55 src/ls.h \
56 src/operand2sig.h \
57 src/prog-fprintf.h \
58 src/remove.h \
59 src/system.h \
60 src/uname.h
62 EXTRA_DIST += \
63 src/dcgen \
64 src/dircolors.hin \
65 src/primes.h \
66 src/tac-pipe.c \
67 src/extract-magic \
68 src/c99-to-c89.diff
70 CLEANFILES += $(SCRIPTS)
72 # Also remove these sometimes-built programs.
73 # For example, even when excluded, they're built via 'sc_check-AUTHORS'
74 # or 'dist'.
75 CLEANFILES += $(no_install__progs)
77 noinst_LIBRARIES += src/libver.a
78 nodist_src_libver_a_SOURCES = src/version.c src/version.h
80 # Tell the linker to omit references to unused shared libraries.
81 AM_LDFLAGS = $(IGNORE_UNUSED_LIBRARIES_CFLAGS)
83 # Extra libraries needed by more than one program. Will be updated later.
84 copy_ldadd =
85 remove_ldadd =
87 # Sometimes, the expansion of $(LIBINTL) includes -lc which may
88 # include modules defining variables like 'optind', so libcoreutils.a
89 # must precede $(LIBINTL) in order to ensure we use GNU getopt.
90 # But libcoreutils.a must also follow $(LIBINTL), since libintl uses
91 # replacement functions defined in libcoreutils.a.
92 LDADD = src/libver.a lib/libcoreutils.a $(LIBINTL) lib/libcoreutils.a
94 # First, list all programs, to make listing per-program libraries easier.
95 # See [ below.
96 src_arch_LDADD = $(LDADD)
97 src_base64_LDADD = $(LDADD)
98 src_basename_LDADD = $(LDADD)
99 src_cat_LDADD = $(LDADD)
100 src_chcon_LDADD = $(LDADD)
101 src_chgrp_LDADD = $(LDADD)
102 src_chmod_LDADD = $(LDADD)
103 src_chown_LDADD = $(LDADD)
104 src_chroot_LDADD = $(LDADD)
105 src_cksum_LDADD = $(LDADD)
106 src_comm_LDADD = $(LDADD)
107 src_nproc_LDADD = $(LDADD)
108 src_cp_LDADD = $(LDADD)
109 src_csplit_LDADD = $(LDADD)
110 src_cut_LDADD = $(LDADD)
111 src_date_LDADD = $(LDADD)
112 src_dd_LDADD = $(LDADD)
113 src_df_LDADD = $(LDADD)
114 # See dir_LDADD below
115 src_dircolors_LDADD = $(LDADD)
116 src_dirname_LDADD = $(LDADD)
117 src_du_LDADD = $(LDADD)
118 src_echo_LDADD = $(LDADD)
119 src_env_LDADD = $(LDADD)
120 src_expand_LDADD = $(LDADD)
121 src_expr_LDADD = $(LDADD)
122 src_factor_LDADD = $(LDADD)
123 src_false_LDADD = $(LDADD)
124 src_fmt_LDADD = $(LDADD)
125 src_fold_LDADD = $(LDADD)
126 src_getlimits_LDADD = $(LDADD)
127 src_ginstall_LDADD = $(LDADD)
128 src_groups_LDADD = $(LDADD)
129 src_head_LDADD = $(LDADD)
130 src_hostid_LDADD = $(LDADD)
131 src_hostname_LDADD = $(LDADD)
132 src_id_LDADD = $(LDADD)
133 src_join_LDADD = $(LDADD)
134 src_kill_LDADD = $(LDADD)
135 src_link_LDADD = $(LDADD)
136 src_ln_LDADD = $(LDADD)
137 src_logname_LDADD = $(LDADD)
138 src_ls_LDADD = $(LDADD)
140 # This must *not* depend on anything in lib/, since it is used to generate
141 # src/primes.h. If it depended on libcoreutils.a, that would pull all lib/*.c
142 # into BUILT_SOURCES.
143 src_make_prime_list_LDADD =
145 src_md5sum_LDADD = $(LDADD)
146 src_mkdir_LDADD = $(LDADD)
147 src_mkfifo_LDADD = $(LDADD)
148 src_mknod_LDADD = $(LDADD)
149 src_mktemp_LDADD = $(LDADD)
150 src_mv_LDADD = $(LDADD)
151 src_nice_LDADD = $(LDADD)
152 src_nl_LDADD = $(LDADD)
153 src_nohup_LDADD = $(LDADD)
154 src_od_LDADD = $(LDADD)
155 src_paste_LDADD = $(LDADD)
156 src_pathchk_LDADD = $(LDADD)
157 src_pinky_LDADD = $(LDADD)
158 src_pr_LDADD = $(LDADD)
159 src_printenv_LDADD = $(LDADD)
160 src_printf_LDADD = $(LDADD)
161 src_ptx_LDADD = $(LDADD)
162 src_pwd_LDADD = $(LDADD)
163 src_readlink_LDADD = $(LDADD)
164 src_realpath_LDADD = $(LDADD)
165 src_rm_LDADD = $(LDADD)
166 src_rmdir_LDADD = $(LDADD)
167 src_runcon_LDADD = $(LDADD)
168 src_seq_LDADD = $(LDADD)
169 src_setuidgid_LDADD = $(LDADD)
170 src_sha1sum_LDADD = $(LDADD)
171 src_sha224sum_LDADD = $(LDADD)
172 src_sha256sum_LDADD = $(LDADD)
173 src_sha384sum_LDADD = $(LDADD)
174 src_sha512sum_LDADD = $(LDADD)
175 src_shred_LDADD = $(LDADD)
176 src_shuf_LDADD = $(LDADD)
177 src_sleep_LDADD = $(LDADD)
178 src_sort_LDADD = $(LDADD)
179 src_split_LDADD = $(LDADD)
180 src_stat_LDADD = $(LDADD)
181 src_stdbuf_LDADD = $(LDADD)
182 src_stty_LDADD = $(LDADD)
183 src_sum_LDADD = $(LDADD)
184 src_sync_LDADD = $(LDADD)
185 src_tac_LDADD = $(LDADD)
186 src_tail_LDADD = $(LDADD)
187 src_tee_LDADD = $(LDADD)
188 src_test_LDADD = $(LDADD)
189 src_timeout_LDADD = $(LDADD)
190 src_touch_LDADD = $(LDADD)
191 src_tr_LDADD = $(LDADD)
192 src_true_LDADD = $(LDADD)
193 src_truncate_LDADD = $(LDADD)
194 src_tsort_LDADD = $(LDADD)
195 src_tty_LDADD = $(LDADD)
196 src_uname_LDADD = $(LDADD)
197 src_unexpand_LDADD = $(LDADD)
198 src_uniq_LDADD = $(LDADD)
199 src_unlink_LDADD = $(LDADD)
200 src_uptime_LDADD = $(LDADD)
201 src_users_LDADD = $(LDADD)
202 # See vdir_LDADD below
203 src_wc_LDADD = $(LDADD)
204 src_who_LDADD = $(LDADD)
205 src_whoami_LDADD = $(LDADD)
206 src_yes_LDADD = $(LDADD)
208 # Synonyms. Recall that Automake transliterates '[' and '/' to '_'.
209 src___LDADD = $(src_test_LDADD)
210 src_dir_LDADD = $(src_ls_LDADD)
211 src_vdir_LDADD = $(src_ls_LDADD)
213 src_cp_LDADD += $(copy_ldadd)
214 src_ginstall_LDADD += $(copy_ldadd)
215 src_mv_LDADD += $(copy_ldadd)
217 src_mv_LDADD += $(remove_ldadd)
218 src_rm_LDADD += $(remove_ldadd)
220 # for eaccess, euidaccess
221 copy_ldadd += $(LIB_EACCESS)
222 remove_ldadd += $(LIB_EACCESS)
223 src_sort_LDADD += $(LIB_EACCESS)
224 src_test_LDADD += $(LIB_EACCESS)
226 # for selinux use
227 copy_ldadd += $(LIB_SELINUX)
228 src_chcon_LDADD += $(LIB_SELINUX)
229 src_ginstall_LDADD += $(LIB_SELINUX)
230 src_id_LDADD += $(LIB_SELINUX)
231 src_id_LDADD += $(LIB_SMACK)
232 src_ls_LDADD += $(LIB_SELINUX)
233 src_ls_LDADD += $(LIB_SMACK)
234 src_mkdir_LDADD += $(LIB_SELINUX)
235 src_mkdir_LDADD += $(LIB_SMACK)
236 src_mkfifo_LDADD += $(LIB_SELINUX)
237 src_mkfifo_LDADD += $(LIB_SMACK)
238 src_mknod_LDADD += $(LIB_SELINUX)
239 src_mknod_LDADD += $(LIB_SMACK)
240 src_runcon_LDADD += $(LIB_SELINUX)
241 src_stat_LDADD += $(LIB_SELINUX)
243 # for gettime, settime, utimecmp, utimens
244 copy_ldadd += $(LIB_CLOCK_GETTIME)
245 src_date_LDADD += $(LIB_CLOCK_GETTIME)
246 src_ginstall_LDADD += $(LIB_CLOCK_GETTIME)
247 src_ls_LDADD += $(LIB_CLOCK_GETTIME)
248 src_pr_LDADD += $(LIB_CLOCK_GETTIME)
249 src_timeout_LDADD += $(LIB_TIMER_TIME)
250 src_touch_LDADD += $(LIB_CLOCK_GETTIME)
252 # for gethrxtime
253 src_dd_LDADD += $(LIB_GETHRXTIME)
255 # for cap_get_file
256 src_ls_LDADD += $(LIB_CAP)
258 # for fdatasync
259 src_dd_LDADD += $(LIB_FDATASYNC)
260 src_shred_LDADD += $(LIB_FDATASYNC)
262 # for xnanosleep
263 src_sleep_LDADD += $(LIB_NANOSLEEP)
264 src_sort_LDADD += $(LIB_NANOSLEEP)
265 src_tail_LDADD += $(LIB_NANOSLEEP)
267 # for various GMP functions
268 src_expr_LDADD += $(LIB_GMP)
269 src_factor_LDADD += $(LIB_GMP)
271 # for getloadavg
272 src_uptime_LDADD += $(GETLOADAVG_LIBS)
274 # for various ACL functions
275 copy_ldadd += $(LIB_ACL)
276 src_ls_LDADD += $(LIB_ACL)
278 # for various xattr functions
279 copy_ldadd += $(LIB_XATTR)
281 # for print_unicode_char, proper_name_utf8
282 src_cat_LDADD += $(LIBICONV)
283 src_cp_LDADD += $(LIBICONV)
284 src_df_LDADD += $(LIBICONV)
285 src_du_LDADD += $(LIBICONV)
286 src_factor_LDADD += $(LIBICONV)
287 src_getlimits_LDADD += $(LIBICONV)
288 src_printf_LDADD += $(LIBICONV)
289 src_ptx_LDADD += $(LIBICONV)
290 src_realpath_LDADD += $(LIBICONV)
291 src_split_LDADD += $(LIBICONV)
292 src_stdbuf_LDADD += $(LIBICONV)
293 src_timeout_LDADD += $(LIBICONV)
294 src_truncate_LDADD += $(LIBICONV)
296 # for canon_host
297 src_pinky_LDADD += $(GETADDRINFO_LIB)
298 src_who_LDADD += $(GETADDRINFO_LIB)
300 # for gethostname, uname
301 src_hostname_LDADD += $(GETHOSTNAME_LIB)
302 src_uname_LDADD += $(GETHOSTNAME_LIB)
304 # for strsignal
305 src_kill_LDADD += $(LIBTHREAD)
307 # for pthread
308 src_sort_LDADD += $(LIB_PTHREAD)
310 # Get the release year from lib/version-etc.c.
311 RELEASE_YEAR = \
312 `sed -n '/.*COPYRIGHT_YEAR = \([0-9][0-9][0-9][0-9]\) };/s//\1/p' \
313 $(top_srcdir)/lib/version-etc.c`
315 copy_sources = \
316 src/copy.c \
317 src/cp-hash.c \
318 src/extent-scan.c \
319 src/extent-scan.h
321 # Use 'ginstall' in the definition of PROGRAMS and in dependencies to avoid
322 # confusion with the 'install' target. The install rule transforms 'ginstall'
323 # to install before applying any user-specified name transformations.
325 transform = s/ginstall/install/; $(program_transform_name)
326 src_ginstall_SOURCES = src/install.c src/prog-fprintf.c $(copy_sources)
328 # This is for the '[' program. Automake transliterates '[' and '/' to '_'.
329 src___SOURCES = src/lbracket.c
331 src_cp_SOURCES = src/cp.c $(copy_sources)
332 src_dir_SOURCES = src/ls.c src/ls-dir.c
333 src_vdir_SOURCES = src/ls.c src/ls-vdir.c
334 src_id_SOURCES = src/id.c src/group-list.c
335 src_groups_SOURCES = src/groups.c src/group-list.c
336 src_ls_SOURCES = src/ls.c src/ls-ls.c
337 src_ln_SOURCES = src/ln.c src/relpath.c src/relpath.h
338 src_chown_SOURCES = src/chown.c src/chown-core.c
339 src_chgrp_SOURCES = src/chgrp.c src/chown-core.c
340 src_kill_SOURCES = src/kill.c src/operand2sig.c
341 src_realpath_SOURCES = src/realpath.c src/relpath.c src/relpath.h
342 src_timeout_SOURCES = src/timeout.c src/operand2sig.c
344 src_mv_SOURCES = src/mv.c src/remove.c $(copy_sources)
345 src_rm_SOURCES = src/rm.c src/remove.c
347 src_mkdir_SOURCES = src/mkdir.c src/prog-fprintf.c
348 src_rmdir_SOURCES = src/rmdir.c src/prog-fprintf.c
350 src_df_SOURCES = src/df.c src/find-mount-point.c
351 src_stat_SOURCES = src/stat.c src/find-mount-point.c
353 src_uname_SOURCES = src/uname.c src/uname-uname.c
354 src_arch_SOURCES = src/uname.c src/uname-arch.c
356 src_md5sum_CPPFLAGS = -DHASH_ALGO_MD5=1 $(AM_CPPFLAGS)
357 src_sha1sum_SOURCES = src/md5sum.c
358 src_sha1sum_CPPFLAGS = -DHASH_ALGO_SHA1=1 $(AM_CPPFLAGS)
359 src_sha224sum_SOURCES = src/md5sum.c
360 src_sha224sum_CPPFLAGS = -DHASH_ALGO_SHA224=1 $(AM_CPPFLAGS)
361 src_sha256sum_SOURCES = src/md5sum.c
362 src_sha256sum_CPPFLAGS = -DHASH_ALGO_SHA256=1 $(AM_CPPFLAGS)
363 src_sha384sum_SOURCES = src/md5sum.c
364 src_sha384sum_CPPFLAGS = -DHASH_ALGO_SHA384=1 $(AM_CPPFLAGS)
365 src_sha512sum_SOURCES = src/md5sum.c
366 src_sha512sum_CPPFLAGS = -DHASH_ALGO_SHA512=1 $(AM_CPPFLAGS)
368 src_ginstall_CPPFLAGS = -DENABLE_MATCHPATHCON=1 $(AM_CPPFLAGS)
370 # Ensure we don't link against libcoreutils.a as that lib is
371 # not compiled with -fPIC which causes issues on 64 bit at least
372 src_libstdbuf_so_LDADD =
374 # Note libstdbuf is only compiled if GCC is available
375 # (as per the check in configure.ac), so these flags should be available.
376 # libtool is probably required to relax this dependency.
377 src_libstdbuf_so_LDFLAGS = -shared
378 src_libstdbuf_so_CFLAGS = -fPIC $(AM_CFLAGS)
380 BUILT_SOURCES += src/dircolors.h
381 src/dircolors.h: src/dcgen src/dircolors.hin
382 $(AM_V_GEN)rm -f $@ $@-t
383 $(AM_V_at)$(PERL) -w -- $(srcdir)/src/dcgen \
384 $(srcdir)/src/dircolors.hin > $@-t
385 $(AM_V_at)chmod a-w $@-t
386 $(AM_V_at)mv $@-t $@
388 # This file is built by maintainers. It's architecture-independent,
389 # and it needs to be built on a widest-known-int architecture, so it's
390 # built only if absent. It is not cleaned because we don't want to
391 # insist that maintainers must build on hosts that support the widest
392 # known ints (currently 128-bit).
393 BUILT_SOURCES += $(top_srcdir)/src/primes.h
394 $(top_srcdir)/src/primes.h:
395 $(MAKE) src/make-prime-list$(EXEEXT)
396 $(AM_V_GEN)rm -f $@ $@-t
397 $(AM_V_at)src/make-prime-list$(EXEEXT) 5000 > $@-t
398 $(AM_V_at)chmod a-w $@-t
399 $(AM_V_at)mv $@-t $@
401 # false exits nonzero even with --help or --version.
402 # test doesn't support --help or --version.
403 # Tell automake to exempt then from that installcheck test.
404 AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = src/false src/test
406 # Compare fs.h with the list of file system names/magic-numbers in the
407 # Linux statfs man page. This target prints any new name/number pairs.
408 # Also compare against /usr/include/linux/magic.h
409 .PHONY: src/fs-magic-compare
410 src/fs-magic-compare: src/fs-magic src/fs-kernel-magic src/fs-def
411 @join -v1 -t@ src/fs-magic src/fs-def
412 @join -v1 -t@ src/fs-kernel-magic src/fs-def
414 CLEANFILES += src/fs-def
415 src/fs-def: src/fs.h
416 grep '^# *define ' src/fs.h | $(ASSORT) > $@-t && mv $@-t $@
418 # Massage bits of the statfs man page and definitions from
419 # /usr/include/linux/magic.h to be in a form consistent with what's in fs.h.
420 fs_normalize_perl_subst = \
421 -e 's/MINIX_SUPER_MAGIC\b/MINIX/;' \
422 -e 's/MINIX_SUPER_MAGIC2\b/MINIX_30/;' \
423 -e 's/MINIX2_SUPER_MAGIC\b/MINIX_V2/;' \
424 -e 's/MINIX2_SUPER_MAGIC2\b/MINIX_V2_30/;' \
425 -e 's/MINIX3_SUPER_MAGIC\b/MINIX_V3/;' \
426 -e 's/CIFS_MAGIC_NUMBER/CIFS/;' \
427 -e 's/(_SUPER)?_MAGIC//;' \
428 -e 's/\s+0x(\S+)/" 0x" . uc $$1/e;' \
429 -e 's/(\s+0x)(\X{3})\b/$${1}0$$2/;' \
430 -e 's/(\s+0x)(\X{6})\b/$${1}00$$2/;' \
431 -e 's/(\s+0x)(\X{7})\b/$${1}0$$2/;' \
432 -e 's/^\s+//;' \
433 -e 's/^\043define\s+//;' \
434 -e 's/^_(XIAFS)/$$1/;' \
435 -e 's/^USBDEVICE/USBDEVFS/;' \
436 -e 's/NTFS_SB/NTFS/;' \
437 -e 's/^/\043 define S_MAGIC_/;' \
438 -e 's,\s*/\* .*? \*/,,;'
440 CLEANFILES += src/fs-magic
441 src/fs-magic: Makefile
442 @MANPAGER= man statfs \
443 |perl -ne '/File system types:/.../Nobody kno/ and print' \
444 |grep 0x | perl -p \
445 $(fs_normalize_perl_subst) \
446 | grep -Ev 'S_MAGIC_EXT[34]|STACK_END' \
447 | $(ASSORT) \
448 > $@-t && mv $@-t $@
450 DISTCLEANFILES += src/fs-latest-magic.h
451 # This rule currently gets the latest header, but probably isn't general
452 # enough to enable by default.
453 # @kgit='https://git.kernel.org/cgit/linux/kernel/git'; \
454 # wget -q $$kgit/torvalds/linux.git/plain/include/uapi/linux/magic.h \
455 # -O $@
456 src/fs-latest-magic.h:
457 @touch $@
459 CLEANFILES += src/fs-kernel-magic
460 src/fs-kernel-magic: Makefile src/fs-latest-magic.h
461 @perl -ne '/^#define.*0x/ and print' \
462 /usr/include/linux/magic.h src/fs-latest-magic.h \
463 | perl -p \
464 $(fs_normalize_perl_subst) \
465 | grep -Ev 'S_MAGIC_EXT[34]|STACK_END' \
466 | $(ASSORT) -u \
467 > $@-t && mv $@-t $@
469 BUILT_SOURCES += src/fs-is-local.h
470 src/fs-is-local.h: src/stat.c src/extract-magic
471 $(AM_V_GEN)rm -f $@
472 $(AM_V_at)$(PERL) $(srcdir)/src/extract-magic \
473 --local $(srcdir)/src/stat.c > $@t
474 $(AM_V_at)chmod a-w $@t
475 $(AM_V_at)mv $@t $@
477 BUILT_SOURCES += src/fs.h
478 src/fs.h: src/stat.c src/extract-magic
479 $(AM_V_GEN)rm -f $@
480 $(AM_V_at)$(PERL) $(srcdir)/src/extract-magic \
481 $(srcdir)/src/stat.c > $@t
482 $(AM_V_at)chmod a-w $@t
483 $(AM_V_at)mv $@t $@
485 BUILT_SOURCES += src/version.c
486 src/version.c: Makefile
487 $(AM_V_GEN)rm -f $@
488 $(AM_V_at)printf '#include <config.h>\n' > $@t
489 $(AM_V_at)printf 'char const *Version = "$(PACKAGE_VERSION)";\n' >> $@t
490 $(AM_V_at)chmod a-w $@t
491 $(AM_V_at)mv $@t $@
493 BUILT_SOURCES += src/version.h
494 src/version.h: Makefile
495 $(AM_V_GEN)rm -f $@
496 $(AM_V_at)printf 'extern char const *Version;\n' > $@t
497 $(AM_V_at)chmod a-w $@t
498 $(AM_V_at)mv $@t $@
500 DISTCLEANFILES += src/version.c src/version.h
501 MAINTAINERCLEANFILES += $(BUILT_SOURCES)
503 all_programs = \
504 $(bin_PROGRAMS) \
505 $(bin_SCRIPTS) \
506 $(EXTRA_PROGRAMS)
508 pm = progs-makefile
509 pr = progs-readme
510 # Ensure that the list of programs in README matches the list
511 # of programs we can build.
512 check-local: check-README check-duplicate-no-install
513 .PHONY: check-README
514 check-README:
515 $(AM_V_GEN)rm -rf $(pr) $(pm)
516 $(AM_V_at)echo $(all_programs) \
517 | tr -s ' ' '\n' \
518 | sed -e 's,$(EXEEXT)$$,,' \
519 -e 's,^src/,,' \
520 -e 's/^ginstall$$/install/' \
521 | sed /libstdbuf/d \
522 | $(ASSORT) -u > $(pm) && \
523 sed -n '/^The programs .* are:/,/^[a-zA-Z]/p' $(top_srcdir)/README \
524 | sed -n '/^ */s///p' | tr -s ' ' '\n' > $(pr)
525 $(AM_V_at)diff $(pm) $(pr) && rm -rf $(pr) $(pm)
527 # Ensure that a by-default-not-installed program (listed in
528 # $(no_install__progs) is not also listed as another $(EXTRA_PROGRAMS)
529 # entry, because if that were to happen, it *would* be installed
530 # by default.
531 .PHONY: check-duplicate-no-install
532 check-duplicate-no-install: src/tr
533 $(AM_V_GEN)test -z "`echo '$(EXTRA_PROGRAMS)' | tr ' ' '\n' | uniq -d`"
535 # Use the just-built 'ginstall', when not cross-compiling.
536 if CROSS_COMPILING
537 cu_install_program = @INSTALL_PROGRAM@
538 else
539 cu_install_program = src/ginstall
540 endif
541 INSTALL_PROGRAM = $(cu_install_program)