]> git.lyx.org Git - lyx.git/blob - lib/configure.m4
Georg's add an editor to Formats / safe external_templates patch.
[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_PROG([for a TGIF viewer and editor], TGIF_EDITOR, tgif)
241 TGIF_VIEWER="$TGIF_EDITOR"
242
243 SEARCH_PROG([for a FIG viewer and editor], FIG_EDITOR, xfig)
244 FIG_VIEWER="$FIG_EDITOR"
245
246 SEARCH_PROG([for a FEN viewer and editor], FEN_EDITOR, xboard)
247 test "$FEN" = "xboard" && FEN_EDITOR="xboard -lpf \$\$i -mode EditPosition"
248 FEN_VIEWER="$FEN_EDITOR"
249
250 SEARCH_PROG([for a raster image viewer], RASTERIMAGE_VIEWER, xv kview gimp)
251
252 SEARCH_PROG([for a raster image editor], RASTERIMAGE_EDITOR, gimp)
253
254 # Search for an installed reLyX or a ready-to-install one
255 save_PATH=${PATH}
256 PATH=${PATH}:./reLyX/
257 SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command,reLyX)
258 PATH=${save_PATH}
259 test $tex_to_lyx_command = "reLyX" && tex_to_lyx_command="reLyX -f \$\$i"
260 tex_to_lyx_command=`echo $tex_to_lyx_command | sed "s,reLyX,reLyX$version_suffix,"`
261
262 SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,noweb2lyx)
263 test $literate_to_lyx_command = "noweb2lyx" && literate_to_lyx_command="noweb2lyx \$\$i \$\$o"
264 literate_to_lyx_command=`echo $literate_to_lyx_command | sed "s,noweb2lyx,noweb2lyx$version_suffix,"`
265
266 # Search something to process a literate document
267 SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,noweave)
268 test $literate_to_tex_command = "noweave" && literate_to_tex_command="noweave -delay -index \$\$i > \$\$o"
269
270 SEARCH_PROG([for a HTML -> Latex converter],html_to_latex_command,html2latex)
271 test $html_to_latex_command = "html2latex" && html_to_latex_command="html2latex \$\$i"
272
273 SEARCH_PROG([for a MSWord -> Latex converter],word_to_latex_command,wvCleanLatex word2x)
274 test "$word_to_latex_command" = "wvCleanLatex" && word_to_latex_command="wvCleanLatex \$\$i \$\$o"
275 test "$word_to_latex_command" = "word2x" && word_to_latex_command="word2x -f latex \$\$i"
276
277 SEARCH_PROG([for Image converter],image_command,convert)
278 test $image_command = "convert" && image_command="convert \$\$i \$\$o"
279
280 # Search something to preview postscript
281 SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gsview32 gv ghostview)
282 case $GHOSTVIEW in
283   gv|ghostview) PS_VIEWER="$GHOSTVIEW -swap" ;;
284   *) PS_VIEWER="$GHOSTVIEW";;
285 esac
286 EPS_VIEWER=$GHOSTVIEW
287
288 # Search for a program to preview pdf
289 SEARCH_PROG([for a PDF preview],PDF_VIEWER, acrobat acrord32 gsview32 acroread gv ghostview xpdf)
290
291 # Search something to preview dvi
292 SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap)
293
294 # Search something to preview html
295 SEARCH_PROG([for a HTML previewer],HTML_VIEWER, "mozilla file://\$\$p\$\$i" netscape)
296
297 # Search for a program to convert ps to pdf
298 SEARCH_PROG([for a PS to PDF converter],ps_to_pdf_command,ps2pdf)
299 test $ps_to_pdf_command = "ps2pdf" && ps_to_pdf_command="ps2pdf -dCompatibilityLevel=1.3 \$\$i"
300
301 # Search for a program to convert dvi to ps
302 SEARCH_PROG([for a DVI to PS converter],dvi_to_ps_command,dvips)
303 test $dvi_to_ps_command = "dvips" && dvi_to_ps_command="dvips -o \$\$o \$\$i"
304
305 # Search for a program to convert dvi to pdf
306 SEARCH_PROG([for a DVI to PDF converter],dvi_to_pdf_command,dvipdfm)
307 test $dvi_to_pdf_command = "dvipdfm" && dvi_to_pdf_command="dvipdfm \$\$i"
308
309 # We have a script to convert previewlyx to ppm
310 lyxpreview_to_bitmap_command='$$s/lyxpreview2bitmap.sh'
311
312 # Search a *roff program (used to translate tables in ASCII export)
313 LYXRC_PROG([for a *roff formatter], \ascii_roff_command, dnl
314   'groff -t -Tlatin1 $$FName' nroff,dnl
315   test "$prog" = "nroff" && prog='tbl $$FName | nroff')
316
317 # Search the ChkTeX program
318 LYXRC_PROG([for ChkTeX], \chktex_command,dnl
319    "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38")
320
321 # Search for a spellchecker
322 LYXRC_PROG([for a spell-checker], \spell_command, ispell)
323
324 # Search for computer algebra systems
325 SEARCH_PROG([for Octave],OCTAVE,octave)
326 SEARCH_PROG([for Maple],MAPLE,maple)
327
328 dnl # Search a Fax handling program
329 dnl SEARCH_PROG([for a fax driver], FAX, sendfax faxsend fax)
330 dnl if test $FAX = sendfax ; then
331 dnl   fax_command="sendfax -n -h '\$\$Host' -c '\$\$Comment' -x '\$\$Enterprise' -d '\$\$Name'@'\$\$Phone' '\$\$FName'"
332 dnl elif test $FAX = faxsend ; then
333 dnl   fax_command="faxsend '\$\$Phone' '\$\$FName'"
334 dnl elif test $FAX = fax ; then
335 dnl   fax_command="fax send '\$\$Phone' '\$\$FName'"
336 dnl else
337 dnl   fax_command="none"
338 dnl fi
339
340 # Search a GUI Fax program
341 SEARCH_PROG([for a fax program], fax_command, kdeprintfax ksendfax)
342 test $fax_command != "none" && fax_command="$fax_command \$\$i"
343
344 # Search for LinuxDoc support
345 SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx)
346 if test $LINUXDOC != none; then
347   chk_linuxdoc=yes
348   bool_linuxdoc=true
349   linuxdoc_cmd="\\def\\haslinuxdoc{yes}"
350 else
351   chk_linuxdoc=no
352   bool_linuxdoc=false
353 fi
354
355 case $LINUXDOC in
356   sgml2lyx)
357     linuxdoc_to_latex_command="sgml2latex \$\$i"
358     linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$i"
359     linuxdoc_to_html_command="sgml2html \$\$i"
360     linuxdoc_to_lyx_command="sgml2lyx \$\$i";;
361   none)
362     linuxdoc_to_latex_command="none"
363     linuxdoc_to_dvi_command="none"
364     linuxdoc_to_html_command="none"
365     linuxdoc_to_lyx_command="none";;
366 esac
367
368 # Search for DocBook support
369 SEARCH_PROG([for SGML-tools 2.x (DocBook) or db2x scripts], DOCBOOK, sgmltools db2dvi)
370 if test $DOCBOOK != none; then
371   chk_docbook=yes
372   bool_docbook=true
373   docbook_cmd="\\def\\hasdocbook{yes}"
374 else
375   chk_docbook=no
376   bool_docbook=false
377 fi
378
379 case $DOCBOOK in
380   sgmltools)
381     docbook_to_dvi_command="sgmltools -b dvi \$\$i"
382     docbook_to_html_command="sgmltools -b html \$\$i";;
383   db2dvi)
384     docbook_to_dvi_command="db2dvi \$\$i"
385     docbook_to_html_command="db2html \$\$i";;
386   none)
387     docbook_to_dvi_command="none"
388     docbook_to_html_command="none";;
389 esac
390
391 # Search for a spool command
392 LYXRC_PROG([for a spool command], \print_spool_command, lp lpr)
393 case $prog in
394   lp) print_spool_printerprefix="-d ";;
395  lpr) print_spool_printerprefix="-P";;
396    *) :;; # leave to empty values
397 esac
398 LYXRC_VAR(\print_spool_printerprefix, $print_spool_printerprefix)
399
400 SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea)
401 latex_to_html_command=$TOHTML
402 case $TOHTML in
403         tth) latex_to_html_command="tth -t -e2 -L\$\$b < \$\$i > \$\$o";;
404  latex2html) latex_to_html_command="latex2html -no_subdir -split 0 -show_section_numbers \$\$i";;
405       hevea) latex_to_html_command="hevea -s \$\$i";;
406 esac
407
408 #### Explore the LaTeX configuration
409 MSG_CHECKING(LaTeX configuration)
410 # First, remove the files that we want to re-create
411 rm -f textclass.lst packages.lst chkconfig.sed
412 if test ${lyx_check_config} = no ; then
413   MSG_RESULT(default values)
414   MSG_CHECKING(list of textclasses,+)
415   cat >textclass.lst <<EOF
416 # This file declares layouts and their associated definition files
417 # (include dir. relative to the place where this file is).
418 # It contains only default values, since chkconfig.ltx could not be run
419 # for some reason. Run ./configure if you need to update it after a
420 # configuration change.
421 EOF
422   # build the list of available layout files and convert it to commands
423   # for chkconfig.ltx
424   for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
425     case $file in
426       */\*.layout) ;;
427       *) if test -r "$file" ; then
428            class=`echo $file | sed -e 's%^.*layouts/\(.*\)\.layout$%\1%'`
429            cleanclass=`echo $class | tr ' -' '__'`
430 changequote([,])dnl
431            # make sure the same class is not considered twice
432            if test  x`[eval] echo $ac_n '${found_'$cleanclass'}'` = x ; then
433              [eval] "found_$cleanclass=yes"
434 changequote(,)dnl
435              # The sed commands below are a bit scary. Here is what they do:
436              # 1-3: remove the \DeclareFOO macro and add the correct boolean 
437              #      at the end of the line telling whether the class is 
438              #      available
439              # 4: if the macro had an optional argument with several 
440              #    parameters, only keep the first one
441              # 5: if the macro did not have an optional argument, provide one 
442              #    (equal to the class name)
443              # 6: remove brackets and replace with correctly quoted entries
444              grep '\\Declare\(LaTeX\|DocBook\|LinuxDoc\)Class' "$file" \
445               | sed -e 's/^.*\DeclareLaTeXClass *\(.*\)/\1 "false"/' \
446                     -e 's/^.*\DeclareDocBookClass *\(.*\)/\1 "'$bool_docbook'"/' \
447                     -e 's/^.*\DeclareLinuxDocClass *\(.*\)/\1 "'$bool_linuxdoc'"/' \
448                     -e 's/\[\([^,]*\),[^]]*\]/[\1]/' \
449                     -e 's/^{/['$class']{/' \
450                     -e 's/\[\([^]]*\)\] *{\([^}]*\)}/"'$class'" "\1" "\2"/' \
451                     >>textclass.lst
452            fi
453          fi ;;
454     esac
455   done 
456   MSG_RESULT(done)
457 else
458   MSG_RESULT(auto)
459   rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex
460   cat >wrap_chkconfig.ltx <<EOF
461 \\newcommand\\srcdir{${srcdir}}
462 ${linuxdoc_cmd}
463 ${docbook_cmd}
464 \\input{${srcdir}/chkconfig.ltx}
465 EOF
466   ## Construct the list of classes to test for.
467   # build the list of available layout files and convert it to commands
468   # for chkconfig.ltx
469   for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
470     case $file in
471       */\*.layout) ;;
472       *) test -r "$file" && echo $file ;;
473     esac
474   done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\
475              > chklayouts.tex
476 changequote([,])dnl
477   [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
478   [eval] `cat chkconfig.vars | sed 's/-/_/g'`
479 changequote(,)dnl
480 fi
481
482 # Do we have all the files we need? Useful if latex did not run
483 changequote([,])dnl
484
485 PROVIDE_DEFAULT_FILE(chkconfig.sed,[s/@.*@/???/g])
486
487 echo "creating packages.lst"
488 PROVIDE_DEFAULT_FILE(packages.lst,dnl
489 [# This file should contain the list of LaTeX packages that have been
490 # recognized by LyX. Unfortunately, since configure could not find
491 # your LaTeX2e program, the tests have not been run. Run ./configure
492 # if you need to update it after a configuration change.
493 ])
494 changequote(,)dnl
495
496 echo "creating doc/LaTeXConfig.lyx"
497 echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed
498 echo "s/@chk_docbook@/$chk_docbook/g" >> chkconfig.sed
499 sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx
500
501 echo "creating $outfile"
502 cat >$outfile <<EOF
503 # This file has been automatically generated by LyX' lib/configure
504 # script. It contains default settings that have been determined by
505 # examining your system. PLEASE DO NOT MODIFY ANYTHING HERE! If you
506 # want to customize LyX, make a copy of the file LYXDIR/lyxrc as
507 # ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
508 # override the values given here.
509 \\Format asciichess asc    "ASCII (chess output)"  "" ""        ""
510 \\Format asciiimage asc    "ASCII (image)"         "" ""        ""
511 \\Format asciixfig  asc    "ASCII (xfig output)"   "" ""        ""
512 \\Format agr        agr     GRACE                  "" ""        ""
513 \\Format bmp        bmp     BMP                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
514 \\Format date       ""     "date command"          "" ""        ""
515 \\Format dateout    tmp    "date (output)"         "" ""        ""
516 \\Format docbook    sgml    DocBook                B  ""        ""
517 \\Format dvi        dvi     DVI                    D  "$DVI_VIEWER"     ""
518 \\Format eps        eps     EPS                    "" "$EPS_VIEWER"     ""
519 \\Format fax        ""      Fax                    "" ""        ""
520 \\Format fen        fen     FEN                    "" "$FEN_VIEWER"     "$FEN_EDITOR"
521 \\Format fig        fig     XFig                   "" "$FIG_VIEWER"     "$FIG_EDITOR"
522 \\Format gif        gif     GIF                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
523 \\Format html       html    HTML                   H  "$HTML_VIEWER"    ""
524 \\Format jpg        jpg     JPG                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
525 \\Format latex      tex     LaTeX                  L  ""        ""
526 \\Format linuxdoc   sgml    LinuxDoc               x  ""        ""
527 \\Format lyx        lyx     LyX                    "" ""        ""
528 \\Format lyxpreview lyxpreview "LyX Preview"       "" ""        ""
529 \\Format literate   nw      NoWeb                  N  ""        ""
530 \\Format pbm        pbm     PBM                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
531 \\Format pdf        pdf    "PDF (ps2pdf)"          P  "$PDF_VIEWER"     ""
532 \\Format pdf2       pdf    "PDF (pdflatex)"        F  "$PDF_VIEWER"     ""
533 \\Format pdf3       pdf    "PDF (dvipdfm)"         m  "$PDF_VIEWER"     ""
534 \\Format pdftex     pdftex_t PDFTEX                "" ""        ""
535 \\Format pgm        pgm     PGM                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
536 \\Format png        png     PNG                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
537 \\Format ppm        ppm     PPM                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
538 \\Format program    ""      Program                "" ""        ""
539 \\Format ps         ps      Postscript             t  "$PS_VIEWER"      ""
540 \\Format pstex      pstex_t PSTEX                  "" ""        ""
541 \\Format text       txt     ASCII                  A  ""        ""
542 \\Format textparagraph txt "ASCII (paragraphs)"    "" ""        ""
543 \\Format tgif       obj     TGIF                   "" "$TGIF_VIEWER"    "$TGIF_EDITOR"
544 \\Format tiff       tif     TIFF                   "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
545 \\Format word       doc     Word                   W  ""        ""
546 \\Format xbm        xbm     XBM                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
547 \\Format xpm        xpm     XPM                    "" "$RASTERIMAGE_VIEWER"     "$RASTERIMAGE_EDITOR"
548
549 \\converter date       dateout    "date +%d-%m-%Y > \$\$o"      ""
550 \\converter docbook    dvi        "$docbook_to_dvi_command"     ""
551 \\converter docbook    html       "$docbook_to_html_command"    ""
552 \\converter dvi        pdf3       "$dvi_to_pdf_command" ""
553 \\converter dvi        ps         "$dvi_to_ps_command"  ""
554 \\converter fen        asciichess "python \$\$s/fen2ascii.py \$\$i \$\$o"       ""
555 \\converter fig        pdftex     "sh \$\$s/fig2pdftex.sh \$\$i \$\$o"  ""
556 \\converter fig        pstex      "sh \$\$s/fig2pstex.sh \$\$i \$\$o"   ""
557 \\converter html       latex      "$html_to_latex_command"      ""
558 \\converter latex      html       "$latex_to_html_command"      "originaldir,needaux"
559 \\converter latex      dvi        "$latex_to_dvi"       "latex"
560 \\converter latex      lyx        "$tex_to_lyx_command" ""
561 \\converter latex      pdf2       "$latex_to_pdf"       "latex"
562 \\converter linuxdoc   dvi        "$linuxdoc_to_dvi_command"    ""
563 \\converter linuxdoc   html       "$linuxdoc_to_html_command"   ""
564 \\converter linuxdoc   latex      "$linuxdoc_to_latex_command"  ""
565 \\converter linuxdoc   lyx        "$linuxdoc_to_lyx_command"    ""
566 \\converter literate   latex      "$literate_to_tex_command"    ""
567 \\converter literate   lyx        "$literate_to_lyx_command"    ""
568 \\converter lyxpreview ppm        "$lyxpreview_to_bitmap_command"       ""
569 \\converter ps         fax        "$fax_command"        ""
570 \\converter ps         pdf        "$ps_to_pdf_command"  ""
571 \\converter word       latex      "$word_to_latex_command"      ""
572 EOF
573
574 ### the graphic converter part with the predefined ones
575 #### Search for the nonstandard converting progs
576 #
577 SEARCH_PROG([for an FIG -> EPS/PPM converter], FIG2DEV, fig2dev)
578 if test "$FIG2DEV" = "fig2dev"; then
579 cat >>$outfile <<EOF
580 \\converter fig        eps        "fig2dev -L eps \$\$i \$\$o" ""
581 \\converter fig        ppm        "fig2dev -L ppm \$\$i \$\$o" ""
582 \\converter fig        png        "fig2dev -L png \$\$i \$\$o" ""
583 EOF
584 fi
585
586 SEARCH_PROG([for an TIFF -> PS converter], TIFF2PS, tiff2ps)
587 if test "$TIFF2PS" = "tiff2ps"; then
588 cat >>$outfile <<EOF
589 \\converter tiff        eps         "tiff2ps \$\$i > \$\$o" ""
590 EOF
591 fi
592
593 SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif)
594 if test "$TGIF" = "tgif"; then
595 cat >>$outfile <<EOF
596 \\converter tgif       eps        "tgif -stdout -print -color -eps \$\$i > \$\$o" ""
597 \\converter tgif       pdf        "tgif -stdout -print -color -pdf \$\$i > \$\$o" ""
598 EOF
599 fi
600
601 SEARCH_PROG([for an EPS -> PDF converter], EPSTOPDF, epstopdf)
602 if test "$EPSTOPDF" = "epstopdf"; then
603 cat >>$outfile <<EOF
604 \\converter eps        pdf        "epstopdf --outfile=\$\$o \$\$i" ""
605 EOF
606 fi
607
608 #### Add Grace conversions (xmgrace needs an Xserver, gracebat doesn't.)
609 SEARCH_PROG([for a Grace -> Image converter], GRACE, gracebat)
610 if test "$GRACE" = "gracebat"; then
611 cat >>$outfile <<EOF
612 \\converter agr        eps        "gracebat -hardcopy -printfile \$\$o -hdevice EPS \$\$i 2>/dev/null" ""
613 \\converter agr        png        "gracebat -hardcopy -printfile \$\$o -hdevice PNG \$\$i 2>/dev/null" ""
614 \\converter agr        jpg        "gracebat -hardcopy -printfile \$\$o -hdevice JPEG \$\$i 2>/dev/null" ""
615 \\converter agr        ppm        "gracebat -hardcopy -printfile \$\$o -hdevice PNM \$\$i 2>/dev/null" ""
616 EOF
617 fi
618
619 cat >>$outfile <<EOF
620
621 $rc_entries
622 \\font_encoding "$chk_fontenc"
623 EOF
624
625 ######## X FONTS
626 # create a fonts.dir file to make X fonts available to LyX
627 echo "checking for TeX fonts"
628
629 fontlist="cmex10 cmmi10 cmr10 cmsy10 eufm10 msam10 msbm10 wasy10"
630 rm -f xfonts/fonts.dir xfonts/fonts.scale xfonts/tmpfonts
631
632 num=0
633 touch xfonts/tmpfonts
634 for font in $fontlist ; do
635   MSG_CHECKING(for $font,+)
636   result=no
637   for ext in pfb pfa ttf ; do
638     if filepath=`kpsewhich $font.$ext` ; then
639       result="yes ($ext)"
640       rm -f xfonts/$font.$ext
641       ln -s $filepath xfonts 2>/dev/null
642       echo "$font.$ext -unknown-$font-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific" >>xfonts/tmpfonts
643       num=`expr $num + 1`
644       break
645     fi
646   done
647   MSG_RESULT($result)
648 done
649
650 if test ! $num = 0 ; then
651   echo $num >xfonts/fonts.scale
652   cat xfonts/tmpfonts >>xfonts/fonts.scale
653   cp xfonts/fonts.scale xfonts/fonts.dir
654   # create a resource list file for Display Postscript
655   (cd xfonts ; rm -f PSres.upr ; makepsres) 2>/dev/null || true
656 fi
657 rm -f xfonts/tmpfonts
658
659
660 # Remove superfluous files if we are not writing in the main lib
661 # directory
662 for file in $outfile textclass.lst packages.lst \
663             doc/LaTeXConfig.lyx xfonts/fonts.dir ; do
664   # we rename the file first, so that we avoid comparing a file with itself
665   mv $file $file.new
666   if test -r $srcdir/$file && diff $file.new $srcdir/$file >/dev/null 2>/dev/null ;
667   then
668     echo "removing $file, which is identical to the system global version"
669     rm -f $file.new
670   else
671     mv $file.new $file
672   fi
673 done
674 if test ! -r xfonts/fonts.dir ; then
675     echo "removing font links"
676     rm -f xfonts/*.pfb xfonts/fonts.scale
677 fi
678
679 # Final clean-up
680 if test $lyx_keep_temps = no ; then
681 rm -f chkconfig.sed chkconfig.vars wrap_chkconfig.* chklayouts.tex \
682       missfont.log
683 fi