X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=addc8a8d40678dab47126a380a300f99c52f00fd;hb=98c966c64594611e469313314abd1e59524adb4a;hp=07874301a57a26c3a0a359adc792f2e363529ead;hpb=30eff7526de39a0964fb54e6421ddc2910f7dcba;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index 07874301a5..addc8a8d40 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -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,6 +67,19 @@ 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 @@ -82,9 +95,12 @@ dnl ######### End M4 macros ############################################# ####some configuration variables +outfile=lyxrc.defaults +rc_entries= lyx_check_config=yes lyx_keep_temps=no srcdir= +lyx_suffix= #### Parse the command line for ac_option do @@ -96,12 +112,15 @@ Options: --help show this help lines --keep-temps keep temporary files (for debug. purposes) --without-latex-config do not run LaTeX to determine configuration + --with-lyx-suffix=suffix suffix of binary installed files EOF exit 0;; --without-latex-config) lyx_check_config=no ;; --keep-temps) lyx_keep_temps=yes ;; + --with-lyx-suffix*) + lyx_suffix=`echo "$ac_option" | sed 's,--with-lyx-suffix=,,;s,^,-,'` esac done @@ -144,10 +163,16 @@ if test ! -r ${srcdir}/chkconfig.ltx ; then exit 1 fi +#### Adjust PATH for Win32 (Cygwin) +if test "x$OSTYPE" = xcygwin; then + echo "configure: cygwin detected; path correction" + srcdir=`cygpath -w "${srcdir}" | tr '\\\\' /` + echo "srcdir=${srcdir}" +fi #### Create the build directories if necessary -for dir in bind clipart doc examples images kbd layouts reLyX \ - scripts templates ; do +for dir in bind clipart doc examples help images kbd layouts reLyX \ + scripts templates ui xfonts; do test ! -d $dir && mkdir $dir done @@ -175,60 +200,99 @@ 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$lyx_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$lyx_suffix,"` # Search something to process a literate document -SEARCH_PROG([for a Literate programming processor],LITERATE,"noweave -delay -index") -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],PDFVIEWER,xpdf acroread gv ghostview) +SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf) -# Search for a program to convert pdf to ps -SEARCH_PROG([for a PDF to PS converter],PDFPS,pdf2ps pdftops) +# Search something to preview dvi +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 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 \$\$i" # Search for a program to convert dvi to ps -SEARCH_PROG([for a DVI to PS converter],DVIPS,dvips) +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 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 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) + +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, ksendfax) +test $fax_command = "ksendfax" && fax_command="ksendfax \$\$i" # Search for LinuxDoc support SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx) @@ -240,11 +304,13 @@ fi case $LINUXDOC in sgml2lyx) - linuxdoc_to_latex_command="sgml2latex" - 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" linuxdoc_to_html_command="none" linuxdoc_to_lyx_command="none";; esac @@ -259,32 +325,59 @@ fi case $DOCBOOK in sgmltools) - docbook_to_dvi_command="sgmltools -b dvi" - 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" - 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) +SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea) +latex_to_html_command=$TOHTML case $TOHTML in - tth) html_command="tth -t < '\$\$FName' > '\$\$OutName'";; - latex2html) html_command="latex2html -no_subdir -split 0 -show_section_numbers '\$\$FName'";; - hevea) 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 + +#### 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" ;; + 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 a 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 a 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 #### Explore the LaTeX configuration @@ -320,7 +413,7 @@ 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). @@ -335,7 +428,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 @@ -344,50 +437,155 @@ 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 < \$\$o" "" +\\converter xbm eps "$xbm_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" "" + +\\viewer dvi "$DVI_VIEWER" +\\viewer html "$HTML_VIEWER" +\\viewer pdf "$PDF_VIEWER" +\\viewer ps "$GHOSTVIEW -swap" +\\viewer eps "$GHOSTVIEW" + +$rc_entries \\font_encoding "$chk_fontenc" EOF +######## 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" +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 +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 ;