* [COMMITTED] find-debuginfo: Generate and install as top-level build file.
@ 2021-05-19 11:49 Mark Wielaard
0 siblings, 0 replies; only message in thread
From: Mark Wielaard @ 2021-05-19 11:49 UTC (permalink / raw)
To: debugedit; +Cc: Mark Wielaard
find-debuginfo relied on lib_rpm_dir to find other debugedit tools.
But the script itself was generated at configure time in a subdir.
This makes testing the (non-installed) build slightly inconvenient.
Add a automake rule to generate find-debuginfo at build time, instead
of configure time, in the top-level builddir next to the other tools.
* .gitignore: Move scripts/find-debuginfo to find-debuginfo.
* configure.ac: Explicitly check we have SED.
* Makefile.am (bin_SCRIPTS): Drop subdir scripts.
(CLEANFILES): New.
(do_subst): New.
(find-debuginfo): New generate using do_subst.
(find-debuginfo.1): Adjust location and protect against
parallel builds.
(EXTRA_DIST): Add .in suffix to scripts/find-debuginfo.
* scripts/find-debuginfo.in (lib_rpm_dir): Rename to...
(install_dir): ...this.
Signed-off-by: Mark Wielaard <mark@klomp.org>
---
.gitignore | 2 +-
Makefile.am | 29 +++++++++++++++++++++--------
configure.ac | 2 +-
scripts/find-debuginfo.in | 12 +++++++-----
4 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/.gitignore b/.gitignore
index ae33e64..9868abc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,7 +31,7 @@ debugedit.1
sepdebugcrcfix
sepdebugcrcfix.1
-scripts/find-debuginfo
+find-debuginfo
find-debuginfo.1
atconfig
diff --git a/Makefile.am b/Makefile.am
index 645a502..98b2f20 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,8 +24,19 @@ AM_CFLAGS = -Wall
# All our programs
bin_PROGRAMS = debugedit sepdebugcrcfix
-# Install find-debuginfo in $(bindir) and distribute it.
-bin_SCRIPTS = $(top_srcdir)/scripts/find-debuginfo
+# Install find-debuginfo in $(bindir)
+bin_SCRIPTS = find-debuginfo
+
+# All our scripts are generated, so need to be explicitly cleaned
+CLEANFILES = $(bin_SCRIPTS)
+
+# Some standard substitutions for scripts
+do_subst = ($(SED) -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
+ -e 's,[@]VERSION[@],$(VERSION),g')
+
+find-debuginfo: $(top_srcdir)/scripts/find-debuginfo.in Makefile
+ $(do_subst) < "$(top_srcdir)/scripts/$@.in" > "$@"
+ chmod +x "$@"
debugedit_SOURCES = tools/debugedit.c \
tools/hashtab.c \
@@ -63,15 +74,17 @@ sepdebugcrcfix.1: tools/sepdebugcrcfix.c configure.ac sepdebugcrcfix$(EXEEXT)
* ) : ;; \
esac
-# Since the script isn't generated this doesn't need any special casing.
-find-debuginfo.1: $(top_srcdir)/scripts/find-debuginfo
- $(HELP2MAN) -N --output=$@ \
- --name='finds debuginfo and processes it' \
- $(top_srcdir)/scripts/find-debuginfo
+find-debuginfo.1: $(top_srcdir)/scripts/find-debuginfo.in configure.ac find-debuginfo
+ @case '$?' in \
+ *$<* | *configure.ac* ) $(HELP2MAN) -N --output=$@ \
+ --name='finds debuginfo and processes it' \
+ ./find-debuginfo ;;\
+ * ) : ;; \
+ esac
noinst_HEADERS= tools/ansidecl.h \
tools/hashtab.h \
tools/md5.h \
tools/sha1.h
-EXTRA_DIST = README COPYING COPYING3 COPYING.LIB scripts/find-debuginfo
+EXTRA_DIST = README COPYING COPYING3 COPYING.LIB scripts/find-debuginfo.in
diff --git a/configure.ac b/configure.ac
index d1d8969..65cec5e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,6 +40,7 @@ AC_USE_SYSTEM_EXTENSIONS
# Checks for programs.
AC_PROG_AWK
+AC_PROG_SED
AC_PROG_CC_C99
AC_PROG_LN_S
AC_CHECK_TOOL([LD], [ld])
@@ -100,5 +101,4 @@ AC_SUBST([GZ_NONE_FLAG])
# And generate the output files.
AC_CONFIG_FILES([Makefile])
-AC_CONFIG_FILES([scripts/find-debuginfo], [chmod +x scripts/find-debuginfo])
AC_OUTPUT
diff --git a/scripts/find-debuginfo.in b/scripts/find-debuginfo.in
index 82fac25..828fd09 100755
--- a/scripts/find-debuginfo.in
+++ b/scripts/find-debuginfo.in
@@ -1,6 +1,8 @@
#!/bin/bash
-#find-debuginfo - automagically generate debug info and file list
-#for inclusion in an rpm spec file.
+
+# @PACKAGE@ @VERSION@
+# find-debuginfo - automagically generate debug info and file list
+# for inclusion in package file lists.
# Copyright (C) 2002-2021 rpm and debugedit contributors
#
@@ -97,7 +99,7 @@ EOF
}
# Figure out where we are installed so we can call other helper scripts.
-lib_rpm_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# With -g arg, pass it to strip on libraries or executables.
strip_g=false
@@ -436,7 +438,7 @@ do_file()
if [ "$no_recompute_build_id" = "true" ]; then
no_recompute="-n"
fi
- id=$(${lib_rpm_dir}/debugedit -b "$debug_base_name" -d "$debug_dest_name" \
+ id=$(${install_dir}/debugedit -b "$debug_base_name" -d "$debug_dest_name" \
$no_recompute -i \
${build_id_seed:+--build-id-seed="$build_id_seed"} \
-l "$SOURCEFILE" "$f") || exit
@@ -594,7 +596,7 @@ if $run_dwz \
# dwz invalidates .gnu_debuglink CRC32 in the main files.
cat "$ELFBINSFILE" |
(cd "$RPM_BUILD_ROOT"; \
- tr '\n' '\0' | xargs -0 ${lib_rpm_dir}/sepdebugcrcfix usr/lib/debug)
+ tr '\n' '\0' | xargs -0 ${install_dir}/sepdebugcrcfix usr/lib/debug)
fi
fi
--
2.18.4
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-05-19 11:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-19 11:49 [COMMITTED] find-debuginfo: Generate and install as top-level build file Mark Wielaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).