X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=b3734852a2c9cbc5d41a354cde763a99cd62d460;hb=f7e97284cbbab098cf3bf99976ec8af3146df8d3;hp=070bb8fdc7c509bdde6c8dbfa3571c7d3c829f0d;hpb=2e7621d77ba56c42a648b847b81b579b9c9b361e;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index 070bb8fdc7..b3734852a2 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -454,23 +454,35 @@ changequote([,])dnl if test x`[eval] echo $ac_n '${found_'$cleanclass'}'` = x ; then [eval] "found_$cleanclass=yes" changequote(,)dnl - # The sed commands below are a bit scary. Here is what they do: - # 1-3: remove the \DeclareFOO macro and add the correct boolean - # at the end of the line telling whether the class is - # available - # 4: if the macro had an optional argument with several - # parameters, only keep the first one - # 5: if the macro did not have an optional argument, provide one - # (equal to the class name) - # 6: remove brackets and replace with correctly quoted entries - grep '\\Declare\(LaTeX\|DocBook\|LinuxDoc\)Class' "$file" \ - | sed -e 's/^.*\DeclareLaTeXClass *\(.*\)/\1 "false"/' \ - -e 's/^.*\DeclareDocBookClass *\(.*\)/\1 "'$bool_docbook'"/' \ - -e 's/^.*\DeclareLinuxDocClass *\(.*\)/\1 "'$bool_linuxdoc'"/' \ - -e 's/\[\([^,]*\),[^]]*\]/[\1]/' \ - -e 's/^{/['$class']{/' \ - -e 's/\[\([^]]*\)\] *{\([^}]*\)}/"'$class'" "\1" "\2"/' \ - >>textclass.lst + sed -n ' +# We manipulate only those lines that contain +# "\Declare(LaTeX|DocBook|LinuxDoc)Class" +/\\DeclareLaTeXClass/bmatch +/\\DeclareDocBookClass/bmatch +/\\DeclareLinuxDocClass/bmatch +b + +:match +# Remove the \DeclareFOOClass macro and add the correct boolean +# at the end of the line telling whether the class is +# available +s/^.*\DeclareLaTeXClass *\(.*\)/\1 "false"/ +s/^.*\DeclareDocBookClass *\(.*\)/\1 "'$bool_docbook'"/ +s/^.*\DeclareLinuxDocClass *\(.*\)/\1 "'$bool_linuxdoc'"/ +# If the macro had an optional argument with several +# parameters, only keep the first one +s/\[\([^,]*\),[^]]*\]/[\1]/ +# If the macro did not have an optional argument, provide one +# (equal to the class name) +s/^{/['$class']{/ +# Remove brackets and replace with correctly quoted entries +s/\[\([^]]*\)\] *{\([^}]*\)}/"'$class'" "\1" "\2"/ +# Print the maninpulated text +p +# We are interested in the first instance of \DeclareFOOClass only, +# so now quit +q +' "$file" >> textclass.lst fi fi ;; esac @@ -479,7 +491,7 @@ changequote(,)dnl else MSG_RESULT(auto) rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex - if ! test -r "chkconfig.ltx" ; then + if test ! -r "chkconfig.ltx" ; then ln -s "${srcdir}"/chkconfig.ltx . rmlink=true fi @@ -497,8 +509,22 @@ EOF *) if test -r "$file" ; then class=`echo $file | sed -e 's%^.*layouts/\(.*\)\.layout$%\1%'` # Generate the proper TestDocClass command for this layout - grep '\\Declare\(LaTeX\|DocBook\|LinuxDoc\)Class' "$file" \ - | sed -e 's/^\# *\(.*\)$/\\TestDocClass{'${class}'}{\1}/' + sed -n ' +# We manipulate only those lines that contain +# "\Declare(LaTeX|DocBook|LinuxDoc)Class" +/\\DeclareLaTeXClass/bmatch +/\\DeclareDocBookClass/bmatch +/\\DeclareLinuxDocClass/bmatch +b + +:match +# Wrap the entire line (minus the leading "# ") inside a +# "\TestDocClass{CLASS}{...}" command +s/^\# *\(.*\)$/\\TestDocClass{'${class}'}{\1}/ +# Print the result and quit. +p +q +' "$file" fi ;; esac done > chklayouts.tex @@ -526,6 +552,14 @@ 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 + +if test `uname -s | grep 'MINGW'` ; then + # Before running chkconfig.sed, remove the trailing '\r' + # characters that can bugger up various versions of sed. + tr -d '\r' < chkconfig.sed > chkconfig2.sed + mv -f chkconfig2.sed chkconfig.sed +fi + sed -f chkconfig.sed "${srcdir}"/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx ### Let's check whether spaces are allowed in TeX file names @@ -554,9 +588,9 @@ cat >$outfile <$outfile <