diff options
Diffstat (limited to 'm4/xc-am-iface.m4')
-rw-r--r-- | m4/xc-am-iface.m4 | 171 |
1 files changed, 1 insertions, 170 deletions
diff --git a/m4/xc-am-iface.m4 b/m4/xc-am-iface.m4 index 621453d4e..c035f58c5 100644 --- a/m4/xc-am-iface.m4 +++ b/m4/xc-am-iface.m4 @@ -2,7 +2,7 @@ # # xc-am-iface.m4 # -# Copyright (c) 2013 - 2022 Daniel Stenberg <daniel@haxx.se> +# Copyright (C) Daniel Stenberg <daniel@haxx.se> # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -83,172 +83,3 @@ m4_ifdef([AM_INIT_AUTOMAKE], dnl m4_define([$0], [])[]dnl ]) - - -dnl _XC_AMEND_DISTCLEAN_BODY ([LIST-OF-SUBDIRS]) -dnl ------------------------------------------------- -dnl Private macro. -dnl -dnl This macro performs shell code embedding into -dnl configure script in order to modify distclean -dnl and maintainer-clean targets of makefiles which -dnl are located in given list of subdirs. -dnl -dnl See XC_AMEND_DISTCLEAN comments for details. - -m4_define([_XC_AMEND_DISTCLEAN_BODY], -[dnl -## ---------------------------------- ## -## Start of distclean amending code ## -## ---------------------------------- ## - -for xc_subdir in [$1] -do - -if test ! -f "$xc_subdir/Makefile"; then - echo "$xc_msg_err $xc_subdir/Makefile file not found. $xc_msg_abrt" >&2 - exit 1 -fi - -# Fetch dependency tracking file list from Makefile include lines. - -xc_inc_lines=`grep '^include .*(DEPDIR)' "$xc_subdir/Makefile" 2>/dev/null` -xc_cnt_words=`echo "$xc_inc_lines" | wc -w | tr -d "$xc_space$xc_tab"` - -# --disable-dependency-tracking might have been used, consequently -# there is nothing to amend without a dependency tracking file list. - -if test $xc_cnt_words -gt 0; then - -AC_MSG_NOTICE([amending $xc_subdir/Makefile]) - -# Build Makefile specific patch hunk. - -xc_p="$xc_subdir/xc_patch.tmp" - -xc_rm_depfiles=`echo "$xc_inc_lines" \ - | $SED 's%include% -rm -f%' 2>/dev/null` - -xc_dep_subdirs=`echo "$xc_inc_lines" \ - | $SED 's%include[[ ]][[ ]]*%%' 2>/dev/null \ - | $SED 's%(DEPDIR)/.*%(DEPDIR)%' 2>/dev/null \ - | sort | uniq` - -echo "$xc_rm_depfiles" >$xc_p - -for xc_dep_dir in $xc_dep_subdirs; do - echo "${xc_tab}@xm_dep_cnt=\`ls $xc_dep_dir | wc -l 2>/dev/null\`; \\" >>$xc_p - echo "${xc_tab}if test \$\$xm_dep_cnt -eq 0 && test -d $xc_dep_dir; then \\" >>$xc_p - echo "${xc_tab} rm -rf $xc_dep_dir; \\" >>$xc_p - echo "${xc_tab}fi" >>$xc_p -done - -# Build Makefile patching sed scripts. - -xc_s1="$xc_subdir/xc_script_1.tmp" -xc_s2="$xc_subdir/xc_script_2.tmp" -xc_s3="$xc_subdir/xc_script_3.tmp" - -cat >$xc_s1 <<\_EOT -/^distclean[[ ]]*:/,/^[[^ ]][[^ ]]*:/{ - s/^.*(DEPDIR)/___xc_depdir_line___/ -} -/^maintainer-clean[[ ]]*:/,/^[[^ ]][[^ ]]*:/{ - s/^.*(DEPDIR)/___xc_depdir_line___/ -} -_EOT - -cat >$xc_s2 <<\_EOT -/___xc_depdir_line___$/{ - N - /___xc_depdir_line___$/D -} -_EOT - -cat >$xc_s3 <<_EOT -/^___xc_depdir_line___/{ - r $xc_p - d -} -_EOT - -# Apply patch to Makefile and cleanup. - -$SED -f "$xc_s1" "$xc_subdir/Makefile" >"$xc_subdir/Makefile.tmp1" -$SED -f "$xc_s2" "$xc_subdir/Makefile.tmp1" >"$xc_subdir/Makefile.tmp2" -$SED -f "$xc_s3" "$xc_subdir/Makefile.tmp2" >"$xc_subdir/Makefile.tmp3" - -if test -f "$xc_subdir/Makefile.tmp3"; then - mv -f "$xc_subdir/Makefile.tmp3" "$xc_subdir/Makefile" -fi - -test -f "$xc_subdir/Makefile.tmp1" && rm -f "$xc_subdir/Makefile.tmp1" -test -f "$xc_subdir/Makefile.tmp2" && rm -f "$xc_subdir/Makefile.tmp2" -test -f "$xc_subdir/Makefile.tmp3" && rm -f "$xc_subdir/Makefile.tmp3" - -test -f "$xc_p" && rm -f "$xc_p" -test -f "$xc_s1" && rm -f "$xc_s1" -test -f "$xc_s2" && rm -f "$xc_s2" -test -f "$xc_s3" && rm -f "$xc_s3" - -fi - -done - -## -------------------------------- ## -## End of distclean amending code ## -## -------------------------------- ## -dnl -m4_define([$0], [])[]dnl -]) - - -dnl XC_AMEND_DISTCLEAN ([LIST-OF-SUBDIRS]) -dnl ------------------------------------------------- -dnl Public macro. -dnl -dnl This macro embeds shell code into configure script -dnl that amends, at configure runtime, the distclean -dnl and maintainer-clean targets of Makefiles located -dnl in all subdirs given in the mandatory white-space -dnl separated list argument. -dnl -dnl Embedding only takes place when using automake 1.14 -dnl or newer, otherwise amending code is not included -dnl in generated configure script. -dnl -dnl distclean and maintainer-clean targets are modified -dnl to avoid unconditional removal of dependency subdirs -dnl which triggers distclean and maintainer-clean errors -dnl when using automake 'subdir-objects' option along -dnl with per-target objects and source files existing in -dnl multiple subdirs used for different build targets. -dnl -dnl New behavior first removes each dependency tracking -dnl file independently, and only removes each dependency -dnl subdir when it finds out that it no longer holds any -dnl dependency tracking file. -dnl -dnl When configure option --disable-dependency-tracking -dnl is used no amending takes place given that there are -dnl no dependency tracking files. - -AC_DEFUN([XC_AMEND_DISTCLEAN], -[dnl -AC_PREREQ([2.50])dnl -dnl -m4_ifdef([_AC_OUTPUT_MAIN_LOOP], - [m4_provide_if([_AC_OUTPUT_MAIN_LOOP], [], - [m4_fatal([call to AC_OUTPUT needed before $0])])])dnl -dnl -m4_if([$#], [1], [], [m4_fatal([$0: wrong number of arguments])])dnl -m4_if([$1], [], [m4_fatal([$0: missing argument])])dnl -dnl -AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl -dnl -m4_ifdef([_AM_PROG_CC_C_O], -[ -_XC_AMEND_DISTCLEAN_BODY([$1]) -])dnl -m4_define([$0], [])[]dnl -]) |