diff options
16 files changed, 4540 insertions, 5 deletions
diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/README b/Master/texmf-dist/doc/generic/mkjobtexmf/README new file mode 100644 index 00000000000..022057eff50 --- /dev/null +++ b/Master/texmf-dist/doc/generic/mkjobtexmf/README @@ -0,0 +1,48 @@ +README for mkjobtexmf 2007/09/06 v0.5 + +Copyright 2007 by Heiko Oberdiek + +License +======= +The file is part of project mkjobtexmf. +It's free software; you may redistribute it and/or +modify it under the same terms as Perl itself +(Perl Artistic License/GNU General Public License, version 2). + +Requirements +============ +* Perl + +Documentation +============= +The source of the documentation is embedded as POD data +in the Perl script mkjobtexmf.pl. The documentation is +available in various formats: +* Manual page: mkjobtexmf.man +* PDF file: mkjobtexmf.pdf +* HTML file: mkjobtexmf.html +* Text file: mkjobtexmf.txt +And program option --man displays the documentation on +the screen. + +Installation +============ +* Unix: + GNU autoconf was used, thus you can try: + ./configure + make install + It should install the script and manual page. + The other documentation files can be installed manually. + +* Manually: + * mkjobtexmf.pl: Install the file as `mkjobtexmf' in a directory + that is listed in environment variable `PATH', e.g. + /usr/local/bin/mkjobtexmf + * mkjobtexmf.man: Install the manual page as `mkjobtexmf.1' + in the appropriate directory, e.g.: + /usr/local/man/man1/mkjobtexmf.1 + * mkjobtexmf.pdf, mkjobtexmf.html, mkjobtexmf.html, README: + Install them where you find them, for example in directory: + /usr/local/share/doc/mkjobtexmf/ + +See the documentation for further information. diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.html b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.html new file mode 100644 index 00000000000..18ba07e8b89 --- /dev/null +++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.html @@ -0,0 +1,385 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>mkjobtexmf -- Generate a texmf tree for a particular job</title> +<link rev="made" href="mailto:feedback@suse.de" /> +</head> + +<body style="background-color: white"> + +<p><a name="__index__"></a></p> +<!-- INDEX BEGIN --> + +<ul> + + <li><a href="#name">NAME</a></li> + <li><a href="#synopsis">SYNOPSIS</a></li> + <li><a href="#description">DESCRIPTION</a></li> + <ul> + + <li><a href="#running_the_program">Running the program</a></li> + <li><a href="#file_recording">File recording</a></li> + <li><a href="#analyze_and_link_copy_found_files">Analyze and link/copy found files</a></li> + </ul> + + <li><a href="#options">OPTIONS</a></li> + <li><a href="#examples">EXAMPLES</a></li> + <li><a href="#unsolved_issues__caveats__todos">UNSOLVED ISSUES, CAVEATS, TODOS</a></li> + <li><a href="#files">FILES</a></li> + <li><a href="#author">AUTHOR</a></li> + <li><a href="#copyright_and_license">COPYRIGHT AND LICENSE</a></li> + <li><a href="#history">HISTORY</a></li> +</ul> +<!-- INDEX END --> + +<hr /> +<p> +</p> +<h1><a name="name">NAME</a></h1> +<p>mkjobtexmf -- Generate a texmf tree for a particular job</p> +<p> +</p> +<hr /> +<h1><a name="synopsis">SYNOPSIS</a></h1> +<p>The progam <strong>mkjobtexmf</strong> runs a program and tries to +find the used file names. Two methods are available, +option <code>-recorder</code> of TeX (Web2C) or the program <strong>strace</strong>.</p> +<p>Then it generates a directory with a texmf tree. It checks +the found files and tries sort them in this texmf tree.</p> +<p>It can be used for archiving purposes or to speed up +following TeX runs.</p> +<pre> + mkjobtexmf [options]</pre> +<p>This runs TeX that can be configured by options. +Both methods for getting the used file names are available.</p> +<pre> + mkjobtexmf [options] -- <cmd> [args]</pre> +<p>The latter form runs program <em>cmd</em> with arguments <em>args</em> +instead of TeX. As method only program <strong>strace</strong> is available.</p> +<p>Options:</p> +<pre> + --jobname <name> Name of the job (mandatory). + Usually this is the TeX file + without extension + --texname <file> Input file for TeX. Default is the + job name with extension '.tex' + --texopt <option> Option for TeX run + --destdir <directory> Destination directory, + default is `<jobname>.mjt' + --output Add also output files + --strace Use strace instead of TeX's + option -recorder + --copy Copy files instead of creating + symbol links + --flat Junk paths, do not make directories + inside the destination directory + --cmd-tex <cmd> Command for the TeX compiler + --cmd-kpsewhich <cmd> Command for kpsewhich + --cmd-texhash <cmd> Command for texhash + --cmd-strace <cmd> Command for strace + --verbose Verbose output + --help Brief help message + --man Full documentation</pre> +<p> +</p> +<hr /> +<h1><a name="description">DESCRIPTION</a></h1> +<p> +</p> +<h2><a name="running_the_program">Running the program</a></h2> +<p>First <strong>mkjobtexmf</strong> runs a program, usually TeX. The TeX compiler +is configured by option <strong>--cmd-tex</strong>. Option <strong>--texname</strong> can +be used, if the file name extension differs from <em>.tex</em>:</p> +<pre> + mkjobtexmf --jobname foo --texname foo.ltx</pre> +<p>Even more complicate cases are possible:</p> +<pre> + mkjobtexmf --jobname foo --texname '\def\abc{...}\input{foo}'</pre> +<p>If another program than TeX should be used (dvips, ...), +then this program can be given after <code>--</code>:</p> +<pre> + mkjobtexmf --jobname foo -- dvips foo</pre> +<p> +</p> +<h2><a name="file_recording">File recording</a></h2> +<p>Two methods are available to get the used file names:</p> +<dl> +<dt><strong><a name="item_recorder_of_tex">Recorder of TeX</a></strong><br /> +</dt> +<dd> +Some TeX distributions (e.g. Web2C) support the option <strong>-recorder</strong> +for its TeX compilers. Then the TeX compiler generates a file with +extension <em>.fls</em> that records the used input and output files. +</dd> +<p></p> +<dt><strong><a name="item_program_strace">Program strace</a></strong><br /> +</dt> +<dd> +This program traces system calls and signals. It is used here +to log the used files. +</dd> +<p></p></dl> +<p> +</p> +<h2><a name="analyze_and_link_copy_found_files">Analyze and link/copy found files</a></h2> +<p>The result directory <em><em>jobname</em>.mjt</em> is generated. Inside the +result TEXMF tree is created. Each found file is compared against +a list of paths of TEXMF trees. If a match is found, the file is +linked/copied into the TEXMF tree. The list of paths is generated by +program <strong>kpsewhich</strong>.</p> +<p>If the file cannot be mapped to a TEXMF tree and the file is +a relative file name, then it is directly linked/copied into the +result directory <em><em>jobname</em>.mjt</em>. Absolute file names +are not supported and neither paths with links to parent directories.</p> +<p>Symbolic links are created by default. The files are copied +if option --copy is given or symbolic linking is not available.</p> +<p> +</p> +<hr /> +<h1><a name="options">OPTIONS</a></h1> +<dl> +<dt><strong><a name="item__2d_2djobname_3djobname"><strong>--jobname</strong>=<em>jobname</em></a></strong><br /> +</dt> +<dd> +It is the name of the job. `<jobname>.tex' serves as default for +the TeX file and <jobname> is used for naming various directories +and files. See section <a href="#files">FILES</a>. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dtexname_3dname"><strong>--texname</strong>=<em>name</em></a></strong><br /> +</dt> +<dd> +The name of the TeX input file, if it differs from <jobname>.tex. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dtexopt_3dopt"><strong>--texopt</strong>=<em>opt</em></a></strong><br /> +</dt> +<dd> +Additional option for the TeX compiler, examples are --ini or +--shell-escape. This option can be given more than once. +</dd> +<p></p> +<dt><strong><a name="item__2d_2ddestdir_3ddirectory"><strong>--destdir</strong>=<em>directory</em></a></strong><br /> +</dt> +<dd> +Specifies the name of the destination directory where the result +is collected. As default a directory is generated in the current +directory with the job name and extension `.mjt'. +</dd> +<p></p> +<dt><strong><a name="item__2d_2doutput"><strong>--output</strong></a></strong><br /> +</dt> +<dd> +Also add output files. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dstrace"><strong>--strace</strong></a></strong><br /> +</dt> +<dd> +Use method with program <strong>strace</strong>, see <a href="#description">DESCRIPTION</a>. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dcopy"><strong>--copy</strong></a></strong><br /> +</dt> +<dd> +Files are copied instead of creating symbolic links. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dflat"><strong>--flat</strong></a></strong><br /> +</dt> +<dd> +Files are linked or copied without path elements. +The destination directory will contain a flat list of +files or links without directory. +</dd> +<dd> +<p>The files `ls-R' and `aliases' are ignored.</p> +</dd> +<p></p> +<dt><strong><a name="item__2d_2dcmd_2dtex_3dcmd"><strong>--cmd-tex</strong>=<em>cmd</em></a></strong><br /> +</dt> +<dd> +Command for the TeX compiler. Default is pdflatex. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dcmd_2dkpsewhich_3dcmd"><strong>--cmd-kpsewhich</strong>=<em>cmd</em></a></strong><br /> +</dt> +<dd> +Command for kpsewhich. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dcmd_2dtexhash_3dcmd"><strong>--cmd-texhash</strong>=<em>cmd</em></a></strong><br /> +</dt> +<dd> +Command for updating the file name database of the generated +texmf tree. Default is texmf. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dcmd_2dstrace_3dcmd"><strong>--cmd-strace</strong>=<em>cmd</em></a></strong><br /> +</dt> +<dd> +Command for strace. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dverbose"><strong>--verbose</strong></a></strong><br /> +</dt> +<dd> +Verbose messages. +</dd> +<p></p> +<dt><strong><a name="item__2d_2dhelp"><strong>--help</strong></a></strong><br /> +</dt> +<dd> +Display help screen. +</dd> +<p></p></dl> +<p> +</p> +<hr /> +<h1><a name="examples">EXAMPLES</a></h1> +<p>TeX file <em>test.tex</em> using TeX's recorder method:</p> +<pre> + mkjobtexmf --jobname test</pre> +<p>TeX file <em>test.tex</em> using LaTeX:</p> +<pre> + mkjobtexmf --jobname test --cmd-tex latex</pre> +<p>Format generation:</p> +<pre> + mkjobtexmf --jobname test --texopt -ini --texname pdflatex.ini</pre> +<p>Example, how the new texmf tree (Linux/bash) can be used:</p> +<pre> + TEXMF=!!test.mjt/texmf pdflatex test</pre> +<p>Example for generating a zip archive (Linux/bash):</p> +<pre> + (cd test.mjt && zip -9r ../test .)</pre> +<p>Example for generating a tar archive:</p> +<pre> + tar cjhvf test.tar.bz2 -C test.mjt .</pre> +<p> +</p> +<hr /> +<h1><a name="unsolved_issues__caveats__todos">UNSOLVED ISSUES, CAVEATS, TODOS</a></h1> +<dl> +<dt><strong><a name="item_experimental_software">Experimental software</a></strong><br /> +</dt> +<dd> +Options, defaults, how the program works might change in +future versions. +</dd> +<p></p> +<dt><strong><a name="item_texmf_2ecnf"><em>texmf.cnf</em></a></strong><br /> +</dt> +<dd> +Currently the method with <strong>strace</strong> records this files. +TeX's recorder does not. Useful are <em>texmf.cnf</em> files for +variable settings. Because we have just one TEXMF tree, +the path sections should probably rewritten. +</dd> +<p></p> +<dt><strong><a name="item_settings_in_environment_variables">Settings in environment variables</a></strong><br /> +</dt> +<dd> +They are not stored at all. +</dd> +<p></p> +<dt><strong><a name="item_collisions">Collisions</a></strong><br /> +</dt> +<dd> +The program uses one destination directory and at most +one TEXMF tree for the result. However, the source files +can come from different directories and TEXMF trees. +Therefore name collisions are possible. +</dd> +<dd> +<p>The program follows the strategy not to delete files +in the destination directory. That allows to collect files +from differnt runs. Thus collisions are resolved +in the manner that the first entry that is made in +the destination directory wins.</p> +</dd> +<p></p> +<dt><strong><a name="item_configuration_file">Configuration file</a></strong><br /> +</dt> +<dd> +It would save the user from retyping the same options again and again. +</dd> +<p></p> +<dt><strong><a name="item_uncomplete_recording">Uncomplete recording</a></strong><br /> +</dt> +<dd> +Bugs in TeX's file recording might result in incomplete +file recording (e.g. pdfTeX 1.40.3 does not record .pfb and +.pk files). +</dd> +<p></p> +<dt><strong><a name="item__2e_2e_2e">...</a></strong><br /> +</dt> +</dl> +<p> +</p> +<hr /> +<h1><a name="files">FILES</a></h1> +<dl> +<dt><strong><a name="item__3cjobname_3e_2emjt_2f"><em><jobname>.mjt/</em></a></strong><br /> +</dt> +<dd> +Directory where the resulting texmf tree and symbol links +are stored. It can be changed by option --destdir. +</dd> +<p></p> +<dt><strong><a name="item__3cjobname_3e_2efls"><em><jobname>.fls</em></a></strong><br /> +</dt> +<dd> +Name of TeX's recorder file. +</dd> +<p></p> +<dt><strong><a name="item__3cjobname_3e_2estrace"><em><jobname>.strace</em></a></strong><br /> +</dt> +<dd> +Log file where the result of <strong>strace</strong> is stored. +</dd> +<p></p></dl> +<p> +</p> +<hr /> +<h1><a name="author">AUTHOR</a></h1> +<p>Heiko Oberdiek, email: oberdiek at uni-freiburg.de</p> +<p> +</p> +<hr /> +<h1><a name="copyright_and_license">COPYRIGHT AND LICENSE</a></h1> +<p>Copyright 2007 by Heiko Oberdiek.</p> +<p>This library is free software; you may redistribute it and/or +modify it under the same terms as Perl itself +(Perl Artistic License/GNU General Public License, version 2).</p> +<p> +</p> +<hr /> +<h1><a name="history">HISTORY</a></h1> +<ol> +<li><strong><a name="item__2f04_2f16_v0_2e1">/04/16 v0.1</a></strong><br /> +</li> +* First experimental version. +<p></p> +<li><strong><a name="item__2f05_2f09_v0_2e2">/05/09 v0.2</a></strong><br /> +</li> +* Typo in option name fixed. +<p></p> +<li><strong><a name="item__2f09_2f03_v0_2e3">/09/03 v0.3</a></strong><br /> +</li> +* New options: --copy, --flat, --destdir +<p></p> +<li><strong><a name="item__2f09_2f04_v0_2e4">/09/04 v0.4</a></strong><br /> +</li> +* Bug fix in map_files_texmf. +<p></p> +<li><strong><a name="item__2f09_2f06_v0_2e5">/09/06 v0.5</a></strong><br /> +</li> +* Support for `configure' added. + (Thanks to Norbert Preining for writing a first version of + the configure stuff.) +<p></p></ol> + +</body> + +</html> diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.ltx b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.ltx new file mode 100644 index 00000000000..ce4e37a6d0b --- /dev/null +++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.ltx @@ -0,0 +1,52 @@ +% mkjobtexmf.ltx +% +% Copyright 2007 by Heiko Oberdiek. +% +% The file is part of project mkjobtexmf. +% It's free software; you may redistribute it and/or +% modify it under the same terms as Perl itself +% (Perl Artistic License/GNU General Public License, version 2). + +\documentclass[a4paper]{article} + +\providecommand*{\DATE}{2007/09/06} +\providecommand*{\VERSION}{0.5} + +\usepackage{makeidx} +\makeindex + +\usepackage{hyperref} +\hypersetup{ + colorlinks, + pdfauthor={Heiko Oberdiek}, + pdftitle={mkjobtexmf}, +} + +\usepackage{bookmark} +\bookmarksetup{ + open, +} + +\author{Heiko Oberdiek} +\title{Program \textsf{mkjobtexmf}} +\date{\DATE\space v\VERSION} + +\makeatletter +\let\org@section\section +\def\section{\@ifstar\org@section\org@section} +\makeatother + +% ignore minor overfull \hbox warnings +\setlength{\hfuzz}{1.5pt} + +\begin{document} + +\maketitle + +\tableofcontents + +\input{mkjobtexmf.tex} + +\printindex + +\end{document} diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.man b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.man new file mode 100644 index 00000000000..58086652c0e --- /dev/null +++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.man @@ -0,0 +1,407 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "MKJOBTEXMF 1" +.TH MKJOBTEXMF 1 "2007-09-06" "perl v5.8.1" "User Contributed Perl Documentation" +.SH "NAME" +mkjobtexmf \-\- Generate a texmf tree for a particular job +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +The progam \fBmkjobtexmf\fR runs a program and tries to +find the used file names. Two methods are available, +option \f(CW\*(C`\-recorder\*(C'\fR of TeX (Web2C) or the program \fBstrace\fR. +.PP +Then it generates a directory with a texmf tree. It checks +the found files and tries sort them in this texmf tree. +.PP +It can be used for archiving purposes or to speed up +following TeX runs. +.PP +.Vb 1 +\& mkjobtexmf [options] +.Ve +.PP +This runs TeX that can be configured by options. +Both methods for getting the used file names are available. +.PP +.Vb 1 +\& mkjobtexmf [options] -- <cmd> [args] +.Ve +.PP +The latter form runs program \fIcmd\fR with arguments \fIargs\fR +instead of TeX. As method only program \fBstrace\fR is available. +.PP +Options: +.PP +.Vb 22 +\& --jobname <name> Name of the job (mandatory). +\& Usually this is the TeX file +\& without extension +\& --texname <file> Input file for TeX. Default is the +\& job name with extension '.tex' +\& --texopt <option> Option for TeX run +\& --destdir <directory> Destination directory, +\& default is `<jobname>.mjt' +\& --output Add also output files +\& --strace Use strace instead of TeX's +\& option -recorder +\& --copy Copy files instead of creating +\& symbol links +\& --flat Junk paths, do not make directories +\& inside the destination directory +\& --cmd-tex <cmd> Command for the TeX compiler +\& --cmd-kpsewhich <cmd> Command for kpsewhich +\& --cmd-texhash <cmd> Command for texhash +\& --cmd-strace <cmd> Command for strace +\& --verbose Verbose output +\& --help Brief help message +\& --man Full documentation +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +.Sh "Running the program" +.IX Subsection "Running the program" +First \fBmkjobtexmf\fR runs a program, usually TeX. The TeX compiler +is configured by option \fB\-\-cmd\-tex\fR. Option \fB\-\-texname\fR can +be used, if the file name extension differs from \fI.tex\fR: +.PP +.Vb 1 +\& mkjobtexmf --jobname foo --texname foo.ltx +.Ve +.PP +Even more complicate cases are possible: +.PP +.Vb 1 +\& mkjobtexmf --jobname foo --texname '\edef\eabc{...}\einput{foo}' +.Ve +.PP +If another program than TeX should be used (dvips, ...), +then this program can be given after \f(CW\*(C`\-\-\*(C'\fR: +.PP +.Vb 1 +\& mkjobtexmf --jobname foo -- dvips foo +.Ve +.Sh "File recording" +.IX Subsection "File recording" +Two methods are available to get the used file names: +.IP "Recorder of TeX" 4 +.IX Item "Recorder of TeX" +Some TeX distributions (e.g. Web2C) support the option \fB\-recorder\fR +for its TeX compilers. Then the TeX compiler generates a file with +extension \fI.fls\fR that records the used input and output files. +.IP "Program strace" 4 +.IX Item "Program strace" +This program traces system calls and signals. It is used here +to log the used files. +.Sh "Analyze and link/copy found files" +.IX Subsection "Analyze and link/copy found files" +The result directory \fI\fIjobname\fI.mjt\fR is generated. Inside the +result \s-1TEXMF\s0 tree is created. Each found file is compared against +a list of paths of \s-1TEXMF\s0 trees. If a match is found, the file is +linked/copied into the \s-1TEXMF\s0 tree. The list of paths is generated by +program \fBkpsewhich\fR. +.PP +If the file cannot be mapped to a \s-1TEXMF\s0 tree and the file is +a relative file name, then it is directly linked/copied into the +result directory \fI\fIjobname\fI.mjt\fR. Absolute file names +are not supported and neither paths with links to parent directories. +.PP +Symbolic links are created by default. The files are copied +if option \-\-copy is given or symbolic linking is not available. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-\-jobname\fR=\fIjobname\fR" 4 +.IX Item "--jobname=jobname" +It is the name of the job. `<jobname>.tex' serves as default for +the TeX file and <jobname> is used for naming various directories +and files. See section \*(L"\s-1FILES\s0\*(R". +.IP "\fB\-\-texname\fR=\fIname\fR" 4 +.IX Item "--texname=name" +The name of the TeX input file, if it differs from <jobname>.tex. +.IP "\fB\-\-texopt\fR=\fIopt\fR" 4 +.IX Item "--texopt=opt" +Additional option for the TeX compiler, examples are \-\-ini or +\&\-\-shell\-escape. This option can be given more than once. +.IP "\fB\-\-destdir\fR=\fIdirectory\fR" 4 +.IX Item "--destdir=directory" +Specifies the name of the destination directory where the result +is collected. As default a directory is generated in the current +directory with the job name and extension `.mjt'. +.IP "\fB\-\-output\fR" 4 +.IX Item "--output" +Also add output files. +.IP "\fB\-\-strace\fR" 4 +.IX Item "--strace" +Use method with program \fBstrace\fR, see \*(L"\s-1DESCRIPTION\s0\*(R". +.IP "\fB\-\-copy\fR" 4 +.IX Item "--copy" +Files are copied instead of creating symbolic links. +.IP "\fB\-\-flat\fR" 4 +.IX Item "--flat" +Files are linked or copied without path elements. +The destination directory will contain a flat list of +files or links without directory. +.Sp +The files `ls\-R' and `aliases' are ignored. +.IP "\fB\-\-cmd\-tex\fR=\fIcmd\fR" 4 +.IX Item "--cmd-tex=cmd" +Command for the TeX compiler. Default is pdflatex. +.IP "\fB\-\-cmd\-kpsewhich\fR=\fIcmd\fR" 4 +.IX Item "--cmd-kpsewhich=cmd" +Command for kpsewhich. +.IP "\fB\-\-cmd\-texhash\fR=\fIcmd\fR" 4 +.IX Item "--cmd-texhash=cmd" +Command for updating the file name database of the generated +texmf tree. Default is texmf. +.IP "\fB\-\-cmd\-strace\fR=\fIcmd\fR" 4 +.IX Item "--cmd-strace=cmd" +Command for strace. +.IP "\fB\-\-verbose\fR" 4 +.IX Item "--verbose" +Verbose messages. +.IP "\fB\-\-help\fR" 4 +.IX Item "--help" +Display help screen. +.SH "EXAMPLES" +.IX Header "EXAMPLES" +TeX file \fItest.tex\fR using TeX's recorder method: +.PP +.Vb 1 +\& mkjobtexmf --jobname test +.Ve +.PP +TeX file \fItest.tex\fR using LaTeX: +.PP +.Vb 1 +\& mkjobtexmf --jobname test --cmd-tex latex +.Ve +.PP +Format generation: +.PP +.Vb 1 +\& mkjobtexmf --jobname test --texopt -ini --texname pdflatex.ini +.Ve +.PP +Example, how the new texmf tree (Linux/bash) can be used: +.PP +.Vb 1 +\& TEXMF=!!test.mjt/texmf pdflatex test +.Ve +.PP +Example for generating a zip archive (Linux/bash): +.PP +.Vb 1 +\& (cd test.mjt && zip -9r ../test .) +.Ve +.PP +Example for generating a tar archive: +.PP +.Vb 1 +\& tar cjhvf test.tar.bz2 -C test.mjt . +.Ve +.SH "UNSOLVED ISSUES, CAVEATS, TODOS" +.IX Header "UNSOLVED ISSUES, CAVEATS, TODOS" +.IP "Experimental software" 4 +.IX Item "Experimental software" +Options, defaults, how the program works might change in +future versions. +.IP "\fItexmf.cnf\fR" 4 +.IX Item "texmf.cnf" +Currently the method with \fBstrace\fR records this files. +TeX's recorder does not. Useful are \fItexmf.cnf\fR files for +variable settings. Because we have just one \s-1TEXMF\s0 tree, +the path sections should probably rewritten. +.IP "Settings in environment variables" 4 +.IX Item "Settings in environment variables" +They are not stored at all. +.IP "Collisions" 4 +.IX Item "Collisions" +The program uses one destination directory and at most +one \s-1TEXMF\s0 tree for the result. However, the source files +can come from different directories and \s-1TEXMF\s0 trees. +Therefore name collisions are possible. +.Sp +The program follows the strategy not to delete files +in the destination directory. That allows to collect files +from differnt runs. Thus collisions are resolved +in the manner that the first entry that is made in +the destination directory wins. +.IP "Configuration file" 4 +.IX Item "Configuration file" +It would save the user from retyping the same options again and again. +.IP "Uncomplete recording" 4 +.IX Item "Uncomplete recording" +Bugs in TeX's file recording might result in incomplete +file recording (e.g. pdfTeX 1.40.3 does not record .pfb and +\&.pk files). +.IP "..." 4 +.SH "FILES" +.IX Header "FILES" +.PD 0 +.IP "\fI<jobname>.mjt/\fR" 4 +.IX Item "<jobname>.mjt/" +.PD +Directory where the resulting texmf tree and symbol links +are stored. It can be changed by option \-\-destdir. +.IP "\fI<jobname>.fls\fR" 4 +.IX Item "<jobname>.fls" +Name of TeX's recorder file. +.IP "\fI<jobname>.strace\fR" 4 +.IX Item "<jobname>.strace" +Log file where the result of \fBstrace\fR is stored. +.SH "AUTHOR" +.IX Header "AUTHOR" +Heiko Oberdiek, email: oberdiek at uni\-freiburg.de +.SH "COPYRIGHT AND LICENSE" +.IX Header "COPYRIGHT AND LICENSE" +Copyright 2007 by Heiko Oberdiek. +.PP +This library is free software; you may redistribute it and/or +modify it under the same terms as Perl itself +(Perl Artistic License/GNU General Public License, version 2). +.SH "HISTORY" +.IX Header "HISTORY" +.IP "2007/04/16 v0.1" 4 +.IX Item "2007/04/16 v0.1" +* First experimental version. +.IP "2007/05/09 v0.2" 4 +.IX Item "2007/05/09 v0.2" +* Typo in option name fixed. +.IP "2007/09/03 v0.3" 4 +.IX Item "2007/09/03 v0.3" +* New options: \-\-copy, \-\-flat, \-\-destdir +.IP "2007/09/04 v0.4" 4 +.IX Item "2007/09/04 v0.4" +* Bug fix in map_files_texmf. +.IP "2007/09/06 v0.5" 4 +.IX Item "2007/09/06 v0.5" +* Support for `configure' added. + (Thanks to Norbert Preining for writing a first version of + the configure stuff.) diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.pdf b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.pdf Binary files differnew file mode 100644 index 00000000000..1046d41e34e --- /dev/null +++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.pdf diff --git a/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.txt b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.txt new file mode 100644 index 00000000000..d8f2934da26 --- /dev/null +++ b/Master/texmf-dist/doc/generic/mkjobtexmf/mkjobtexmf.txt @@ -0,0 +1,255 @@ +NAME + + mkjobtexmf -- Generate a texmf tree for a particular job + +SYNOPSIS + + The progam mkjobtexmf runs a program and tries to find the used file + names. Two methods are available, option "-recorder" of TeX (Web2C) or + the program strace. + + Then it generates a directory with a texmf tree. It checks the found + files and tries sort them in this texmf tree. + + It can be used for archiving purposes or to speed up following TeX runs. + + mkjobtexmf [options] + + This runs TeX that can be configured by options. Both methods for + getting the used file names are available. + + mkjobtexmf [options] -- <cmd> [args] + + The latter form runs program *cmd* with arguments *args* instead of TeX. + As method only program strace is available. + + Options: + + --jobname <name> Name of the job (mandatory). + Usually this is the TeX file + without extension + --texname <file> Input file for TeX. Default is the + job name with extension '.tex' + --texopt <option> Option for TeX run + --destdir <directory> Destination directory, + default is `<jobname>.mjt' + --output Add also output files + --strace Use strace instead of TeX's + option -recorder + --copy Copy files instead of creating + symbol links + --flat Junk paths, do not make directories + inside the destination directory + --cmd-tex <cmd> Command for the TeX compiler + --cmd-kpsewhich <cmd> Command for kpsewhich + --cmd-texhash <cmd> Command for texhash + --cmd-strace <cmd> Command for strace + --verbose Verbose output + --help Brief help message + --man Full documentation + +DESCRIPTION + + Running the program + + First mkjobtexmf runs a program, usually TeX. The TeX compiler is + configured by option --cmd-tex. Option --texname can be used, if the + file name extension differs from .tex: + + mkjobtexmf --jobname foo --texname foo.ltx + + Even more complicate cases are possible: + + mkjobtexmf --jobname foo --texname '\def\abc{...}\input{foo}' + + If another program than TeX should be used (dvips, ...), then this + program can be given after "--": + + mkjobtexmf --jobname foo -- dvips foo + + File recording + + Two methods are available to get the used file names: + + Recorder of TeX + Some TeX distributions (e.g. Web2C) support the option -recorder for + its TeX compilers. Then the TeX compiler generates a file with + extension .fls that records the used input and output files. + + Program strace + This program traces system calls and signals. It is used here to log + the used files. + + Analyze and link/copy found files + + The result directory *jobname*.mjt is generated. Inside the result TEXMF + tree is created. Each found file is compared against a list of paths of + TEXMF trees. If a match is found, the file is linked/copied into the + TEXMF tree. The list of paths is generated by program kpsewhich. + + If the file cannot be mapped to a TEXMF tree and the file is a relative + file name, then it is directly linked/copied into the result directory + *jobname*.mjt. Absolute file names are not supported and neither paths + with links to parent directories. + + Symbolic links are created by default. The files are copied if option + --copy is given or symbolic linking is not available. + +OPTIONS + + --jobname=*jobname* + It is the name of the job. `<jobname>.tex' serves as default for the + TeX file and <jobname> is used for naming various directories and + files. See section "FILES". + + --texname=*name* + The name of the TeX input file, if it differs from <jobname>.tex. + + --texopt=*opt* + Additional option for the TeX compiler, examples are --ini or + --shell-escape. This option can be given more than once. + + --destdir=*directory* + Specifies the name of the destination directory where the result is + collected. As default a directory is generated in the current + directory with the job name and extension `.mjt'. + + --output + Also add output files. + + --strace + Use method with program strace, see "DESCRIPTION". + + --copy + Files are copied instead of creating symbolic links. + + --flat + Files are linked or copied without path elements. The destination + directory will contain a flat list of files or links without + directory. + + The files `ls-R' and `aliases' are ignored. + + --cmd-tex=*cmd* + Command for the TeX compiler. Default is pdflatex. + + --cmd-kpsewhich=*cmd* + Command for kpsewhich. + + --cmd-texhash=*cmd* + Command for updating the file name database of the generated texmf + tree. Default is texmf. + + --cmd-strace=*cmd* + Command for strace. + + --verbose + Verbose messages. + + --help + Display help screen. + +EXAMPLES + + TeX file test.tex using TeX's recorder method: + + mkjobtexmf --jobname test + + TeX file test.tex using LaTeX: + + mkjobtexmf --jobname test --cmd-tex latex + + Format generation: + + mkjobtexmf --jobname test --texopt -ini --texname pdflatex.ini + + Example, how the new texmf tree (Linux/bash) can be used: + + TEXMF=!!test.mjt/texmf pdflatex test + + Example for generating a zip archive (Linux/bash): + + (cd test.mjt && zip -9r ../test .) + + Example for generating a tar archive: + + tar cjhvf test.tar.bz2 -C test.mjt . + +UNSOLVED ISSUES, CAVEATS, TODOS + + Experimental software + Options, defaults, how the program works might change in future + versions. + + texmf.cnf + Currently the method with strace records this files. TeX's recorder + does not. Useful are texmf.cnf files for variable settings. Because + we have just one TEXMF tree, the path sections should probably + rewritten. + + Settings in environment variables + They are not stored at all. + + Collisions + The program uses one destination directory and at most one TEXMF + tree for the result. However, the source files can come from + different directories and TEXMF trees. Therefore name collisions are + possible. + + The program follows the strategy not to delete files in the + destination directory. That allows to collect files from differnt + runs. Thus collisions are resolved in the manner that the first + entry that is made in the destination directory wins. + + Configuration file + It would save the user from retyping the same options again and + again. + + Uncomplete recording + Bugs in TeX's file recording might result in incomplete file + recording (e.g. pdfTeX 1.40.3 does not record .pfb and .pk files). + + ... + +FILES + + <jobname>.mjt/ + Directory where the resulting texmf tree and symbol links are + stored. It can be changed by option --destdir. + + <jobname>.fls + Name of TeX's recorder file. + + <jobname>.strace + Log file where the result of strace is stored. + +AUTHOR + + Heiko Oberdiek, email: oberdiek at uni-freiburg.de + +COPYRIGHT AND LICENSE + + Copyright 2007 by Heiko Oberdiek. + + This library is free software; you may redistribute it and/or modify it + under the same terms as Perl itself (Perl Artistic License/GNU General + Public License, version 2). + +HISTORY + + 2007/04/16 v0.1 + * First experimental version. + + 2007/05/09 v0.2 + * Typo in option name fixed. + + 2007/09/03 v0.3 + * New options: --copy, --flat, --destdir + + 2007/09/04 v0.4 + * Bug fix in map_files_texmf. + + 2007/09/06 v0.5 + * Support for `configure' added. (Thanks to Norbert Preining for + writing a first version of the configure stuff.) + diff --git a/Master/texmf-dist/scripts/mkjobtexmf/mkjobtexmf.pl b/Master/texmf-dist/scripts/mkjobtexmf/mkjobtexmf.pl new file mode 100644 index 00000000000..27f94a5a375 --- /dev/null +++ b/Master/texmf-dist/scripts/mkjobtexmf/mkjobtexmf.pl @@ -0,0 +1,799 @@ +#!/usr/bin/env perl +# +# ToDos/unsolved problems: +# * collision of symbol links +# * texmf.cnf (path settings, variables) +# * aliases +# * binaries, libraries +# +use strict; +$^W=1; + +my $prj = 'mkjobtexmf'; +my $version = '0.5'; +my $date = '2007/09/06'; +my $author = 'Heiko Oberdiek'; +my $copyright = "Copyright 2007 $author"; + +my $cmd_tex = 'pdflatex'; +my $cmd_kpsewhich = 'kpsewhich'; +my $cmd_texhash = 'texhash'; +my $cmd_strace = 'strace'; +my $ext_tex = '.tex'; +my $ext_recorder = '.fls'; +my $ext_strace = '.strace'; +my $ext_mkjobtexmf = '.mjt'; +my $jobname = ''; +my $texname = ''; +my $destdir = ''; +my @args = (); +my @texopt = (); +my $verbose = 0; +my $output = 0; +my $strace = 0; +my $copy = 0; +my $flat = 0; +my $needs_texhash = 0; +my @texmf; +my %files; +my %links; +my %flat_ignore = ( + 'ls-R' => '', + 'aliases' => '', +); + +my $title = "\U$prj\E $date v$version, $copyright\n"; + +print $title; + +sub die_error ($) { + my $msg = shift; + die "!!! Error: $msg!\n"; +} + +sub warning ($) { + my $msg = shift; + print "!!! Warning: $msg!\n"; +} + +sub verbose (@) { + my @msg = @_; + print "* @msg\n" if $verbose; +} + +sub value ($) { + my $value = $_[0]; + "[$value]"; +} + +sub die_usage { + my $msg = $_[0]; + pod2usage( + -exitstatus => 2, + -msg => "\n==> $msg!\n"); +} + +use Getopt::Long; +use Pod::Usage; + +my $man = 0; +my $help = 0; + +GetOptions( + 'jobname=s' => \$jobname, + 'texname=s' => \$texname, + 'texopt=s' => \@texopt, + 'destdir=s' => \$destdir, + 'cmd-tex=s' => \$cmd_tex, + 'cmd-kpsewhich=s' => \$cmd_kpsewhich, + 'cmd-texhash=s' => \$cmd_texhash, + 'strace' => \$strace, + 'copy' => \$copy, + 'flat' => \$flat, + 'verbose' => \$verbose, + 'output' => \$output, + 'help|?' => \$help, + 'man' => \$man, +) or die_usage('Unknown option'); +pod2usage(1) if $help; +pod2usage(-exitstatus => 0, -verbose => 2) if $man; + +if (@ARGV > 0) { + $strace = 1; + $texname = ''; + my @args = @ARGV; +} +$jobname or die_usage('Missing jobname'); +$texname = "$jobname$ext_tex" unless $texname; +$destdir = "$jobname$ext_mkjobtexmf" unless $destdir; + +verbose "jobname: " . value $jobname; +verbose "texname: " . value $texname if $texname; +verbose "command: " . value "@args" if @args; +verbose "destdir: " . value $destdir; + +if (!$copy) { + my $symlink_exists = eval { symlink('', ''); 1 }; + if ($symlink_exists) { + verbose "symbolic linking: supported"; + } + else { + $copy = 1; + verbose "symbolic linking: unsupported"; + } +} +my $umask = umask; +if (defined($umask)) { + verbose "umask: " . sprintf("%04o", $umask); +} +else { + $umask = 0; + verbose "umask: unsupported"; +} + +if ($copy) { + use File::Copy; +} +if ($flat) { + use File::Basename; +} + +sub check_child_error () { + if ($? != 0) { + if ($? == -1) { + die_error "Failed to execute: $!"; + } + elsif ($? & 127) { + die_error sprintf "Child died with signal %d, %s coredump", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + die_error sprintf "Child exited with value %d", $? >> 8; + } + } + verbose "child exit: ok"; +} + +sub run_generic (@) { + my @args = @_; + my $cmd = $_[0]; + verbose "exec: " . value "@args"; + print '>' x 79, "\n"; + system $cmd @args; + print '<' x 79, "\n"; + check_child_error; +} + +sub run_tex { + if ($strace) { + my @run_args; + if (@args) { + @run_args = @args; + } + else { + @run_args = ( + $cmd_tex, + '-interaction=nonstopmode', + @texopt, + $texname + ); + } + run_generic( + $cmd_strace, + '-f', + '-e', + 'trace=open,access', # trace=file + '-o', + "$jobname$ext_strace", + @run_args + ) + } + else { + run_generic( + $cmd_tex, + '-recorder', + "-jobname=$jobname", + '-interaction=nonstopmode', + @texopt, + $texname + ); + } +} + +sub run_texhash { + return if $flat; + if ($needs_texhash) { + run_generic( + $cmd_texhash, + "$destdir/texmf" + ); + } + else { + verbose("texhash run skipped, no files added"); + } +} + +use Cwd 'abs_path', 'getcwd'; + +sub get_texmf_trees () { + return if $flat; + my $cmdline = "$cmd_kpsewhich -expand-path='\$TEXMF'"; + verbose "exec: " . value($cmdline); + my $str = `$cmdline`; + check_child_error; + chomp $str; + @texmf = split ':', $str; + my %texmf; + foreach my $texmf (@texmf) { + $texmf{$texmf} = ''; + $texmf{abs_path($texmf)} = ''; + } + @texmf = sort keys %texmf; + if ($verbose) { + if (@texmf) { + map { verbose 'texmf: ' . value($_) } @texmf; + } + else { + verbose 'texmf: none'; + } + } +} + +sub analyze_recorder { + my $pwd = getcwd; + verbose "pwd: " . value($pwd); + + my $file_rec = $jobname . ($strace ? $ext_strace : $ext_recorder); + verbose 'File with recorded file names: ' . value($file_rec); + open(IN, '<', $file_rec) + or die_error "Cannot open `$file_rec'"; + if ($strace) { + while (<IN>) { + chomp; + next if /\)\s+= -\d/; # -1 ENOENT, ... + next if /\WO_DIRECTORY\W/; # skip directories + my $type = 'INPUT'; + if ($output) { + $type = 'OUTPUT' if /\WO_WRONLY\W/; + } + else { + next if /\WO_WRONLY\W/; + } + /^\d+\s+\w+\(\"([^"]+)\",/ or warning "Unknown entry `$_'"; + my $file = $1; + $files{$file} = ''; + } + } + else { + while (<IN>) { + chomp; + next if /^PWD /; + next if not $output and /^OUTPUT /; + /^(INPUT|OUTPUT) (.*)$/ or warning "Unknown entry `$_'"; + my $type = $1; + my $file = $2; + $files{$file} = ''; + } + } + close(IN); +} + +sub map_files { + if ($flat) { + map_files_flat(); + } + else { + map_files_texmf(); + } +} + +sub map_files_flat { + my %abs_files; + my %names; + my %clashes; + + foreach my $file (keys %files) { + $abs_files{abs_path($file)} = ''; + } + + foreach my $file (keys %abs_files) { + my $name = basename($file); + next if exists $flat_ignore{$name}; + if (defined($names{$name})) { + push @{$names{$name}}, $file; + $clashes{$name} = ''; + } + else { + my @a = ($file); + $names{$name} = \@a; + } + } + + foreach my $name (sort keys %clashes) { + print "* file name clash for " . value($name) . "\n"; + my @a = @{$names{$name}}; + foreach my $file (@a) { + print " " . value($file) . "\n"; + } + } + + foreach my $name (sort keys %names) { + my $file = @{$names{$name}}[0]; + my $clash = $clashes{$name} ? ' (clash)' : ''; + verbose value($name) . ' => ' . value($file) . $clash; + $links{$name} = $file; + } +} + +sub map_files_texmf { + my @failed; + + foreach my $file (sort keys %files) { + verbose "file: " . value($file); + + my $abs_file = abs_path($file); + + my $found = ''; + foreach (@texmf) { + my $texmf = "$_/"; + my $len = length($texmf); + my $str = substr $file, 0, $len; + if ($texmf eq $str) { + $found = 'texmf/' . substr $file, $len; + if ($found =~ /(^|\/)\.\.\//) { + $found = ''; + } + } + last if $found; + my $str = substr $abs_file, 0, $len; + if ($texmf eq $str) { + $found = 'texmf/' . substr $abs_file, $len; + last; + } + } + if (not($found)) { + if ($file =~ /(^|\/)\.\.\// or $file =~ /^\//) { + push @failed, $file; + } + else { + $found = $file; + } + } + if ($found) { + $links{$found} = abs_path($file); + } + } + + if ($verbose) { + foreach (sort keys %links) { + verbose value($_) . ' => ' . value($links{$_}); + } + } + + foreach (@failed) { + print "!!! Failed: " . value($_) . "\n"; + } +} + +sub make_dirs ($) { + my $path = shift; + my @elems = split /\/+/, $path; + if (@elems <= 1) { + return; + } + pop @elems; + my $dir = ''; + foreach my $elem (@elems) { + $dir .= '/' if $dir; + $dir .= $elem; + next if -d $dir; + verbose 'mkdir: ' . value($dir); + mkdir $dir or die_error "Cannot make directory `$dir'"; + } +} + +sub make_links { + + foreach my $key (sort keys %links) { + my $source = $links{$key}; + my $dest = "$destdir/$key"; + make_dirs $dest; + if (-e $dest) { + my $type = ''; + if (-l $dest) { + $type .= 'link'; + } + elsif (-f $dest) { + $type = 'file'; + } + elsif (-d $dest) { + $type = 'directory'; + } + elsif (-b $dest) { + $type = 'block device'; + } + elsif (-c $dest) { + $type = 'character device'; + } + elsif (-p $dest) { + $type = 'pipe'; + } + elsif (-S $dest) { + $type = 'socket'; + } + elsif (-t $dest) { + $type = 'tty'; + } + $type = " ($type)" if $type; + verbose "destination$type exists: " . value($dest); + next; + } + $needs_texhash = 1; + do_link_copy($source, $dest); + } +} + +sub do_link_copy { + my $source = shift; + my $dest = shift; + my $success = 0; + + if ($copy) { + if (copy($source, $dest) == 1) { + $success = 1; + my ($source_mode, $source_atime, $source_mtime) + = (stat($source))[2, 8, 9]; + my ($dest_mode, $dest_atime, $dest_mtime) + = (stat($dest))[2, 8, 9]; + # preserve executable permissions if necessary + my $new_dest_mode = $dest_mode + | (($source_mode & 0111) & ~$umask); + if ($new_dest_mode != $dest_mode) { + if (chmod($new_dest_mode, $dest) < 1) { + print "!!! Setting executive mode failed: " + . value($dest) . "\n"; + } + } + # preserve file times + if ($source_atime != $dest_atime + || $source_mtime != $dest_mtime) { + if (utime($source_atime, $source_mtime, $dest) < 1) { + print "!!! Setting file times failed: " + . value($dest) . "\n"; + } + } + } + } + else { + if (symlink($source, $dest) == 1) { + $success = 1; + } + } + if ($success == 0) { + my $method = $copy ? 'Copying' : 'Symbolic linking'; + print "!!! $method failed:\n " + . value($dest) . ' => ' . value($source) . "\n"; + } +} + +run_tex; +get_texmf_trees; +analyze_recorder; +map_files; +make_links; +run_texhash; + +1; + +__DATA__ + +=head1 NAME + +mkjobtexmf -- Generate a texmf tree for a particular job + +=head1 SYNOPSIS + +The progam B<mkjobtexmf> runs a program and tries to +find the used file names. Two methods are available, +option C<-recorder> of TeX (Web2C) or the program B<strace>. + +Then it generates a directory with a texmf tree. It checks +the found files and tries sort them in this texmf tree. + +It can be used for archiving purposes or to speed up +following TeX runs. + + mkjobtexmf [options] + +This runs TeX that can be configured by options. +Both methods for getting the used file names are available. + + mkjobtexmf [options] -- <cmd> [args] + +The latter form runs program I<cmd> with arguments I<args> +instead of TeX. As method only program B<strace> is available. + +Options: + + --jobname <name> Name of the job (mandatory). + Usually this is the TeX file + without extension + --texname <file> Input file for TeX. Default is the + job name with extension '.tex' + --texopt <option> Option for TeX run + --destdir <directory> Destination directory, + default is `<jobname>.mjt' + --output Add also output files + --strace Use strace instead of TeX's + option -recorder + --copy Copy files instead of creating + symbol links + --flat Junk paths, do not make directories + inside the destination directory + --cmd-tex <cmd> Command for the TeX compiler + --cmd-kpsewhich <cmd> Command for kpsewhich + --cmd-texhash <cmd> Command for texhash + --cmd-strace <cmd> Command for strace + --verbose Verbose output + --help Brief help message + --man Full documentation + +=head1 DESCRIPTION + +=head2 Running the program + +First B<mkjobtexmf> runs a program, usually TeX. The TeX compiler +is configured by option B<--cmd-tex>. Option B<--texname> can +be used, if the file name extension differs from F<.tex>: + + mkjobtexmf --jobname foo --texname foo.ltx + +Even more complicate cases are possible: + + mkjobtexmf --jobname foo --texname '\def\abc{...}\input{foo}' + +If another program than TeX should be used (dvips, ...), +then this program can be given after C<-->: + + mkjobtexmf --jobname foo -- dvips foo + +=head2 File recording + +Two methods are available to get the used file names: + +=over + +=item Recorder of TeX + +Some TeX distributions (e.g. Web2C) support the option B<-recorder> +for its TeX compilers. Then the TeX compiler generates a file with +extension F<.fls> that records the used input and output files. + +=item Program strace + +This program traces system calls and signals. It is used here +to log the used files. + +=back + +=head2 Analyze and link/copy found files + +The result directory F<I<jobname>.mjt> is generated. Inside the +result TEXMF tree is created. Each found file is compared against +a list of paths of TEXMF trees. If a match is found, the file is +linked/copied into the TEXMF tree. The list of paths is generated by +program B<kpsewhich>. + +If the file cannot be mapped to a TEXMF tree and the file is +a relative file name, then it is directly linked/copied into the +result directory F<I<jobname>.mjt>. Absolute file names +are not supported and neither paths with links to parent directories. + +Symbolic links are created by default. The files are copied +if option --copy is given or symbolic linking is not available. + +=head1 OPTIONS + +=over + +=item B<--jobname>=I<jobname> + +It is the name of the job. `<jobname>.tex' serves as default for +the TeX file and <jobname> is used for naming various directories +and files. See section L</FILES>. + +=item B<--texname>=I<name> + +The name of the TeX input file, if it differs from <jobname>.tex. + +=item B<--texopt>=I<opt> + +Additional option for the TeX compiler, examples are --ini or +--shell-escape. This option can be given more than once. + +=item B<--destdir>=I<directory> + +Specifies the name of the destination directory where the result +is collected. As default a directory is generated in the current +directory with the job name and extension `.mjt'. + +=item B<--output> + +Also add output files. + +=item B<--strace> + +Use method with program B<strace>, see L<"DESCRIPTION">. + +=item B<--copy> + +Files are copied instead of creating symbolic links. + +=item B<--flat> + +Files are linked or copied without path elements. +The destination directory will contain a flat list of +files or links without directory. + +The files `ls-R' and `aliases' are ignored. + +=item B<--cmd-tex>=I<cmd> + +Command for the TeX compiler. Default is pdflatex. + +=item B<--cmd-kpsewhich>=I<cmd> + +Command for kpsewhich. + +=item B<--cmd-texhash>=I<cmd> + +Command for updating the file name database of the generated +texmf tree. Default is texmf. + +=item B<--cmd-strace>=I<cmd> + +Command for strace. + +=item B<--verbose> + +Verbose messages. + +=item B<--help> + +Display help screen. + +=back + +=head1 EXAMPLES + +TeX file F<test.tex> using TeX's recorder method: + + mkjobtexmf --jobname test + +TeX file F<test.tex> using LaTeX: + + mkjobtexmf --jobname test --cmd-tex latex + +Format generation: + + mkjobtexmf --jobname test --texopt -ini --texname pdflatex.ini + +Example, how the new texmf tree (Linux/bash) can be used: + + TEXMF=!!test.mjt/texmf pdflatex test + +Example for generating a zip archive (Linux/bash): + + (cd test.mjt && zip -9r ../test .) + +Example for generating a tar archive: + + tar cjhvf test.tar.bz2 -C test.mjt . + +=head1 UNSOLVED ISSUES, CAVEATS, TODOS + +=over + +=item Experimental software + +Options, defaults, how the program works might change in +future versions. + +=item F<texmf.cnf> + +Currently the method with B<strace> records this files. +TeX's recorder does not. Useful are F<texmf.cnf> files for +variable settings. Because we have just one TEXMF tree, +the path sections should probably rewritten. + +=item Settings in environment variables + +They are not stored at all. + +=item Collisions + +The program uses one destination directory and at most +one TEXMF tree for the result. However, the source files +can come from different directories and TEXMF trees. +Therefore name collisions are possible. + +The program follows the strategy not to delete files +in the destination directory. That allows to collect files +from differnt runs. Thus collisions are resolved +in the manner that the first entry that is made in +the destination directory wins. + +=item Configuration file + +It would save the user from retyping the same options again and again. + +=item Uncomplete recording + +Bugs in TeX's file recording might result in incomplete +file recording (e.g. pdfTeX 1.40.3 does not record .pfb and +.pk files). + +=item ... + +=back + +=head1 FILES + +=over + +=item F<E<lt>jobnameE<gt>.mjt/> + +Directory where the resulting texmf tree and symbol links +are stored. It can be changed by option --destdir. + +=item F<E<lt>jobnameE<gt>.fls> + +Name of TeX's recorder file. + +=item F<E<lt>jobnameE<gt>.strace> + +Log file where the result of B<strace> is stored. + +=back + +=head1 AUTHOR + +Heiko Oberdiek, email: oberdiek at uni-freiburg.de + +=head1 COPYRIGHT AND LICENSE + +Copyright 2007 by Heiko Oberdiek. + +This library is free software; you may redistribute it and/or +modify it under the same terms as Perl itself +(Perl Artistic License/GNU General Public License, version 2). + +=head1 HISTORY + +=over + +=item 2007/04/16 v0.1 + +* First experimental version. + +=item 2007/05/09 v0.2 + +* Typo in option name fixed. + +=item 2007/09/03 v0.3 + +* New options: --copy, --flat, --destdir + +=item 2007/09/04 v0.4 + +* Bug fix in map_files_texmf. + +=item 2007/09/06 v0.5 + +* Support for `configure' added. + (Thanks to Norbert Preining for writing a first version of + the configure stuff.) + +=back + +=cut diff --git a/Master/texmf-dist/source/generic/mkjobtexmf/Makefile.in b/Master/texmf-dist/source/generic/mkjobtexmf/Makefile.in new file mode 100644 index 00000000000..a31a9dcb443 --- /dev/null +++ b/Master/texmf-dist/source/generic/mkjobtexmf/Makefile.in @@ -0,0 +1,96 @@ +# Makefile.in +# @configure_input@ + +# Copyright 2007 by Heiko Oberdiek. +# +# The file is part of project mkjobtexmf. +# It's free software; you may redistribute it and/or +# modify it under the same terms as Perl itself +# (Perl Artistic License/GNU General Public License, version 2). + +VPATH = @srcdir@ +srcdir = @srcdir@ +SHELL = @SHELL@ + +prefix = @prefix@ +datarootdir = @datarootdir@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +mandir = @mandir@ +manext = 1 +man1dir = $(mandir)/man$(manext) + +INSTALL = @INSTALL@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_DATA = @INSTALL_DATA@ + +PRJ = mkjobtexmf +SRC_FILE = $(PRJ).pl +SRC_FILES = $(SRC_FILE) $(PRJ).ltx +DOC_FILES = $(PRJ).txt $(PRJ).man $(PRJ).html $(PRJ).pdf README +ALL_FILES = $(DOC_FILES) configure +AUTOSRC_FILES = configure.ac Makefile.in install-sh +DISTRIB_FILES = $(SRC_FILES) $(ALL_FILES) $(AUTOSRC_FILES) +PDFLATEX = TEXINPUTS=$(srcdir): pdflatex + +default all: + +include $(wildcard $(srcdir)/$(PRJ).mk) + +doc: $(DOC_FILES) + +$(PRJ).txt: $(SRC_FILE) + pod2text -l $< $@ + +$(PRJ).man: $(SRC_FILE) + pod2man $< $@ + +$(PRJ).html: $(SRC_FILE) + pod2html --infile=$< --outfile=$@ + +$(PRJ).pdf: $(PRJ).ltx $(PRJ).tex + $(PDFLATEX) $< + makeindex $(PRJ) + $(PDFLATEX) $< + makeindex $(PRJ) + $(PDFLATEX) $< + makeindex $(PRJ) + $(PDFLATEX) $< + makeindex $(PRJ) + $(PDFLATEX) $< + +$(PRJ).tex: $(SRC_FILE) + pod2latex -out $@ $< + +distrib: $(PRJ).zip + +$(PRJ).zip: $(DISTRIB_FILES) + zip -9j $@ $+ + +install: + $(INSTALL) -d $(bindir) $(man1dir) + $(INSTALL_SCRIPT) $(srcdir)/$(PRJ).pl $(bindir)/$(PRJ) + $(INSTALL_DATA) $(srcdir)/$(PRJ).man $(man1dir)/$(PRJ).1 + +check: $(SRC_FILE) + podchecker $< + +uninstall: + -rm -f $(bindir)/$(PRJ) $(mandir)/man1/$(PRJ).1 + +clean: + -rm -f $(PRJ).aux $(PRJ).log $(PRJ).toc + -rm -f $(PRJ).idx $(PRJ).ind $(PRJ).ilg + -rm -f pod2htmd.tmp pod2htmi.tmp + +distclean: clean + -rm -f Makefile config.status config.log config.cache + -rm -f $(PRJ).tex + +realclean: distclean + -rm -f $(ALL_FILES) $(PRJ).zip + +mostlyclean: clean + +.PHONY: default all doc distrib install check uninstall \ + clean distclean realclean mostlyclean diff --git a/Master/texmf-dist/source/generic/mkjobtexmf/configure b/Master/texmf-dist/source/generic/mkjobtexmf/configure new file mode 100644 index 00000000000..2352c874bfe --- /dev/null +++ b/Master/texmf-dist/source/generic/mkjobtexmf/configure @@ -0,0 +1,2179 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.57 for mkjobtexmf 0.5. +# +# Report bugs to <oberdiek@uni-freiburg.de>. +# +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME='mkjobtexmf' +PACKAGE_TARNAME='mkjobtexmf' +PACKAGE_VERSION='0.5' +PACKAGE_STRING='mkjobtexmf 0.5' +PACKAGE_BUGREPORT='oberdiek@uni-freiburg.de' + +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LIBOBJS LTLIBOBJS' +ac_subst_files='' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures mkjobtexmf 0.5 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of mkjobtexmf 0.5:";; + esac + cat <<\_ACEOF + +Report bugs to <oberdiek@uni-freiburg.de>. +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF +mkjobtexmf configure 0.5 +generated by GNU Autoconf 2.57 + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by mkjobtexmf $as_me 0.5, which was +generated by GNU Autoconf 2.57. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_sep= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core core.* *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ac_config_files="$ac_config_files Makefile" + + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 +echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by mkjobtexmf $as_me 0.5, which was +generated by GNU Autoconf 2.57. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to <bug-autoconf@gnu.org>." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +mkjobtexmf config.status 0.5 +configured by $0, generated by GNU Autoconf 2.57, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + + + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/Master/texmf-dist/source/generic/mkjobtexmf/configure.ac b/Master/texmf-dist/source/generic/mkjobtexmf/configure.ac new file mode 100644 index 00000000000..26c5292df04 --- /dev/null +++ b/Master/texmf-dist/source/generic/mkjobtexmf/configure.ac @@ -0,0 +1,16 @@ +dnl configure.ac +dnl +dnl Copyright 2007 by Heiko Oberdiek. +dnl +dnl The file is part of project mkjobtexmf. +dnl It's free software; you may redistribute it and/or +dnl modify it under the same terms as Perl itself +dnl (Perl Artistic License/GNU General Public License, version 2). +dnl +AC_INIT(mkjobtexmf, 0.5, oberdiek@uni-freiburg.de) + +AC_CONFIG_FILES(Makefile) + +AC_PROG_INSTALL + +AC_OUTPUT diff --git a/Master/texmf-dist/source/generic/mkjobtexmf/install-sh b/Master/texmf-dist/source/generic/mkjobtexmf/install-sh new file mode 100644 index 00000000000..6ce63b9f76b --- /dev/null +++ b/Master/texmf-dist/source/generic/mkjobtexmf/install-sh @@ -0,0 +1,294 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd=$cpprog + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "$0: no input file specified" >&2 + exit 1 +else + : +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d "$dst" ]; then + instcmd=: + chmodcmd="" + else + instcmd=$mkdirprog + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f "$src" ] || [ -d "$src" ] + then + : + else + echo "$0: $src does not exist" >&2 + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "$0: no destination specified" >&2 + exit 1 + else + : + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d "$dst" ] + then + dst=$dst/`basename "$src"` + else + : + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' + ' +IFS="${IFS-$defaultIFS}" + +oIFS=$IFS +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS=$oIFS + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp=$pathcomp$1 + shift + + if [ ! -d "$pathcomp" ] ; + then + $mkdirprog "$pathcomp" + else + : + fi + + pathcomp=$pathcomp/ +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd "$dst" && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename "$dst"` + else + dstfile=`basename "$dst" $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename "$dst"` + else + : + fi + +# Make a couple of temp file names in the proper directory. + + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + +# Trap to clean up temp files at exit. + + trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 + trap '(exit $?); exit' 1 2 13 15 + +# Move or copy the file name to the temp name + + $doit $instcmd "$src" "$dsttmp" && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && + +# Now remove or move aside any old file at destination location. We try this +# two ways since rm can't unlink itself on some systems and the destination +# file might be busy for other reasons. In this case, the final cleanup +# might fail but the new file should still install successfully. + +{ + if [ -f "$dstdir/$dstfile" ] + then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || + $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || + { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi +} && + +# Now rename the file to the real destination. + + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + +fi && + +# The final little trick to "correctly" pass the exit status to the exit trap. + +{ + (exit 0); exit +} diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds index d002e559c5b..a482fae64ae 100755 --- a/Master/tlpkg/bin/ctan2tds +++ b/Master/tlpkg/bin/ctan2tds @@ -458,7 +458,7 @@ chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw ); -$standardsource='\.fdd|\.dtx|\.ins|\.c$|Makefile|\.drv'; +$standardsource='\.fdd|\.dtx|\.ins|\.c$|Makefile|configure.*|install-sh|\.drv'; %specialsource= ( 'FAQ-en', 'NULL', 'ae', "$standardsource|\.mtx|\.etx|\.tex|clean|go|install|makepl", @@ -571,6 +571,7 @@ $standarddest = "texmf-dist"; 'lfb', 'fonts', 'latexmp', 'metapost', 'mathdots', 'generic', + 'mkjobtexmf', 'generic', 'mnhyphn', 'generic', 'mfpic', 'generic', 'multido', 'generic', @@ -723,6 +724,7 @@ $standardfmt='latex'; 'metauml', 'metapost', 'mfpic', 'generic', 'mkpattern', 'plain', + 'mkjobtexmf', 'generic', 'mpattern', 'metapost', 'ntheorem-vn', 'vietnamese', 'ofs', 'generic', @@ -1255,6 +1257,7 @@ $standardxmt='\.xmt'; %specialscripts = ( 'a2ping' => '\.pl$', 'epstopdf' => 'epstopdf', + 'mkjobtexmf' => '\.pl$', 'perltex' => '\.pl$', 'texcount' => '\.pl$', 'thumbpdf' => '\.pl$', diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index e5d92d44340..5eba634d534 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -119,7 +119,7 @@ my @WorkingTLP = qw( mcaption mceinleger mciteplus mdwtools memexsupp memoir MemoirChapStyles mentis menu metaobj metaplot metatex metauml mff mfpic mftinc mh mhchem - mhs microtype minipage-marginpar minitoc minutes mkpattern + mhs microtype minipage-marginpar minitoc minutes mkjobtexmf mkpattern mla-paper mlist mnsymbol moderncv mongolian-babel moreverb movie15 mp3d ms msg multicap multido munich muthesis mwcls mwrite diff --git a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc index 055d0250c27..452f8c68d19 100644 --- a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc @@ -18,7 +18,6 @@ depend bin-dvidvi depend bin-dviljk depend bin-dvipos depend bin-lacheck -depend bin-mkjobtexmf depend bin-patgen depend bin-pdftools depend bin-seetexk @@ -30,5 +29,6 @@ depend bin-web depend cweb depend hyphenex depend mkind-english +depend mkjobtexmf depend texcount depend xindy diff --git a/Master/tlpkg/tlpsrc/bin-mkjobtexmf.tlpsrc b/Master/tlpkg/tlpsrc/mkjobtexmf.tlpsrc index 3a6ec1754a7..c0b762cec85 100644 --- a/Master/tlpkg/tlpsrc/bin-mkjobtexmf.tlpsrc +++ b/Master/tlpkg/tlpsrc/mkjobtexmf.tlpsrc @@ -1,4 +1,4 @@ -name bin-mkjobtexmf -category TLCore +name mkjobtexmf +category Package runpattern f texmf/doc/man/man1/mkjobtexmf.1 binpattern f bin/${ARCH}/mkjobtexmf @@ -153,6 +153,7 @@ frank@kuesterei.ch's msgs to tex-live of 23 Oct 2006 19:19:28, infra: if ask for susy and have Susy, or reverse, complain infra: texmf/xindy not reported by check-file-coverage though not in tlp's +infra: handle man pages for script packages, e.g., thumbpdf, mkjobtexmf repo: remake with new svn, make special repo backups |