X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=9fbf2391a765bd55a70af13ff2b8ab5d0b5d405d;hb=f79c6a1991d1743ee1bf31f769bd57fb295241af;hp=6cfa32a414bbb2f687d471e792ba447f465f0109;hpb=cdcb9b2cc09bed252d5247d89602bbef698a1487;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index 6cfa32a414..9fbf2391a7 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= @@ -185,10 +200,19 @@ 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/ @@ -216,7 +240,7 @@ 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) @@ -243,18 +267,16 @@ 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 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) +LYXRC_PROG([for a spell-checker], \spell_command, ispell) dnl # Search a Fax handling program dnl SEARCH_PROG([for a fax driver], FAX, sendfax faxsend fax) @@ -314,14 +336,13 @@ case $DOCBOOK in 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_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea) latex_to_html_command=$TOHTML @@ -331,6 +352,70 @@ case $TOHTML in hevea) latex_to_html_command="hevea -s \$\$i";; esac +#### Search for image conversion #### +SEARCH_PROG([for an Image -> EPS converter], TOEPS, convert pnmtops) +case $TOEPS in + convert) + bmp_to_eps="convert BMP:\$\$i EPS:\$\$o" + fits_to_eps="convert FITS:\$\$i EPS:\$\$o" + gif_to_eps="convert GIF:\$\$i EPS:\$\$o" + jpg_to_eps="convert JPG:\$\$i EPS:\$\$o" + pbm_to_eps="convert PBM:\$\$i EPS:\$\$o" + pgm_to_eps="convert PGM:\$\$i EPS:\$\$o" + png_to_eps="convert PNG:\$\$i EPS:\$\$o" + ppm_to_eps="convert PPM:\$\$i EPS:\$\$o" + sgi_to_eps="convert SGI:\$\$i EPS:\$\$o" + xbm_to_eps="convert XBM:\$\$i EPS:\$\$o" + xwd_to_eps="convert XWD:\$\$i EPS:\$\$o" + xpm_to_eps="convert XPM:\$\$i EPS:\$\$o" ;; + pnmtops) gif_to_eps="giftopnm \$\$i | pnmtops > \$\$o" + png_to_eps="pngtopnm \$\$i | pnmtops >\$\$o" + jpg_to_eps="jpegtopnm \$\$i | pnmtops >\$\$o";; +esac + +SEARCH_PROG([for an Image -> PNG converter], TOPNG, convert pnmtopng) +case $TOPNG in + convert) + gif_to_png="convert GIF:\$\$i PNG:\$\$o" + eps_to_png="convert EPS:\$\$i PNG:\$\$o" + jpg_to_png="convert JPG:\$\$i PNG:\$\$o";; + pnmtopng) + gif_to_png="giftopnm \$\$i | pnmtopng >\$\$o" + eps_to_png="pstopnm \$\$i| pnmtopng >\$\$o" + jpg_to_png="jpegtopnm \$\$i | pnmtopng >\$\$o";; +esac + +SEARCH_PROG([for an Image -> XPM converter], TOXPM, convert) +if test "$TOXPM" = "convert"; then + gif_to_xpm="convert GIF:\$\$i XPM:\$\$o" + eps_to_xpm="convert EPS:\$\$i XPM:\$\$o" + jpg_to_xpm="convert JPG:\$\$i XPM:\$\$o" + png_to_xpm="convert PNG:\$\$i XPM:\$\$o" + ps_to_xpm="convert PS:\$\$i XPM:\$\$o" + xbm_to_xpm="convert XBM:\$\$i XPM:\$\$o" +fi + +SEARCH_PROG([for an EPS -> PDF converter], EPSTOPDF, epstopdf) +case $EPSTOPDF in + epstopdf) eps_to_pdf="epstopdf --outfile=\$\$o \$\$i";; +esac + +#### Add Grace conversions (xmgrace needs an Xserver, gracebat doesn't.) +SEARCH_PROG([for a Grace -> Image converter], GRACE, gracebat) +case $GRACE in + gracebat) + for device in `gracebat -version 2>/dev/null | grep "^Dummy"` ; do + case $device in + EPS) + agr_to_eps="xmgrace -hardcopy -printfile \$\$o -hdevice $device \$\$i";; + PDF) + agr_to_pdf="xmgrace -hardcopy -printfile \$\$o -hdevice $device \$\$i";; + PNG) + agr_to_png="xmgrace -hardcopy -printfile \$\$o -hdevice $device \$\$i";; + esac + done +esac + #### Explore the LaTeX configuration MSG_CHECKING(LaTeX configuration) # First, remove the files that we want to re-create @@ -347,15 +432,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'` @@ -364,13 +449,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 @@ -379,7 +464,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 @@ -388,14 +473,13 @@ 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 <lyxrc.defaults <lyxrc.defaults <lyxrc.defaults < \$\$o" "" +\\converter xbm eps "$xbm_to_eps" "" +\\converter xpm eps "$xpm_to_eps" "" +\\converter xwd eps "$xwd_to_eps" "" + +\\converter tgif xpm "tgif -print -stdout -xpm \$\$i > \$\$o" "" +\\converter tgif png "tgif -print -stdout -png \$\$i > \$\$o" "" +\\converter tgif pdf "tgif -print -stdout -pdf \$\$i > \$\$o" "" + +\\converter gif png "$gif_to_png" "" +\\converter eps png "$eps_to_png" "" +\\converter epsi png "$eps_to_png" "" +\\converter jpg png "$jpg_to_png" "" + +\\converter gif xpm "$gif_to_xpm" "" +\\converter eps xpm "$eps_to_xpm" "" +\\converter epsi xpm "$eps_to_xpm" "" +\\converter jpg xpm "$jpg_to_xpm" "" +\\converter png xpm "$png_to_xpm" "" +\\converter ps xpm "$ps_to_xpm" "" +\\converter xbm xpm "$xbm_to_xpm" "" + +\\converter eps pdf "$eps_to_pdf" "" +\\converter epsi pdf "$eps_to_pdf" "" + +\\converter agr eps "$agr_to_eps" "" +\\converter agr pdf "$agr_to_pdf" "" +\\converter agr png "$agr_to_png" "" \\viewer dvi "$DVI_VIEWER" \\viewer html "$HTML_VIEWER" @@ -455,24 +585,51 @@ cat >lyxrc.defaults </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