X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=b3734852a2c9cbc5d41a354cde763a99cd62d460;hb=f7e97284cbbab098cf3bf99976ec8af3146df8d3;hp=f78a23643396044372da9c12226739fee9c7aad1;hpb=aefbd97a16e70d6be9c9d23f32804c3229c87108;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index f78a236433..b3734852a2 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -167,13 +167,14 @@ 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) +use_cygwin_path_fix='' case `uname -s` in CYGWIN*) tmpfname="/tmp/x$$.ltx"; @@ -188,8 +189,10 @@ case `uname -s` in 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 @@ -237,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/ @@ -263,19 +285,26 @@ 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_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,gsview32 gv ghostview) +SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gsview32 gv ghostview kghostview) case $GHOSTVIEW in - gv|ghostview) PS_VIEWER="$GHOSTVIEW -swap" ;; + 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, acrobat acrord32 gsview32 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, "mozilla file://\$\$p\$\$i" netscape) @@ -292,12 +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" -# We have a script to convert previewlyx to ppm -lyxpreview_to_bitmap_command='$$s/lyxpreview2bitmap.sh' +# 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 @@ -405,9 +441,9 @@ if test ${lyx_check_config} = no ; then # for some reason. Run ./configure if you need to update it after a # configuration change. EOF - # 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 entries + # for the default textclass.lst file + for file in ./layouts/*.layout "${srcdir}"/layouts/*.layout ; do case $file in */\*.layout) ;; *) if test -r "$file" ; then @@ -418,51 +454,85 @@ 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 - done + 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 @@ -482,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 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/fen2ascii.py \$\$i \$\$o" "" -\\converter fig pdftex "sh \$\$s/fig2pdftex.sh \$\$i \$\$o" "" -\\converter fig pstex "sh \$\$s/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 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 ppm "$lyxpreview_to_bitmap_command" "" -\\converter ps fax "$fax_command" "" -\\converter ps pdf "$ps_to_pdf_command" "" -\\converter word latex "$word_to_latex_command" "" - -\\viewer dvi "$DVI_VIEWER" -\\viewer html "$HTML_VIEWER" -\\viewer pdf "$PDF_VIEWER" -\\viewer pdf2 "$PDF_VIEWER" -\\viewer pdf3 "$PDF_VIEWER" -\\viewer ps "$PS_VIEWER" -\\viewer eps "$EPS_VIEWER" - -$rc_entries -\\font_encoding "$chk_fontenc" +\\Format asciichess asc "Plain text (chess output)" "" "" "$TEXT_EDITOR" +\\Format asciiimage asc "Plain text (image)" "" "" "$TEXT_EDITOR" +\\Format asciixfig asc "Plain text (xfig output)" "" "" "$TEXT_EDITOR" +\\Format agr agr GRACE "" "$GRACE_VIEWER" "$GRACE_EDITOR" +\\Format bmp bmp BMP "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format date "" "date command" "" "" "" +\\Format dateout tmp "date (output)" "" "" "$TEXT_EDITOR" +\\Format docbook sgml DocBook B "" "$TEXT_EDITOR" +\\Format docbook-xml xml "Docbook (xml)" "" "" "$TEXT_EDITOR" +\\Format dvi dvi DVI D "$DVI_VIEWER" "" +\\Format eps eps EPS "" "$EPS_VIEWER" "" +\\Format fax "" Fax "" "" "" +\\Format fen fen FEN "" "$FEN_VIEWER" "$FEN_EDITOR" +\\Format fig fig XFig "" "$FIG_VIEWER" "$FIG_EDITOR" +\\Format gif gif GIF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format html html HTML H "$HTML_VIEWER" "" +\\Format jpg jpg JPG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format latex tex LaTeX L "" "$TEXT_EDITOR" +\\Format linuxdoc sgml LinuxDoc x "" "$TEXT_EDITOR" +\\Format lyx lyx LyX "" "lyx" "lyx" +\\Format lyxpreview lyxpreview "LyX Preview" "" "" "" +\\Format literate nw NoWeb N "" "$TEXT_EDITOR" +\\Format pbm pbm PBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format pdf pdf "PDF (ps2pdf)" P "$PDF_VIEWER" "" +\\Format pdf2 pdf "PDF (pdflatex)" F "$PDF_VIEWER" "" +\\Format pdf3 pdf "PDF (dvipdfm)" m "$PDF_VIEWER" "" +\\Format pdftex pdftex_t PDFTEX "" "" "" +\\Format pgm pgm PGM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format png png PNG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format ppm ppm PPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format program "" Program "" "" "" +\\Format ps ps Postscript t "$PS_VIEWER" "" +\\Format pstex pstex_t PSTEX "" "" "" +\\Format tgif obj TGIF "" "$TGIF_VIEWER" "$TGIF_EDITOR" +\\Format sxw sxw "OpenOffice.Org Writer" O "" "" +\\Format text txt "Plain text" a "" "$TEXT_EDITOR" +\\Format textparagraph txt "Plain text (paragraphs)" "" "" "$TEXT_EDITOR" +\\Format tiff tif TIFF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format word doc Word W "" "" +\\Format xbm xbm XBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" +\\Format xpm xpm XPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR" + +\\converter date dateout "date +%d-%m-%Y > \$\$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/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/PPM converter], TGIF, tgif) if test "$TGIF" = "tgif"; then cat >>$outfile < \$\$o" "" -\\converter tgif png "tgif -stdout -print -color -xpm \$\$i | xpmtoppm | pnmtopng > \$\$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 < 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" "" +\\converter agr eps "gracebat -hardcopy -printfile \$\$o -hdevice EPS \$\$i 2>/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 +cat >>$outfile <> $outfile +fi + ######## X FONTS # create a fonts.dir file to make X fonts available to LyX echo "checking for TeX fonts" @@ -654,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