X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=b3734852a2c9cbc5d41a354cde763a99cd62d460;hb=f7e97284cbbab098cf3bf99976ec8af3146df8d3;hp=fce618c0947015f9e7a338f02e72fe12b1e6b12d;hpb=99abb05c93185fbabac0ba2472d184c4664840ad;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index fce618c094..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,13 +509,27 @@ 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 + ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+' 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 @@ -526,8 +552,34 @@ 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 +MSG_CHECKING(whether TeX allows spaces in file names) +if test ${lyx_check_config} = no ; then + tex_allows_spaces=false +else + fname="a b" + rm -f "$fname".tex + echo "\\message{working^^J}" >"$fname".tex + if ${LATEX} "$fname" /dev/null ; then + MSG_RESULT(yes) + tex_allows_spaces=true + else + MSG_RESULT(no) + tex_allows_spaces=false + fi + rm -r "$fname".* +fi + echo "creating $outfile" cat >$outfile <$outfile <$outfile <>$outfile <