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