X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.m4;h=b3734852a2c9cbc5d41a354cde763a99cd62d460;hb=f7e97284cbbab098cf3bf99976ec8af3146df8d3;hp=4b0d3584303d6ea5a7c902d0e7829e049b602207;hpb=d9f0882887e9a9a5a4bdc3af8bcd7a5ef6d10472;p=lyx.git diff --git a/lib/configure.m4 b/lib/configure.m4 index 4b0d358430..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 @@ -243,6 +246,9 @@ 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" @@ -251,6 +257,8 @@ 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/ @@ -277,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) @@ -307,18 +322,18 @@ 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 or to png -lyxpreview_to_bitmap_command='python $$s/lyxpreview2bitmap.py' +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 + 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 @@ -426,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 @@ -439,23 +454,35 @@ 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 @@ -464,26 +491,48 @@ changequote(,)dnl 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 @@ -503,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 <$outfile <$outfile <$outfile <$outfile < PS converter], TIFF2PS, tiff2ps) if test "$TIFF2PS" = "tiff2ps"; then cat >>$outfile < \$\$o" "" +\\converter tiff eps "tiff2ps \$\$i > \$\$o" "" EOF fi @@ -628,10 +706,20 @@ fi cat >>$outfile <> $outfile +fi + ######## X FONTS # create a fonts.dir file to make X fonts available to LyX echo "checking for TeX fonts" @@ -673,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