[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnulib-tool: support for subdirectories of lib/
From: |
Bruno Haible |
Subject: |
gnulib-tool: support for subdirectories of lib/ |
Date: |
Mon, 6 Nov 2006 14:43:09 +0100 |
User-agent: |
KMail/1.9.1 |
Hi,
I've been experimenting with modules that have files in subdirectories of lib/.
gnulib-tool didn't handle this. With this patch, it nearly works - modulo
an automake bug.
2006-11-05 Bruno Haible <address@hidden>
* gnulib-tool (func_import, func_create_testdir): Create directories
also for files in subdirectories of lib/.
*** gnulib-20061026-modified/gnulib-tool 2006-10-27 00:15:23.000000000
+0200
--- gnulib-20061026/gnulib-tool 2006-11-05 23:16:01.000000000 +0100
***************
*** 1614,1665 ****
func_append old_files " m4/gnulib-tool.m4"
fi
# Create directories.
! if test ! -d "$destdir/$sourcebase"; then
! if $doit; then
! echo "Creating directory $destdir/$sourcebase"
! mkdir "$destdir/$sourcebase" || func_fatal_error "failed"
! else
! echo "Create directory $destdir/$sourcebase"
! fi
! fi
! if test ! -d "$destdir/$m4base"; then
! if $doit; then
! echo "Creating directory $destdir/$m4base"
! mkdir "$destdir/$m4base" || func_fatal_error "failed"
! else
! echo "Create directory $destdir/$m4base"
! fi
! fi
! docfiles=`echo "$files" | sed -n -e 's,^doc/,,p'`
! if test -n "$docfiles"; then
! if test ! -d "$destdir/$docbase"; then
! if $doit; then
! echo "Creating directory $destdir/$docbase"
! mkdir "$destdir/$docbase" || func_fatal_error "failed"
! else
! echo "Create directory $destdir/$docbase"
! fi
! fi
! fi
! if test -n "$inctests"; then
! if test ! -d "$destdir/$testsbase"; then
! if $doit; then
! echo "Creating directory $destdir/$testsbase"
! mkdir "$destdir/$testsbase" || func_fatal_error "failed"
! else
! echo "Create directory $destdir/$testsbase"
fi
! fi
! fi
! if test ! -d "$destdir/$auxdir"; then
! if $doit; then
! echo "Creating directory $destdir/$auxdir"
! mkdir "$destdir/$auxdir" || func_fatal_error "failed"
! else
! echo "Create directory $destdir/$auxdir"
! fi
! fi
# func_dest_tmpfilename file
# determines the name of a temporary file (file is relative to destdir).
--- 1614,1663 ----
func_append old_files " m4/gnulib-tool.m4"
fi
+ sed_rewrite_old_files="\
+ s,^build-aux/,$auxdir/,
+ s,^doc/,$cached_docbase/,
+ s,^lib/,$cached_sourcebase/,
+ s,^m4/,$cached_m4base/,
+ s,^tests/,$cached_testsbase/,"
+ sed_rewrite_new_files="\
+ s,^build-aux/,$auxdir/,
+ s,^doc/,$docbase/,
+ s,^lib/,$sourcebase/,
+ s,^m4/,$m4base/,
+ s,^tests/,$testsbase/,"
+
# Create directories.
! { echo "$sourcebase"
! echo "$m4base"
! docfiles=`echo "$files" | sed -n -e 's,^doc/,,p'`
! if test -n "$docfiles"; then
! echo "$docbase"
! fi
! if test -n "$inctests"; then
! echo "$testsbase"
! fi
! echo "$auxdir"
! for f in $files; do echo $f; done \
! | sed -e "$sed_rewrite_new_files" \
! | sed -n -e 's,^\(.*\)/[^/]*,\1,p' \
! | LC_ALL=C sort -u
! } > "$tmp"/dirs
! { # Rearrange file descriptors. Needed because "while ... done < ..."
! # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
! exec 5<&0 < "$tmp"/dirs
! while read d; do
! if test ! -d "$destdir/$d"; then
! if $doit; then
! echo "Creating directory $destdir/$d"
! mkdir -p "$destdir/$d" || func_fatal_error "failed"
! else
! echo "Create directory $destdir/$d"
! fi
fi
! done
! exec 0<&5 5<&-
! }
# func_dest_tmpfilename file
# determines the name of a temporary file (file is relative to destdir).
***************
*** 1680,1697 ****
# Copy files or make symbolic links. Remove obsolete files.
delimiter=' '
- sed_rewrite_old_files="\
- s,^build-aux/,$auxdir/,
- s,^doc/,$cached_docbase/,
- s,^lib/,$cached_sourcebase/,
- s,^m4/,$cached_m4base/,
- s,^tests/,$cached_testsbase/,"
- sed_rewrite_new_files="\
- s,^build-aux/,$auxdir/,
- s,^doc/,$docbase/,
- s,^lib/,$sourcebase/,
- s,^m4/,$m4base/,
- s,^tests/,$testsbase/,"
# Construct a table with 2 columns: rewritten-file-name original-file-name,
# representing the files according to the last gnulib-tool invocation.
for f in $old_files; do echo $f; done \
--- 1678,1683 ----
***************
*** 2185,2210 ****
echo "File list:"
echo "$files" | sed -e 's/^/ /'
- # Create directories.
- for d in `echo "$files" | sed -n -e 's,^\(.*\)/[^/]*,\1,p'`; do
- case "$d" in
- build-aux) mkdir -p "$testdir/$auxdir" ;;
- doc) mkdir -p "$testdir/$docbase" ;;
- lib) mkdir -p "$testdir/$sourcebase" ;;
- m4) mkdir -p "$testdir/$m4base" ;;
- tests) mkdir -p "$testdir/$testsbase" ;;
- *) mkdir -p "$testdir/$d" ;;
- esac
- done
-
- # Copy files or make symbolic links.
- delimiter=' '
sed_rewrite_files="\
s,^build-aux/,$auxdir/,
s,^doc/,$docbase/,
s,^lib/,$sourcebase/,
s,^m4/,$m4base/,
s,^tests/,$testsbase/,"
for f in $files; do echo $f; done \
| sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_files" \
| LC_ALL=C sort \
--- 2185,2214 ----
echo "File list:"
echo "$files" | sed -e 's/^/ /'
sed_rewrite_files="\
s,^build-aux/,$auxdir/,
s,^doc/,$docbase/,
s,^lib/,$sourcebase/,
s,^m4/,$m4base/,
s,^tests/,$testsbase/,"
+
+ # Create directories.
+ for f in $files; do echo $f; done \
+ | sed -e "$sed_rewrite_files" \
+ | sed -n -e 's,^\(.*\)/[^/]*,\1,p' \
+ | LC_ALL=C sort -u \
+ > "$tmp"/dirs
+ { # Rearrange file descriptors. Needed because "while ... done < ..."
+ # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
+ exec 5<&0 < "$tmp"/dirs
+ while read d; do
+ mkdir -p "$testdir/$d"
+ done
+ exec 0<&5 5<&-
+ }
+
+ # Copy files or make symbolic links.
+ delimiter=' '
for f in $files; do echo $f; done \
| sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_files" \
| LC_ALL=C sort \
- gnulib-tool: support for subdirectories of lib/,
Bruno Haible <=