diff --git a/config/configure.ac b/config/configure.ac index 2fbf17f286..135c4ee49d 100644 --- a/config/configure.ac +++ b/config/configure.ac @@ -297,9 +297,16 @@ ${FRONTEND_INFO}\ LyX binary dir: ${real_bindir}\n\ LyX files dir: ${real_datadir}\n" +real_localedir=`eval "echo \`eval \"echo ${datadir}/locale\"\`"` +MSYS_AC_CANONICAL_PATH(LYX_ABS_TOP_SRCDIR, ${srcdir}) +MSYS_AC_CANONICAL_PATH(LYX_ABS_INSTALLED_LOCALEDIR, ${real_localedir}) +MSYS_AC_CANONICAL_PATH(LYX_ABS_INSTALLED_DATADIR, ${real_datadir}) AC_SUBST(VERSION_INFO) AC_SUBST(RPM_FRONTEND) +AC_SUBST(LYX_ABS_TOP_SRCDIR) +AC_SUBST(LYX_ABS_INSTALLED_LOCALEDIR) +AC_SUBST(LYX_ABS_INSTALLED_DATADIR) ## Some config.h stuff diff --git a/config/configure.in b/config/configure.in index cbae8ddc2c..e3755f098f 100644 --- a/config/configure.in +++ b/config/configure.in @@ -301,8 +301,16 @@ ${FRONTEND_INFO}\ LyX binary dir: ${real_bindir}\n\ LyX files dir: ${real_datadir}\n" +real_localedir=`eval "echo \`eval \"echo ${datadir}/locale\"\`"` +MSYS_AC_CANONICAL_PATH(LYX_ABS_TOP_SRCDIR, ${srcdir}) +MSYS_AC_CANONICAL_PATH(LYX_ABS_INSTALLED_LOCALEDIR, ${real_localedir}) +MSYS_AC_CANONICAL_PATH(LYX_ABS_INSTALLED_DATADIR, ${real_datadir}) + AC_SUBST(VERSION_INFO) AC_SUBST(RPM_FRONTEND) +AC_SUBST(LYX_ABS_TOP_SRCDIR) +AC_SUBST(LYX_ABS_INSTALLED_LOCALEDIR) +AC_SUBST(LYX_ABS_INSTALLED_DATADIR) ### Finish the work. AC_CONFIG_SUBDIRS(lib lib/reLyX) diff --git a/config/lyxinclude213.m4 b/config/lyxinclude213.m4 index 637fde00e1..472940b90f 100644 --- a/config/lyxinclude213.m4 +++ b/config/lyxinclude213.m4 @@ -72,3 +72,28 @@ if eval "test \"\${lyx_cv_declare_${tr_hdr}_$1}\" = \"yes\""; then fi done]) + + +dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME, +dnl (which may be a relative path, and need not refer to any existing +dnl entity). + +dnl On Win32-MSYS build hosts, the returned path is resolved to its true +dnl native Win32 path name, (but with slashes, not backslashes). + +dnl On any other system, it is simply the result which would be obtained +dnl if PATHNAME represented an existing directory, and the pwd command was +dnl executed in that directory. +AC_DEFUN([MSYS_AC_CANONICAL_PATH], +[ac_dir="$2" + ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null && + ac_pwd_w="pwd -W" || ac_pwd_w=pwd + until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w` + do + ac_dir=`dirname(["$ac_dir"])` + done + ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'` + ac_val=`echo "$ac_val" | sed 's?/*$[]??'` + $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"' + s?/*$[]??'` +]) diff --git a/config/lyxinclude25x.m4 b/config/lyxinclude25x.m4 index 1930f198d6..2e0c5492a5 100644 --- a/config/lyxinclude25x.m4 +++ b/config/lyxinclude25x.m4 @@ -17,3 +17,28 @@ do break], [AC_MSG_RESULT(no)]) done]) + + +dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME, +dnl (which may be a relative path, and need not refer to any existing +dnl entity). + +dnl On Win32-MSYS build hosts, the returned path is resolved to its true +dnl native Win32 path name, (but with slashes, not backslashes). + +dnl On any other system, it is simply the result which would be obtained +dnl if PATHNAME represented an existing directory, and the pwd command was +dnl executed in that directory. +AC_DEFUN([MSYS_AC_CANONICAL_PATH], +[ac_dir="$2" + ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null && + ac_pwd_w="pwd -W" || ac_pwd_w=pwd + until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w` + do + ac_dir=`AS_DIRNAME(["$ac_dir"])` + done + ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'` + ac_val=`echo "$ac_val" | sed 's?/*$[]??'` + $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"' + s?/*$[]??'` +]) diff --git a/status.13x b/status.13x index a937b220ea..5ab0935473 100644 --- a/status.13x +++ b/status.13x @@ -61,3 +61,6 @@ What's new - Enable compilation of LyX on DragonFly BSD. - Add missing cygwin support file in the distribution (bug 2035) + +- Enable Windows boxes to recognize the hard-coded paths needed to run + LyX from the build tree.