]> git.lyx.org Git - lyx.git/blob - lib/configure.m4
Make lyx2lyx output the new external inset format.
[lyx.git] / lib / configure.m4
1 #! /bin/sh
2 dnl Use 'make' to create configure from this m4 script.
3 # This script is a hand-made configure script. It contains a lot of
4 # code stolen from GNU autoconf. I removed all the code that was not
5 # useful for configuring a LyX installation.
6
7
8 dnl ######### Begin M4 macros #########################################
9 dnl This is a template for my stripped-down configure script.
10 dnl First, a few convenient macros.
11 changequote([,])dnl
12 dnl
13 dnl
14 dnl MSG_CHECKING(FEATURE-DESCRIPTION,PREFIX)
15 dnl
16 define(MSG_CHECKING,
17 [echo $ac_n "$2checking $1""... $ac_c"])dnl
18 dnl
19 dnl
20 dnl MSG_RESULT(RESULT-DESCRIPTION)
21 dnl
22 define(MSG_RESULT,
23 [echo "$ac_t""$1"])dnl
24 dnl
25 dnl
26 dnl SEARCH_PROG(FEATURE-DESCRIPTION,VARIABLE-NAME,PROGRAMS-LIST,
27 dnl             ACTION-IF-FOUND,ACTION-IF-NOT-FOUND)
28 dnl
29 define(SEARCH_PROG,[dnl
30 changequote([,])dnl
31 MSG_CHECKING($1)
32 MSG_RESULT(($3))
33 $2=
34 for ac_prog in $3
35 do
36 # Extract the first word of "$ac_prog", so it can be a program name with args.
37 set dummy $ac_prog ; ac_word=$[2]
38 if test -n "$ac_word"; then
39   MSG_CHECKING([for \"$ac_word\"],[+])
40   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
41   for ac_dir in $PATH; do
42     test -z "$ac_dir" && ac_dir=.
43     if test -x [$ac_dir/$ac_word]; then
44       $2="$ac_prog"
45       break
46     fi
47   done
48   IFS="$ac_save_ifs"
49
50   if test -n "[$]$2"; then
51     ac_result=yes
52     ifelse($4,,,[$4])
53   else
54     ac_result=no
55   fi
56   MSG_RESULT($ac_result)
57   test -n "[$]$2" && break
58 fi
59 done
60
61 if test -z "[$]$2" ; then
62   $2=none
63 ifelse($5,,,[  $5
64 ])dnl
65 fi
66 changequote(,)dnl
67 ])dnl
68 dnl
69 dnl
70 dnl LYXRC_VAR(VARIABLE_NAME, VALUE)
71 define(LYXRC_VAR,[dnl
72 rc_entries="$rc_entries
73 $1 \"$2\""])
74 dnl
75 dnl
76 dnl LYXRC_PROG(FEATURE-DESCRIPTION,VARIABLE-NAME,PROGRAMS-LIST,
77 dnl             ACTION-IF-FOUND,ACTION-IF-NOT-FOUND)
78 define(LYXRC_PROG,[dnl
79 SEARCH_PROG($1,prog,$3,$4,$5)
80 LYXRC_VAR($2,$prog)])
81 dnl
82 dnl
83 dnl PROVIDE_DEFAULT_FILE(FILE, DEFAULT-VALUE)
84 dnl
85 define(PROVIDE_DEFAULT_FILE,[dnl
86 # if $1 does not exist (because LaTeX did not run),
87 # then provide a standard version.
88 if test ! -f $1 ; then
89   cat >$1 <<EOF
90 $2
91 EOF
92 fi])
93 changequote(,)dnl
94 dnl ######### End M4 macros #############################################
95
96
97 ####some configuration variables
98 outfile=lyxrc.defaults
99 rc_entries=
100 lyx_check_config=yes
101 lyx_keep_temps=no
102 srcdir=
103 version_suffix=
104
105 #### Parse the command line
106 for ac_option do
107   case "$ac_option" in
108     -help | --help | -h)
109       cat << EOF
110 Usage: configure [options]
111 Options:
112   --help                   show this help lines
113   --keep-temps             keep temporary files (for debug. purposes)
114   --without-latex-config   do not run LaTeX to determine configuration
115   --with-version-suffix=suffix suffix of binary installed files
116 EOF
117       exit 0;;
118     --without-latex-config)
119       lyx_check_config=no ;;
120     --keep-temps)
121       lyx_keep_temps=yes ;;
122     --with-version-suffix*)
123       version_suffix=`echo "$ac_option" | sed 's,--with-version-suffix=,,'`
124   esac
125 done
126
127
128 #### Checking for some echo oddities
129 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
130   # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
131   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
132     ac_n= ac_c='
133 ' ac_t='        '
134   else
135     ac_n=-n ac_c= ac_t=
136   fi
137 else
138   ac_n= ac_c='\c' ac_t=
139 fi
140
141
142 #### I do not really know why this is useful, but we might as well keep it.
143 # NLS nuisances.
144 # Only set these to C if already set.  These must not be set unconditionally
145 # because not all systems understand e.g. LANG=C (notably SCO).
146 # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
147 # Non-C LC_CTYPE values break the ctype check.
148 if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
149 if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
150 if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
151 if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
152
153
154 #### Guess the directory in which configure is located.
155 changequote([,])dnl
156 ac_prog=[$]0
157 changequote(,)dnl
158 srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
159 srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
160 test "x$srcdir" = "x$ac_prog" && srcdir=.
161 if test ! -r ${srcdir}/chkconfig.ltx ; then
162   echo "configure: error: cannot find chkconfig.ltx script"
163   exit 1
164 fi
165
166 #### Adjust PATH for Win32 (Cygwin)
167 case `uname -s` in
168    CYGWIN*)
169      echo "configure: cygwin detected; path correction"
170      srcdir=`cygpath -w "${srcdir}" | tr '\\\\' /`
171      echo "srcdir=${srcdir}" ;;
172 esac
173
174 #### Create the build directories if necessary
175 for dir in bind clipart doc examples help images kbd layouts reLyX \
176     scripts templates ui xfonts; do
177   test ! -d $dir && mkdir $dir
178 done
179
180
181 #### Searching some useful programs
182 define(CHECKLATEX2E,[
183 ## Check whether this is really LaTeX2e
184 rm -f chklatex.ltx
185 cat >chklatex.ltx <<EOF
186 \\nonstopmode\\makeatletter
187 \\ifx\\undefined\\documentclass\\else
188   \\message{ThisIsLaTeX2e}
189 \\fi
190 \\@@end
191 EOF
192 if eval ${LATEX} chklatex.ltx </dev/null 2>/dev/null \
193                        | grep 'ThisIsLaTeX2e' >/dev/null; then
194   :
195 else
196   LATEX=
197   ac_result="not useable"
198 fi
199 rm -f chklatex.ltx chklatex.log])dnl
200 dnl
201 # Search LaTeX2e
202 SEARCH_PROG([for a LaTeX2e program],LATEX,pplatex latex2e latex,CHECKLATEX2E,dnl
203   [lyx_check_config=no])
204 latex_to_dvi=$LATEX
205 test -z "$latex_to_dvi" && latex_to_dvi="none"
206
207 # Search for pdflatex
208 if test ${lyx_check_config} = no ; then
209   latex_to_pdf=none
210 else
211   SEARCH_PROG([for the pdflatex program],latex_to_pdf,pdflatex)
212 fi
213
214 test $latex_to_dvi != "none" && latex_to_dvi="$latex_to_dvi \$\$i"
215 test $latex_to_pdf != "none" && latex_to_pdf="$latex_to_pdf \$\$i"
216
217 # Search for an installed reLyX or a ready-to-install one
218 save_PATH=${PATH}
219 PATH=${PATH}:./reLyX/
220 SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command,reLyX)
221 PATH=${save_PATH}
222 test $tex_to_lyx_command = "reLyX" && tex_to_lyx_command="reLyX -f \$\$i"
223 tex_to_lyx_command=`echo $tex_to_lyx_command | sed "s,reLyX,reLyX$version_suffix,"`
224
225 SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,noweb2lyx)
226 test $literate_to_lyx_command = "noweb2lyx" && literate_to_lyx_command="noweb2lyx \$\$i \$\$o"
227 literate_to_lyx_command=`echo $literate_to_lyx_command | sed "s,noweb2lyx,noweb2lyx$version_suffix,"`
228
229 # Search something to process a literate document
230 SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,noweave)
231 test $literate_to_tex_command = "noweave" && literate_to_tex_command="noweave -delay -index \$\$i > \$\$o"
232
233 SEARCH_PROG([for a HTML -> Latex converter],html_to_latex_command,html2latex)
234 test $html_to_latex_command = "html2latex" && html_to_latex_command="html2latex \$\$i"
235
236 SEARCH_PROG([for a MSWord -> Latex converter],word_to_latex_command,wvCleanLatex word2x)
237 test "$word_to_latex_command" = "wvCleanLatex" && word_to_latex_command="wvCleanLatex \$\$i \$\$o"
238 test "$word_to_latex_command" = "word2x" && word_to_latex_command="word2x -f latex \$\$i"
239
240 SEARCH_PROG([for Image converter],image_command,convert)
241 test $image_command = "convert" && image_command="convert \$\$i \$\$o"
242
243 # Search for a Postscript interpreter
244 LYXRC_PROG([for a Postscript interpreter], \ps_command, gs)
245
246 # Search something to preview postscript
247 SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview)
248
249 # Search for a program to preview pdf
250 SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf)
251
252 # Search something to preview dvi
253 SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap)
254
255 # Search something to preview html
256 SEARCH_PROG([for a HTML previewer],HTML_VIEWER, "mozilla file://\$\$p\$\$i" netscape)
257
258 # Search for a program to convert ps to pdf
259 SEARCH_PROG([for a PS to PDF converter],ps_to_pdf_command,ps2pdf)
260 test $ps_to_pdf_command = "ps2pdf" && ps_to_pdf_command="ps2pdf -dCompatibilityLevel=1.3 \$\$i"
261
262 # Search for a program to convert dvi to ps
263 SEARCH_PROG([for a DVI to PS converter],dvi_to_ps_command,dvips)
264 test $dvi_to_ps_command = "dvips" && dvi_to_ps_command="dvips -o \$\$o \$\$i"
265
266 # Search for a program to convert dvi to pdf
267 SEARCH_PROG([for a DVI to PDF converter],dvi_to_pdf_command,dvipdfm)
268 test $dvi_to_pdf_command = "dvipdfm" && dvi_to_pdf_command="dvipdfm \$\$i"
269
270 # We have a script to convert previewlyx to ppm
271 lyxpreview_to_bitmap_command="lyxpreview2bitmap.sh"
272
273 # Search a *roff program (used to translate tables in ASCII export)
274 LYXRC_PROG([for a *roff formatter], \ascii_roff_command, dnl
275   'groff -t -Tlatin1 $$FName' nroff,dnl
276   test "$prog" = "nroff" && prog='tbl $$FName | nroff')
277
278 # Search the ChkTeX program
279 LYXRC_PROG([for ChkTeX], \chktex_command,dnl
280    "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38")
281
282 # Search for a spellchecker
283 LYXRC_PROG([for a spell-checker], \spell_command, ispell)
284
285 # Search for computer algebra systems
286 SEARCH_PROG([for Octave],OCTAVE,octave)
287 SEARCH_PROG([for Maple],MAPLE,maple)
288
289 dnl # Search a Fax handling program
290 dnl SEARCH_PROG([for a fax driver], FAX, sendfax faxsend fax)
291 dnl if test $FAX = sendfax ; then
292 dnl   fax_command="sendfax -n -h '\$\$Host' -c '\$\$Comment' -x '\$\$Enterprise' -d '\$\$Name'@'\$\$Phone' '\$\$FName'"
293 dnl elif test $FAX = faxsend ; then
294 dnl   fax_command="faxsend '\$\$Phone' '\$\$FName'"
295 dnl elif test $FAX = fax ; then
296 dnl   fax_command="fax send '\$\$Phone' '\$\$FName'"
297 dnl else
298 dnl   fax_command="none"
299 dnl fi
300
301 # Search a GUI Fax program
302 SEARCH_PROG([for a fax program], fax_command, kdeprintfax ksendfax)
303 test $fax_command != "none" && fax_command="$fax_command \$\$i"
304
305 # Search for LinuxDoc support
306 SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx)
307 chk_linuxdoc=no
308 if test $LINUXDOC != none; then
309   chk_linuxdoc=yes
310   linuxdoc_cmd="\\def\\haslinuxdoc{yes}"
311 fi
312
313 case $LINUXDOC in
314   sgml2lyx)
315     linuxdoc_to_latex_command="sgml2latex \$\$i"
316     linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$i"
317     linuxdoc_to_html_command="sgml2html \$\$i"
318     linuxdoc_to_lyx_command="sgml2lyx \$\$i";;
319   none)
320     linuxdoc_to_latex_command="none"
321     linuxdoc_to_dvi_command="none"
322     linuxdoc_to_html_command="none"
323     linuxdoc_to_lyx_command="none";;
324 esac
325
326 # Search for DocBook support
327 SEARCH_PROG([for SGML-tools 2.x (DocBook) or db2x scripts], DOCBOOK, sgmltools db2dvi)
328 chk_docbook=no
329 if test $DOCBOOK != none; then
330   chk_docbook=yes
331   docbook_cmd="\\def\\hasdocbook{yes}"
332 fi
333
334 case $DOCBOOK in
335   sgmltools)
336     docbook_to_dvi_command="sgmltools -b dvi \$\$i"
337     docbook_to_html_command="sgmltools -b html \$\$i";;
338   db2dvi)
339     docbook_to_dvi_command="db2dvi \$\$i"
340     docbook_to_html_command="db2html \$\$i";;
341   none)
342     docbook_to_dvi_command="none"
343     docbook_to_html_command="none";;
344 esac
345
346 # Search for a spool command
347 LYXRC_PROG([for a spool command], \print_spool_command, lp lpr)
348 case $prog in
349   lp) print_spool_printerprefix="-d ";;
350  lpr) print_spool_printerprefix="-P";;
351    *) :;; # leave to empty values
352 esac
353 LYXRC_VAR(\print_spool_printerprefix, $print_spool_printerprefix)
354
355 SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea)
356 latex_to_html_command=$TOHTML
357 case $TOHTML in
358         tth) latex_to_html_command="tth -t -e2 -L\$\$b < \$\$i > \$\$o";;
359  latex2html) latex_to_html_command="latex2html -no_subdir -split 0 -show_section_numbers \$\$i";;
360       hevea) latex_to_html_command="hevea -s \$\$i";;
361 esac
362
363 #### Explore the LaTeX configuration
364 MSG_CHECKING(LaTeX configuration)
365 # First, remove the files that we want to re-create
366 rm -f textclass.lst packages.lst chkconfig.sed
367 if test ${lyx_check_config} = no ; then
368   MSG_RESULT(default values)
369 else
370   MSG_RESULT(auto)
371   rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex
372   cat >wrap_chkconfig.ltx <<EOF
373 \\newcommand\\srcdir{${srcdir}}
374 ${linuxdoc_cmd}
375 ${docbook_cmd}
376 \\input{${srcdir}/chkconfig.ltx}
377 EOF
378   ## Construct the list of classes to test for.
379   # build the list of available layout files and convert it to commands
380   # for chkconfig.ltx
381   for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
382     case $file in
383       */\*.layout) ;;
384       *) test -r "$file" && echo $file ;;
385     esac
386   done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\
387              > chklayouts.tex
388 changequote([,])dnl
389   [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
390   [eval] `cat chkconfig.vars | sed 's/-/_/g'`
391 changequote(,)dnl
392 fi
393
394 # Do we have all the files we need? Useful if latex did not run
395 changequote([,])dnl
396 echo "creating textclass.lst"
397 PROVIDE_DEFAULT_FILE(textclass.lst,dnl
398 [# This file declares layouts and their associated definition files
399 # (include dir. relative to the place where this file is).
400 # It contains only default values, since chkconfig.ltx could not be run
401 # for some reason. Run ./configure if you need to update it after a
402 # configuration change.
403 article article article
404 report  report  report
405 book    book    book
406 linuxdoc        linuxdoc        linuxdoc
407 letter  letter  letter])
408
409 PROVIDE_DEFAULT_FILE(chkconfig.sed,[s/@.*@/???/g])
410
411 echo "creating packages.lst"
412 PROVIDE_DEFAULT_FILE(packages.lst,dnl
413 [# This file should contain the list of LaTeX packages that have been
414 # recognized by LyX. Unfortunately, since configure could not find
415 # your LaTeX2e program, the tests have not been run. Run ./configure
416 # if you need to update it after a configuration change.
417 ])
418 changequote(,)dnl
419
420 echo "creating doc/LaTeXConfig.lyx"
421 echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed
422 echo "s/@chk_docbook@/$chk_docbook/g" >> chkconfig.sed
423 sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx
424
425 echo "creating $outfile"
426 cat >$outfile <<EOF
427 # This file has been automatically generated by LyX' lib/configure
428 # script. It contains default settings that have been determined by
429 # examining your system. PLEASE DO NOT MODIFY ANYTHING HERE! If you
430 # want to customize LyX, make a copy of the file LYXDIR/lyxrc as
431 # ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
432 # override the values given here.
433 \\Format asciichess asc "ASCII (chess output)" ""
434 \\Format asciiimage asc "ASCII (image)" ""
435 \\Format asciixfig  asc "ASCII (xfig output)" ""
436 \\Format agr      agr   GRACE           ""
437 \\Format bmp      bmp   BMP             ""
438 \\Format date     ""    "date command"  ""
439 \\Format dateout  "tmp" "date (output)" ""
440 \\Format docbook  sgml  DocBook         B
441 \\Format dvi      dvi   DVI             D
442 \\Format eps      eps   EPS             ""
443 \\Format fax      ""    Fax             ""
444 \\Format fen      fen   FEN             ""
445 \\Format fig      fig   XFig            ""
446 \\Format gif      gif   GIF             ""
447 \\Format html     html  HTML            H
448 \\Format jpg      jpg   JPG             ""
449 \\Format latex    tex   LaTeX           L
450 \\Format linuxdoc sgml  LinuxDoc        x
451 \\Format lyx      lyx   LyX             ""
452 \\Format lyxpreview     lyxpreview      "LyX Preview"           ""
453 \\Format literate nw    NoWeb           N
454 \\Format pbm      pbm   PBM             ""
455 \\Format pdf      pdf   PDF             P
456 \\Format pdf2     pdf  "PDF (pdflatex)" F
457 \\Format pdf3     pdf  "PDF (dvipdfm)"  m
458 \\Format pdftex   pdftex_t PDFTEX       ""
459 \\Format pgm      pgm   PGM             ""
460 \\Format png      png   PNG             ""
461 \\Format ppm      ppm   PPM             ""
462 \\Format program  ""    Program         ""
463 \\Format ps       ps    Postscript      t
464 \\Format pstex    pstex_t PSTEX         ""
465 \\Format text     txt   ASCII           A
466 \\Format textparagraph txt ASCII(paragraphs)    ""
467 \\Format tgif     obj   TGIF            ""
468 \\Format tiff     tif   TIFF            ""
469 \\Format word     doc   Word            W
470 \\Format xbm      xbm   XBM             ""
471 \\Format xpm      xpm   XPM             ""
472
473 \\converter date dateout "date +%d-%m-%Y > \$\$o" ""
474 \\converter docbook dvi "$docbook_to_dvi_command" ""
475 \\converter docbook html "$docbook_to_html_command" ""
476 \\converter dvi pdf3 "$dvi_to_pdf_command" ""
477 \\converter dvi ps "$dvi_to_ps_command" ""
478 \\converter fen asciichess "python \$\$s/fen2ascii.py \$\$i \$\$o" ""
479 \\converter fig pdftex "sh \$\$s/fig2pdftex.sh \$\$i \$\$o" ""
480 \\converter fig pstex  "sh \$\$s/fig2pstex.sh \$\$i \$\$o" ""
481 \\converter html latex "$html_to_latex_command" ""
482 \\converter latex html "$latex_to_html_command" "originaldir,needaux"
483 \\converter latex dvi "$latex_to_dvi" "latex"
484 \\converter latex lyx "$tex_to_lyx_command" ""
485 \\converter latex pdf2 "$latex_to_pdf" "latex"
486 \\converter linuxdoc dvi "$linuxdoc_to_dvi_command" ""
487 \\converter linuxdoc html "$linuxdoc_to_html_command" ""
488 \\converter linuxdoc latex "$linuxdoc_to_latex_command" ""
489 \\converter linuxdoc lyx "$linuxdoc_to_lyx_command" ""
490 \\converter literate latex "$literate_to_tex_command" ""
491 \\converter literate lyx "$literate_to_lyx_command" ""
492 \\converter lyxpreview ppm "$lyxpreview_to_bitmap_command" ""
493 \\converter ps fax "$fax_command" ""
494 \\converter ps pdf "$ps_to_pdf_command" ""
495 \\converter word latex "$word_to_latex_command" ""
496
497 \\viewer dvi "$DVI_VIEWER"
498 \\viewer html "$HTML_VIEWER"
499 \\viewer pdf "$PDF_VIEWER"
500 \\viewer pdf2 "$PDF_VIEWER"
501 \\viewer pdf3 "$PDF_VIEWER"
502 \\viewer ps "$GHOSTVIEW -swap"
503 \\viewer eps "$GHOSTVIEW"
504
505 $rc_entries
506 \\font_encoding "$chk_fontenc"
507 EOF
508
509 ### the graphic converter part with the predefined ones
510 #### Search for tne nonstandard converting progs
511 #
512 SEARCH_PROG([for an FIG -> EPS/PPM converter], FIG2DEV, fig2dev)
513 if test "$FIG2DEV" = "fig2dev"; then
514 cat >>$outfile <<EOF
515 \\converter fig eps "fig2dev -L eps \$\$i \$\$o" ""
516 \\converter fig ppm "fig2dev -L ppm \$\$i \$\$o" ""
517 \\converter fig png "fig2dev -L png \$\$i \$\$o" ""
518 EOF
519 fi
520
521 SEARCH_PROG([for an TIFF -> PS converter], TIFF2PS, tiff2ps)
522 if test "$TIFF2PS" = "tiff2ps"; then
523 cat >>$outfile <<EOF
524 \\converter tiff eps "tiff2ps \$\$i > \$\$o" ""
525 EOF
526 fi
527
528 SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif)
529 if test "$TGIF" = "tgif"; then
530 cat >>$outfile <<EOF
531 \\converter tgif eps "tgif -stdout -print -color -eps \$\$i > \$\$o" ""
532 \\converter tgif png "tgif -stdout -print -color -xpm \$\$i | xpmtoppm | pnmtopng > \$\$o" ""
533 EOF
534 fi
535
536 SEARCH_PROG([for an EPS -> PDF converter], EPSTOPDF, epstopdf)
537 if test "$EPSTOPDF" = "epstopdf"; then
538 cat >>$outfile <<EOF
539 \\converter eps pdf "epstopdf --outfile=\$\$o \$\$i" ""
540 EOF
541 fi
542
543 #### Add Grace conversions (xmgrace needs an Xserver, gracebat doesn't.)
544 SEARCH_PROG([for a Grace -> Image converter], GRACE, gracebat)
545 if test "$GRACE" = "gracebat"; then
546 cat >>$outfile <<EOF
547 \\converter agr eps "gracebat -hardcopy -printfile \$\$o -hdevice EPS \$\$i 2>/dev/null" ""
548 \\converter agr png "gracebat -hardcopy -printfile \$\$o -hdevice PNG \$\$i 2>/dev/null" ""
549 \\converter agr jpg "gracebat -hardcopy -printfile \$\$o -hdevice JPEG \$\$i 2>/dev/null" ""
550 \\converter agr ppm "gracebat -hardcopy -printfile \$\$o -hdevice PNM \$\$i 2>/dev/null" ""
551 EOF
552 fi
553
554 ######## X FONTS
555 # create a fonts.dir file to make X fonts available to LyX
556 echo "checking for TeX fonts"
557
558 fontlist="cmex10 cmmi10 cmr10 cmsy10 eufm10 msam10 msbm10 wasy10"
559 rm -f xfonts/fonts.dir xfonts/fonts.scale xfonts/tmpfonts
560
561 num=0
562 touch xfonts/tmpfonts
563 for font in $fontlist ; do
564   MSG_CHECKING([for $font])
565   result=no
566   for ext in pfb pfa ttf ; do
567     if filepath=`kpsewhich $font.$ext` ; then
568       result="yes ($ext)"
569       rm -f xfonts/$font.$ext
570       ln -s $filepath xfonts 2>/dev/null
571       echo "$font.$ext -unknown-$font-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific" >>xfonts/tmpfonts
572       num=`expr $num + 1`
573       break
574     fi
575   done
576   MSG_RESULT($result)
577 done
578
579 if test ! $num = 0 ; then
580   echo $num >xfonts/fonts.scale
581   cat xfonts/tmpfonts >>xfonts/fonts.scale
582   cp xfonts/fonts.scale xfonts/fonts.dir
583 fi
584 rm -f xfonts/tmpfonts
585
586
587 # Remove superfluous files if we are not writing in the main lib
588 # directory
589 for file in $outfile textclass.lst packages.lst \
590             doc/LaTeXConfig.lyx xfonts/fonts.dir ; do
591   # we rename the file first, so that we avoid comparing a file with itself
592   mv $file $file.new
593   if test -r $srcdir/$file && diff $file.new $srcdir/$file >/dev/null 2>/dev/null ;
594   then
595     echo "removing $file, which is identical to the system global version"
596     rm -f $file.new
597   else
598     mv $file.new $file
599   fi
600 done
601 if test ! -r xfonts/fonts.dir ; then
602     echo "removing font links"
603     rm -f xfonts/*.pfb xfonts/fonts.scale
604 fi
605
606 # Final clean-up
607 if test $lyx_keep_temps = no ; then
608 rm -f chkconfig.sed chkconfig.vars wrap_chkconfig.* chklayouts.tex \
609       missfont.log
610 fi