X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=f69946572154a5640906d805a451689c87c2b096;hb=2312ee83b1d81588586baec9331e09491c24f649;hp=ce3855ddc4d5419db51ceed506428bdcd4665575;hpb=793da498a2229373fab957687a32b61714304d4c;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index ce3855ddc4..f699465721 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -37,7 +37,7 @@ do 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=":" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -x [$ac_dir/$ac_word]; then @@ -49,10 +49,10 @@ if test -n "$ac_word"; then if test -n "[$]$2"; then ac_result=yes + ifelse($4,,,[$4]) else ac_result=no fi - ifelse($4,,,[$4]) MSG_RESULT($ac_result) test -n "[$]$2" && break fi @@ -67,10 +67,23 @@ changequote(,)dnl ])dnl dnl dnl +dnl LYXRC_VAR(VARIABLE_NAME, VALUE) +define(LYXRC_VAR,[dnl +rc_entries="$rc_entries +$1 \"$2\""]) +dnl +dnl +dnl LYXRC_PROG(FEATURE-DESCRIPTION,VARIABLE-NAME,PROGRAMS-LIST, +dnl ACTION-IF-FOUND,ACTION-IF-NOT-FOUND) +define(LYXRC_PROG,[dnl +SEARCH_PROG($1,prog,$3,$4,$5) +LYXRC_VAR($2,$prog)]) +dnl +dnl dnl PROVIDE_DEFAULT_FILE(FILE, DEFAULT-VALUE) dnl define(PROVIDE_DEFAULT_FILE,[dnl -# if $1 does not exist (because LaTeX did not run), +# if $1 does not exist (because LaTeX did not run), # then provide a standard version. if test ! -f $1 ; then cat >$1 <chklatex.ltx </dev/null \ - | grep 'ThisIsLaTeX2e' >/dev/null; then + | grep 'ThisIsLaTeX2e' >/dev/null; then : else LATEX= @@ -175,68 +201,110 @@ dnl # Search LaTeX2e SEARCH_PROG([for a LaTeX2e program],LATEX,latex latex2e,CHECKLATEX2E,dnl [lyx_check_config=no]) -if test x$lyx_check_config != x ; then -SEARCH_PROG([for the pdflatex program],PDFLATEX,pdflatex,CHECKLATEX2E) +latex_to_dvi=$LATEX +test -z "$latex_to_dvi" && latex_to_dvi="none" + +# Search for pdflatex +if test ${lyx_check_config} = no ; then + latex_to_pdf=none +else + SEARCH_PROG([for the pdflatex program],latex_to_pdf,pdflatex) 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 for an installed reLyX or a ready-to-install one save_PATH=${PATH} PATH=${PATH}:./reLyX/ -SEARCH_PROG([for reLyX LaTeX-to-LyX translator],RELYX,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_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,noweb2lyx) +test $literate_to_lyx_command = "noweb2lyx" && 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 Literate programming processor],LITERATE,"noweave -delay -index \$\$FName > \$\$OutName") -if test "$LITERATE" = "none"; then LITERATE_EXT="none"; else LITERATE_EXT="nw"; fi +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 HTML -> Latex converter],html_to_latex_command,html2latex) +test $html_to_latex_command = "html2latex" && 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 Image converter],image_command,convert) +test $image_command = "convert" && image_command="convert \$\$i \$\$o" # Search for a Postscript interpreter -SEARCH_PROG([for a Postscript interpreter],GS, gs) +LYXRC_PROG([for a Postscript interpreter], \ps_command, gs) # Search something to preview postscript SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview) # Search for a program to preview pdf -SEARCH_PROG([for a PDF preview],PDF_VIEWER,xpdf acroread gv ghostview) +SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf) # Search something to preview dvi -SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi) +SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap) # Search something to preview html -SEARCH_PROG([for a HTML previewer],HTML_VIEWER, netscape) +SEARCH_PROG([for a HTML previewer],HTML_VIEWER, "mozilla file://\$\$p\$\$i" netscape) + +# Search for a program to preview latex code +SEARCH_PROG([for a LaTeX preview],LATEX_VIEWER, "xterm -e less") # 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 \$\$FName" +test $ps_to_pdf_command = "ps2pdf" && ps_to_pdf_command="ps2pdf -dCompatibilityLevel=1.3 \$\$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 \$\$OutName \$\$FName" +test $dvi_to_ps_command = "dvips" && 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" + +# We have a script to convert previewlyx to ppm +lyxpreview_to_bitmap_command="lyxpreview2bitmap.sh" # Search a *roff program (used to translate tables in ASCII export) -SEARCH_PROG([for a *roff formatter],ROFF,groff nroff) -ascii_roff_command=$ROFF -test $ROFF = "groff" && ascii_roff_command="groff -t -Tlatin1 \$\$FName" -test $ROFF = "nroff" && ascii_roff_command="tbl \$\$FName | nroff" +LYXRC_PROG([for a *roff formatter], \ascii_roff_command, dnl + 'groff -t -Tlatin1 $$FName' nroff,dnl + test "$prog" = "nroff" && prog='tbl $$FName | nroff') # Search the ChkTeX program -SEARCH_PROG([for ChkTeX],CHKTEX,chktex) -chktex_command=$CHKTEX -test $CHKTEX = "chktex" && chktex_command="$CHKTEX -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38" +LYXRC_PROG([for ChkTeX], \chktex_command,dnl + "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38") # Search for a spellchecker -SEARCH_PROG([for a spell-checker], SPELL,ispell) - -# Search a Fax handling program -SEARCH_PROG([for a fax driver], FAX, sendfax faxsend fax) -if test $FAX = sendfax ; then - fax_command="sendfax -n -h '\$\$Host' -c '\$\$Comment' -x '\$\$Enterprise' -d '\$\$Name'@'\$\$Phone' '\$\$FName'" -elif test $FAX = faxsend ; then - fax_command="faxsend '\$\$Phone' '\$\$FName'" -elif test $FAX = fax ; then - fax_command="fax send '\$\$Phone' '\$\$FName'" -else - fax_command="none" -fi +LYXRC_PROG([for a spell-checker], \spell_command, ispell) + +# Search for computer algebra systems +SEARCH_PROG([for Octave],OCTAVE,octave) +SEARCH_PROG([for Maple],MAPLE,maple) + +dnl # Search a Fax handling program +dnl SEARCH_PROG([for a fax driver], FAX, sendfax faxsend fax) +dnl if test $FAX = sendfax ; then +dnl fax_command="sendfax -n -h '\$\$Host' -c '\$\$Comment' -x '\$\$Enterprise' -d '\$\$Name'@'\$\$Phone' '\$\$FName'" +dnl elif test $FAX = faxsend ; then +dnl fax_command="faxsend '\$\$Phone' '\$\$FName'" +dnl elif test $FAX = fax ; then +dnl fax_command="fax send '\$\$Phone' '\$\$FName'" +dnl else +dnl fax_command="none" +dnl fi + +# Search a GUI Fax program +SEARCH_PROG([for a fax program], fax_command, kdeprintfax ksendfax) +test $fax_command = "kdeprintfax" && fax_command="kdeprintfax \$\$i" +test $fax_command = "ksendfax" && fax_command="ksendfax \$\$i" # Search for LinuxDoc support SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx) @@ -248,10 +316,10 @@ fi case $LINUXDOC in sgml2lyx) - linuxdoc_to_latex_command="sgml2latex \$\$FName" - linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$FName" - linuxdoc_to_html_command="sgml2html \$\$FName" - linuxdoc_to_lyx_command="sgml2lyx";; + linuxdoc_to_latex_command="sgml2latex \$\$i" + linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$i" + linuxdoc_to_html_command="sgml2html \$\$i" + linuxdoc_to_lyx_command="sgml2lyx \$\$i";; none) linuxdoc_to_latex_command="none" linuxdoc_to_dvi_command="none" @@ -269,33 +337,31 @@ fi case $DOCBOOK in sgmltools) - docbook_to_dvi_command="sgmltools -b dvi \$\$FName" - docbook_to_html_command="sgmltools -b html \$\$FName";; + docbook_to_dvi_command="sgmltools -b dvi \$\$i" + docbook_to_html_command="sgmltools -b html \$\$i";; db2dvi) - docbook_to_dvi_command="db2dvi \$\$FName" - docbook_to_html_command="db2html \$\$FName";; + docbook_to_dvi_command="db2dvi \$\$i" + docbook_to_html_command="db2html \$\$i";; none) docbook_to_dvi_command="none" docbook_to_html_command="none";; esac # Search for a spool command -SEARCH_PROG([for a spool command], LPR, lp lpr) -case $LPR in - lp) print_spool_command=lp - print_spool_printerprefix="-d ";; - lpr) print_spool_command=lpr - print_spool_printerprefix="-P";; +LYXRC_PROG([for a spool command], \print_spool_command, lp lpr) +case $prog in + lp) print_spool_printerprefix="-d ";; + lpr) print_spool_printerprefix="-P";; *) :;; # leave to empty values esac +LYXRC_VAR(\print_spool_printerprefix, $print_spool_printerprefix) -# Search for a latex to html converter -SEARCH_PROG([for an HTML converter], TOHTML, tth latex2html hevea) -latex_to_html_command = $TOHTML +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\$\$BaseName < \$\$FName > \$\$OutName";; - latex2html) latex_to_html_command="latex2html -no_subdir -split 0 -show_section_numbers \$\$FName";; - hevea) latex_to_html_command="hevea -s \$\$FName";; + 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 #### Explore the LaTeX configuration @@ -314,15 +380,15 @@ ${docbook_cmd} \\input{${srcdir}/chkconfig.ltx} EOF ## Construct the list of classes to test for. - # 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 commands + # for chkconfig.ltx + for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do case $file in */\*.layout) ;; *) test -r "$file" && echo $file ;; esac done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\ - > chklayouts.tex + > chklayouts.tex changequote([,])dnl [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+' [eval] `cat chkconfig.vars | sed 's/-/_/g'` @@ -331,13 +397,13 @@ fi # Do we have all the files we need? Useful if latex did not run changequote([,])dnl -echo creating textclass.lst +echo "creating textclass.lst" PROVIDE_DEFAULT_FILE(textclass.lst,dnl [# This file declares layouts and their associated definition files # (include dir. relative to the place where this file is). -# It contains only default values, since chkconfig.ltx could not be run +# It contains only default values, since chkconfig.ltx could not be run # for some reason. Run ./configure if you need to update it after a -# configuration change. +# configuration change. article article article report report report book book book @@ -346,7 +412,7 @@ letter letter letter]) PROVIDE_DEFAULT_FILE(chkconfig.sed,[s/@.*@/???/g]) -echo creating packages.lst +echo "creating packages.lst" PROVIDE_DEFAULT_FILE(packages.lst,dnl [# This file should contain the list of LaTeX packages that have been # recognized by LyX. Unfortunately, since configure could not find @@ -355,67 +421,184 @@ PROVIDE_DEFAULT_FILE(packages.lst,dnl ]) changequote(,)dnl -echo creating doc/LaTeXConfig.lyx +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 -echo creating lyxrc.defaults -rm -f lyxrc.defaults -cat >lyxrc.defaults <$outfile < EPS/XPM converter], FIG2DEV, fig2dev) +if test "$FIG2DEV" = "fig2dev"; then +cat >>$outfile < PS converter], TIFF2PS, tiff2ps) +if test "$TIFF2PS" = "tiff2ps"; then +cat >>$outfile < \$\$o" "" +EOF +fi + +SEARCH_PROG([for an TGIF -> EPS/XPM converter], TGIF, tgif) +if test "$TGIF" = "tgif"; then +cat >>$outfile < \$\$o" "" +EOF +fi + +SEARCH_PROG([for an EPS -> PDF converter], EPSTOPDF, epstopdf) +if test "$EPSTOPDF" = "epstopdf"; then +cat >>$outfile < EPS/XPM converter], EPS2EPS, eps2eps) +if test "$EPS2EPS" = "eps2eps"; then +cat >>$outfile < Image converter], GRACE, gracebat) +if test "$GRACE" = "gracebat"; then +cat >>$outfile </dev/null" "" +\\converter agr png "gracebat -hardcopy -printfile \$\$o -hdevice PNG \$\$i 2>/dev/null" "" +\\converter agr xpm "gracebat -hardcopy -printfile - -hdevice PNG \$\$i 2>/dev/null | convert - \$\$o" "" +EOF +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 +fi +rm -f xfonts/tmpfonts + + # Remove superfluous files if we are not writing in the main lib -# directory -for file in lyxrc.defaults textclass.lst packages.lst \ - doc/LaTeXConfig.lyx ; do +# directory +for file in $outfile textclass.lst packages.lst \ + doc/LaTeXConfig.lyx xfonts/fonts.dir ; 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 ; - then + 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 else mv $file.new $file fi done - +if test ! -r xfonts/fonts.dir ; then + echo "removing font links" + rm -r xfonts/*.pfb xfonts/fonts.scale +fi # Final clean-up if test $lyx_keep_temps = no ; then