diff --git a/lib/ChangeLog b/lib/ChangeLog index 364aaf0804..8eec720e12 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,16 @@ +2005-02-02 Jean-Marc Lasgouttes + + * configure.m4: instead of \input-ing the layout files directly in + latex, grep out the correct command from them; remove need for + \srcdir. This should fix the bug where latex configuration cannot + be done because LyX is installed in a directory which name + contains spaces. + + * chkconfig.ltx: remove use of macro \srcdir + (\TestDocClass): change to take two arguments + (\DeclareLaTeXClass, \DeclareLinuxDocClass, \DeclareDocBookClass): + do not exit after execution + 2005-01-28 Jean-Marc Lasgouttes * reLyX/acinclude.m4 (RELYX_ERROR, RELYX_USE_PACKAGING): new diff --git a/lib/chkconfig.ltx b/lib/chkconfig.ltx index 70d0fa3640..4f35bcb697 100644 --- a/lib/chkconfig.ltx +++ b/lib/chkconfig.ltx @@ -35,24 +35,16 @@ % we do not want to stop on errors \nonstopmode\makeatletter -% Have we been called from the configure script? -\@ifundefined{srcdir} - {\message{% -**** WARNING: For proper results, you should not run this script directly.^^J% -**** Please use the `configure' script.^^J} - \newcommand\srcdir{.}} - {\def\input@path{{\srcdir/}}} %%% Some useful macros. % Several commands are defined to test for packages: % \AddLayout{} adds an entry for in textclass.lst % \AddVariable{}{} creates a new variable chk_, % and gives it the value . -% \TestDocClass[]{} tests whether .cls (or , -% if it is provided) exists and creates a new entry with -% \AddLayout if this is the case. Note that you will probably not -% need to use this directly, since the configure script generates -% the needed macro calls automatically. +% \TestDocClass{}{} if layout has not already +% been tested for, execute . Note that you will +% probably not need to use this directly, since the configure +% script generates the needed macro calls automatically. % \TestPackage[]{} tests whether .sty (or , % if it is provided) exists. % Both commands call \AddVariable to give value 'yes' or 'no' to @@ -95,13 +87,10 @@ \fi} \newcommand{\TestPackage}[2][\default]{ \TestItem[#1]{#2}{package}{sty}{\AddPackage{#2}}{}} -\newcommand{\TestDocClass}[1]{ +\newcommand{\TestDocClass}[2]{ \def\layoutname{#1} % remember the name of the layout file \@ifundefined{layout@#1} - {\bgroup - \catcode`\#=9 % consider # as a space - \input{layouts/#1.layout} % read the layout file - \egroup + {#2 % execute the command \global\@namedef{layout@#1}{}} {} % we have already tried this one. } @@ -109,7 +98,6 @@ \TestItem[#1]{\layoutname}{document class}{cls} {\AddLayout[\firstelement]{\layoutname}{#2}{true}} {\AddLayout[\firstelement]{\layoutname}{#2}{false}} - \expandafter\endinput } \newcommand{\DeclareLinuxDocClass}[2][\default]{ \message{^^J\prefix checking for linuxdoc class \layoutname... } @@ -118,7 +106,6 @@ \AddLayout[#1]{\layoutname}{#2}{false}} {\message{yes^^J} \AddLayout[#1]{\layoutname}{#2}{true}} - \expandafter\endinput } % Only for compatibility. Will be removed later. \let\DeclareSGMLClass=\DeclareDocBookClass @@ -130,7 +117,6 @@ \AddLayout[#1]{\layoutname}{#2}{false}} {\message{yes^^J} \AddLayout[#1]{\layoutname}{#2}{true}} - \expandafter\endinput } % Stolen from article.cls diff --git a/lib/configure.m4 b/lib/configure.m4 index 2bcda1b21f..0c9bd6e953 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -165,8 +165,8 @@ ac_prog=[$]0 changequote(,)dnl srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` -test "x$srcdir" = "x$ac_prog" && srcdir=. -if test ! -r ${srcdir}/chkconfig.ltx ; then +test "x${srcdir}" = "x$ac_prog" && srcdir=. +if test ! -r "${srcdir}"/chkconfig.ltx ; then echo "configure: error: cannot find chkconfig.ltx script" exit 1 fi @@ -409,9 +409,9 @@ if test ${lyx_check_config} = no ; then # for some reason. Run ./configure if you need to update it after a # configuration change. EOF - # build the list of available layout files and convert it to commands - # for chkconfig.ltx - for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do + # build the list of available layout files and convert it to entries + # for the default textclass.lst file + for file in ./layouts/*.layout "${srcdir}"/layouts/*.layout ; do case $file in */\*.layout) ;; *) if test -r "$file" ; then @@ -447,26 +447,34 @@ changequote(,)dnl else MSG_RESULT(auto) rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex + if ! test -r "chkconfig.ltx" ; then + ln -s "${srcdir}"/chkconfig.ltx . + rmlink=true + fi cat >wrap_chkconfig.ltx < chklayouts.tex + done > chklayouts.tex changequote([,])dnl [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+' [eval] `cat chkconfig.vars | sed 's/-/_/g'` changequote(,)dnl + test -n "${rmlink}" && rm -f chkconfig.ltx fi # Do we have all the files we need? Useful if latex did not run @@ -486,7 +494,7 @@ changequote(,)dnl echo "creating doc/LaTeXConfig.lyx" echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed echo "s/@chk_docbook@/$chk_docbook/g" >> chkconfig.sed -sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx +sed -f chkconfig.sed "${srcdir}"/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx echo "creating $outfile" cat >$outfile </dev/null 2>/dev/null ; + if test -r "${srcdir}"/$file && diff $file.new "${srcdir}"/$file >/dev/null 2>/dev/null ; then echo "removing $file, which is identical to the system global version" rm -f $file.new