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-lyx-suffix=suffix suffix of binary installed files
118 --without-latex-config)
119 lyx_check_config=no ;;
121 lyx_keep_temps=yes ;;
123 lyx_suffix=`echo "$ac_option" | sed 's,--with-lyx-suffix=,,;s,^,-,'`
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)
167 if test "x$OSTYPE" = xcygwin; then
168 echo "configure: cygwin detected; path correction"
169 srcdir=`cygpath -w "${srcdir}" | tr '\\\\' /`
170 echo "srcdir=${srcdir}"
173 #### Create the build directories if necessary
174 for dir in bind clipart doc examples help images kbd layouts reLyX \
175 scripts templates ui xfonts; do
176 test ! -d $dir && mkdir $dir
180 #### Searching some useful programs
181 define(CHECKLATEX2E,[
182 ## Check whether this is really LaTeX2e
184 cat >chklatex.ltx <<EOF
185 \\nonstopmode\\makeatletter
186 \\ifx\\undefined\\documentclass\\else
187 \\message{ThisIsLaTeX2e}
191 if eval ${LATEX} chklatex.ltx </dev/null 2>/dev/null \
192 | grep 'ThisIsLaTeX2e' >/dev/null; then
196 ac_result="not useable"
198 rm -f chklatex.ltx chklatex.log])dnl
201 SEARCH_PROG([for a LaTeX2e program],LATEX,latex latex2e,CHECKLATEX2E,dnl
202 [lyx_check_config=no])
204 test -z "$latex_to_dvi" && latex_to_dvi="none"
206 # Search for pdflatex
207 if test ${lyx_check_config} = no ; then
210 SEARCH_PROG([for the pdflatex program],latex_to_pdf,pdflatex)
213 test $latex_to_dvi != "none" && latex_to_dvi="$latex_to_dvi \$\$i"
214 test $latex_to_pdf != "none" && latex_to_pdf="$latex_to_pdf \$\$i"
216 # Search for an installed reLyX or a ready-to-install one
218 PATH=${PATH}:./reLyX/
219 SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command,reLyX)
221 test $tex_to_lyx_command = "reLyX" && tex_to_lyx_command="reLyX -f \$\$i"
222 tex_to_lyx_command=`echo $tex_to_lyx_command | sed "s,reLyX,reLyX$lyx_suffix,"`
224 SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,noweb2lyx)
225 test $literate_to_lyx_command = "noweb2lyx" && literate_to_lyx_command="noweb2lyx \$\$i \$\$o"
226 literate_to_lyx_command=`echo $literate_to_lyx_command | sed "s,noweb2lyx,noweb2lyx$lyx_suffix,"`
228 # Search something to process a literate document
229 SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,noweave)
230 test $literate_to_tex_command = "noweave" && literate_to_tex_command="noweave -delay -index \$\$i > \$\$o"
232 SEARCH_PROG([for a HTML -> Latex converter],html_to_latex_command,html2latex)
233 test $html_to_latex_command = "html2latex" && html_to_latex_command="html2latex \$\$i"
235 SEARCH_PROG([for a MSWord -> Latex converter],word_to_latex_command,wvCleanLatex word2x)
236 test "$word_to_latex_command" = "wvCleanLatex" && word_to_latex_command="wvCleanLatex \$\$i \$\$o"
237 test "$word_to_latex_command" = "word2x" && word_to_latex_command="word2x -f latex \$\$i"
239 SEARCH_PROG([for Image converter],image_command,convert)
240 test $image_command = "convert" && image_command="convert \$\$i \$\$o"
242 # Search for a Postscript interpreter
243 LYXRC_PROG([for a Postscript interpreter], \ps_command, gs)
245 # Search something to preview postscript
246 SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview)
248 # Search for a program to preview pdf
249 SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf)
251 # Search something to preview dvi
252 SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap)
254 # Search something to preview html
255 SEARCH_PROG([for a HTML previewer],HTML_VIEWER, netscape)
257 # Search for a program to convert ps to pdf
258 SEARCH_PROG([for a PS to PDF converter],ps_to_pdf_command,ps2pdf)
259 test $ps_to_pdf_command = "ps2pdf" && ps_to_pdf_command="ps2pdf \$\$i"
261 # Search for a program to convert dvi to ps
262 SEARCH_PROG([for a DVI to PS converter],dvi_to_ps_command,dvips)
263 test $dvi_to_ps_command = "dvips" && dvi_to_ps_command="dvips -o \$\$o \$\$i"
265 # Search for a program to convert dvi to pdf
266 SEARCH_PROG([for a DVI to PDF converter],dvi_to_pdf_command,dvipdfm)
267 test $dvi_to_pdf_command = "dvipdfm" && dvi_to_pdf_command="dvipdfm \$\$i"
269 # Search a *roff program (used to translate tables in ASCII export)
270 LYXRC_PROG([for a *roff formatter], \ascii_roff_command, dnl
271 'groff -t -Tlatin1 $$FName' nroff,dnl
272 test "$prog" = "nroff" && prog='tbl $$FName | nroff')
274 # Search the ChkTeX program
275 LYXRC_PROG([for ChkTeX], \chktex_command,dnl
276 "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38")
278 # Search for a spellchecker
279 LYXRC_PROG([for a spell-checker], \spell_command, ispell)
281 dnl # Search a Fax handling program
282 dnl SEARCH_PROG([for a fax driver], FAX, sendfax faxsend fax)
283 dnl if test $FAX = sendfax ; then
284 dnl fax_command="sendfax -n -h '\$\$Host' -c '\$\$Comment' -x '\$\$Enterprise' -d '\$\$Name'@'\$\$Phone' '\$\$FName'"
285 dnl elif test $FAX = faxsend ; then
286 dnl fax_command="faxsend '\$\$Phone' '\$\$FName'"
287 dnl elif test $FAX = fax ; then
288 dnl fax_command="fax send '\$\$Phone' '\$\$FName'"
290 dnl fax_command="none"
293 # Search a GUI Fax program
294 SEARCH_PROG([for a fax program], fax_command, ksendfax)
295 test $fax_command = "ksendfax" && fax_command="ksendfax \$\$i"
297 # Search for LinuxDoc support
298 SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx)
300 if test $LINUXDOC != none; then
302 linuxdoc_cmd="\\def\\haslinuxdoc{yes}"
307 linuxdoc_to_latex_command="sgml2latex \$\$i"
308 linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$i"
309 linuxdoc_to_html_command="sgml2html \$\$i"
310 linuxdoc_to_lyx_command="sgml2lyx \$\$i";;
312 linuxdoc_to_latex_command="none"
313 linuxdoc_to_dvi_command="none"
314 linuxdoc_to_html_command="none"
315 linuxdoc_to_lyx_command="none";;
318 # Search for DocBook support
319 SEARCH_PROG([for SGML-tools 2.x (DocBook) or db2x scripts], DOCBOOK, sgmltools db2dvi)
321 if test $DOCBOOK != none; then
323 docbook_cmd="\\def\\hasdocbook{yes}"
328 docbook_to_dvi_command="sgmltools -b dvi \$\$i"
329 docbook_to_html_command="sgmltools -b html \$\$i";;
331 docbook_to_dvi_command="db2dvi \$\$i"
332 docbook_to_html_command="db2html \$\$i";;
334 docbook_to_dvi_command="none"
335 docbook_to_html_command="none";;
338 # Search for a spool command
339 LYXRC_PROG([for a spool command], \print_spool_command, lp lpr)
341 lp) print_spool_printerprefix="-d ";;
342 lpr) print_spool_printerprefix="-P";;
343 *) :;; # leave to empty values
345 LYXRC_VAR(\print_spool_printerprefix, $print_spool_printerprefix)
347 SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea)
348 latex_to_html_command=$TOHTML
350 tth) latex_to_html_command="tth -t -e2 -L\$\$b < \$\$i > \$\$o";;
351 latex2html) latex_to_html_command="latex2html -no_subdir -split 0 -show_section_numbers \$\$i";;
352 hevea) latex_to_html_command="hevea -s \$\$i";;
355 #### Search for image conversion ####
356 SEARCH_PROG([for an Image -> EPS converter], TOEPS, convert pnmtops)
358 convert) bmp_to_eps="convert BMP:\$\$i EPS:\$\$o" fits_to_eps="convert FITS:\$\$i EPS:\$\$o" gif_to_eps="convert GIF:\$\$i EPS:\$\$o" jpg_to_eps="convert JPG:\$\$i EPS:\$\$o" pbm_to_eps="convert PBM:\$\$i EPS:\$\$o" pgm_to_eps="convert PGM:\$\$i EPS:\$\$o" png_to_eps="convert PNG:\$\$i EPS:\$\$o" ppm_to_eps="convert PPM:\$\$i EPS:\$\$o" sgi_to_eps="convert SGI:\$\$i EPS:\$\$o" xbm_to_eps="convert XBM:\$\$i EPS:\$\$o" xwd_to_eps="convert XWD:\$\$i EPS:\$\$o" ;;
359 pnmtops) gif_to_eps="giftopnm \$\$i | pnmtops > \$\$o" png_to_eps="pngtopnm \$\$i | pnmtops >\$\$o" jpg_to_eps="jpegtopnm \$\$i | pnmtops >\$\$o";;
362 SEARCH_PROG([for a Image -> PNG converter], TOPNG, convert pnmtopng)
364 convert) gif_to_png="convert GIF:\$\$i PNG:\$\$o" eps_to_png="convert EPS:\$\$i PNG:\$\$o" jpg_to_png="convert JPG:\$\$i PNG:\$\$o";;
365 pnmtopng) gif_to_png="giftopnm \$\$i | pnmtopng >\$\$o" eps_to_png="pstopnm \$\$i| pnmtopng >\$\$o" jpg_to_png="jpegtopnm \$\$i | pnmtopng >\$\$o";;
368 SEARCH_PROG([for a Image -> XPM converter], TOXPM, convert)
369 if test "$TOXPM" = "convert"; then
370 gif_to_xpm="convert GIF:\$\$i XPM:\$\$o"
371 eps_to_xpm="convert EPS:\$\$i XPM:\$\$o"
372 jpg_to_xpm="convert JPG:\$\$i XPM:\$\$o"
373 png_to_xpm="convert PNG:\$\$i XPM:\$\$o"
374 ps_to_xpm="convert PS:\$\$i XPM:\$\$o"
375 xbm_to_xpm="convert XBM:\$\$i XPM:\$\$o"
378 SEARCH_PROG([For an EPS -> PDF converter], EPSTOPDF, epstopdf)
380 epstopdf) eps_to_pdf="epstopdf --outfile=\$\$o \$\$i";;
383 #### Explore the LaTeX configuration
384 MSG_CHECKING(LaTeX configuration)
385 # First, remove the files that we want to re-create
386 rm -f textclass.lst packages.lst chkconfig.sed
387 if test ${lyx_check_config} = no ; then
388 MSG_RESULT(default values)
391 rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex
392 cat >wrap_chkconfig.ltx <<EOF
393 \\newcommand\\srcdir{${srcdir}}
396 \\input{${srcdir}/chkconfig.ltx}
398 ## Construct the list of classes to test for.
399 # build the list of available layout files and convert it to commands
401 for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
404 *) test -r "$file" && echo $file ;;
406 done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\
409 [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
410 [eval] `cat chkconfig.vars | sed 's/-/_/g'`
414 # Do we have all the files we need? Useful if latex did not run
416 echo "creating textclass.lst"
417 PROVIDE_DEFAULT_FILE(textclass.lst,dnl
418 [# This file declares layouts and their associated definition files
419 # (include dir. relative to the place where this file is).
420 # It contains only default values, since chkconfig.ltx could not be run
421 # for some reason. Run ./configure if you need to update it after a
422 # configuration change.
423 article article article
426 linuxdoc linuxdoc linuxdoc
427 letter letter letter])
429 PROVIDE_DEFAULT_FILE(chkconfig.sed,[s/@.*@/???/g])
431 echo "creating packages.lst"
432 PROVIDE_DEFAULT_FILE(packages.lst,dnl
433 [# This file should contain the list of LaTeX packages that have been
434 # recognized by LyX. Unfortunately, since configure could not find
435 # your LaTeX2e program, the tests have not been run. Run ./configure
436 # if you need to update it after a configuration change.
440 echo "creating doc/LaTeXConfig.lyx"
441 echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed
442 echo "s/@chk_docbook@/$chk_docbook/g" >> chkconfig.sed
443 sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx
445 echo "creating $outfile"
447 # This file has been automatically generated by LyX' lib/configure
448 # script. It contains default settings that have been determined by
449 # examining your system. PLEASE DO NOT MODIFY ANYTHING HERE! If you
450 # want to customize LyX, make a copy of the file LYXDIR/lyxrc as
451 # ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
452 # override the values given here.
453 \\Format text txt ASCII A
454 \\Format textparagraph txt ASCII(paragraphs) ""
455 \\Format docbook sgml DocBook B
456 \\Format bmp bmp BMP ""
457 \\Format dvi dvi DVI D
458 \\Format eps eps EPS ""
459 \\Format epsi epsi EPSI ""
460 \\Format fax "" Fax ""
461 \\Format fits fits FITS ""
462 \\Format gif gif GIF ""
463 \\Format grace agr GRACE ""
464 \\Format html html HTML H
465 \\Format jpg jpg JPEG ""
466 \\Format latex tex LaTeX L
467 \\Format linuxdoc sgml LinuxDoc x
468 \\Format lyx lyx LyX ""
469 \\Format literate nw NoWeb N
470 \\Format pdf pdf PDF P
471 \\Format pdf2 pdf "PDF (pdflatex)" F
472 \\Format pdf3 pdf "PDF (dvipdfm)" m
473 \\Format pbm pbm PBM ""
474 \\Format pgm pgm PGM ""
475 \\Format png png PNG ""
476 \\Format ppm ppm PPM ""
477 \\Format ps ps Postscript t
478 \\Format program "" Program ""
479 \\Format sgi sgi SGI ""
480 \\Format tgif tgif TGIF ""
481 \\Format tiff tif TIFF ""
482 \\Format xbm xbm XBM ""
483 \\Format xpm xpm XPM ""
484 \\Format xwd xwd XWD ""
485 \\Format word doc Word W
487 \\converter latex dvi "$latex_to_dvi" "latex"
488 \\converter latex pdf2 "$latex_to_pdf" "latex"
489 \\converter latex html "$latex_to_html_command" "originaldir,needaux"
490 \\converter literate latex "$literate_to_tex_command" ""
491 \\converter dvi pdf3 "$dvi_to_pdf_command" ""
492 \\converter dvi ps "$dvi_to_ps_command" ""
493 \\converter ps pdf "$ps_to_pdf_command" ""
494 \\converter ps fax "$fax_command" ""
495 \\converter linuxdoc lyx "$linuxdoc_to_lyx_command" ""
496 \\converter linuxdoc latex "$linuxdoc_to_latex_command" ""
497 \\converter linuxdoc dvi "$linuxdoc_to_dvi_command" ""
498 \\converter linuxdoc html "$linuxdoc_to_html_command" ""
499 \\converter docbook dvi "$docbook_to_dvi_command" ""
500 \\converter docbook html "$docbook_to_html_command" ""
502 \\converter latex lyx "$tex_to_lyx_command" ""
503 \\converter literate lyx "$literate_to_lyx_command" ""
504 \\converter html latex "$html_to_latex_command" ""
505 \\converter word latex "$word_to_latex_command" ""
507 \\converter agr eps "xmgrace -hardcopy -printfile \$\$o -hdevice EPS \$\$i" ""
508 \\converter bmp eps "$bmp_to_eps" ""
509 \\converter fits eps "$fits_to_eps" ""
510 \\converter gif eps "$gif_to_eps" ""
511 \\converter jpg eps "$jpg_to_eps" ""
512 \\converter pbm eps "$pbm_to_eps" ""
513 \\converter pgm eps "$pgm_to_eps" ""
514 \\converter png eps "$png_to_eps" ""
515 \\converter ppm eps "$ppm_to_eps" ""
516 \\converter sgi eps "$sgi_to_eps" ""
517 \\converter tgif eps "tgif -print -eps \$\$i" ""
518 \\converter tiff eps "tiff2ps \$\$i > \$\$o" ""
519 \\converter xbm eps "$xbm_to_eps" ""
520 \\converter xwd eps "$xwd_to_eps" ""
522 \\converter tgif xpm "tgif -print -stdout -xpm \$\$i > \$\$o" ""
523 \\converter tgif png "tgif -print -stdout -png \$\$i > \$\$o" ""
524 \\converter tgif pdf "tgif -print -stdout -pdf \$\$i > \$\$o" ""
526 \\converter gif png "$gif_to_png" ""
527 \\converter eps png "$eps_to_png" ""
528 \\converter epsi png "$eps_to_png" ""
529 \\converter jpg png "$jpg_to_png" ""
531 \\converter gif xpm "$gif_to_xpm" ""
532 \\converter eps xpm "$eps_to_xpm" ""
533 \\converter epsi xpm "$eps_to_xpm" ""
534 \\converter jpg xpm "$jpg_to_xpm" ""
535 \\converter png xpm "$png_to_xpm" ""
536 \\converter ps xpm "$ps_to_xpm" ""
537 \\converter xbm xpm "$xbm_to_xpm" ""
539 \\converter eps pdf "$eps_to_pdf" ""
540 \\converter epsi pdf "$eps_to_pdf" ""
542 \\viewer dvi "$DVI_VIEWER"
543 \\viewer html "$HTML_VIEWER"
544 \\viewer pdf "$PDF_VIEWER"
545 \\viewer ps "$GHOSTVIEW -swap"
546 \\viewer eps "$GHOSTVIEW"
549 \\font_encoding "$chk_fontenc"
553 # create a fonts.dir file to make X fonts available to LyX
554 echo "checking for TeX fonts"
556 fontlist="cmex10 cmmi10 cmr10 cmsy10 eufm10 msam10 msbm10"
557 rm -f xfonts/fonts.dir xfonts/fonts.scale xfonts/tmpfonts
560 touch xfonts/tmpfonts
561 for font in $fontlist ; do
562 MSG_CHECKING([for $font])
564 for ext in pfb pfa ttf ; do
565 if filepath=`kpsewhich $font.$ext` ; then
567 rm -f xfonts/$font.$ext
568 ln -s $filepath xfonts 2>/dev/null
569 echo "$font.$ext -unknown-$font-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific" >>xfonts/tmpfonts
577 if test ! $num = 0 ; then
578 echo $num >xfonts/fonts.scale
579 cat xfonts/tmpfonts >>xfonts/fonts.scale
580 cp xfonts/fonts.scale xfonts/fonts.dir
582 rm -f xfonts/tmpfonts
585 # Remove superfluous files if we are not writing in the main lib
587 for file in $outfile textclass.lst packages.lst \
588 doc/LaTeXConfig.lyx xfonts/fonts.dir ; do
589 # we rename the file first, so that we avoid comparing a file with itself
591 if test -r $srcdir/$file && diff $file.new $srcdir/$file >/dev/null 2>/dev/null ;
593 echo "removing $file, which is identical to the system global version"
602 if test $lyx_keep_temps = no ; then
603 rm -f chkconfig.sed chkconfig.vars wrap_chkconfig.* chklayouts.tex \