Opened 13 years ago

Closed 12 years ago

#682 closed defect (wontfix)

Allow compilation in directory with spaces

Reported by: marisn Owned by: grass-dev@…
Priority: minor Milestone: 6.5.0
Component: Compiling Version: svn-develbranch6
Keywords: Cc:
CPU: Unspecified Platform: Linux

Description

As of GRASS 6.5 it's not possible to configure and make GRASS if it's source is located in directory containing spaces in it's path.

Steps to reproduce:

make distclean
mv /path/to/my/grass/source "/path/with/spaces/to/grass source"
./configure && make

Configure part is easy but other Make system parts are more tricky.

--- configure   (revision 38380)
+++ configure   (working copy)
@@ -716,18 +716,18 @@

 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir="$ac_dir"
     ac_install_sh="$ac_aux_dir/install-sh -c"
     break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir="$ac_dir"
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+  { echo "configure: error: can not find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" 1>&2; exit 1; }
 fi
 ac_config_guess=$ac_aux_dir/config.guess
 ac_config_sub=$ac_aux_dir/config.sub
@@ -1235,19 +1235,19 @@
 # Use absolute path for aux directory so that install-sh works

 ac_aux_dir=
-for ac_dir in $SRCDIR $srcdir/$SRCDIR; do
-  if test -f $ac_dir/install-sh; then
+for ac_dir in "$SRCDIR" "$srcdir/$SRCDIR"; do
+  if test -f "$ac_dir/install-sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
     break
-  elif test -f $ac_dir/install.sh; then
+  elif test -f "$ac_dir/install.sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $SRCDIR $srcdir/$SRCDIR" 1>&2; exit 1; }
+  { echo "configure: error: can not find install-sh or install.sh in \"$SRCDIR\" \"$srcdir/$SRCDIR\"" 1>&2; exit 1; }
 fi
 ac_config_guess=$ac_aux_dir/config.guess
 ac_config_sub=$ac_aux_dir/config.sub

Change History (2)

in reply to:  description ; comment:1 by glynn, 13 years ago

Replying to marisn:

As of GRASS 6.5 it's not possible to configure and make GRASS if it's source is located in directory containing spaces in it's path.

Configure part is easy but other Make system parts are more tricky.

The configure script is generated from configure.in by autoconf. You can't modify configure directly.

Beyond that, the portions of the configure script which you changed are inserted verbatim by autoconf, so the only way to fix this is to fix autoconf; there isn't anything that can be done within GRASS.

BTW, non-trivial patches should normally be added as attachments, rather than inserted into the body of the message.

in reply to:  1 comment:2 by hamish, 12 years ago

Resolution: wontfix
Status: newclosed

Replying to glynn:

Beyond that, the portions of the configure script which you changed are inserted verbatim by autoconf, so the only way to fix this is to fix autoconf; there isn't anything that can be done within GRASS.

I have now (well some weeks ago) quoted everything in configure.in and install-sh that could be quoted, but as Glynn explains there are parts of configure which are automatically added by autoconf, and unfortunately those bits are not all quoted.

closing as "wontfix", even though it is more accurately "cantfix". (without moving away from autoconf2.13, and to justify that I'd say we need a more compelling reason than this problem)

Hamish

Note: See TracTickets for help on using tickets.