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.
8 dnl ######### Begin M4 macros #########################################
9 dnl This is a template for my stripped-down configure script.
10 dnl First, a few convenient macros.
14 dnl MSG_CHECKING(FEATURE-DESCRIPTION,PREFIX)
17 [echo $ac_n "$2checking $1""... $ac_c"])dnl
20 dnl MSG_RESULT(RESULT-DESCRIPTION)
23 [echo "$ac_t""$1"])dnl
26 dnl SEARCH_PROG(FEATURE-DESCRIPTION,VARIABLE-NAME,PROGRAMS-LIST,
27 dnl ACTION-IF-FOUND,ACTION-IF-NOT-FOUND)
29 define(SEARCH_PROG,[dnl
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
50 if test -n "[$]$2"; then
56 MSG_RESULT($ac_result)
57 test -n "[$]$2" && break
61 if test -z "[$]$2" ; then
70 dnl LYXRC_VAR(VARIABLE_NAME, VALUE)
72 rc_entries="$rc_entries
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)
83 dnl PROVIDE_DEFAULT_FILE(FILE, DEFAULT-VALUE)
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
94 dnl ######### End M4 macros #############################################
97 ####some configuration variables
98 outfile=lyxrc.defaults
105 #### Parse the command line
110 Usage: configure [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
118 --without-latex-config)
119 lyx_check_config=no ;;
121 lyx_keep_temps=yes ;;
122 --with-version-suffix*)
123 version_suffix=`echo "$ac_option" | sed 's,--with-version-suffix=,,'`
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
138 ac_n= ac_c='\c' ac_t=
142 #### I do not really know why this is useful, but we might as well keep it.
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
154 #### Guess the directory in which configure is located.
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"
166 #### Adjust PATH for Win32 (Cygwin)
169 echo "configure: cygwin detected; path correction"
170 srcdir=`cygpath -w "${srcdir}" | tr '\\\\' /`
171 echo "srcdir=${srcdir}" ;;
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
181 #### Searching some useful programs
182 define(CHECKLATEX2E,[
183 ## Check whether this is really LaTeX2e
185 cat >chklatex.ltx <<EOF
186 \\nonstopmode\\makeatletter
187 \\ifx\\undefined\\documentclass\\else
188 \\message{ThisIsLaTeX2e}
192 if eval ${LATEX} chklatex.ltx </dev/null 2>/dev/null \
193 | grep 'ThisIsLaTeX2e' >/dev/null; then
197 ac_result="not useable"
199 rm -f chklatex.ltx chklatex.log])dnl
202 SEARCH_PROG([for a LaTeX2e program],LATEX,pplatex latex2e latex,CHECKLATEX2E,dnl
203 [lyx_check_config=no])
205 test -z "$latex_to_dvi" && latex_to_dvi="none"
207 # Search for pdflatex
208 if test ${lyx_check_config} = no ; then
211 SEARCH_PROG([for the pdflatex program],latex_to_pdf,pdflatex)
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"
217 # Search for an installed reLyX or a ready-to-install one
219 PATH=${PATH}:./reLyX/
220 SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command,reLyX)
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,"`
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,"`
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"
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"
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"
240 SEARCH_PROG([for Image converter],image_command,convert)
241 test $image_command = "convert" && image_command="convert \$\$i \$\$o"
243 # Search for a Postscript interpreter
244 LYXRC_PROG([for a Postscript interpreter], \ps_command, gs)
246 # Search something to preview postscript
247 SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview)
249 # Search for a program to preview pdf
250 SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf)
252 # Search something to preview dvi
253 SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap)
255 # Search something to preview html
256 SEARCH_PROG([for a HTML previewer],HTML_VIEWER, "mozilla file://\$\$p\$\$i" netscape)
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"
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"
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"
270 # We have a script to convert previewlyx to ppm
271 lyxpreview_to_bitmap_command="lyxpreview2bitmap.sh"
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')
278 # Search the ChkTeX program
279 LYXRC_PROG([for ChkTeX], \chktex_command,dnl
280 "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38")
282 # Search for a spellchecker
283 LYXRC_PROG([for a spell-checker], \spell_command, ispell)
285 # Search for computer algebra systems
286 SEARCH_PROG([for Octave],OCTAVE,octave)
287 SEARCH_PROG([for Maple],MAPLE,maple)
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'"
298 dnl fax_command="none"
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"
305 # Search for LinuxDoc support
306 SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx)
308 if test $LINUXDOC != none; then
310 linuxdoc_cmd="\\def\\haslinuxdoc{yes}"
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";;
320 linuxdoc_to_latex_command="none"
321 linuxdoc_to_dvi_command="none"
322 linuxdoc_to_html_command="none"
323 linuxdoc_to_lyx_command="none";;
326 # Search for DocBook support
327 SEARCH_PROG([for SGML-tools 2.x (DocBook) or db2x scripts], DOCBOOK, sgmltools db2dvi)
329 if test $DOCBOOK != none; then
331 docbook_cmd="\\def\\hasdocbook{yes}"
336 docbook_to_dvi_command="sgmltools -b dvi \$\$i"
337 docbook_to_html_command="sgmltools -b html \$\$i";;
339 docbook_to_dvi_command="db2dvi \$\$i"
340 docbook_to_html_command="db2html \$\$i";;
342 docbook_to_dvi_command="none"
343 docbook_to_html_command="none";;
346 # Search for a spool command
347 LYXRC_PROG([for a spool command], \print_spool_command, lp lpr)
349 lp) print_spool_printerprefix="-d ";;
350 lpr) print_spool_printerprefix="-P";;
351 *) :;; # leave to empty values
353 LYXRC_VAR(\print_spool_printerprefix, $print_spool_printerprefix)
355 SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea)
356 latex_to_html_command=$TOHTML
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";;
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)
371 rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex
372 cat >wrap_chkconfig.ltx <<EOF
373 \\newcommand\\srcdir{${srcdir}}
376 \\input{${srcdir}/chkconfig.ltx}
378 ## Construct the list of classes to test for.
379 # build the list of available layout files and convert it to commands
381 for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
384 *) test -r "$file" && echo $file ;;
386 done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\
389 [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
390 [eval] `cat chkconfig.vars | sed 's/-/_/g'`
394 # Do we have all the files we need? Useful if latex did not run
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
406 linuxdoc linuxdoc linuxdoc
407 letter letter letter])
409 PROVIDE_DEFAULT_FILE(chkconfig.sed,[s/@.*@/???/g])
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.
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
425 echo "creating $outfile"
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 ""
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" ""
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"
506 \\font_encoding "$chk_fontenc"
509 ### the graphic converter part with the predefined ones
510 #### Search for tne nonstandard converting progs
512 SEARCH_PROG([for an FIG -> EPS/PPM converter], FIG2DEV, fig2dev)
513 if test "$FIG2DEV" = "fig2dev"; then
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" ""
521 SEARCH_PROG([for an TIFF -> PS converter], TIFF2PS, tiff2ps)
522 if test "$TIFF2PS" = "tiff2ps"; then
524 \\converter tiff eps "tiff2ps \$\$i > \$\$o" ""
528 SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif)
529 if test "$TGIF" = "tgif"; then
531 \\converter tgif eps "tgif -stdout -print -color -eps \$\$i > \$\$o" ""
532 \\converter tgif png "tgif -stdout -print -color -xpm \$\$i | xpmtoppm | pnmtopng > \$\$o" ""
536 SEARCH_PROG([for an EPS -> PDF converter], EPSTOPDF, epstopdf)
537 if test "$EPSTOPDF" = "epstopdf"; then
539 \\converter eps pdf "epstopdf --outfile=\$\$o \$\$i" ""
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
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" ""
555 # create a fonts.dir file to make X fonts available to LyX
556 echo "checking for TeX fonts"
558 fontlist="cmex10 cmmi10 cmr10 cmsy10 eufm10 msam10 msbm10 wasy10"
559 rm -f xfonts/fonts.dir xfonts/fonts.scale xfonts/tmpfonts
562 touch xfonts/tmpfonts
563 for font in $fontlist ; do
564 MSG_CHECKING([for $font])
566 for ext in pfb pfa ttf ; do
567 if filepath=`kpsewhich $font.$ext` ; then
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
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
584 rm -f xfonts/tmpfonts
587 # Remove superfluous files if we are not writing in the main lib
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
593 if test -r $srcdir/$file && diff $file.new $srcdir/$file >/dev/null 2>/dev/null ;
595 echo "removing $file, which is identical to the system global version"
601 if test ! -r xfonts/fonts.dir ; then
602 echo "removing font links"
603 rm -f xfonts/*.pfb xfonts/fonts.scale
607 if test $lyx_keep_temps = no ; then
608 rm -f chkconfig.sed chkconfig.vars wrap_chkconfig.* chklayouts.tex \