]> git.lyx.org Git - lyx.git/blobdiff - lib/configure.m4
Add Jean-Pierre Chr��tien to our list of contributers
[lyx.git] / lib / configure.m4
index 20a2799aa0b3fa4a95b9e4827909b3abf01a3ea3..b3734852a2c9cbc5d41a354cde763a99cd62d460 100644 (file)
@@ -174,6 +174,7 @@ if test ! -r "${srcdir}"/chkconfig.ltx ; then
 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
@@ -292,7 +295,7 @@ test "$latex_to_sxw_command" != "none" && latex_to_sxw_command="$latex_to_sxw_co
 # Search something to preview postscript
 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
@@ -319,7 +322,7 @@ 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.
@@ -451,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
@@ -476,7 +491,7 @@ changequote(,)dnl
 else
   MSG_RESULT(auto)
   rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex
-  if ! test -r "chkconfig.ltx" ; then
+  if test ! -r "chkconfig.ltx" ; then
     ln -s "${srcdir}"/chkconfig.ltx .
     rmlink=true
   fi
@@ -494,13 +509,27 @@ EOF
       *) if test -r "$file" ; then
            class=`echo $file | sed -e 's%^.*layouts/\(.*\)\.layout$%\1%'`
           # Generate the proper TestDocClass command for this layout
-          grep '\\Declare\(LaTeX\|DocBook\|LinuxDoc\)Class' "$file" \
-             | sed -e 's/^\# *\(.*\)$/\\TestDocClass{'${class}'}{\1}/'
+          sed -n '
+# We manipulate only those lines that contain
+# "\Declare(LaTeX|DocBook|LinuxDoc)Class"
+/\\DeclareLaTeXClass/bmatch
+/\\DeclareDocBookClass/bmatch
+/\\DeclareLinuxDocClass/bmatch
+b
+
+:match
+# Wrap the entire line (minus the leading "# ") inside a
+# "\TestDocClass{CLASS}{...}" command
+s/^\# *\(.*\)$/\\TestDocClass{'${class}'}{\1}/
+# Print the result and quit.
+p
+q
+' "$file"
         fi ;;
     esac
   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
@@ -523,8 +552,34 @@ 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
+
+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 | grep 'working' >/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 <<EOF
 # This file has been automatically generated by LyX' lib/configure
@@ -533,9 +588,9 @@ cat >$outfile <<EOF
 # want to customize LyX, make a copy of the file LYXDIR/lyxrc as
 # ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
 # override the values given here.
-\\Format asciichess asc    "ASCII (chess output)"  "" ""       "$TEXT_EDITOR"
-\\Format asciiimage asc    "ASCII (image)"         "" ""       "$TEXT_EDITOR"
-\\Format asciixfig  asc    "ASCII (xfig output)"   "" ""       "$TEXT_EDITOR"
+\\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"          "" ""       ""
@@ -568,8 +623,8 @@ cat >$outfile <<EOF
 \\Format pstex      pstex_t PSTEX                  "" ""       ""
 \\Format tgif       obj     TGIF                   "" "$TGIF_VIEWER"   "$TGIF_EDITOR"
 \\Format sxw        sxw    "OpenOffice.Org Writer" O  ""       ""
-\\Format text       txt     ASCII                  A  ""       "$TEXT_EDITOR"
-\\Format textparagraph txt "ASCII (paragraphs)"    "" ""       "$TEXT_EDITOR"
+\\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"
@@ -581,9 +636,9 @@ cat >$outfile <<EOF
 \\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 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"
@@ -651,14 +706,20 @@ fi
 
 cat >>$outfile <<EOF
 
-\\copier    fig        "sh \$\$s/fig_copy.sh \$\$i \$\$o"
-\\copier    pstex      "python \$\$s/tex_copy.py \$\$i \$\$o \$\$l"
-\\copier    pdftex     "python \$\$s/tex_copy.py \$\$i \$\$o \$\$l"
+\\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"