]> git.lyx.org Git - lyx.git/blobdiff - lib/configure.m4
fix typo that put too many include paths for most people
[lyx.git] / lib / configure.m4
index 1e564869ef09b4f8be53fec830efbfb26266fb95..addc8a8d40678dab47126a380a300f99c52f00fd 100644 (file)
@@ -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,6 +95,8 @@ dnl ######### End M4 macros #############################################
 
 
 ####some configuration variables
+outfile=lyxrc.defaults
+rc_entries=
 lyx_check_config=yes
 lyx_keep_temps=no
 srcdir=
@@ -148,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 ui ; do
+for dir in bind clipart doc examples help images kbd layouts reLyX \
+    scripts templates ui xfonts; do
   test ! -d $dir && mkdir $dir
 done
 
@@ -179,10 +200,19 @@ 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/
@@ -210,7 +240,7 @@ 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)
@@ -219,7 +249,7 @@ SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview)
 SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf)
 
 # Search something to preview dvi
-SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi)
+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)
@@ -232,19 +262,21 @@ test $ps_to_pdf_command = "ps2pdf" && ps_to_pdf_command="ps2pdf \$\$i"
 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)
+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)
@@ -304,14 +336,13 @@ case $DOCBOOK in
 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_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea)
 latex_to_html_command=$TOHTML
@@ -321,6 +352,34 @@ case $TOHTML in
       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
 MSG_CHECKING(LaTeX configuration)
 # First, remove the files that we want to re-create
@@ -354,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).
@@ -369,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
@@ -378,14 +437,13 @@ 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 <<EOF
+echo "creating $outfile"
+cat >$outfile <<EOF
 # This file has been automatically generated by LyX' lib/configure
 # script. It contains default settings that have been determined by
 # examining your system. PLEASE DO NOT MODIFY ANYTHING HERE! If you
@@ -395,10 +453,14 @@ cat >lyxrc.defaults <<EOF
 \\Format text    txt   ASCII           A
 \\Format textparagraph txt ASCII(paragraphs)   ""
 \\Format docbook  sgml DocBook         B
+\\Format bmp      bmp  BMP             ""
 \\Format dvi     dvi   DVI             D
 \\Format eps     eps   EPS             ""
+\\Format epsi     epsi  EPSI           ""
 \\Format fax     ""    Fax             ""
+\\Format fits     fits FITS            ""
 \\Format gif      gif  GIF             ""
+\\Format grace    agr  GRACE           ""
 \\Format html    html  HTML            H
 \\Format jpg      jpg  JPEG            ""
 \\Format latex   tex   LaTeX           L
@@ -407,16 +469,26 @@ cat >lyxrc.defaults <<EOF
 \\Format literate nw   NoWeb           N
 \\Format pdf     pdf   PDF             P
 \\Format pdf2    pdf  "PDF (pdflatex)" F
+\\Format pdf3    pdf  "PDF (dvipdfm)"  m
+\\Format pbm     pbm   PBM             ""
+\\Format pgm     pgm   PGM             ""
 \\Format png     png   PNG             ""
+\\Format ppm     ppm   PPM             ""
 \\Format ps      ps    Postscript      t
 \\Format program  ""   Program         ""
+\\Format sgi      sgi  SGI             ""
+\\Format tgif     tgif TGIF            ""
+\\Format tiff     tif  TIFF            ""
+\\Format xbm      xbm   XBM             ""
+\\Format xpm      xpm   XPM             ""
+\\Format xwd      xwd  XWD             ""
 \\Format word    doc   Word            W
 
-
-\\converter latex dvi "$LATEX \$\$i" "latex"
-\\converter latex pdf2 "$PDFLATEX \$\$i" "latex"
+\\converter latex dvi "$latex_to_dvi" "latex"
+\\converter latex pdf2 "$latex_to_pdf" "latex"
 \\converter latex html "$latex_to_html_command" "originaldir,needaux"
 \\converter literate latex "$literate_to_tex_command" ""
+\\converter dvi pdf3 "$dvi_to_pdf_command" ""
 \\converter dvi ps "$dvi_to_ps_command" ""
 \\converter ps pdf "$ps_to_pdf_command" ""
 \\converter ps fax "$fax_command" ""
@@ -432,10 +504,40 @@ cat >lyxrc.defaults <<EOF
 \\converter html latex "$html_to_latex_command" ""
 \\converter word latex "$word_to_latex_command" ""
 
-\converter gif eps "$image_command" ""
-\converter png eps "$image_command" ""
-\converter jpg eps "$image_command" ""
-\converter gif png "$image_command" ""
+\\converter agr  eps "xmgrace -hardcopy -printfile \$\$o -hdevice EPS \$\$i" ""
+\\converter bmp  eps "$bmp_to_eps" ""
+\\converter fits  eps "$fits_to_eps" ""
+\\converter gif  eps "$gif_to_eps" ""
+\\converter jpg  eps "$jpg_to_eps" ""
+\\converter pbm  eps "$pbm_to_eps" ""
+\\converter pgm  eps "$pgm_to_eps" ""
+\\converter png  eps "$png_to_eps" ""
+\\converter ppm  eps "$ppm_to_eps" ""
+\\converter sgi  eps "$sgi_to_eps" ""
+\\converter tgif eps "tgif -print -eps \$\$i" ""
+\\converter tiff eps "tiff2ps \$\$i > \$\$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"
@@ -443,20 +545,47 @@ cat >lyxrc.defaults <<EOF
 \\viewer ps "$GHOSTVIEW -swap"
 \\viewer eps "$GHOSTVIEW"
 
-\\ps_command "$GS"
-\\ascii_roff_command "$ascii_roff_command"
-\\chktex_command "$chktex_command"
-\\spell_command "$SPELL"
-dnl \\fax_command "$fax_command"
-\\print_spool_command "$print_spool_command"
-\\print_spool_printerprefix "$print_spool_printerprefix"
+$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 ;