X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=0068529700869b72b1c60c37fa7e9d97adff6f07;hb=014b9da9e54c37228bd3b8ea9a5b093dede94491;hp=fce618c0947015f9e7a338f02e72fe12b1e6b12d;hpb=99abb05c93185fbabac0ba2472d184c4664840ad;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index fce618c094..0068529700 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -29,7 +29,7 @@ dnl define(SEARCH_PROG,[dnl changequote([,])dnl MSG_CHECKING($1) -MSG_RESULT(($3)) +MSG_RESULT() $2= for ac_prog in $3 do @@ -38,14 +38,15 @@ set dummy $ac_prog ; ac_word=$[2] if test -n "$ac_word"; then MSG_CHECKING([for \"$ac_word\"],[+]) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. + save_PATH=$PATH ; PATH=:$PATH + for ac_dir in ${PATH} ; do if test -x [$ac_dir/$ac_word]; then $2="$ac_prog" break fi done IFS="$ac_save_ifs" + PATH=$save_PATH if test -n "[$]$2"; then ac_result=yes @@ -198,8 +199,8 @@ case `uname -s` in esac #### Create the build directories if necessary -for dir in bind clipart doc examples help images kbd layouts reLyX \ - scripts templates ui xfonts; do +for dir in bind clipart doc examples images kbd layouts \ + scripts templates ui ; do test ! -d $dir && mkdir $dir done @@ -240,17 +241,16 @@ fi test $latex_to_dvi != "none" && latex_to_dvi="$latex_to_dvi \$\$i" test $latex_to_pdf != "none" && latex_to_pdf="$latex_to_pdf \$\$i" -SEARCH_PROG([for a TGIF viewer and editor], TGIF_EDITOR, tgif) +SEARCH_PROG([for a Tgif viewer and editor], TGIF_EDITOR, tgif) TGIF_VIEWER="$TGIF_EDITOR" SEARCH_PROG([for a FIG viewer and editor], FIG_EDITOR, xfig) FIG_VIEWER="$FIG_EDITOR" -SEARCH_PROG([for a GRACE viewer and editor], GRACE_EDITOR, xmgrace) +SEARCH_PROG([for a Grace viewer and editor], GRACE_EDITOR, xmgrace) GRACE_VIEWER="$GRACE_EDITOR" -SEARCH_PROG([for a FEN viewer and editor], FEN_EDITOR, xboard) -test "$FEN" = "xboard" && FEN_EDITOR="xboard -lpf \$\$i -mode EditPosition" +SEARCH_PROG([for a FEN viewer and editor], FEN_EDITOR, "xboard -lpf \$\$i -mode EditPosition") FEN_VIEWER="$FEN_EDITOR" SEARCH_PROG([for a raster image viewer], RASTERIMAGE_VIEWER, xv kview gimp) @@ -259,49 +259,38 @@ SEARCH_PROG([for a raster image editor], RASTERIMAGE_EDITOR, gimp) SEARCH_PROG([for a text editor], TEXT_EDITOR, xemacs gvim kedit kwrite kate nedit gedit notepad) -# Search for an installed reLyX or a ready-to-install one -save_PATH=${PATH} -PATH=${PATH}:./reLyX/ -SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command,reLyX) -PATH=${save_PATH} -test $tex_to_lyx_command = "reLyX" && tex_to_lyx_command="reLyX -f \$\$i" -tex_to_lyx_command=`echo $tex_to_lyx_command | sed "s,reLyX,reLyX$version_suffix,"` +# Search for an installed tex2lyx or a ready-to-install one +SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command, "$PWD/../src/tex2lyx/tex2lyx -f \$\$i \$\$o" "tex2lyx$version_suffix -f \$\$i \$\$o") -SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,noweb2lyx) -test $literate_to_lyx_command = "noweb2lyx" && literate_to_lyx_command="noweb2lyx \$\$i \$\$o" +SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,"noweb2lyx \$\$i \$\$o") literate_to_lyx_command=`echo $literate_to_lyx_command | sed "s,noweb2lyx,noweb2lyx$version_suffix,"` # Search something to process a literate document -SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,noweave) -test $literate_to_tex_command = "noweave" && literate_to_tex_command="noweave -delay -index \$\$i > \$\$o" +SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,"noweave -delay -index \$\$i > \$\$o") -SEARCH_PROG([for a HTML -> Latex converter],html_to_latex_command,html2latex) -test $html_to_latex_command = "html2latex" && html_to_latex_command="html2latex \$\$i" +SEARCH_PROG([for an HTML -> LaTeX converter],html_to_latex_command, "html2latex \$\$i") -SEARCH_PROG([for a MSWord -> Latex converter],word_to_latex_command,wvCleanLatex word2x) -test "$word_to_latex_command" = "wvCleanLatex" && word_to_latex_command="wvCleanLatex \$\$i \$\$o" -test "$word_to_latex_command" = "word2x" && word_to_latex_command="word2x -f latex \$\$i" +SEARCH_PROG([for an MS Word -> LaTeX converter],word_to_latex_command, "wvCleanLatex \$\$i \$\$o") -SEARCH_PROG([for Image converter],image_command,convert) -test $image_command = "convert" && image_command="convert \$\$i \$\$o" +# tex4ht generates HTML output that is well-suited for MS Word +SEARCH_PROG([for a LaTeX -> MS Word converter],latex_to_word_command, "htlatex") +test "$latex_to_word_command" = "htlatex" && latex_to_word_command="htlatex \$\$i 'html,word' 'symbol/!' '-cvalidate'" -SEARCH_PROG([for an OpenOffice.org -> Latex converter],sxw_to_latex_command,w2l) -test "$sxw_to_latex_command" = "w2l" && sxw_to_latex_command="w2l -clean \$\$i" + + +SEARCH_PROG([for Image converter],image_command, "convert \$\$i \$\$o") + +SEARCH_PROG([for an OpenOffice.org -> LaTeX converter],sxw_to_latex_command, "w2l -clean \$\$i") # oolatex is the original name, SuSE has oolatex.sh -SEARCH_PROG([for an Latex -> OpenOffice.org converter],latex_to_sxw_command,oolatex oolatex.sh) -test "$latex_to_sxw_command" != "none" && latex_to_sxw_command="$latex_to_sxw_command \$\$i" +SEARCH_PROG([for a LaTeX -> OpenOffice.org converter],latex_to_sxw_command, "oolatex \$\$i" "oolatex.sh \$\$i") # Search something to preview postscript -SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gsview32 gv ghostview kghostview) -case $GHOSTVIEW in - ghostview) PS_VIEWER="$GHOSTVIEW -swap" ;; - *) PS_VIEWER="$GHOSTVIEW";; -esac -EPS_VIEWER=$GHOSTVIEW +SEARCH_PROG([for a Postscript previewer],PS_VIEWER,gsview32 gv "ghostview -swap" kghostview) +EPS_VIEWER=$PS_VIEWER # Search for a program to preview pdf -SEARCH_PROG([for a PDF preview],PDF_VIEWER, acrobat acrord32 gsview32 acroread gv ghostview xpdf kpdf kghostview) +SEARCH_PROG([for a PDF previewer],PDF_VIEWER, acrobat acrord32 gsview32 acroread gv ghostview xpdf kpdf kghostview) # Search something to preview dvi SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap kdvi) @@ -310,16 +299,13 @@ SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap kdvi) SEARCH_PROG([for a HTML previewer],HTML_VIEWER, "mozilla file://\$\$p\$\$i" netscape) # Search for a program to convert ps to pdf -SEARCH_PROG([for a PS to PDF converter],ps_to_pdf_command,ps2pdf) -test $ps_to_pdf_command = "ps2pdf" && ps_to_pdf_command="ps2pdf -dCompatibilityLevel=1.3 \$\$i" +SEARCH_PROG([for a PS to PDF converter],ps_to_pdf_command, "ps2pdf13 \$\$i") # Search for a program to convert dvi to ps -SEARCH_PROG([for a DVI to PS converter],dvi_to_ps_command,dvips) -test $dvi_to_ps_command = "dvips" && dvi_to_ps_command="dvips -o \$\$o \$\$i" +SEARCH_PROG([for a DVI to PS converter],dvi_to_ps_command, "dvips -o \$\$o \$\$i") # Search for a program to convert dvi to pdf -SEARCH_PROG([for a DVI to PDF converter],dvi_to_pdf_command,dvipdfm) -test $dvi_to_pdf_command = "dvipdfm" && dvi_to_pdf_command="dvipdfm \$\$i" +SEARCH_PROG([for a DVI to PDF converter],dvi_to_pdf_command, "dvipdfm \$\$i") # We have a script to convert previewlyx to ppm or to png lyxpreview_to_bitmap_command='python $$s/scripts/lyxpreview2bitmap.py' @@ -341,7 +327,7 @@ LYXRC_PROG([for ChkTeX], \chktex_command,dnl "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38") # Search for a spellchecker -LYXRC_PROG([for a spell-checker], \spell_command, ispell) +LYXRC_PROG([for a spellchecker], \spell_command, ispell) # Search for computer algebra systems SEARCH_PROG([for Octave],OCTAVE,octave) @@ -360,8 +346,7 @@ dnl fax_command="none" dnl fi # Search a GUI Fax program -SEARCH_PROG([for a fax program], fax_command, kdeprintfax ksendfax) -test $fax_command != "none" && fax_command="$fax_command \$\$i" +SEARCH_PROG([for a fax program], fax_command, "kdeprintfax \$\$i" "ksendfax \$\$i") # Search for LinuxDoc support SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx) @@ -419,13 +404,11 @@ case $prog in esac LYXRC_VAR(\print_spool_printerprefix, $print_spool_printerprefix) -SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea) -latex_to_html_command=$TOHTML -case $TOHTML in - tth) latex_to_html_command="tth -t -e2 -L\$\$b < \$\$i > \$\$o";; - latex2html) latex_to_html_command="latex2html -no_subdir -split 0 -show_section_numbers \$\$i";; - hevea) latex_to_html_command="hevea -s \$\$i";; -esac +SEARCH_PROG([for a LaTeX -> HTML converter], latex_to_html_command,dnl + "htlatex \$\$i" dnl + "tth -t -e2 -L\$\$b < \$\$i > \$\$o" dnl + "latex2html -no_subdir -split 0 -show_section_numbers \$\$i" dnl + "hevea -s \$\$i") #### Explore the LaTeX configuration MSG_CHECKING(LaTeX configuration) @@ -454,23 +437,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,9 +474,9 @@ 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 + if test ! -r "chkconfig.ltx" ; then + cp "${srcdir}"/chkconfig.ltx . + rmcopy=true fi cat >wrap_chkconfig.ltx < 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 + test -n "${rmcopy}" && rm -f chkconfig.ltx fi # Do we have all the files we need? Useful if latex did not run @@ -526,8 +535,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 -f "$fname".* texput.log +fi + echo "creating $outfile" cat >$outfile <$outfile <$outfile <$outfile < EPS/PPM converter], FIG2DEV, fig2dev) +SEARCH_PROG([for a FIG -> EPS/PPM/PNG converter], FIG2DEV, fig2dev) if test "$FIG2DEV" = "fig2dev"; then cat >>$outfile <>$outfile < PS converter], TIFF2PS, tiff2ps) +SEARCH_PROG([for a TIFF -> PS converter], TIFF2PS, tiff2ps) if test "$TIFF2PS" = "tiff2ps"; then cat >>$outfile < \$\$o" "" EOF fi -SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif) +SEARCH_PROG([for a Tgif -> EPS/PDF converter], TGIF, tgif) if test "$TGIF" = "tgif"; then cat >>$outfile < \$\$o" "" @@ -660,6 +697,7 @@ cat >>$outfile <> $outfile fi -######## X FONTS -# create a fonts.dir file to make X fonts available to LyX -echo "checking for TeX fonts" - -fontlist="cmex10 cmmi10 cmr10 cmsy10 eufm10 msam10 msbm10 wasy10" -rm -f xfonts/fonts.dir xfonts/fonts.scale xfonts/tmpfonts - -num=0 -touch xfonts/tmpfonts -for font in $fontlist ; do - MSG_CHECKING(for $font,+) - result=no - for ext in pfb pfa ttf ; do - if filepath=`kpsewhich $font.$ext` ; then - result="yes ($ext)" - rm -f xfonts/$font.$ext - ln -s $filepath xfonts 2>/dev/null - echo "$font.$ext -unknown-$font-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific" >>xfonts/tmpfonts - num=`expr $num + 1` - break - fi - done - MSG_RESULT($result) -done - -if test ! $num = 0 ; then - echo $num >xfonts/fonts.scale - cat xfonts/tmpfonts >>xfonts/fonts.scale - cp xfonts/fonts.scale xfonts/fonts.dir - # create a resource list file for Display Postscript - (cd xfonts ; rm -f PSres.upr ; makepsres) 2>/dev/null || true -fi -rm -f xfonts/tmpfonts - - # Remove superfluous files if we are not writing in the main lib # directory for file in $outfile textclass.lst packages.lst \ - doc/LaTeXConfig.lyx xfonts/fonts.dir ; do + doc/LaTeXConfig.lyx ; do # we rename the file first, so that we avoid comparing a file with itself mv $file $file.new if test -r "${srcdir}"/$file && diff $file.new "${srcdir}"/$file >/dev/null 2>/dev/null ; @@ -716,10 +719,6 @@ for file in $outfile textclass.lst packages.lst \ mv $file.new $file fi done -if test ! -r xfonts/fonts.dir ; then - echo "removing font links" - rm -f xfonts/*.pfb xfonts/fonts.scale -fi # Final clean-up if test $lyx_keep_temps = no ; then