define(SEARCH_PROG,[dnl
changequote([,])dnl
MSG_CHECKING($1)
-MSG_RESULT(($3))
+MSG_RESULT()
$2=
for ac_prog in $3
do
set dummy $ac_prog ; ac_word=$[2]
if test -n "$ac_word"; then
MSG_CHECKING([for \"$ac_word\"],[+])
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -x [$ac_dir/$ac_word]; then
])dnl
dnl
dnl
+dnl LYXRC_VAR(VARIABLE_NAME, VALUE)
+define(LYXRC_VAR,[dnl
+rc_entries="$rc_entries
+$1 \"$2\""])
+dnl
+dnl
+dnl LYXRC_PROG(FEATURE-DESCRIPTION,VARIABLE-NAME,PROGRAMS-LIST,
+dnl ACTION-IF-FOUND,ACTION-IF-NOT-FOUND)
+define(LYXRC_PROG,[dnl
+SEARCH_PROG($1,prog,$3,$4,$5)
+LYXRC_VAR($2,$prog)])
+dnl
+dnl
dnl PROVIDE_DEFAULT_FILE(FILE, DEFAULT-VALUE)
dnl
define(PROVIDE_DEFAULT_FILE,[dnl
-# if $1 does not exist (because LaTeX did not run),
+# if $1 does not exist (because LaTeX did not run),
# then provide a standard version.
if test ! -f $1 ; then
cat >$1 <<EOF
dnl ######### End M4 macros #############################################
+# Be Bourne compatible (taken from autoconf 2.53)
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+
+
####some configuration variables
+outfile=lyxrc.defaults
+rc_entries=
lyx_check_config=yes
lyx_keep_temps=no
srcdir=
-lyx_suffix=
+version_suffix=
#### Parse the command line
for ac_option do
case "$ac_option" in
-help | --help | -h)
cat << EOF
-Usage: configure [options]
-Options:
+Usage: configure [options]
+Options:
--help show this help lines
--keep-temps keep temporary files (for debug. purposes)
--without-latex-config do not run LaTeX to determine configuration
- --with-lyx-suffix=suffix suffix of binary installed files
+ --with-version-suffix=suffix suffix of binary installed files
EOF
exit 0;;
--without-latex-config)
lyx_check_config=no ;;
--keep-temps)
lyx_keep_temps=yes ;;
- --with-lyx-suffix*)
- lyx_suffix=`echo "$ac_option" | sed 's,--with-lyx-suffix=,,;s,^,-,'`
- esac
+ --with-version-suffix*)
+ version_suffix=`echo "$ac_option" | sed 's,--with-version-suffix=,,'`
+ esac
done
changequote([,])dnl
ac_prog=[$]0
changequote(,)dnl
-srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-test "x$srcdir" = "x$ac_prog" && srcdir=.
-if test ! -r ${srcdir}/chkconfig.ltx ; then
+test "x${srcdir}" = "x$ac_prog" && srcdir=.
+if test ! -r "${srcdir}"/chkconfig.ltx ; then
echo "configure: error: cannot find chkconfig.ltx script"
exit 1
fi
#### Adjust PATH for Win32 (Cygwin)
-if test "x$OSTYPE" = xcygwin; then
- echo "configure: cygwin detected; path correction"
- srcdir=`cygpath -w "${srcdir}" | tr '\\\\' /`
- echo "srcdir=${srcdir}"
-fi
+use_cygwin_path_fix=''
+case `uname -s` in
+ CYGWIN*)
+ tmpfname="/tmp/x$$.ltx";
+ echo "\\documentstyle{article}" > $tmpfname
+ echo "\\begin{document}\\end{document}" >> $tmpfname
+ inpname=`cygpath -w $tmpfname | tr '\\\\' /`
+ echo "\\input{$inpname}" > wrap_temp$$.ltx
+ check_err=`latex wrap_temp$$.ltx 2>&1 < /dev/null | grep Error`
+ rm -f wrap_temp$$.* /tmp/x$$.*
+ if [ x"$check_err" = "x" ]
+ then
+ echo "configure: cygwin detected; path correction"
+ srcdir=`cygpath -w "${srcdir}" | tr '\\\\' /`
+ echo "srcdir=${srcdir}"
+ use_cygwin_path_fix='true'
+ else
+ echo "configure: cygwin detected; path correction is not needed"
+ use_cygwin_path_fix='false'
+ fi
+ ;;
+esac
#### Create the build directories if necessary
-for dir in bind clipart doc examples images kbd layouts reLyX \
- scripts templates ui ; do
+for dir in bind clipart doc examples help images kbd layouts reLyX \
+ scripts templates ui xfonts; do
test ! -d $dir && mkdir $dir
done
\\@@end
EOF
if eval ${LATEX} chklatex.ltx </dev/null 2>/dev/null \
- | grep 'ThisIsLaTeX2e' >/dev/null; then
+ | grep 'ThisIsLaTeX2e' >/dev/null; then
:
else
LATEX=
rm -f chklatex.ltx chklatex.log])dnl
dnl
# Search LaTeX2e
-SEARCH_PROG([for a LaTeX2e program],LATEX,latex latex2e,CHECKLATEX2E,dnl
+SEARCH_PROG([for a LaTeX2e program],LATEX,pplatex latex2e latex,CHECKLATEX2E,dnl
[lyx_check_config=no])
latex_to_dvi=$LATEX
test -z "$latex_to_dvi" && latex_to_dvi="none"
test $latex_to_dvi != "none" && latex_to_dvi="$latex_to_dvi \$\$i"
test $latex_to_pdf != "none" && latex_to_pdf="$latex_to_pdf \$\$i"
+SEARCH_PROG([for a TGIF viewer and editor], TGIF_EDITOR, tgif)
+TGIF_VIEWER="$TGIF_EDITOR"
+
+SEARCH_PROG([for a FIG viewer and editor], FIG_EDITOR, xfig)
+FIG_VIEWER="$FIG_EDITOR"
+
+SEARCH_PROG([for a GRACE viewer and editor], GRACE_EDITOR, xmgrace)
+GRACE_VIEWER="$GRACE_EDITOR"
+
+SEARCH_PROG([for a FEN viewer and editor], FEN_EDITOR, "xboard -lpf \$\$i -mode EditPosition")
+FEN_VIEWER="$FEN_EDITOR"
+
+SEARCH_PROG([for a raster image viewer], RASTERIMAGE_VIEWER, xv kview gimp)
+
+SEARCH_PROG([for a raster image editor], RASTERIMAGE_EDITOR, gimp)
+
+SEARCH_PROG([for a text editor], TEXT_EDITOR, xemacs gvim kedit kwrite kate nedit gedit notepad)
+
# Search for an installed reLyX or a ready-to-install one
save_PATH=${PATH}
PATH=${PATH}:./reLyX/
-SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command,reLyX)
+SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command, "reLyX -f \$\$i")
PATH=${save_PATH}
-test $tex_to_lyx_command = "reLyX" && tex_to_lyx_command="reLyX -f \$\$i"
-tex_to_lyx_command=`echo $tex_to_lyx_command | sed "s,reLyX,reLyX$lyx_suffix,"`
+tex_to_lyx_command=`echo $tex_to_lyx_command | sed "s,reLyX,reLyX$version_suffix,"`
-SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,noweb2lyx)
-test $literate_to_lyx_command = "noweb2lyx" && literate_to_lyx_command="noweb2lyx \$\$i \$\$o"
-literate_to_lyx_command=`echo $literate_to_lyx_command | sed "s,noweb2lyx,noweb2lyx$lyx_suffix,"`
+SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,"noweb2lyx \$\$i \$\$o")
+literate_to_lyx_command=`echo $literate_to_lyx_command | sed "s,noweb2lyx,noweb2lyx$version_suffix,"`
# Search something to process a literate document
-SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,noweave)
-test $literate_to_tex_command = "noweave" && literate_to_tex_command="noweave -delay -index \$\$i > \$\$o"
+SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,"noweave -delay -index \$\$i > \$\$o")
+
+SEARCH_PROG([for a HTML -> Latex converter],html_to_latex_command, "html2latex \$\$i")
-SEARCH_PROG([for a HTML -> Latex converter],html_to_latex_command,html2latex)
-test $html_to_latex_command = "html2latex" && html_to_latex_command="html2latex \$\$i"
+SEARCH_PROG([for a MSWord -> Latex converter],word_to_latex_command, "wvCleanLatex \$\$i \$\$o" "wvCleanLatex \$\$i \$\$o")
-SEARCH_PROG([for a MSWord -> Latex converter],word_to_latex_command,wvCleanLatex word2x)
-test "$word_to_latex_command" = "wvCleanLatex" && word_to_latex_command="wvCleanLatex \$\$i \$\$o"
-test "$word_to_latex_command" = "word2x" && word_to_latex_command="word2x -f latex \$\$i"
+SEARCH_PROG([for Image converter],image_command, "convert \$\$i \$\$o")
-SEARCH_PROG([for Image converter],image_command,convert)
-test $image_command = "convert" && image_command="convert \$\$i \$\$o"
+SEARCH_PROG([for an OpenOffice.org -> Latex converter],sxw_to_latex_command, "w2l -clean \$\$i")
-# Search for a Postscript interpreter
-SEARCH_PROG([for a Postscript interpreter],GS, gs)
+# oolatex is the original name, SuSE has oolatex.sh
+SEARCH_PROG([for an Latex -> OpenOffice.org converter],latex_to_sxw_command, "oolatex \$\$i" "oolatex.sh \$\$i")
# Search something to preview postscript
-SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview)
+SEARCH_PROG([for a Postscript previewer],PS_VIEWER,gsview32 gv "ghostview -swap" kghostview)
+EPS_VIEWER=$PS_VIEWER
# Search for a program to preview pdf
-SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf)
+SEARCH_PROG([for a PDF previewer],PDF_VIEWER, acrobat acrord32 gsview32 acroread gv ghostview xpdf kpdf kghostview)
# Search something to preview dvi
-SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap)
+SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi windvi yap kdvi)
# Search something to preview html
-SEARCH_PROG([for a HTML previewer],HTML_VIEWER, netscape)
+SEARCH_PROG([for a HTML previewer],HTML_VIEWER, "mozilla file://\$\$p\$\$i" netscape)
# Search for a program to convert ps to pdf
-SEARCH_PROG([for a PS to PDF converter],ps_to_pdf_command,ps2pdf)
-test $ps_to_pdf_command = "ps2pdf" && ps_to_pdf_command="ps2pdf \$\$i"
+SEARCH_PROG([for a PS to PDF converter],ps_to_pdf_command, "ps2pdf13 \$\$i")
# Search for a program to convert dvi to ps
-SEARCH_PROG([for a DVI to PS converter],dvi_to_ps_command,dvips)
-test $dvi_to_ps_command = "dvips" && dvi_to_ps_command="dvips -o \$\$o \$\$i"
+SEARCH_PROG([for a DVI to PS converter],dvi_to_ps_command, "dvips -o \$\$o \$\$i")
# Search for a program to convert dvi to pdf
-SEARCH_PROG([for a DVI to PDF converter],dvi_to_pdf_command,dvipdfm)
-test $dvi_to_pdf_command = "dvipdfm" && dvi_to_pdf_command="dvipdfm \$\$i"
+SEARCH_PROG([for a DVI to PDF converter],dvi_to_pdf_command, "dvipdfm \$\$i")
+
+# We have a script to convert previewlyx to ppm or to png
+lyxpreview_to_bitmap_command='python $$s/scripts/lyxpreview2bitmap.py'
+
+# Search for 'dvipng'. Only enable the conversion from lyxpreview -> png
+# if dvipng is found.
+SEARCH_PROG([for dvipng],DVIPNG,dvipng)
+
+test "$DVIPNG" = "dvipng" && \
+ lyxpreview_to_png_command=$lyxpreview_to_bitmap_command
# Search a *roff program (used to translate tables in ASCII export)
-SEARCH_PROG([for a *roff formatter],ROFF,groff nroff)
-ascii_roff_command=$ROFF
-test $ROFF = "groff" && ascii_roff_command="groff -t -Tlatin1 \$\$FName"
-test $ROFF = "nroff" && ascii_roff_command="tbl \$\$FName | nroff"
+LYXRC_PROG([for a *roff formatter], \ascii_roff_command, dnl
+ "groff -t -Tlatin1 \$\$FName" nroff,dnl
+ test "$prog" = "nroff" && prog='tbl $$FName | nroff')
# Search the ChkTeX program
-SEARCH_PROG([for ChkTeX],CHKTEX,chktex)
-chktex_command=$CHKTEX
-test $CHKTEX = "chktex" && chktex_command="$CHKTEX -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38"
+LYXRC_PROG([for ChkTeX], \chktex_command,dnl
+ "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38")
# Search for a spellchecker
-SEARCH_PROG([for a spell-checker], SPELL,ispell)
+LYXRC_PROG([for a spell-checker], \spell_command, ispell)
+
+# Search for computer algebra systems
+SEARCH_PROG([for Octave],OCTAVE,octave)
+SEARCH_PROG([for Maple],MAPLE,maple)
dnl # Search a Fax handling program
dnl SEARCH_PROG([for a fax driver], FAX, sendfax faxsend fax)
dnl fi
# Search a GUI Fax program
-SEARCH_PROG([for a fax program], fax_command, ksendfax)
-test $fax_command = "ksendfax" && fax_command="ksendfax \$\$i"
+SEARCH_PROG([for a fax program], fax_command, "kdeprintfax \$\$i" "ksendfax \$\$i")
# Search for LinuxDoc support
SEARCH_PROG([for SGML-tools 1.x (LinuxDoc)], LINUXDOC, sgml2lyx)
-chk_linuxdoc=no
if test $LINUXDOC != none; then
chk_linuxdoc=yes
+ bool_linuxdoc=true
linuxdoc_cmd="\\def\\haslinuxdoc{yes}"
+else
+ chk_linuxdoc=no
+ bool_linuxdoc=false
fi
case $LINUXDOC in
# Search for DocBook support
SEARCH_PROG([for SGML-tools 2.x (DocBook) or db2x scripts], DOCBOOK, sgmltools db2dvi)
-chk_docbook=no
if test $DOCBOOK != none; then
chk_docbook=yes
+ bool_docbook=true
docbook_cmd="\\def\\hasdocbook{yes}"
+else
+ chk_docbook=no
+ bool_docbook=false
fi
case $DOCBOOK in
esac
# Search for a spool command
-SEARCH_PROG([for a spool command], LPR, lp lpr)
-case $LPR in
- lp) print_spool_command=lp
- print_spool_printerprefix="-d ";;
- lpr) print_spool_command=lpr
- print_spool_printerprefix="-P";;
+LYXRC_PROG([for a spool command], \print_spool_command, lp lpr)
+case $prog in
+ lp) print_spool_printerprefix="-d ";;
+ lpr) print_spool_printerprefix="-P";;
*) :;; # leave to empty values
esac
+LYXRC_VAR(\print_spool_printerprefix, $print_spool_printerprefix)
-SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea)
-latex_to_html_command=$TOHTML
-case $TOHTML in
- tth) latex_to_html_command="tth -t -e2 -L\$\$b < \$\$i > \$\$o";;
- latex2html) latex_to_html_command="latex2html -no_subdir -split 0 -show_section_numbers \$\$i";;
- hevea) latex_to_html_command="hevea -s \$\$i";;
-esac
-
-#### Search for image conversion ####
-SEARCH_PROG([for an Image -> EPS converter], TOEPS, convert pnmtops)
-case $TOEPS in
- convert) gif_to_eps="convert GIF:\$\$i EPS:\$\$o" png_to_eps="convert PNG:\$\$i EPS:\$\$o" jpg_to_eps="convert JPG:\$\$i EPS:\$\$o";;
- pnmtops) gif_to_eps="giftopnm \$\$i | pnmtops > \$\$o" png_to_eps="pngtopnm \$\$i | pnmtops >\$\$o" jpg_to_eps="jpegtopnm \$\$i | pnmtops >\$\$o";;
-esac
-
-SEARCH_PROG([for a Image -> PNG converter], TOPNG, convert pnmtopng)
-case $TOPNG in
- 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";;
- pnmtopng) gif_to_png="giftopnm \$\$i | pnmtopng >\$\$o" eps_to_png="pstopnm \$\$i| pnmtopng >\$\$o" jpg_to_png="jpegtopnm \$\$i | pnmtopng >\$\$o";;
-esac
-
-SEARCH_PROG([For an EPS -> PDF converter], EPSTOPDF, epstopdf)
-case $EPSTOPDF in
- epstopdf) eps_to_pdf="epstopdf --outfile=\$\$o \$\$i";;
-esac
+SEARCH_PROG([for a LaTeX -> HTML converter], latex_to_html_command,dnl
+ "tth -t -e2 -L\$\$b < \$\$i > \$\$o" dnl
+ "latex2html -no_subdir -split 0 -show_section_numbers \$\$i" dnl
+ "hevea -s \$\$i")
#### Explore the LaTeX configuration
MSG_CHECKING(LaTeX configuration)
rm -f textclass.lst packages.lst chkconfig.sed
if test ${lyx_check_config} = no ; then
MSG_RESULT(default values)
+ MSG_CHECKING(list of textclasses,+)
+ cat >textclass.lst <<EOF
+# This file declares layouts and their associated definition files
+# (include dir. relative to the place where this file is).
+# It contains only default values, since chkconfig.ltx could not be run
+# for some reason. Run ./configure if you need to update it after a
+# configuration change.
+EOF
+ # build the list of available layout files and convert it to entries
+ # for the default textclass.lst file
+ for file in ./layouts/*.layout "${srcdir}"/layouts/*.layout ; do
+ case $file in
+ */\*.layout) ;;
+ *) if test -r "$file" ; then
+ class=`echo $file | sed -e 's%^.*layouts/\(.*\)\.layout$%\1%'`
+ cleanclass=`echo $class | tr ' -' '__'`
+changequote([,])dnl
+ # make sure the same class is not considered twice
+ if test x`[eval] echo $ac_n '${found_'$cleanclass'}'` = x ; then
+ [eval] "found_$cleanclass=yes"
+changequote(,)dnl
+ sed -n '
+# We manipulate only those lines that contain
+# "\Declare(LaTeX|DocBook|LinuxDoc)Class"
+/\\DeclareLaTeXClass/bmatch
+/\\DeclareDocBookClass/bmatch
+/\\DeclareLinuxDocClass/bmatch
+b
+
+:match
+# Remove the \DeclareFOOClass macro and add the correct boolean
+# at the end of the line telling whether the class is
+# available
+s/^.*\DeclareLaTeXClass *\(.*\)/\1 "false"/
+s/^.*\DeclareDocBookClass *\(.*\)/\1 "'$bool_docbook'"/
+s/^.*\DeclareLinuxDocClass *\(.*\)/\1 "'$bool_linuxdoc'"/
+# If the macro had an optional argument with several
+# parameters, only keep the first one
+s/\[\([^,]*\),[^]]*\]/[\1]/
+# If the macro did not have an optional argument, provide one
+# (equal to the class name)
+s/^{/['$class']{/
+# Remove brackets and replace with correctly quoted entries
+s/\[\([^]]*\)\] *{\([^}]*\)}/"'$class'" "\1" "\2"/
+# Print the maninpulated text
+p
+# We are interested in the first instance of \DeclareFOOClass only,
+# so now quit
+q
+' "$file" >> textclass.lst
+ fi
+ fi ;;
+ esac
+ done
+ MSG_RESULT(done)
else
MSG_RESULT(auto)
rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex
+ if test ! -r "chkconfig.ltx" ; then
+ cp "${srcdir}"/chkconfig.ltx .
+ rmcopy=true
+ fi
cat >wrap_chkconfig.ltx <<EOF
-\\newcommand\\srcdir{${srcdir}}
${linuxdoc_cmd}
${docbook_cmd}
-\\input{${srcdir}/chkconfig.ltx}
+\\input{chkconfig.ltx}
EOF
## Construct the list of classes to test for.
- # build the list of available layout files and convert it to commands
- # for chkconfig.ltx
- for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
+ # build the list of available layout files and convert it to commands
+ # for chkconfig.ltx
+ for file in ./layouts/*.layout "${srcdir}"/layouts/*.layout ; do
case $file in
*/\*.layout) ;;
- *) test -r "$file" && echo $file ;;
+ *) if test -r "$file" ; then
+ class=`echo $file | sed -e 's%^.*layouts/\(.*\)\.layout$%\1%'`
+ # Generate the proper TestDocClass command for this layout
+ sed -n '
+# We manipulate only those lines that contain
+# "\Declare(LaTeX|DocBook|LinuxDoc)Class"
+/\\DeclareLaTeXClass/bmatch
+/\\DeclareDocBookClass/bmatch
+/\\DeclareLinuxDocClass/bmatch
+b
+
+:match
+# Wrap the entire line (minus the leading "# ") inside a
+# "\TestDocClass{CLASS}{...}" command
+s/^\# *\(.*\)$/\\TestDocClass{'${class}'}{\1}/
+# Print the result and quit.
+p
+q
+' "$file"
+ fi ;;
esac
- done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\
- > chklayouts.tex
+ done > chklayouts.tex
+ ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
changequote([,])dnl
- [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
[eval] `cat chkconfig.vars | sed 's/-/_/g'`
changequote(,)dnl
+ test -n "${rmcopy}" && rm -f chkconfig.ltx
fi
# Do we have all the files we need? Useful if latex did not run
changequote([,])dnl
-echo creating textclass.lst
-PROVIDE_DEFAULT_FILE(textclass.lst,dnl
-[# This file declares layouts and their associated definition files
-# (include dir. relative to the place where this file is).
-# It contains only default values, since chkconfig.ltx could not be run
-# for some reason. Run ./configure if you need to update it after a
-# configuration change.
-article article article
-report report report
-book book book
-linuxdoc linuxdoc linuxdoc
-letter letter letter])
PROVIDE_DEFAULT_FILE(chkconfig.sed,[s/@.*@/???/g])
-echo creating packages.lst
+echo "creating packages.lst"
PROVIDE_DEFAULT_FILE(packages.lst,dnl
[# This file should contain the list of LaTeX packages that have been
# recognized by LyX. Unfortunately, since configure could not find
])
changequote(,)dnl
-echo creating doc/LaTeXConfig.lyx
+echo "creating doc/LaTeXConfig.lyx"
echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed
echo "s/@chk_docbook@/$chk_docbook/g" >> chkconfig.sed
-sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx
-echo creating lyxrc.defaults
-rm -f lyxrc.defaults
-cat >lyxrc.defaults <<EOF
+if test `uname -s | grep 'MINGW'` ; then
+ # Before running chkconfig.sed, remove the trailing '\r'
+ # characters that can bugger up various versions of sed.
+ tr -d '\r' < chkconfig.sed > chkconfig2.sed
+ mv -f chkconfig2.sed chkconfig.sed
+fi
+
+sed -f chkconfig.sed "${srcdir}"/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx
+
+### Let's check whether spaces are allowed in TeX file names
+MSG_CHECKING(whether TeX allows spaces in file names)
+if test ${lyx_check_config} = no ; then
+ tex_allows_spaces=false
+else
+ fname="a b"
+ rm -f "$fname".tex
+ echo "\\message{working^^J}" >"$fname".tex
+ if ${LATEX} "$fname" </dev/null | grep 'working' >/dev/null ; then
+ MSG_RESULT(yes)
+ tex_allows_spaces=true
+ else
+ MSG_RESULT(no)
+ tex_allows_spaces=false
+ fi
+ rm -r "$fname".* texput.log
+fi
+
+echo "creating $outfile"
+cat >$outfile <<EOF
# This file has been automatically generated by LyX' lib/configure
# script. It contains default settings that have been determined by
# examining your system. PLEASE DO NOT MODIFY ANYTHING HERE! If you
# want to customize LyX, make a copy of the file LYXDIR/lyxrc as
# ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
# override the values given here.
-\\Format text txt ASCII A
-\\Format textparagraph txt ASCII(paragraphs) ""
-\\Format docbook sgml DocBook B
-\\Format dvi dvi DVI D
-\\Format eps eps EPS ""
-\\Format epsi epsi EPSI ""
-\\Format fax "" Fax ""
-\\Format gif gif GIF ""
-\\Format html html HTML H
-\\Format jpg jpg JPEG ""
-\\Format latex tex LaTeX L
-\\Format linuxdoc sgml LinuxDoc x
-\\Format lyx lyx LyX ""
-\\Format literate nw NoWeb N
-\\Format pdf pdf PDF P
-\\Format pdf2 pdf "PDF (pdflatex)" F
-\\Format pdf3 pdf "PDF (dvipdfm)" m
-\\Format png png PNG ""
-\\Format ps ps Postscript t
-\\Format program "" Program ""
-\\Format word doc Word W
-
-\\converter latex dvi "$latex_to_dvi" "latex"
-\\converter latex pdf2 "$latex_to_pdf" "latex"
-\\converter latex html "$latex_to_html_command" "originaldir,needaux"
-\\converter literate latex "$literate_to_tex_command" ""
-\\converter dvi pdf3 "$dvi_to_pdf_command" ""
-\\converter dvi ps "$dvi_to_ps_command" ""
-\\converter ps pdf "$ps_to_pdf_command" ""
-\\converter ps fax "$fax_command" ""
-\\converter linuxdoc lyx "$linuxdoc_to_lyx_command" ""
-\\converter linuxdoc latex "$linuxdoc_to_latex_command" ""
-\\converter linuxdoc dvi "$linuxdoc_to_dvi_command" ""
-\\converter linuxdoc html "$linuxdoc_to_html_command" ""
-\\converter docbook dvi "$docbook_to_dvi_command" ""
-\\converter docbook html "$docbook_to_html_command" ""
-
-\\converter latex lyx "$tex_to_lyx_command" ""
-\\converter literate lyx "$literate_to_lyx_command" ""
-\\converter html latex "$html_to_latex_command" ""
-\\converter word latex "$word_to_latex_command" ""
-
-\\converter gif eps "$gif_to_eps" ""
-\\converter png eps "$png_to_eps" ""
-\\converter jpg eps "$jpg_to_eps" ""
-
-\\converter gif png "$gif_to_png" ""
-\\converter eps png "$eps_to_png" ""
-\\converter epsi png "$eps_to_png" ""
-\\converter jpg png "$jpg_to_png" ""
-
-\\converter eps pdf "$eps_to_pdf" ""
-\\converter epsi pdf "$eps_to_pdf" ""
-
-\\viewer dvi "$DVI_VIEWER"
-\\viewer html "$HTML_VIEWER"
-\\viewer pdf "$PDF_VIEWER"
-\\viewer ps "$GHOSTVIEW -swap"
-\\viewer eps "$GHOSTVIEW"
-
-\\ps_command "$GS"
-\\ascii_roff_command "$ascii_roff_command"
-\\chktex_command "$chktex_command"
-\\spell_command "$SPELL"
-dnl \\fax_command "$fax_command"
-\\print_spool_command "$print_spool_command"
-\\print_spool_printerprefix "$print_spool_printerprefix"
+\\Format asciichess asc "Plain text (chess output)" "" "" "$TEXT_EDITOR"
+\\Format asciiimage asc "Plain text (image)" "" "" "$TEXT_EDITOR"
+\\Format asciixfig asc "Plain text (xfig output)" "" "" "$TEXT_EDITOR"
+\\Format agr agr GRACE "" "$GRACE_VIEWER" "$GRACE_EDITOR"
+\\Format bmp bmp BMP "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format date "" "date command" "" "" ""
+\\Format dateout tmp "date (output)" "" "" "$TEXT_EDITOR"
+\\Format docbook sgml DocBook B "" "$TEXT_EDITOR"
+\\Format docbook-xml xml "Docbook (xml)" "" "" "$TEXT_EDITOR"
+\\Format dvi dvi DVI D "$DVI_VIEWER" ""
+\\Format eps eps EPS "" "$EPS_VIEWER" ""
+\\Format fax "" Fax "" "" ""
+\\Format fen fen FEN "" "$FEN_VIEWER" "$FEN_EDITOR"
+\\Format fig fig XFig "" "$FIG_VIEWER" "$FIG_EDITOR"
+\\Format gif gif GIF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format html html HTML H "$HTML_VIEWER" ""
+\\Format jpg jpg JPG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format latex tex LaTeX L "" "$TEXT_EDITOR"
+\\Format linuxdoc sgml LinuxDoc x "" "$TEXT_EDITOR"
+\\Format lyx lyx LyX "" "lyx" "lyx"
+\\Format lyxpreview lyxpreview "LyX Preview" "" "" ""
+\\Format literate nw NoWeb N "" "$TEXT_EDITOR"
+\\Format pbm pbm PBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format pdf pdf "PDF (ps2pdf)" P "$PDF_VIEWER" ""
+\\Format pdf2 pdf "PDF (pdflatex)" F "$PDF_VIEWER" ""
+\\Format pdf3 pdf "PDF (dvipdfm)" m "$PDF_VIEWER" ""
+\\Format pdftex pdftex_t PDFTEX "" "" ""
+\\Format pgm pgm PGM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format png png PNG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format ppm ppm PPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format program "" Program "" "" ""
+\\Format ps ps Postscript t "$PS_VIEWER" ""
+\\Format pstex pstex_t PSTEX "" "" ""
+\\Format tgif obj TGIF "" "$TGIF_VIEWER" "$TGIF_EDITOR"
+\\Format sxw sxw "OpenOffice.Org Writer" O "" ""
+\\Format text txt "Plain text" a "" "$TEXT_EDITOR"
+\\Format textparagraph txt "Plain text (paragraphs)" "" "" "$TEXT_EDITOR"
+\\Format tiff tif TIFF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format word doc Word W "" ""
+\\Format xbm xbm XBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+\\Format xpm xpm XPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
+
+\\converter date dateout "date +%d-%m-%Y > \$\$o" ""
+\\converter docbook docbook-xml "cp \$\$i \$\$o" "xml"
+\\converter docbook dvi "$docbook_to_dvi_command" ""
+\\converter docbook html "$docbook_to_html_command" ""
+\\converter dvi pdf3 "$dvi_to_pdf_command" ""
+\\converter dvi ps "$dvi_to_ps_command" ""
+\\converter fen asciichess "python \$\$s/scripts/fen2ascii.py \$\$i \$\$o" ""
+\\converter fig pdftex "sh \$\$s/scripts/fig2pdftex.sh \$\$i \$\$o" ""
+\\converter fig pstex "sh \$\$s/scripts/fig2pstex.sh \$\$i \$\$o" ""
+\\converter html latex "$html_to_latex_command" ""
+\\converter latex html "$latex_to_html_command" "originaldir,needaux"
+\\converter latex dvi "$latex_to_dvi" "latex"
+\\converter latex lyx "$tex_to_lyx_command" ""
+\\converter latex pdf2 "$latex_to_pdf" "latex"
+\\converter latex sxw "$latex_to_sxw_command" "latex"
+\\converter linuxdoc dvi "$linuxdoc_to_dvi_command" ""
+\\converter linuxdoc html "$linuxdoc_to_html_command" ""
+\\converter linuxdoc latex "$linuxdoc_to_latex_command" ""
+\\converter linuxdoc lyx "$linuxdoc_to_lyx_command" ""
+\\converter literate latex "$literate_to_tex_command" ""
+\\converter literate lyx "$literate_to_lyx_command" ""
+\\converter lyxpreview png "$lyxpreview_to_png_command" ""
+\\converter lyxpreview ppm "$lyxpreview_to_bitmap_command" ""
+\\converter ps fax "$fax_command" ""
+\\converter ps pdf "$ps_to_pdf_command" ""
+\\converter sxw latex "$sxw_to_latex_command" ""
+\\converter word latex "$word_to_latex_command" ""
+EOF
+
+### the graphic converter part with the predefined ones
+#### Search for the nonstandard converting progs
+#
+SEARCH_PROG([for an FIG -> EPS/PPM converter], FIG2DEV, fig2dev)
+if test "$FIG2DEV" = "fig2dev"; then
+cat >>$outfile <<EOF
+\\converter fig eps "fig2dev -L eps \$\$i \$\$o" ""
+\\converter fig ppm "fig2dev -L ppm \$\$i \$\$o" ""
+\\converter fig png "fig2dev -L png \$\$i \$\$o" ""
+EOF
+fi
+
+SEARCH_PROG([for an TIFF -> PS converter], TIFF2PS, tiff2ps)
+if test "$TIFF2PS" = "tiff2ps"; then
+cat >>$outfile <<EOF
+\\converter tiff eps "tiff2ps \$\$i > \$\$o" ""
+EOF
+fi
+
+SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif)
+if test "$TGIF" = "tgif"; then
+cat >>$outfile <<EOF
+\\converter tgif eps "tgif -stdout -print -color -eps \$\$i > \$\$o" ""
+\\converter tgif pdf "tgif -stdout -print -color -pdf \$\$i > \$\$o" ""
+EOF
+fi
+
+SEARCH_PROG([for an EPS -> PDF converter], EPSTOPDF, epstopdf)
+if test "$EPSTOPDF" = "epstopdf"; then
+cat >>$outfile <<EOF
+\\converter eps pdf "epstopdf --outfile=\$\$o \$\$i" ""
+EOF
+fi
+
+#### Add Grace conversions (xmgrace needs an Xserver, gracebat doesn't.)
+SEARCH_PROG([for a Grace -> Image converter], GRACE, gracebat)
+if test "$GRACE" = "gracebat"; then
+cat >>$outfile <<EOF
+\\converter agr eps "gracebat -hardcopy -printfile \$\$o -hdevice EPS \$\$i 2>/dev/null" ""
+\\converter agr png "gracebat -hardcopy -printfile \$\$o -hdevice PNG \$\$i 2>/dev/null" ""
+\\converter agr jpg "gracebat -hardcopy -printfile \$\$o -hdevice JPEG \$\$i 2>/dev/null" ""
+\\converter agr ppm "gracebat -hardcopy -printfile \$\$o -hdevice PNM \$\$i 2>/dev/null" ""
+EOF
+fi
+
+cat >>$outfile <<EOF
+
+\\copier fig "sh \$\$s/scripts/fig_copy.sh \$\$i \$\$o"
+\\copier pstex "python \$\$s/scripts/tex_copy.py \$\$i \$\$o \$\$l"
+\\copier pdftex "python \$\$s/scripts/tex_copy.py \$\$i \$\$o \$\$l"
+
+$rc_entries
\\font_encoding "$chk_fontenc"
+\\tex_allows_spaces $tex_allows_spaces
EOF
+if [ "x$use_cygwin_path_fix" != "x" ]
+then
+ echo "\\cygwin_path_fix_needed $use_cygwin_path_fix" >> $outfile
+fi
+
+######## X FONTS
+# create a fonts.dir file to make X fonts available to LyX
+echo "checking for TeX fonts"
+
+fontlist="cmex10 cmmi10 cmr10 cmsy10 eufm10 msam10 msbm10 wasy10"
+rm -f xfonts/fonts.dir xfonts/fonts.scale xfonts/tmpfonts
+
+num=0
+touch xfonts/tmpfonts
+for font in $fontlist ; do
+ MSG_CHECKING(for $font,+)
+ result=no
+ for ext in pfb pfa ttf ; do
+ if filepath=`kpsewhich $font.$ext` ; then
+ result="yes ($ext)"
+ rm -f xfonts/$font.$ext
+ ln -s $filepath xfonts 2>/dev/null
+ echo "$font.$ext -unknown-$font-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific" >>xfonts/tmpfonts
+ num=`expr $num + 1`
+ break
+ fi
+ done
+ MSG_RESULT($result)
+done
+
+if test ! $num = 0 ; then
+ echo $num >xfonts/fonts.scale
+ cat xfonts/tmpfonts >>xfonts/fonts.scale
+ cp xfonts/fonts.scale xfonts/fonts.dir
+ # create a resource list file for Display Postscript
+ (cd xfonts ; rm -f PSres.upr ; makepsres) 2>/dev/null || true
+fi
+rm -f xfonts/tmpfonts
+
+
# Remove superfluous files if we are not writing in the main lib
-# directory
-for file in lyxrc.defaults textclass.lst packages.lst \
- doc/LaTeXConfig.lyx ; do
+# directory
+for file in $outfile textclass.lst packages.lst \
+ doc/LaTeXConfig.lyx xfonts/fonts.dir ; do
# we rename the file first, so that we avoid comparing a file with itself
mv $file $file.new
- if test -r $srcdir/$file && diff $file.new $srcdir/$file >/dev/null 2>/dev/null ;
- then
+ if test -r "${srcdir}"/$file && diff $file.new "${srcdir}"/$file >/dev/null 2>/dev/null ;
+ then
echo "removing $file, which is identical to the system global version"
rm -f $file.new
else
mv $file.new $file
fi
done
-
+if test ! -r xfonts/fonts.dir ; then
+ echo "removing font links"
+ rm -f xfonts/*.pfb xfonts/fonts.scale
+fi
# Final clean-up
if test $lyx_keep_temps = no ; then