X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=b3734852a2c9cbc5d41a354cde763a99cd62d460;hb=f7e97284cbbab098cf3bf99976ec8af3146df8d3;hp=1675d00730349a3c0c403c95d72b2907ff67a992;hpb=55907ce8537905b51684ba9f1aa38829490ac7d4;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index 1675d00730..b3734852a2 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -94,6 +94,16 @@ changequote(,)dnl dnl ######### End M4 macros ############################################# +# Be Bourne compatible (taken from autoconf 2.53) +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + + + ####some configuration variables outfile=lyxrc.defaults rc_entries= @@ -157,18 +167,35 @@ ac_prog=[$]0 changequote(,)dnl srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` -test "x$srcdir" = "x$ac_prog" && srcdir=. -if test ! -r ${srcdir}/chkconfig.ltx ; then +test "x${srcdir}" = "x$ac_prog" && srcdir=. +if test ! -r "${srcdir}"/chkconfig.ltx ; then echo "configure: error: cannot find chkconfig.ltx script" 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 +use_cygwin_path_fix='' +case `uname -s` in + CYGWIN*) + tmpfname="/tmp/x$$.ltx"; + echo "\\documentstyle{article}" > $tmpfname + echo "\\begin{document}\\end{document}" >> $tmpfname + inpname=`cygpath -w $tmpfname | tr '\\\\' /` + echo "\\input{$inpname}" > wrap_temp$$.ltx + check_err=`latex wrap_temp$$.ltx 2>&1 < /dev/null | grep Error` + rm -f wrap_temp$$.* /tmp/x$$.* + if [ x"$check_err" = "x" ] + then + echo "configure: cygwin detected; path correction" + srcdir=`cygpath -w "${srcdir}" | tr '\\\\' /` + echo "srcdir=${srcdir}" + use_cygwin_path_fix='true' + else + echo "configure: cygwin detected; path correction is not needed" + use_cygwin_path_fix='false' + fi + ;; +esac #### Create the build directories if necessary for dir in bind clipart doc examples help images kbd layouts reLyX \ @@ -198,7 +225,7 @@ fi rm -f chklatex.ltx chklatex.log])dnl dnl # Search LaTeX2e -SEARCH_PROG([for a LaTeX2e program],LATEX,latex latex2e,CHECKLATEX2E,dnl +SEARCH_PROG([for a LaTeX2e program],LATEX,pplatex latex2e latex,CHECKLATEX2E,dnl [lyx_check_config=no]) latex_to_dvi=$LATEX test -z "$latex_to_dvi" && latex_to_dvi="none" @@ -213,6 +240,25 @@ 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) +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) +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" +FEN_VIEWER="$FEN_EDITOR" + +SEARCH_PROG([for a raster image viewer], RASTERIMAGE_VIEWER, xv kview gimp) + +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/ @@ -239,27 +285,33 @@ test "$word_to_latex_command" = "word2x" && word_to_latex_command="word2x -f lat SEARCH_PROG([for Image converter],image_command,convert) test $image_command = "convert" && image_command="convert \$\$i \$\$o" -# Search for a Postscript interpreter -LYXRC_PROG([for a Postscript interpreter], \ps_command, gs) +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" + +# 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 something to preview postscript -SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview) +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 for a program to preview pdf -SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf) +SEARCH_PROG([for a PDF preview],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) +SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap kdvi) # Search something to preview html -SEARCH_PROG([for a HTML previewer],HTML_VIEWER, netscape) - -# Search for a program to preview latex code -SEARCH_PROG([for a LaTeX preview],LATEX_VIEWER, "xterm -e less") +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 \$\$i" +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) @@ -269,13 +321,19 @@ test $dvi_to_ps_command = "dvips" && dvi_to_ps_command="dvips -o \$\$o \$\$i" 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 for a program to convert previewlyx to eps -SEARCH_PROG([for a LyX preview converter],lyxpreview_to_xpm_command,lyxpreview2xpm.sh) -test $lyxpreview_to_xpm_command = "lyxpreview2xpm.sh" && lyxpreview_to_xpm_command="lyxpreview2xpm.sh \$\$i \$\$o" +# We have a script to convert previewlyx to ppm or to png +lyxpreview_to_bitmap_command='python $$s/scripts/lyxpreview2bitmap.py' + +# Search for 'dvipng'. Only enable the conversion from lyxpreview -> png +# if dvipng is found. +SEARCH_PROG([for dvipng],DVIPNG,dvipng) + +test "$DVIPNG" = "dvipng" && \ + lyxpreview_to_png_command=$lyxpreview_to_bitmap_command # Search a *roff program (used to translate tables in ASCII export) LYXRC_PROG([for a *roff formatter], \ascii_roff_command, dnl - 'groff -t -Tlatin1 $$FName' nroff,dnl + "groff -t -Tlatin1 \$\$FName" nroff,dnl test "$prog" = "nroff" && prog='tbl $$FName | nroff') # Search the ChkTeX program @@ -285,6 +343,10 @@ LYXRC_PROG([for ChkTeX], \chktex_command,dnl # Search for a spellchecker 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 @@ -298,15 +360,18 @@ 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_PROG([for a fax program], fax_command, kdeprintfax ksendfax) +test $fax_command != "none" && fax_command="$fax_command \$\$i" # Search for LinuxDoc support SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx) -chk_linuxdoc=no if test $LINUXDOC != none; then chk_linuxdoc=yes + bool_linuxdoc=true linuxdoc_cmd="\\def\\haslinuxdoc{yes}" +else + chk_linuxdoc=no + bool_linuxdoc=false fi case $LINUXDOC in @@ -324,10 +389,13 @@ esac # Search for DocBook support SEARCH_PROG([for SGML-tools 2.x (DocBook) or db2x scripts], DOCBOOK, sgmltools db2dvi) -chk_docbook=no if test $DOCBOOK != none; then chk_docbook=yes + bool_docbook=true docbook_cmd="\\def\\hasdocbook{yes}" +else + chk_docbook=no + bool_docbook=false fi case $DOCBOOK in @@ -365,45 +433,110 @@ MSG_CHECKING(LaTeX configuration) rm -f textclass.lst packages.lst chkconfig.sed if test ${lyx_check_config} = no ; then MSG_RESULT(default values) + MSG_CHECKING(list of textclasses,+) + cat >textclass.lst <> textclass.lst + fi + fi ;; + esac + done + MSG_RESULT(done) 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 + fi cat >wrap_chkconfig.ltx < chklayouts.tex + 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 fi # Do we have all the files we need? Useful if latex did not run changequote([,])dnl -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 -# for some reason. Run ./configure if you need to update it after a -# configuration change. -article article article -report report report -book book book -linuxdoc linuxdoc linuxdoc -letter letter letter]) PROVIDE_DEFAULT_FILE(chkconfig.sed,[s/@.*@/???/g]) @@ -419,7 +552,33 @@ 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 -sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx + +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 < \$\$o" "" +\\converter docbook docbook-xml "cp \$\$i \$\$o" "xml" +\\converter docbook dvi "$docbook_to_dvi_command" "" +\\converter docbook html "$docbook_to_html_command" "" +\\converter dvi pdf3 "$dvi_to_pdf_command" "" +\\converter dvi ps "$dvi_to_ps_command" "" +\\converter fen asciichess "python \$\$s/scripts/fen2ascii.py \$\$i \$\$o" "" +\\converter fig pdftex "sh \$\$s/scripts/fig2pdftex.sh \$\$i \$\$o" "" +\\converter fig pstex "sh \$\$s/scripts/fig2pstex.sh \$\$i \$\$o" "" +\\converter html latex "$html_to_latex_command" "" +\\converter latex html "$latex_to_html_command" "originaldir,needaux" +\\converter latex dvi "$latex_to_dvi" "latex" +\\converter latex lyx "$tex_to_lyx_command" "" +\\converter latex pdf2 "$latex_to_pdf" "latex" +\\converter latex sxw "$latex_to_sxw_command" "latex" +\\converter linuxdoc dvi "$linuxdoc_to_dvi_command" "" +\\converter linuxdoc html "$linuxdoc_to_html_command" "" +\\converter linuxdoc latex "$linuxdoc_to_latex_command" "" +\\converter linuxdoc lyx "$linuxdoc_to_lyx_command" "" +\\converter literate latex "$literate_to_tex_command" "" +\\converter literate lyx "$literate_to_lyx_command" "" +\\converter lyxpreview png "$lyxpreview_to_png_command" "" +\\converter lyxpreview ppm "$lyxpreview_to_bitmap_command" "" +\\converter ps fax "$fax_command" "" +\\converter ps pdf "$ps_to_pdf_command" "" +\\converter sxw latex "$sxw_to_latex_command" "" +\\converter word latex "$word_to_latex_command" "" EOF ### the graphic converter part with the predefined ones -#### Search for tne nonstandard converting progs +#### Search for the nonstandard converting progs # -SEARCH_PROG([for an FIG -> EPS/XPM converter], FIG2DEV, fig2dev) +SEARCH_PROG([for an FIG -> EPS/PPM converter], FIG2DEV, fig2dev) if test "$FIG2DEV" = "fig2dev"; then cat >>$outfile < PS converter], TIFF2PS, tiff2ps) if test "$TIFF2PS" = "tiff2ps"; then cat >>$outfile < \$\$o" "" +\\converter tiff eps "tiff2ps \$\$i > \$\$o" "" EOF fi -SEARCH_PROG([for an TGIF -> EPS/XPM converter], TGIF, tgif) +SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif) if test "$TGIF" = "tgif"; then cat >>$outfile < \$\$o" "" +\\converter tgif eps "tgif -stdout -print -color -eps \$\$i > \$\$o" "" +\\converter tgif pdf "tgif -stdout -print -color -pdf \$\$i > \$\$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 +#### Add Grace conversions (xmgrace needs an Xserver, gracebat doesn't.) +SEARCH_PROG([for a Grace -> 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 jpg "gracebat -hardcopy -printfile \$\$o -hdevice JPEG \$\$i 2>/dev/null" "" +\\converter agr ppm "gracebat -hardcopy -printfile \$\$o -hdevice PNM \$\$i 2>/dev/null" "" EOF fi -#### Add Grace conversions (xmgrace needs an Xserver, gracebat doesn't.) -SEARCH_PROG([for a Grace -> 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" "" + +\\copier fig "sh \$\$s/scripts/fig_copy.sh \$\$i \$\$o" +\\copier pstex "python \$\$s/scripts/tex_copy.py \$\$i \$\$o \$\$l" +\\copier pdftex "python \$\$s/scripts/tex_copy.py \$\$i \$\$o \$\$l" + +$rc_entries +\\font_encoding "$chk_fontenc" +\\tex_allows_spaces $tex_allows_spaces EOF + +if [ "x$use_cygwin_path_fix" != "x" ] +then + echo "\\cygwin_path_fix_needed $use_cygwin_path_fix" >> $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 msbm10i wasy10" +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]) + MSG_CHECKING(for $font,+) result=no for ext in pfb pfa ttf ; do if filepath=`kpsewhich $font.$ext` ; then @@ -569,6 +749,8 @@ 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 @@ -579,7 +761,7 @@ 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 ; + 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 @@ -587,7 +769,10 @@ 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