Browse Source

[master] fixed the silly + vs path_replacer.sh issue (#3713)

Francis Dupont 10 years ago
parent
commit
741ff09b74
3 changed files with 21 additions and 1 deletions
  1. 6 0
      ChangeLog
  2. 14 0
      configure.ac
  3. 1 1
      tools/path_replacer.sh.in

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+929	[build]		fdupont
+	Corrected problem in build system whereby specifying an
+	installation directory on the "configure" command line that
+	included a "+" in the name caused the build to fail.
+	(Trac #3713, git xxx)
+
 928.	[build]		fdupont
 	A CONFIG_H_WAS_INCLUDED define has been added to provide
 	a way in source files to check whether config.h has been included.

+ 14 - 0
configure.ac

@@ -44,6 +44,20 @@ fi
 # This will be either "tarball" or "git abcd".
 AC_DEFINE_UNQUOTED([EXTENDED_VERSION], ["${KEA_SRCID}"], [Extended Kea version])
 
+# Find a separator for path_replacer
+for sep in "+" "," ";" "&" "__NONE__"; do
+	if `pwd | grep -q $sep`; then continue; fi
+	if `echo ${prefix} | grep -q $sep`; then continue; fi
+	if `echo ${sysconfdir} | grep -q $sep`; then continue; fi
+	if `echo ${localstatedir} | grep -q $sep`; then continue; fi
+	SEP=$sep
+	break
+done
+if test "$sep" = "__NONE__"; then
+	AC_MSG_ERROR([can't find a separator character in '+,;&' for the path_replacer shell script])
+fi
+AC_SUBST(SEP)
+
 # Enable low-performing debugging facilities? This option optionally
 # enables some debugging aids that perform slowly and hence aren't built
 # by default.

+ 1 - 1
tools/path_replacer.sh.in

@@ -35,4 +35,4 @@ echo "Replacing \@localstatedir\@ with ${localstatedir}"
 echo "Input file: $1"
 echo "Output file: $2"
 
-sed -e "s+\@localstatedir\@+${localstatedir}+g; s+\@prefix@+${prefix}+g; s+\@sysconfdir@+${sysconfdir}+g" $1 > $2
+sed -e "s@SEP@\@localstatedir\@@SEP@${localstatedir}@SEP@g; s@SEP@\@prefix@@SEP@${prefix}@SEP@g; s@SEP@\@sysconfdir@@SEP@${sysconfdir}@SEP@g" $1 > $2