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