bsdowl-2.2.2/000750 001751 001751 00000000000 12436332735 014062 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/Library/000750 001751 001751 00000000000 12436326756 015474 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/INDEX000640 001751 001751 00000003152 12426614005 014646 0ustar00michaelmichael000000 000000 INDEX -- Guide through the Makefile Collection Author: Michael Grünewald Date: Fri Feb 10 2006 16:50:40 GMT Project infrastructure Files and directories that are artifacts of the project infrastructure. AUTHORS Contributors to BSD Make Pallàs scripts. COPYING License, in english COPYING-FR License, in french INDEX This file INSTALL See README.md for installation README.md General introduction Makefile.in Master build directives Library/Make Build directives library Library/Ancillary Developement scripts Library/Logo Logo test Test suite support Ancillary programs needing installation Project tier-1 Libraries of directives providing a complete functionality and a satisfying documentation. ocaml OCaml projects See ocaml.prog.mk, ocaml.lib.mk. ocaml.toplevel.mk, ocaml.pack.mk and ocaml.manual.mk. texmf Produce TeX documents See tex.doc.mk and latex.doc.mk Project tier-2 Libraries of directives providing a incomplete functionality or a unsatisfying documentation. bps Generic macros (subdir, project, etc.) See bps.subdir.mk and bps.project.mk Needs proper documentation and test cases in order to move to tier-1. www Produce offline sites with a SGML normaliser See www.sgml.mk and www.files.mk Needs proper documentation and test cases in order to move to tier-1. noewb Prepare LaTeX macros with noweb See noweb.latex.mk Needs proper documentation and test cases in order to move to tier-1. misc Miscellaneous Do not use a `misc` library but useful names in order to move to tier-1. Needs proper documentation and test cases in order to move to tier-1. bsdowl-2.2.2/configure.ac000640 001751 001751 00000002432 12436317346 016353 0ustar00michaelmichael000000 000000 dnl Process this file with autoconf to produce a configure script. AC_INIT(bps/Makefile) AC_PROG_AWK() AC_PROG_GREP() AC_PROG_INSTALL() AC_PROG_LN_S() AC_PROG_MKDIR_P() AC_PROG_SED() AC_PROG_ID() SYSTEMOWN=root SYSTEMGRP=$($ID -gn $SYSTEMOWN) # # Check for GraphicsMagick # AC_CHECK_PROG([has_gm], [gm], [yes], [no]) if test "x$has_gm" = 'xno'; then AC_MSG_ERROR([*** GraphicsMagick not found.]) fi # # Check for BSD Make # AC_CHECK_PROG([has_bmake], [bmake], [yes], [no]) if test "x$has_bmake" = 'xno' && test \! $(uname) = 'FreeBSD'; then AC_MSG_ERROR([*** BSD Make not found.]) fi # # Determine compression tools # define([CHECK_TAR_OPTION], [dnl printf 'checking whether tar -$1 works... ' if tar c$1f /dev/null /dev/null >/dev/null 2>&1; then $2=yes else $2=no fi printf '%s\n' "$$2"])dnl CHECK_TAR_OPTION(z, USE_GZIP) CHECK_TAR_OPTION(j, USE_BZIP2) CHECK_TAR_OPTION(J, USE_XZ) if test "${USE_XZ}" = "yes"; then USE_BZIP2="no" fi COMPRESS="" if test "${USE_GZIP}" = "yes"; then COMPRESS="${COMPRESS}${COMPRESS:+ }gzip" fi if test "${USE_BZIP2}" = "yes"; then COMPRESS="${COMPRESS}${COMPRESS:+ }bzip2" fi if test "${USE_XZ}" = "yes"; then COMPRESS="${COMPRESS}${COMPRESS:+ }xz" fi AC_SUBST([COMPRESS]) AC_SUBST([SYSTEMOWN]) AC_SUBST([SYSTEMGRP]) AC_OUTPUT(Makefile) AC_OUTPUT(bps/bps.init.mk) bsdowl-2.2.2/bps/000750 001751 001751 00000000000 12436332725 014645 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/misc/000750 001751 001751 00000000000 12436317346 015016 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/noweb/000750 001751 001751 00000000000 12436317346 015175 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/ocaml/000750 001751 001751 00000000000 12436317346 015156 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/README.md000640 001751 001751 00000027546 12436317346 015361 0ustar00michaelmichael000000 000000 # BSD Owl Scripts This collection of BSD Make directives can be used to create workflows including the following activities: - Preparation and publication of TeX documents; - Development of TeX macros with NOWEB; - Development of OCaml software; - Maintainance of a FreeBSD workstation configuration files; - Preparation of a static website with ONSGMLS. This README contains enough information to get you started. You will find more details on the [Wiki at Bickbucket](https://bitbucket.org/michipili/bsdowl/wiki) or the [Wiki at Github](https://github.com/michipili/bsdowl/wiki). The _Highlights_ section emphasizes important features of BSD Make Pallàs Scripts. The _Installation_ details the installation procedure using the sources. Finally the _First Steps_ demonstrate the use of BSD Make Pallàs Scripts to prepare TeX documents and OCaml programs. If you are not at all familiar with makefiles you can quickly learn the basics with de Boor's [classical tutorial](http://www.freebsd.org/doc/en/books/pmake/index.html). It is also nice to feel confident while interacting with the shell, if this is not the case [UNIX Power Tools](http://docstore.mik.ua/orelly/unix/upt/) could help you. # Highlights ## Portability BSD Owl Scripts (BPS) is written with portability in mind, it can be used with several operating systems and flavours of make: - FreeBSD's Make, the successor of `pmake`; - Mac OS X's Make, `bsdmake`; - NetBSD's Make, `bmake`, also available on Linux systems. This means that projects managed with BPS are easy to develop and deploy in heterogeneous environment. ## Advanced features Here is a short list of advanced features that will make you love using BPS for your papers written with TeX: - Support TeX documents split in multiple directories; - Support figure generation with METAPOST; - Support bibtex bibliographies; - Smart clean targets easing publication. And for OCaml projects, this list is: - Support parallel mode (at the directory level); - Support separate trees for sources and objects; - Support native and byte code; - Smart dependencies handling avoiding “inconsistant assumptions” over interfaces. ## Free software BSD Owl Scripts is free software: copying it and redistributing it is very much welcome under conditions of the CeCILL-B licence agreement, found in the COPYING and COPYING-FR files of the distribution. # Installation ## Requirements BSD Owl Scripts works at least in the following environments: - FreeBSD 9.0 and the base system program `make`; - Mac OS X 10.5 and the base system program `bsdmake`; - Mac OS X 10.4 and the base system program `bsdmake`; - Debian 7.0 and the third-party program `bmake`. Some special features require extra software being installed on the system where BSD Owl Scripts is used. This is advertised in the corresponding documentation. ## Site-wide installation procedure First of all, acquire the latest tarball `bsdowl-2.0.tar.bz2` and its signature `bsdowl-2.0.tar.bz2.sig` that you should verify—alternatively, download the tip of the [development branch](https://bitbucket.org/michipili/bsdowl/get/master.tar.bz2). Point a root shell to the directory containing the tarball: # tar xjf bsdowl-2.0.tar.bz2 # cd bsdowl-2.0 You now have to choose an installation prefix, say `/usr/local`, where the directives and a few helper scripts are installed: # ./configure --prefix=/usr/local # make all # make install Ensure that `/usr/local/bin` is listed in the path for each system user. Ensure that `/usr/local/share/mk` is listed in the search path for your compatible make program, this is usually done by adding the line .MAKEFLAGS: -I/usr/local/share/mk To the file `/etc/make.conf`. ## User-specific installation procedure First of all, acquire the latest tarball `bsdowl-2.0.tar.bz2` and its signature `bsdowl-2.0.tar.bz2.sig` that you should verify—alternatively, download the tip of the [development branch](https://bitbucket.org/michipili/bsdowl/get/master.tar.bz2). Point a user shell to the directory containing the tarball: $ tar xjf bsdowl-2.0.tar.bz2 $ cd bsdowl-2.0 $ ./configure --prefix=${HOME} $ make all $ make install Ensure that `${HOME}/bin` is listed in your path and that the `MAKEFLAGS` variable contains the word `-I${HOME}/share/mk`. If you are using `bash` or `sh` you can achieve this by appending the lines PATH="${HOME}/bin:${PATH}" MAKEFLAGS="${MAKEFLAGS}${MAKEFLAGS:+ }-I${HOME}/share/mk" export PATH export MAKEFLAGS to your `~/.profile` or `~/.bashrc` file, depending on your configuration. If you are using tcsh you can achieve this by appending the following lines set -f path = ( $path $HOME/bin ) if ( $?MAKEFLAGS ) then set makeflags = ( $MAKEFLAGS ) else set makeflags = () endif set -f makeflags = ( $makeflags "-I${HOME}/share/mk" ) setenv MAKEFLAGS "$makeflags" unset makeflags to your `~/.cshrc` or `~/.tcshrc`, depending on your configuration. These two suggestions will work in typical cases but a special configuration will require arrangements. # First steps ## Getting started with a LaTeX document Here is how BSD Owl Scripts can help you to write your new article. First of all, create a directory to hold your files and put your first version of your TeX source there. We assume for this example that you called it `mylastarticle.tex`. Along your file, create a `Makefile` with the following contents: DOCS= mylastarticle.tex TEXDEVICE= pdf .include "latex.doc.mk" Then you can `make` your document and `make clean` it. The line setting `TEXDEVICE` tells BSD Owl Scripts that you want to actually use `pdflatex` but if you are happy with DVI output you can leave this line aside. If your document requires a bibliography prepared by `bibtex` just set `USE_BIBTEX` to `yes` as in DOCS= mylastarticle.tex USE_BIBTEX= yes TEXDEVICE= pdf .include "latex.doc.mk" This will automatically process your bibliography database with `bibtex`. If your bibliography database does not lie in the same directory as your article, you should tell BSD Owl Scripts its location: DOCS= mylastarticle.tex USE_BIBTEX= yes BIBINPUTS= ${HOME}/share/texmf/bib TEXDEVICE= pdf .include "latex.doc.mk" Note that `make clean` will not remove the compiled bibliography, so that you can `clean` your directory before sending it to an editor or the arXiv. To get rid of the compiled bibliography, use the more powerful `make realclean` mantra. BSD Owl Scripts can also take care of your METAPOST figures, If you use the `grahicx` package in LaTeX, all you need to do is to list your metapost source files in the `FIGS` variable: DOCS= mylastarticle.tex FIGS= desargues.mp FIGS+= conics.mp TEXDEVICE= pdf .include "latex.doc.mk" and METAPOST wil be called automatically the next time you `make` your document. Please be sure to set outputtemplate := "%j-%c.mps"; in your METAPOST sources. As for bibliographies, making `clean` will not remove your pictures but making `realclean` will. ## Getting started with an OCaml program Here is how BSD Owl Scripts can help you to compile a simple OCaml program `wordcount`, your own implementation of the UNIX `wc(1)` utility. We first assume that the source code is a single file `wordcount.ml` and then consider a more complex case. ### The first time Create a directory to hold your files and put your source there. Along the source, create a `Makefile` with the following content: PROGRAM= wordcount .include "ocaml.prog.mk" ### Building You can now `make` your program and produce a `wordcount` binary. The complete output of the make process looks like this: $ make make depend ocamldep wordcount.ml > .depend make build ocamlc -c -o wordcount.cmo wordcount.ml ocamlc -o wordcount.cb wordcount.cmo cp wordcount.cb wordcount make doc When you call `make` without argument it is the same thing as `make all` which decomposes as `make depend` and `make build` as you see. You can test your program, edit it and re-`make` it. ### Installing Once you are satisfied with the results, you can install it with `make install`. It will call `su` to gain root privileges and install your program under `/usr/local/bin` a value deduced from *PREFIX* $ make install ===> Switching to root credentials for target (install) Password: /usr/bin/install -c -d /usr/local/bin install -o root -g wheel -m 555 wordcount /usr/local/bin You can check the value of the *PREFIX* variable, or any other variable, with `make -V` as in $ make -V PREFIX /usr/local If you want to install your program to another location like `${HOME}/bin` you only need to change the *PREFIX*. You can make the change permanent by adding a `PREFIX=${HOME}` line to your `Makefile`: PROGRAM= wordcount PREFIX= ${HOME} .include "ocaml.prog.mk" The order of variable declarations is not important but they have to come before the `.include` line. It is also possible to use `PREFIX=${HOME}` just once by adding it on the command line without editing the `Makefile`: make PREFIX=${HOME} install /usr/bin/install -c -d /home/michael/bin install -o michael -g michael -m 550 wordcount /home/michael/bin Note that since you have write access to the *PREFIX* directory, it is not necessary to gain root privileges for this installation. ### Cleaning Last you can remove object code from the directory with $ make clean rm -f wordcount.cmo wordcount.cmi wordcount.cb wordcount If you look closely, you will notice that the `.depend` file is not removed: $ ls -A .depend Makefile wordcount.ml This is on purpose, and if you also want to get rid of the `.depend` file you can use the more powerful mantra $ make realclean rm -f wordcount.cmo wordcount.cmi wordcount.cb wordcount rm -f .depend ### Several files and auxilary libraries As a consequence _Zawinski's Law of Software Envelopment_ you decided to build a mail reader in your `wordcount` program. Your code source now consists of your main file `wordcount.ml` a library `mailreader.ml` relying on the `unix.cma` library. Here is the corresponding `Makefile`: PROGRAM= wordcount SRCS+= mailreader.ml SRCS+= wordcount.ml LIBS+= unix .include "ocaml.prog.mk" While dependencies between modules are computed with `ocamldep` so that modules are compiled as needed, the order in which the files are listed in *SRCS* is used by the linker. It is thus important to list files in an order suited to the linking phase. ### Features highlight Here is a list of more advanced features that you may find useful when developping OCaml projects. - Compilation of bytecode and native executables; - Support of ocamlfind to link against 3rd party packages; - Support of ocamldoc to generate module documentation; - Support of ocamlprof to generate profiling information; - Support of debugging symbols; - Support of ocamllex and ocamlyacc to generate lexers and parsers; - Support parallel mode (at the directory level); - Support separate trees for sources and objects; - Support native and byte code; - Smart dependencies handling avoiding “inconsistant assumptions” over interfaces. These features are described in the documentation. ## Last words This project started around 2002, it was hosted on a private CVS server. In 2006 it was reorganised, history was lost and it moved to a private Subversion server. In 2008 it was published for the first time on GNA (gna.org). One year later the history was converted to git and subversion was only marginally used. In 2013, publication on the GNA server was abandoned and the project was published on GitHub and BitBucket. Pallàs Athéné is a Greek goddess of wisdom, mother of sciences and arts. This software is gently dedicated to her. Michael Grünewald in Bonn, on January 20, 2014 bsdowl-2.2.2/support/000750 001751 001751 00000000000 12436332476 015600 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/INSTALL000640 001751 001751 00000000101 12426614005 015074 0ustar00michaelmichael000000 000000 Installation details are provided as part of the README.md file. bsdowl-2.2.2/texmf/000750 001751 001751 00000000000 12436332476 015207 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/www/000750 001751 001751 00000000000 12436317346 014707 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/Makefile.in000640 001751 001751 00000001170 12436332712 016122 0ustar00michaelmichael000000 000000 ### @autoconf_input@ # Author: Michael Grünewald # Date: Ven 10 fév 2006 16:50:40 GMT # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION PROJECT = bsdowl VERSION = 2.2.2 AUTHOR = Michael Grünewald SUBDIR+= bps SUBDIR+= ocaml SUBDIR+= texmf SUBDIR+= noweb SUBDIR+= misc SUBDIR+= www SUBDIR+= support PREFIX?= @prefix@ CONFIGURE= Makefile.in CONFIGURE+= bps/bps.init.mk.in PROJECTDISTEXCLUDE+= Wiki PROJECTDISTEXCLUDE+= ${PROJECTDISTNAME}/Makefile PROJECTDISTEXCLUDE+= ${PROJECTDISTNAME}/bps/bps.init.mk .MAKEFLAGS: -I${.CURDIR}/Library/Make .MAKEFLAGS: -I${.CURDIR}/bps .include "bsdowl.mk" ### End of file `Makefile' bsdowl-2.2.2/AUTHORS000640 001751 001751 00000000051 12424531534 015122 0ustar00michaelmichael000000 000000 Michael Grünewald bsdowl-2.2.2/COPYING000640 001751 001751 00000051620 12424531534 015115 0ustar00michaelmichael000000 000000 CeCILL-B FREE SOFTWARE LICENSE AGREEMENT Notice This Agreement is a Free Software license agreement that is the result of discussions between its authors in order to ensure compliance with the two main principles guiding its drafting: * firstly, compliance with the principles governing the distribution of Free Software: access to source code, broad rights granted to users, * secondly, the election of a governing law, French law, with which it is conformant, both as regards the law of torts and intellectual property law, and the protection that it offers to both authors and holders of the economic rights over software. The authors of the CeCILL-B (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) license are: Commissariat à l'Energie Atomique - CEA, a public scientific, technical and industrial research establishment, having its principal place of business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. Centre National de la Recherche Scientifique - CNRS, a public scientific and technological establishment, having its principal place of business at 3 rue Michel-Ange, 75794 Paris cedex 16, France. Institut National de Recherche en Informatique et en Automatique - INRIA, a public scientific and technological establishment, having its principal place of business at Domaine de Voluceau, Rocquencourt, BP 105, 78153 Le Chesnay cedex, France. Preamble This Agreement is an open source software license intended to give users significant freedom to modify and redistribute the software licensed hereunder. The exercising of this freedom is conditional upon a strong obligation of giving credits for everybody that distributes a software incorporating a software ruled by the current license so as all contributions to be properly identified and acknowledged. In consideration of access to the source code and the rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors only have limited liability. In this respect, the risks associated with loading, using, modifying and/or developing or reproducing the software by the user are brought to the user's attention, given its Free Software status, which may make it complicated to use, with the result that its use is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the suitability of the software as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions of security. This Agreement may be freely reproduced and published, provided it is not altered, and that no provisions are either added or removed herefrom. This Agreement may apply to any or all software for which the holder of the economic rights decides to submit the use thereof to its provisions. Article 1 - DEFINITIONS For the purpose of this Agreement, when the following expressions commence with a capital letter, they shall have the following meaning: Agreement: means this license agreement, and its possible subsequent versions and annexes. Software: means the software in its Object Code and/or Source Code form and, where applicable, its documentation, "as is" when the Licensee accepts the Agreement. Initial Software: means the Software in its Source Code and possibly its Object Code form and, where applicable, its documentation, "as is" when it is first distributed under the terms and conditions of the Agreement. Modified Software: means the Software modified by at least one Contribution. Source Code: means all the Software's instructions and program lines to which access is required so as to modify the Software. Object Code: means the binary files originating from the compilation of the Source Code. Holder: means the holder(s) of the economic rights over the Initial Software. Licensee: means the Software user(s) having accepted the Agreement. Contributor: means a Licensee having made at least one Contribution. Licensor: means the Holder, or any other individual or legal entity, who distributes the Software under the Agreement. Contribution: means any or all modifications, corrections, translations, adaptations and/or new functions integrated into the Software by any or all Contributors, as well as any or all Internal Modules. Module: means a set of sources files including their documentation that enables supplementary functions or services in addition to those offered by the Software. External Module: means any or all Modules, not derived from the Software, so that this Module and the Software run in separate address spaces, with one calling the other when they are run. Internal Module: means any or all Module, connected to the Software so that they both execute in the same address space. Parties: mean both the Licensee and the Licensor. These expressions may be used both in singular and plural form. Article 2 - PURPOSE The purpose of the Agreement is the grant by the Licensor to the Licensee of a non-exclusive, transferable and worldwide license for the Software as set forth in Article 5 hereinafter for the whole term of the protection granted by the rights over said Software. Article 3 - ACCEPTANCE 3.1 The Licensee shall be deemed as having accepted the terms and conditions of this Agreement upon the occurrence of the first of the following events: * (i) loading the Software by any or all means, notably, by downloading from a remote server, or by loading from a physical medium; * (ii) the first time the Licensee exercises any of the rights granted hereunder. 3.2 One copy of the Agreement, containing a notice relating to the characteristics of the Software, to the limited warranty, and to the fact that its use is restricted to experienced users has been provided to the Licensee prior to its acceptance as set forth in Article 3.1 hereinabove, and the Licensee hereby acknowledges that it has read and understood it. Article 4 - EFFECTIVE DATE AND TERM 4.1 EFFECTIVE DATE The Agreement shall become effective on the date when it is accepted by the Licensee as set forth in Article 3.1. 4.2 TERM The Agreement shall remain in force for the entire legal term of protection of the economic rights over the Software. Article 5 - SCOPE OF RIGHTS GRANTED The Licensor hereby grants to the Licensee, who accepts, the following rights over the Software for any or all use, and for the term of the Agreement, on the basis of the terms and conditions set forth hereinafter. Besides, if the Licensor owns or comes to own one or more patents protecting all or part of the functions of the Software or of its components, the Licensor undertakes not to enforce the rights granted by these patents against successive Licensees using, exploiting or modifying the Software. If these patents are transferred, the Licensor undertakes to have the transferees subscribe to the obligations set forth in this paragraph. 5.1 RIGHT OF USE The Licensee is authorized to use the Software, without any limitation as to its fields of application, with it being hereinafter specified that this comprises: 1. permanent or temporary reproduction of all or part of the Software by any or all means and in any or all form. 2. loading, displaying, running, or storing the Software on any or all medium. 3. entitlement to observe, study or test its operation so as to determine the ideas and principles behind any or all constituent elements of said Software. This shall apply when the Licensee carries out any or all loading, displaying, running, transmission or storage operation as regards the Software, that it is entitled to carry out hereunder. 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS The right to make Contributions includes the right to translate, adapt, arrange, or make any or all modifications to the Software, and the right to reproduce the resulting software. The Licensee is authorized to make any or all Contributions to the Software provided that it includes an explicit notice that it is the author of said Contribution and indicates the date of the creation thereof. 5.3 RIGHT OF DISTRIBUTION In particular, the right of distribution includes the right to publish, transmit and communicate the Software to the general public on any or all medium, and by any or all means, and the right to market, either in consideration of a fee, or free of charge, one or more copies of the Software by any means. The Licensee is further authorized to distribute copies of the modified or unmodified Software to third parties according to the terms and conditions set forth hereinafter. 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION The Licensee is authorized to distribute true copies of the Software in Source Code or Object Code form, provided that said distribution complies with all the provisions of the Agreement and is accompanied by: 1. a copy of the Agreement, 2. a notice relating to the limitation of both the Licensor's warranty and liability as set forth in Articles 8 and 9, and that, in the event that only the Object Code of the Software is redistributed, the Licensee allows effective access to the full Source Code of the Software at a minimum during the entire period of its distribution of the Software, it being understood that the additional cost of acquiring the Source Code shall not exceed the cost of transferring the data. 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE If the Licensee makes any Contribution to the Software, the resulting Modified Software may be distributed under a license agreement other than this Agreement subject to compliance with the provisions of Article 5.3.4. 5.3.3 DISTRIBUTION OF EXTERNAL MODULES When the Licensee has developed an External Module, the terms and conditions of this Agreement do not apply to said External Module, that may be distributed under a separate license agreement. 5.3.4 CREDITS Any Licensee who may distribute a Modified Software hereby expressly agrees to: 1. indicate in the related documentation that it is based on the Software licensed hereunder, and reproduce the intellectual property notice for the Software, 2. ensure that written indications of the Software intended use, intellectual property notice and license hereunder are included in easily accessible format from the Modified Software interface, 3. mention, on a freely accessible website describing the Modified Software, at least throughout the distribution term thereof, that it is based on the Software licensed hereunder, and reproduce the Software intellectual property notice, 4. where it is distributed to a third party that may distribute a Modified Software without having to make its source code available, make its best efforts to ensure that said third party agrees to comply with the obligations set forth in this Article . If the Software, whether or not modified, is distributed with an External Module designed for use in connection with the Software, the Licensee shall submit said External Module to the foregoing obligations. 5.3.5 COMPATIBILITY WITH THE CeCILL AND CeCILL-C LICENSES Where a Modified Software contains a Contribution subject to the CeCILL license, the provisions set forth in Article 5.3.4 shall be optional. A Modified Software may be distributed under the CeCILL-C license. In such a case the provisions set forth in Article 5.3.4 shall be optional. Article 6 - INTELLECTUAL PROPERTY 6.1 OVER THE INITIAL SOFTWARE The Holder owns the economic rights over the Initial Software. Any or all use of the Initial Software is subject to compliance with the terms and conditions under which the Holder has elected to distribute its work and no one shall be entitled to modify the terms and conditions for the distribution of said Initial Software. The Holder undertakes that the Initial Software will remain ruled at least by this Agreement, for the duration set forth in Article 4.2. 6.2 OVER THE CONTRIBUTIONS The Licensee who develops a Contribution is the owner of the intellectual property rights over this Contribution as defined by applicable law. 6.3 OVER THE EXTERNAL MODULES The Licensee who develops an External Module is the owner of the intellectual property rights over this External Module as defined by applicable law and is free to choose the type of agreement that shall govern its distribution. 6.4 JOINT PROVISIONS The Licensee expressly undertakes: 1. not to remove, or modify, in any manner, the intellectual property notices attached to the Software; 2. to reproduce said notices, in an identical manner, in the copies of the Software modified or not. The Licensee undertakes not to directly or indirectly infringe the intellectual property rights of the Holder and/or Contributors on the Software and to take, where applicable, vis-à-vis its staff, any and all measures required to ensure respect of said intellectual property rights of the Holder and/or Contributors. Article 7 - RELATED SERVICES 7.1 Under no circumstances shall the Agreement oblige the Licensor to provide technical assistance or maintenance services for the Software. However, the Licensor is entitled to offer this type of services. The terms and conditions of such technical assistance, and/or such maintenance, shall be set forth in a separate instrument. Only the Licensor offering said maintenance and/or technical assistance services shall incur liability therefor. 7.2 Similarly, any Licensor is entitled to offer to its licensees, under its sole responsibility, a warranty, that shall only be binding upon itself, for the redistribution of the Software and/or the Modified Software, under terms and conditions that it is free to decide. Said warranty, and the financial terms and conditions of its application, shall be subject of a separate instrument executed between the Licensor and the Licensee. Article 8 - LIABILITY 8.1 Subject to the provisions of Article 8.2, the Licensee shall be entitled to claim compensation for any direct loss it may have suffered from the Software as a result of a fault on the part of the relevant Licensor, subject to providing evidence thereof. 8.2 The Licensor's liability is limited to the commitments made under this Agreement and shall not be incurred as a result of in particular: (i) loss due the Licensee's total or partial failure to fulfill its obligations, (ii) direct or consequential loss that is suffered by the Licensee due to the use or performance of the Software, and (iii) more generally, any consequential loss. In particular the Parties expressly agree that any or all pecuniary or business loss (i.e. loss of data, loss of profits, operating loss, loss of customers or orders, opportunity cost, any disturbance to business activities) or any or all legal proceedings instituted against the Licensee by a third party, shall constitute consequential loss and shall not provide entitlement to any or all compensation from the Licensor. Article 9 - WARRANTY 9.1 The Licensee acknowledges that the scientific and technical state-of-the-art when the Software was distributed did not enable all possible uses to be tested and verified, nor for the presence of possible defects to be detected. In this respect, the Licensee's attention has been drawn to the risks associated with loading, using, modifying and/or developing and reproducing the Software which are reserved for experienced users. The Licensee shall be responsible for verifying, by any or all means, the suitability of the product for its requirements, its good working order, and for ensuring that it shall not cause damage to either persons or properties. 9.2 The Licensor hereby represents, in good faith, that it is entitled to grant all the rights over the Software (including in particular the rights set forth in Article 5). 9.3 The Licensee acknowledges that the Software is supplied "as is" by the Licensor without any other express or tacit warranty, other than that provided for in Article 9.2 and, in particular, without any warranty as to its commercial value, its secured, safe, innovative or relevant nature. Specifically, the Licensor does not warrant that the Software is free from any error, that it will operate without interruption, that it will be compatible with the Licensee's own equipment and software configuration, nor that it will meet the Licensee's requirements. 9.4 The Licensor does not either expressly or tacitly warrant that the Software does not infringe any third party intellectual property right relating to a patent, software or any other property right. Therefore, the Licensor disclaims any and all liability towards the Licensee arising out of any or all proceedings for infringement that may be instituted in respect of the use, modification and redistribution of the Software. Nevertheless, should such proceedings be instituted against the Licensee, the Licensor shall provide it with technical and legal assistance for its defense. Such technical and legal assistance shall be decided on a case-by-case basis between the relevant Licensor and the Licensee pursuant to a memorandum of understanding. The Licensor disclaims any and all liability as regards the Licensee's use of the name of the Software. No warranty is given as regards the existence of prior rights over the name of the Software or as regards the existence of a trademark. Article 10 - TERMINATION 10.1 In the event of a breach by the Licensee of its obligations hereunder, the Licensor may automatically terminate this Agreement thirty (30) days after notice has been sent to the Licensee and has remained ineffective. 10.2 A Licensee whose Agreement is terminated shall no longer be authorized to use, modify or distribute the Software. However, any licenses that it may have granted prior to termination of the Agreement shall remain valid subject to their having been granted in compliance with the terms and conditions hereof. Article 11 - MISCELLANEOUS 11.1 EXCUSABLE EVENTS Neither Party shall be liable for any or all delay, or failure to perform the Agreement, that may be attributable to an event of force majeure, an act of God or an outside cause, such as defective functioning or interruptions of the electricity or telecommunications networks, network paralysis following a virus attack, intervention by government authorities, natural disasters, water damage, earthquakes, fire, explosions, strikes and labor unrest, war, etc. 11.2 Any failure by either Party, on one or more occasions, to invoke one or more of the provisions hereof, shall under no circumstances be interpreted as being a waiver by the interested Party of its right to invoke said provision(s) subsequently. 11.3 The Agreement cancels and replaces any or all previous agreements, whether written or oral, between the Parties and having the same purpose, and constitutes the entirety of the agreement between said Parties concerning said purpose. No supplement or modification to the terms and conditions hereof shall be effective as between the Parties unless it is made in writing and signed by their duly authorized representatives. 11.4 In the event that one or more of the provisions hereof were to conflict with a current or future applicable act or legislative text, said act or legislative text shall prevail, and the Parties shall make the necessary amendments so as to comply with said act or legislative text. All other provisions shall remain effective. Similarly, invalidity of a provision of the Agreement, for any reason whatsoever, shall not cause the Agreement as a whole to be invalid. 11.5 LANGUAGE The Agreement is drafted in both French and English and both versions are deemed authentic. Article 12 - NEW VERSIONS OF THE AGREEMENT 12.1 Any person is authorized to duplicate and distribute copies of this Agreement. 12.2 So as to ensure coherence, the wording of this Agreement is protected and may only be modified by the authors of the License, who reserve the right to periodically publish updates or new versions of the Agreement, each with a separate number. These subsequent versions may address new issues encountered by Free Software. 12.3 Any Software distributed under a given version of the Agreement may only be subsequently distributed under the same version of the Agreement or a subsequent version. Article 13 - GOVERNING LAW AND JURISDICTION 13.1 The Agreement is governed by French law. The Parties agree to endeavor to seek an amicable solution to any disagreements or disputes that may arise during the performance of the Agreement. 13.2 Failing an amicable solution within two (2) months as from their occurrence, and unless emergency proceedings are necessary, the disagreements or disputes shall be referred to the Paris Courts having jurisdiction, by the more diligent Party. Version 1.0 dated 2006-09-05. bsdowl-2.2.2/COPYING-FR000640 001751 001751 00000053573 12424531534 015433 0ustar00michaelmichael000000 000000 CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B Avertissement Ce contrat est une licence de logiciel libre issue d'une concertation entre ses auteurs afin que le respect de deux grands principes préside à sa rédaction: * d'une part, le respect des principes de diffusion des logiciels libres: accès au code source, droits étendus conférés aux utilisateurs, * d'autre part, la désignation d'un droit applicable, le droit français, auquel elle est conforme, tant au regard du droit de la responsabilité civile que du droit de la propriété intellectuelle et de la protection qu'il offre aux auteurs et titulaires des droits patrimoniaux sur un logiciel. Les auteurs de la licence CeCILL-B (pour Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) sont: Commissariat à l'Energie Atomique - CEA, établissement public de recherche à caractère scientifique, technique et industriel, dont le siège est situé 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris. Centre National de la Recherche Scientifique - CNRS, établissement public à caractère scientifique et technologique, dont le siège est situé 3 rue Michel-Ange, 75794 Paris cedex 16. Institut National de Recherche en Informatique et en Automatique - INRIA, établissement public à caractère scientifique et technologique, dont le siège est situé Domaine de Voluceau, Rocquencourt, BP 105, 78153 Le Chesnay cedex. Préambule Ce contrat est une licence de logiciel libre dont l'objectif est de conférer aux utilisateurs une très large liberté de modification et de redistribution du logiciel régi par cette licence. L'exercice de cette liberté est assorti d'une obligation forte de citation à la charge de ceux qui distribueraient un logiciel incorporant un logiciel régi par la présente licence afin d'assurer que les contributions de tous soient correctement identifiées et reconnues. L'accessibilité au code source et les droits de copie, de modification et de redistribution qui découlent de ce contrat ont pour contrepartie de n'offrir aux utilisateurs qu'une garantie limitée et de ne faire peser sur l'auteur du logiciel, le titulaire des droits patrimoniaux et les concédants successifs qu'une responsabilité restreinte. A cet égard l'attention de l'utilisateur est attirée sur les risques associés au chargement, à l'utilisation, à la modification et/ou au développement et à la reproduction du logiciel par l'utilisateur étant donné sa spécificité de logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve donc à des développeurs ou des professionnels avertis possédant des connaissances informatiques approfondies. Les utilisateurs sont donc invités à charger et tester l'adéquation du logiciel à leurs besoins dans des conditions permettant d'assurer la sécurité de leurs systèmes et/ou de leurs données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. Ce contrat peut être reproduit et diffusé librement, sous réserve de le conserver en l'état, sans ajout ni suppression de clauses. Ce contrat est susceptible de s'appliquer à tout logiciel dont le titulaire des droits patrimoniaux décide de soumettre l'exploitation aux dispositions qu'il contient. Article 1 - DEFINITIONS Dans ce contrat, les termes suivants, lorsqu'ils seront écrits avec une lettre capitale, auront la signification suivante: Contrat: désigne le présent contrat de licence, ses éventuelles versions postérieures et annexes. Logiciel: désigne le logiciel sous sa forme de Code Objet et/ou de Code Source et le cas échéant sa documentation, dans leur état au moment de l'acceptation du Contrat par le Licencié. Logiciel Initial: désigne le Logiciel sous sa forme de Code Source et éventuellement de Code Objet et le cas échéant sa documentation, dans leur état au moment de leur première diffusion sous les termes du Contrat. Logiciel Modifié: désigne le Logiciel modifié par au moins une Contribution. Code Source: désigne l'ensemble des instructions et des lignes de programme du Logiciel et auquel l'accès est nécessaire en vue de modifier le Logiciel. Code Objet: désigne les fichiers binaires issus de la compilation du Code Source. Titulaire: désigne le ou les détenteurs des droits patrimoniaux d'auteur sur le Logiciel Initial. Licencié: désigne le ou les utilisateurs du Logiciel ayant accepté le Contrat. Contributeur: désigne le Licencié auteur d'au moins une Contribution. Concédant: désigne le Titulaire ou toute personne physique ou morale distribuant le Logiciel sous le Contrat. Contribution: désigne l'ensemble des modifications, corrections, traductions, adaptations et/ou nouvelles fonctionnalités intégrées dans le Logiciel par tout Contributeur, ainsi que tout Module Interne. Module: désigne un ensemble de fichiers sources y compris leur documentation qui permet de réaliser des fonctionnalités ou services supplémentaires à ceux fournis par le Logiciel. Module Externe: désigne tout Module, non dérivé du Logiciel, tel que ce Module et le Logiciel s'exécutent dans des espaces d'adressage différents, l'un appelant l'autre au moment de leur exécution. Module Interne: désigne tout Module lié au Logiciel de telle sorte qu'ils s'exécutent dans le même espace d'adressage. Parties: désigne collectivement le Licencié et le Concédant. Ces termes s'entendent au singulier comme au pluriel. Article 2 - OBJET Le Contrat a pour objet la concession par le Concédant au Licencié d'une licence non exclusive, cessible et mondiale du Logiciel telle que définie ci-après à l'article 5 pour toute la durée de protection des droits portant sur ce Logiciel. Article 3 - ACCEPTATION 3.1 L'acceptation par le Licencié des termes du Contrat est réputée acquise du fait du premier des faits suivants: * (i) le chargement du Logiciel par tout moyen notamment par téléchargement à partir d'un serveur distant ou par chargement à partir d'un support physique; * (ii) le premier exercice par le Licencié de l'un quelconque des droits concédés par le Contrat. 3.2 Un exemplaire du Contrat, contenant notamment un avertissement relatif aux spécificités du Logiciel, à la restriction de garantie et à la limitation à un usage par des utilisateurs expérimentés a été mis à disposition du Licencié préalablement à son acceptation telle que définie à l'article 3.1 ci dessus et le Licencié reconnaît en avoir pris connaissance. Article 4 - ENTREE EN VIGUEUR ET DUREE 4.1 ENTREE EN VIGUEUR Le Contrat entre en vigueur à la date de son acceptation par le Licencié telle que définie en 3.1. 4.2 DUREE Le Contrat produira ses effets pendant toute la durée légale de protection des droits patrimoniaux portant sur le Logiciel. Article 5 - ETENDUE DES DROITS CONCEDES Le Concédant concède au Licencié, qui accepte, les droits suivants sur le Logiciel pour toutes destinations et pour la durée du Contrat dans les conditions ci-après détaillées. Par ailleurs, si le Concédant détient ou venait à détenir un ou plusieurs brevets d'invention protégeant tout ou partie des fonctionnalités du Logiciel ou de ses composants, il s'engage à ne pas opposer les éventuels droits conférés par ces brevets aux Licenciés successifs qui utiliseraient, exploiteraient ou modifieraient le Logiciel. En cas de cession de ces brevets, le Concédant s'engage à faire reprendre les obligations du présent alinéa aux cessionnaires. 5.1 DROIT D'UTILISATION Le Licencié est autorisé à utiliser le Logiciel, sans restriction quant aux domaines d'application, étant ci-après précisé que cela comporte: 1. la reproduction permanente ou provisoire du Logiciel en tout ou partie par tout moyen et sous toute forme. 2. le chargement, l'affichage, l'exécution, ou le stockage du Logiciel sur tout support. 3. la possibilité d'en observer, d'en étudier, ou d'en tester le fonctionnement afin de déterminer les idées et principes qui sont à la base de n'importe quel élément de ce Logiciel; et ceci, lorsque le Licencié effectue toute opération de chargement, d'affichage, d'exécution, de transmission ou de stockage du Logiciel qu'il est en droit d'effectuer en vertu du Contrat. 5.2 DROIT D'APPORTER DES CONTRIBUTIONS Le droit d'apporter des Contributions comporte le droit de traduire, d'adapter, d'arranger ou d'apporter toute autre modification au Logiciel et le droit de reproduire le logiciel en résultant. Le Licencié est autorisé à apporter toute Contribution au Logiciel sous réserve de mentionner, de façon explicite, son nom en tant qu'auteur de cette Contribution et la date de création de celle-ci. 5.3 DROIT DE DISTRIBUTION Le droit de distribution comporte notamment le droit de diffuser, de transmettre et de communiquer le Logiciel au public sur tout support et par tout moyen ainsi que le droit de mettre sur le marché à titre onéreux ou gratuit, un ou des exemplaires du Logiciel par tout procédé. Le Licencié est autorisé à distribuer des copies du Logiciel, modifié ou non, à des tiers dans les conditions ci-après détaillées. 5.3.1 DISTRIBUTION DU LOGICIEL SANS MODIFICATION Le Licencié est autorisé à distribuer des copies conformes du Logiciel, sous forme de Code Source ou de Code Objet, à condition que cette distribution respecte les dispositions du Contrat dans leur totalité et soit accompagnée: 1. d'un exemplaire du Contrat, 2. d'un avertissement relatif à la restriction de garantie et de responsabilité du Concédant telle que prévue aux articles 8 et 9, et que, dans le cas où seul le Code Objet du Logiciel est redistribué, le Licencié permette un accès effectif au Code Source complet du Logiciel pendant au moins toute la durée de sa distribution du Logiciel, étant entendu que le coût additionnel d'acquisition du Code Source ne devra pas excéder le simple coût de transfert des données. 5.3.2 DISTRIBUTION DU LOGICIEL MODIFIE Lorsque le Licencié apporte une Contribution au Logiciel, le Logiciel Modifié peut être distribué sous un contrat de licence autre que le présent Contrat sous réserve du respect des dispositions de l'article 5.3.4. 5.3.3 DISTRIBUTION DES MODULES EXTERNES Lorsque le Licencié a développé un Module Externe les conditions du Contrat ne s'appliquent pas à ce Module Externe, qui peut être distribué sous un contrat de licence différent. 5.3.4 CITATIONS Le Licencié qui distribue un Logiciel Modifié s'engage expressément: 1. à indiquer dans sa documentation qu'il a été réalisé à partir du Logiciel régi par le Contrat, en reproduisant les mentions de propriété intellectuelle du Logiciel, 2. à faire en sorte que l'utilisation du Logiciel, ses mentions de propriété intellectuelle et le fait qu'il est régi par le Contrat soient indiqués dans un texte facilement accessible depuis l'interface du Logiciel Modifié, 3. à mentionner, sur un site Web librement accessible décrivant le Logiciel Modifié, et pendant au moins toute la durée de sa distribution, qu'il a été réalisé à partir du Logiciel régi par le Contrat, en reproduisant les mentions de propriété intellectuelle du Logiciel, 4. lorsqu'il le distribue à un tiers susceptible de distribuer lui-même un Logiciel Modifié, sans avoir à en distribuer le code source, à faire ses meilleurs efforts pour que les obligations du présent article 5.3.4 soient reprises par le dit tiers. Lorsque le Logiciel modifié ou non est distribué avec un Module Externe qui a été conçu pour l'utiliser, le Licencié doit soumettre le dit Module Externe aux obligations précédentes. 5.3.5 COMPATIBILITE AVEC LES LICENCES CeCILL et CeCILL-C Lorsqu'un Logiciel Modifié contient une Contribution soumise au contrat de licence CeCILL, les stipulations prévues à l'article 5.3.4 sont facultatives. Un Logiciel Modifié peut être distribué sous le contrat de licence CeCILL-C. Les stipulations prévues à l'article 5.3.4 sont alors facultatives. Article 6 - PROPRIETE INTELLECTUELLE 6.1 SUR LE LOGICIEL INITIAL Le Titulaire est détenteur des droits patrimoniaux sur le Logiciel Initial. Toute utilisation du Logiciel Initial est soumise au respect des conditions dans lesquelles le Titulaire a choisi de diffuser son oeuvre et nul autre n'a la faculté de modifier les conditions de diffusion de ce Logiciel Initial. Le Titulaire s'engage à ce que le Logiciel Initial reste au moins régi par le Contrat et ce, pour la durée visée à l'article 4.2. 6.2 SUR LES CONTRIBUTIONS Le Licencié qui a développé une Contribution est titulaire sur celle-ci des droits de propriété intellectuelle dans les conditions définies par la législation applicable. 6.3 SUR LES MODULES EXTERNES Le Licencié qui a développé un Module Externe est titulaire sur celui-ci des droits de propriété intellectuelle dans les conditions définies par la législation applicable et reste libre du choix du contrat régissant sa diffusion. 6.4 DISPOSITIONS COMMUNES Le Licencié s'engage expressément: 1. à ne pas supprimer ou modifier de quelque manière que ce soit les mentions de propriété intellectuelle apposées sur le Logiciel; 2. à reproduire à l'identique lesdites mentions de propriété intellectuelle sur les copies du Logiciel modifié ou non. Le Licencié s'engage à ne pas porter atteinte, directement ou indirectement, aux droits de propriété intellectuelle du Titulaire et/ou des Contributeurs sur le Logiciel et à prendre, le cas échéant, à l'égard de son personnel toutes les mesures nécessaires pour assurer le respect des dits droits de propriété intellectuelle du Titulaire et/ou des Contributeurs. Article 7 - SERVICES ASSOCIES 7.1 Le Contrat n'oblige en aucun cas le Concédant à la réalisation de prestations d'assistance technique ou de maintenance du Logiciel. Cependant le Concédant reste libre de proposer ce type de services. Les termes et conditions d'une telle assistance technique et/ou d'une telle maintenance seront alors déterminés dans un acte séparé. Ces actes de maintenance et/ou assistance technique n'engageront que la seule responsabilité du Concédant qui les propose. 7.2 De même, tout Concédant est libre de proposer, sous sa seule responsabilité, à ses licenciés une garantie, qui n'engagera que lui, lors de la redistribution du Logiciel et/ou du Logiciel Modifié et ce, dans les conditions qu'il souhaite. Cette garantie et les modalités financières de son application feront l'objet d'un acte séparé entre le Concédant et le Licencié. Article 8 - RESPONSABILITE 8.1 Sous réserve des dispositions de l'article 8.2, le Licencié a la faculté, sous réserve de prouver la faute du Concédant concerné, de solliciter la réparation du préjudice direct qu'il subirait du fait du Logiciel et dont il apportera la preuve. 8.2 La responsabilité du Concédant est limitée aux engagements pris en application du Contrat et ne saurait être engagée en raison notamment: (i) des dommages dus à l'inexécution, totale ou partielle, de ses obligations par le Licencié, (ii) des dommages directs ou indirects découlant de l'utilisation ou des performances du Logiciel subis par le Licencié et (iii) plus généralement d'un quelconque dommage indirect. En particulier, les Parties conviennent expressément que tout préjudice financier ou commercial (par exemple perte de données, perte de bénéfices, perte d'exploitation, perte de clientèle ou de commandes, manque à gagner, trouble commercial quelconque) ou toute action dirigée contre le Licencié par un tiers, constitue un dommage indirect et n'ouvre pas droit à réparation par le Concédant. Article 9 - GARANTIE 9.1 Le Licencié reconnaît que l'état actuel des connaissances scientifiques et techniques au moment de la mise en circulation du Logiciel ne permet pas d'en tester et d'en vérifier toutes les utilisations ni de détecter l'existence d'éventuels défauts. L'attention du Licencié a été attirée sur ce point sur les risques associés au chargement, à l'utilisation, la modification et/ou au développement et à la reproduction du Logiciel qui sont réservés à des utilisateurs avertis. Il relève de la responsabilité du Licencié de contrôler, par tous moyens, l'adéquation du produit à ses besoins, son bon fonctionnement et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens. 9.2 Le Concédant déclare de bonne foi être en droit de concéder l'ensemble des droits attachés au Logiciel (comprenant notamment les droits visés à l'article 5). 9.3 Le Licencié reconnaît que le Logiciel est fourni "en l'état" par le Concédant sans autre garantie, expresse ou tacite, que celle prévue à l'article 9.2 et notamment sans aucune garantie sur sa valeur commerciale, son caractère sécurisé, innovant ou pertinent. En particulier, le Concédant ne garantit pas que le Logiciel est exempt d'erreur, qu'il fonctionnera sans interruption, qu'il sera compatible avec l'équipement du Licencié et sa configuration logicielle ni qu'il remplira les besoins du Licencié. 9.4 Le Concédant ne garantit pas, de manière expresse ou tacite, que le Logiciel ne porte pas atteinte à un quelconque droit de propriété intellectuelle d'un tiers portant sur un brevet, un logiciel ou sur tout autre droit de propriété. Ainsi, le Concédant exclut toute garantie au profit du Licencié contre les actions en contrefaçon qui pourraient être diligentées au titre de l'utilisation, de la modification, et de la redistribution du Logiciel. Néanmoins, si de telles actions sont exercées contre le Licencié, le Concédant lui apportera son aide technique et juridique pour sa défense. Cette aide technique et juridique est déterminée au cas par cas entre le Concédant concerné et le Licencié dans le cadre d'un protocole d'accord. Le Concédant dégage toute responsabilité quant à l'utilisation de la dénomination du Logiciel par le Licencié. Aucune garantie n'est apportée quant à l'existence de droits antérieurs sur le nom du Logiciel et sur l'existence d'une marque. Article 10 - RESILIATION 10.1 En cas de manquement par le Licencié aux obligations mises à sa charge par le Contrat, le Concédant pourra résilier de plein droit le Contrat trente (30) jours après notification adressée au Licencié et restée sans effet. 10.2 Le Licencié dont le Contrat est résilié n'est plus autorisé à utiliser, modifier ou distribuer le Logiciel. Cependant, toutes les licences qu'il aura concédées antérieurement à la résiliation du Contrat resteront valides sous réserve qu'elles aient été effectuées en conformité avec le Contrat. Article 11 - DISPOSITIONS DIVERSES 11.1 CAUSE EXTERIEURE Aucune des Parties ne sera responsable d'un retard ou d'une défaillance d'exécution du Contrat qui serait dû à un cas de force majeure, un cas fortuit ou une cause extérieure, telle que, notamment, le mauvais fonctionnement ou les interruptions du réseau électrique ou de télécommunication, la paralysie du réseau liée à une attaque informatique, l'intervention des autorités gouvernementales, les catastrophes naturelles, les dégâts des eaux, les tremblements de terre, le feu, les explosions, les grèves et les conflits sociaux, l'état de guerre... 11.2 Le fait, par l'une ou l'autre des Parties, d'omettre en une ou plusieurs occasions de se prévaloir d'une ou plusieurs dispositions du Contrat, ne pourra en aucun cas impliquer renonciation par la Partie intéressée à s'en prévaloir ultérieurement. 11.3 Le Contrat annule et remplace toute convention antérieure, écrite ou orale, entre les Parties sur le même objet et constitue l'accord entier entre les Parties sur cet objet. Aucune addition ou modification aux termes du Contrat n'aura d'effet à l'égard des Parties à moins d'être faite par écrit et signée par leurs représentants dûment habilités. 11.4 Dans l'hypothèse où une ou plusieurs des dispositions du Contrat s'avèrerait contraire à une loi ou à un texte applicable, existants ou futurs, cette loi ou ce texte prévaudrait, et les Parties feraient les amendements nécessaires pour se conformer à cette loi ou à ce texte. Toutes les autres dispositions resteront en vigueur. De même, la nullité, pour quelque raison que ce soit, d'une des dispositions du Contrat ne saurait entraîner la nullité de l'ensemble du Contrat. 11.5 LANGUE Le Contrat est rédigé en langue française et en langue anglaise, ces deux versions faisant également foi. Article 12 - NOUVELLES VERSIONS DU CONTRAT 12.1 Toute personne est autorisée à copier et distribuer des copies de ce Contrat. 12.2 Afin d'en préserver la cohérence, le texte du Contrat est protégé et ne peut être modifié que par les auteurs de la licence, lesquels se réservent le droit de publier périodiquement des mises à jour ou de nouvelles versions du Contrat, qui posséderont chacune un numéro distinct. Ces versions ultérieures seront susceptibles de prendre en compte de nouvelles problématiques rencontrées par les logiciels libres. 12.3 Tout Logiciel diffusé sous une version donnée du Contrat ne pourra faire l'objet d'une diffusion ultérieure que sous la même version du Contrat ou une version postérieure. Article 13 - LOI APPLICABLE ET COMPETENCE TERRITORIALE 13.1 Le Contrat est régi par la loi française. Les Parties conviennent de tenter de régler à l'amiable les différends ou litiges qui viendraient à se produire par suite ou à l'occasion du Contrat. 13.2 A défaut d'accord amiable dans un délai de deux (2) mois à compter de leur survenance et sauf situation relevant d'une procédure d'urgence, les différends ou litiges seront portés par la Partie la plus diligente devant les Tribunaux compétents de Paris. Version 1.0 du 2006-09-05. bsdowl-2.2.2/test/000750 001751 001751 00000000000 12436317346 015042 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/configure000750 001751 001751 00000377755 12436317560 016020 0ustar00michaelmichael000000 000000 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69. # # # Copyright (C) 1992-1996, 1998-2012 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 more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= 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 IFS=$as_save_IFS ;; 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="bps/Makefile" ac_subst_vars='LTLIBOBJS LIBOBJS SYSTEMGRP SYSTEMOWN COMPRESS has_bmake has_gm ID SED MKDIR_P LN_S INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM GREP AWK target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # 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. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= 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 case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -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) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$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 ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$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 ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) 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 ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=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 ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_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'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 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 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 ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # 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 the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | 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 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # 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 this package 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 \`..'] 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] --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] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested 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 else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.69 Copyright (C) 2012 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 fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { 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` /usr/bin/hostinfo = `(/usr/bin/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=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append 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 as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > 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 cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } 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. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_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 $ac_precious_vars; 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,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_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 # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_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. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## 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 for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" 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 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # 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" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&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/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /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_fn_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 rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir 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. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$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' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed { $as_echo "$as_me:${as_lineno-$LINENO}: checking for id that handles -g, -u and -n" >&5 $as_echo_n "checking for id that handles -g, -u and -n... " >&6; } if ${ac_cv_path_ID+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_path_ID=no for ac_cv_path_ID_v in id /usr/xpg4/bin/id 'command -p id'; do if test "$ac_cv_path_ID" = "no"; then ( $ac_cv_path_ID_v -g && $ac_cv_path_ID_v -g -n && $ac_cv_path_ID_v -u && $ac_cv_path_ID_v -u -n ) 2> /dev/null 1> /dev/null && ac_cv_path_ID="$ac_cv_path_ID_v" fi done; fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_ID" >&5 $as_echo "$ac_cv_path_ID" >&6; } ID="$ac_cv_path_ID" SYSTEMOWN=root SYSTEMGRP=$($ID -gn $SYSTEMOWN) # # Check for GraphicsMagick # # Extract the first word of "gm", so it can be a program name with args. set dummy gm; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_has_gm+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$has_gm"; then ac_cv_prog_has_gm="$has_gm" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_has_gm="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_has_gm" && ac_cv_prog_has_gm="no" fi fi has_gm=$ac_cv_prog_has_gm if test -n "$has_gm"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_gm" >&5 $as_echo "$has_gm" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$has_gm" = 'xno'; then as_fn_error $? "*** GraphicsMagick not found." "$LINENO" 5 fi # # Check for BSD Make # # Extract the first word of "bmake", so it can be a program name with args. set dummy bmake; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_has_bmake+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$has_bmake"; then ac_cv_prog_has_bmake="$has_bmake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_has_bmake="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_has_bmake" && ac_cv_prog_has_bmake="no" fi fi has_bmake=$ac_cv_prog_has_bmake if test -n "$has_bmake"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_bmake" >&5 $as_echo "$has_bmake" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$has_bmake" = 'xno' && test \! $(uname) = 'FreeBSD'; then as_fn_error $? "*** BSD Make not found." "$LINENO" 5 fi # # Determine compression tools # printf 'checking whether tar -z works... ' if tar czf /dev/null /dev/null >/dev/null 2>&1; then USE_GZIP=yes else USE_GZIP=no fi printf '%s\n' "$USE_GZIP" printf 'checking whether tar -j works... ' if tar cjf /dev/null /dev/null >/dev/null 2>&1; then USE_BZIP2=yes else USE_BZIP2=no fi printf '%s\n' "$USE_BZIP2" printf 'checking whether tar -J works... ' if tar cJf /dev/null /dev/null >/dev/null 2>&1; then USE_XZ=yes else USE_XZ=no fi printf '%s\n' "$USE_XZ" if test "${USE_XZ}" = "yes"; then USE_BZIP2="no" fi COMPRESS="" if test "${USE_GZIP}" = "yes"; then COMPRESS="${COMPRESS}${COMPRESS:+ }gzip" fi if test "${USE_BZIP2}" = "yes"; then COMPRESS="${COMPRESS}${COMPRESS:+ }bzip2" fi if test "${USE_XZ}" = "yes"; then COMPRESS="${COMPRESS}${COMPRESS:+ }xz" fi ac_config_files="$ac_config_files Makefile" 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, we kill variables containing newlines. # 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. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} 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}' # 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 branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $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} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= 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 IFS=$as_save_IFS ;; 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent 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 the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; 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 || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 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 against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # 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. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # 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 || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi ac_config_files="$ac_config_files bps/bps.init.mk" 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, we kill variables containing newlines. # 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. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} 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}' # 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 branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $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} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= 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 IFS=$as_save_IFS ;; 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent 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 the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; 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 || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "bps/bps.init.mk") CONFIG_FILES="$CONFIG_FILES bps/bps.init.mk" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 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 against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # 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. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # 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 || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi bsdowl-2.2.2/install-sh000640 001751 001751 00000032537 12426521434 016071 0ustar00michaelmichael000000 000000 #!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$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 $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # 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. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: bsdowl-2.2.2/aclocal.m4000640 001751 001751 00000004474 12426614005 015724 0ustar00michaelmichael000000 000000 # -*- autoconf -*- # Author: Michael Grünewald # Date: Sam 12 sep 2009 13:02:08 CEST # Copyright © 2005–2014 Michael Grünewald # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # 3. The name of the author may not be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # AC_PROG_ID # ---------- # Check for a id program that understands -g -u and -n options. This is not the # case of Solaris' /usr/bin/id which is the first found on the path in some # configurations. # # If a suitable program is found, it can be used through the content # of the ID program. If no such a program is found, the value of this # variable is `no`. AC_DEFUN([AC_PROG_ID], [AC_CACHE_CHECK([for id that handles -g, -u and -n], ac_cv_path_ID, [ac_cv_path_ID=no for ac_cv_path_ID_v in id /usr/xpg4/bin/id 'command -p id'; do if test "$ac_cv_path_ID" = "no"; then ( $ac_cv_path_ID_v -g && $ac_cv_path_ID_v -g -n && $ac_cv_path_ID_v -u && $ac_cv_path_ID_v -u -n ) 2> /dev/null 1> /dev/null && ac_cv_path_ID="$ac_cv_path_ID_v" fi done;]) ID="$ac_cv_path_ID" AC_SUBST([ID]) ]) bsdowl-2.2.2/test/dotfile/000750 001751 001751 00000000000 12436317346 016470 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/elisp/000750 001751 001751 00000000000 12436317346 016156 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/000750 001751 001751 00000000000 12436317346 016135 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/script/000750 001751 001751 00000000000 12436317346 016346 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/tex/000750 001751 001751 00000000000 12436317346 015642 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/000750 001751 001751 00000000000 12436317346 015666 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/Makefile000640 001751 001751 00000000530 12436317346 017325 0ustar00michaelmichael000000 000000 SUBDIR = index SUBDIR+= tex SUBDIR+= ocaml SUBDIR+= writing SUBDIR+= generation SUBDIR+= guidelines SUBDIR+= style WWWBASE?= ${.CURDIR}/wwwobj CLEANDIRS+= ${WWWBASE} WWWMAIN = main.sgml .MAKEFLAGS: WWWMAIN="${WWWMAIN}" do-publish: ${MAKE} "PREFIX=${HOME}" "WWWBASE=${WWWBASE}" all install .include "bps.project.mk" .include "www.sgml.mk" bsdowl-2.2.2/test/www/Mk/000750 001751 001751 00000000000 12436317346 016235 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/Template/000750 001751 001751 00000000000 12436317346 017441 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/generation/000750 001751 001751 00000000000 12436317346 020021 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/guidelines/000750 001751 001751 00000000000 12436317346 020016 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/index/000750 001751 001751 00000000000 12436317346 016775 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/ocaml/000750 001751 001751 00000000000 12436317346 016761 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/sgml/000750 001751 001751 00000000000 12436317346 016630 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/style/000750 001751 001751 00000000000 12436317346 017026 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/tex/000750 001751 001751 00000000000 12436317346 016466 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/writing/000750 001751 001751 00000000000 12436317346 017351 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/writing/Makefile000640 001751 001751 00000000401 12436317346 021005 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW = writing.html WWWDIR = ${WWWBASE} SRCS+= head-title.sgml SRCS+= page-title.sgml SRCS+= page-content.sgml SRCS+= more-ilink.sgml SRCS+= more-elink.sgml SRCS+= more-download.sgml .include "scroll.mk" bsdowl-2.2.2/test/www/writing/head-title.sgml000640 001751 001751 00000000225 12436317346 022255 0ustar00michaelmichael000000 000000 BSD Owl Scripts bsdowl-2.2.2/test/www/writing/page-content.sgml000640 001751 001751 00000013623 12436317346 022627 0ustar00michaelmichael000000 000000

Introduction Make

Unix systems have a strong emphasis on files, and a typical work session with such a system involves the creation of files (sources) and the invocation of many data processing procedures (recipes) yielding intermediary and final files (objects) as output of their work. Most of the work is usually performed through the use of a shell.

The Make program is a utility whose input is a workflow declaring tasks (targets in Make's parlance) and means to achieve them, and whose invocation yields execution of the given tasks.

This presentation emphasizes that Make is a day-to-day companion of the UNIX operator, as it can be used to systematize a large part of its work. You can read more about the Make program and especially on the FreeBSD Make program by reading the paragraphs dedicated to Make in the FreeBSD Developer's Handbook, and the PMake tutorial (the PMake programs is the venerable ancestor of FreeBSD Make).

Make scripts

Make's input is usually not a static specification of the workflow graph, but instead a parametrized specification of the graph, it is then possible to generalize specifications in order to manage many similar situations with the same specification. We call these generic specifications Make scripts, it is possible to gather them in libraries of scripts solving problems occuring in related situations.

BSD Owl Scripts is a collection of such libraries. They can be used to ease the development of OCaml software, the production of TeX and LaTeX documents, and few other random things.

BSD Make

Make is not the name of a well defined program, but the name of a large brotherhood. Each of the brother has its own strengths and weaknesses, and also its own dialect used to prepare its input specification. BSD Make Pallàs scripts can be used with three of these brothers, all of them being descendants of the make program in BSD4.4. These programs are:

  • FreeBSD's make;
  • MAC OS-X's bsdmake;
  • NetBSD's bmake.

Users of Linux based system are likely to be equipped with GNU Make. This version of Make is a piece of a larger puzzle, the autotools; without these autotools, it is not so useful. However, NetBSD's bmake works fine under many Linux based systems. You can get source files for it at Simon J. Gerraty's, see build instructions in the INSTALL file of BSD Owl Scripts distribution.

Downloading, installing and using

You shall download the latest source distribution: bsdowl-1.3.tar.bz2. If you are running a Linux based system, or any system but FreeBSD, NetBSD and MAC OS-X, you shall consider getting Simon J. Garrety's following software: bmake.tar.gz and mk.tar.gz.

See the INSTALL file in the source distribution for installation instructions. Installation procedure consists of copying the files in some directory and arrange so that your Make program knows about this.

Specific pages are devoted to the uses of the BSD Make Pallàs Scripts:

  • producing TeX and LaTeX documents, note that the scripts have support for the drawing tool METAPOST;
  • producing OCaml software covers production and installation of programs and libraries, although some moderately advanced features of OCaml the compilers are not (yet) supported.
  • code generation presents some code generation tools and their integration in BSD Owl Scripts, M4 and Norman Ramsey's NOWEB are supported;
  • interface guidelines presents aspects shared by all the scripts, documentation for specific scripts occasionally refers to this document;
  • writing Makefiles discusses the art of writing Makefiles, it assumes you already know the basics and focuses on techniques used in BSD Owl Scripts.

Important Note: As this is the case for most software products, improper use of BSD Owl Scripts may lead to data loss or other random disagreement, you are on your own! See also the COPYING file shipped with the sources, where condition of utilisation are stated.

Software supporting BSD Owl Scripts

Some software come with handy scripts using BSD Make Pallàs Scripts, we list these friends here:

  • Bhrìd TeX, a family of TeX formats;
  • Libertine, a small set of libraries for the OCaml language;
  • Abach, a would-be geometry-oriented computation library, for the OCaml language.

BSD Owl Scripts is a Gna! hosted project

Registration Date: Tuesday 03/11/2008 at 20:35
License: CeCILL-B License
Development Status: 5 - Production/Stable
bsdowl-2.2.2/test/www/writing/page-title.sgml000640 001751 001751 00000000620 12436317346 022267 0ustar00michaelmichael000000 000000

BSD Owl Scripts

BSD Owl Scripts is a small group of BSD Make directive files. Modules are written in the spirit of FreeBSD's project files. Currently available scripts may be used for OCaml projects and (La)TeX documents.

bsdowl-2.2.2/test/www/tex/Makefile000640 001751 001751 00000000375 12436317346 020134 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW = tex.html WWWDIR = ${WWWBASE} SRCS+= head-title.sgml SRCS+= page-title.sgml SRCS+= page-content.sgml SRCS+= more-ilink.sgml SRCS+= more-elink.sgml SRCS+= more-download.sgml .include "scroll.mk" bsdowl-2.2.2/test/www/tex/head-title.sgml000640 001751 001751 00000000247 12436317346 021376 0ustar00michaelmichael000000 000000 Producing TeX and LaTeX documents bsdowl-2.2.2/test/www/tex/page-content.sgml000640 001751 001751 00000043621 12436317346 021745 0ustar00michaelmichael000000 000000

Summary

On this page, you will learn how to use BSD Owl Scripts (BPS) to:

  • produce simple documents and publish them on the file system;
  • produce the bibliography of your LaTeX document with BIBTeX;
  • produce figures for your document with METAPOST;
  • deal with documents having parts that need to be automatically generated.
  • deal with documents whose source spans across several directories;

Foreword: working with TeX or LaTeX

There is multiple TeX formats in use, plain TeX and LaTeX are examples of such formats. The LaTeX format enjoys a wide community of users, so the module latex.doc.mk is used in examples. However most of the following applies to the module tex.doc.mk as well. Some paragraphs in the sequel document mechanisms specific to latex.doc.mk, they are explicitly identified as such.

Simple use

The preparation of a simple document with LaTeX itself is very easy, thus the use of BPS may at a first glance look like a useless complication instead of a simplification. It provides some useful features, however.

The first time

Assume the file script.tex holds your manuscript. Put it in a directory dedicated to your document, and create a Makefile file (note the leading capital) with the following content:

DOC = script.tex
.include "latex.doc.mk"

Your document's directory now contains the paper.tex file and the Makefile described above. Point your shell's working directory to your document's directory, and issue the make command:

$ make
make build
===> Multipass job for script.dvi (aux)
latex script.tex
This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
entering extended mode
(./script.tex
LaTeX2e <2003/12/01>
...

If your manuscript has no error, you end up with the following object files in your working directory:

$ ls
Makefile    script.log
script.aux  script.tex
script.dvi  script.toc

Once you are done with the objects, you can clean the directory with the make clean mantra:

$ make clean
rm -f  script.dvi script.log script.aux script.toc

Cleaning the directory is an optional step, but it prevents your storage and your archive media to end up filled with unused data, that can be quickly recreated on demand. While DVI files are usually very small, a few hundred kilobytes, the PS or PDF objects are often much larger.

Installing

Before you clean up your working directory with the make clean mantra, you may wish to store the objects you created in some adequate place of the local file system. This step is called installation of your document, because it is analogous to the installation of a program you freshly compiled. You require the installation of your document with the make install command, but you must first tell make which place is actually adequate. This is done by assigning the DOCUMENTDIR variable with the path to the directory you want your files to be copied to, as displayed by the following Makefile:

DOCUMENTDIR = ${HOME}/doc/report
DOC = script.tex
.include "latex.doc.mk"

You can then proceed with the make install command:

$ make install
install -d /home/michi/doc/report
install -o michi -g michi -m 440 script.dvi /home/michi/doc/report

In comparison with the manual approach for storing the object in a safe place with the cp command, you save retyping the target directory name the next time you update your document. Moreover, it eases the organisation of your document sources library and scales to a large number of documents, see Working with a large number of documents below.

Selecting an output format

The TeX tool chain is capable of producing electronic documents in several formats. Commonly used formats are DVI, PostScript (PS) and PDF. The TEXDEVICE variable governs the format of documents produced with the help of latex.doc.mk. Its value is usually dvi, so that latex.doc.mk will produce a DVI file from your source. Other possible values are ps or pdf. If you configured a PostScript printer TEXPRINTER with the texconfig program, you also can use ps.TEXPRINTER as a value in TEXDEVICE, it will instruct dvips to use the settings for TEXPRINTER when translating your DVI file to PostScript. It is also possible to list several output formats in TEXDEVICE, like dvi pdf ps.TEXPRINTER1 ps.TEXPRINTER2.

Drafts and multipass jobs

Some formats or macros need your manuscript to be processed several times by TeX or LaTeX before you obtain the final version of your document. The latex.tex.mk module enforces multipass treatment of your manuscript, because LaTeX needs this to produce correct cross references created with label and ref commands within your document. The doc.tex.mk module will not do multiple treatment of your manuscript unless you set the variable MULTIPASS to a list of names, each element giving its name to a pass. The choice of these names does not have a real importance, as they are only displayed to the user. It is even possible to specify the same name several times!

In the early stages of existence of a document, updates are likely to be frequent and it is thus desirable to avoid the lengthy multiple passes processing. BPS has a draft mode for this. To enable the draft mode, set make's variable DRAFT to yes, this is done by adding an appropriate statement in the Makefile, as shown by the following example:

DRAFT?= yes
DOC = script.tex
.include "latex.doc.mk"

The statement DRAFT?= is a special form of an assignment statement, that allows you to type make DRAFT=no at the shell prompt if you want to re-enable multipass processing of your job for one time. When you have finished polishing your manuscript, you can remove the DRAFT assignment from the Makefile, your paper is then ready for a last make run producing the final version of your document. If you are satisfied with it, you can install it.

When working on a document, it might be useful to keep copies of the objects you produced at some point of your work. For instance, picture yourself sending a copy of your work to a friend. Your friend will read your paper with attention and send you back his comments, but in the meanwhile, you kept on improving your document. When you receive the comments of your friend, you will compare them to the document you sent him. It is therefore useful to keep a copy of it. The best way to do this is probably to use a RCS, a software system managing history of files. If you do not use such a system, BPS might be here of some help.

When the variable DRAFT is set to yes and the variable TEXDRAFTSTAMP is not initialised, it receives the value -${TEXDRAFTTIMESTAMP} where TEXDRAFTTIMESTAMP expands to the date when Make is run. When the variable TEXDRAFTSTAMP is initialised and not empty, its value is appended to the name of all document installed by latex.doc.mk or latex.doc.mk. If you do not want the name of the files to be modified, you just need to initialise TEXDRAFTSTAMP with an empty value.

Split document

If you are working on a complex document, you certainly have split your sources into several files. Usually one file per chapter, or per section, plus a main file containing the preamble and many input statements to instruct LaTeX to read all of the files actually containing the document.

Assume that your document is split into a main file galley.tex and two other files part1.tex and part2.tex. Your galley.tex certainly looks like this:

\documentclass{article}
\begin{document}
\input{part1}
\input{part2}
\end{document}

A suitable Makefile is then:

DOC = galley.tex
SRCS = part1.tex
SRCS+= part2.tex
.include "latex.doc.mk"

More advanced features

Figures with METAPOST

Modules latex.doc.mk and tex.doc.mk comes with a nice support for METAPOST generated pictures, provided you have Ghostscript and a working TeX installation. This is something worth noting, since METAPOST is often the right tool to be used for drawing figures appearing in TeX documents, but support for it is missing in many GUI editors for LaTeX.

Assume you prepared illustrations for your article with METAPOST, and split your illustrations into two files illustr1.mp and illustr2.mp. To let latex.doc.mk handle the production of your figures, add FIGS statements to your Makefile:

DOC = galley.tex
SRCS = part1.tex
SRCS+= part2.tex
FIGS = illustr1.mp
FIGS+= illustr2.mp
.include "latex.doc.mk"

Then type in make at the shell prompt. The latex.doc.mk will then figure out how many illustrations are present in each file, and produce the image files required by your TEXDEVICE. For instance, if your TEXDEVICE is dvi, and illustr1.mp contains two figures introduced by beginfig(1) and beginfig(2), you end up with four files

illustr1.1
illustr1.2
illustr1.1.eps
illustr1.2.eps

The first two files are intermediary files in PostScript format, and the last ones are Encapulated PostScript and suited for inclusion in your document.

Note for graphics and graphicx packages users. You are very likely to use the graphics or graphicx package defining commands for graphics inclusion. These packages are puzzled by the names given by METAPOST to its output. To correct this, you can say MPOST_TRANSLATE_NAMES="yes" in your Makefile. This options reworks the names of the outputs of METAPOST, so they follow a scheme the two aforementioned packages can cope with. When this option is active, the listing above becomes

illustr1-1.mps
illustr1-2.mps
illustr1-1.eps
illustr1-2.eps

and using the graphicx package is as easy as it should be:

\includegraphics{illustr1-1}%

Discovering METAPOST. It seems that many people do not know about METAPOST. If it is true for you but are interested in discovering it, the first good news is that this program is included by many (if not all) TeX distributions, hence it is probably already available on your system. The second good news is that you can easily find plenty of information and examples of its use on the WWW. For instance the TeX users group has a page on its website devoted to this tool. The list you will find there is pretty long, so let me add that I especially like the introduction written by André Heck, it might also be a good starting point for you.

Bibliography

BPS supports the preparation of bibliographies with BibTeX. First, you must be sure that the program TeX will find the bibliographic databases you enumerated in your document with bibliography statements. It is customary to gather bibliographic databases in some directory, for instance ${HOME}/share/bib. To let bibtex find these files, it is enough to add ${HOME}/share/bib to the content of the variable BIBINPUTS. If your bibliographic databases are scattered among several directories, you just need to let each of them appear in the value of the variable BIBINPUTS:

DOC = galley.tex
SRCS = part1.tex
SRCS+= part2.tex
BIBINPUTS = ${HOME}/share/bib
BIBINPUTS+= ../morebib
.include "latex.doc.mk"

Note that the make clean mantra will leave intact the BBL file produced by bibtex. This is because you sometimes need to send this file to your publisher rather than an unprocessed bibtex database. Hence the make clean or make distclean will leave you document's directory in the state you want to have it when you want to redistribute it. To get rid of the BBL file as well, you need to use the more powerful mantra make realclean.

Index

At that time, there is no specific provision in BPS to help the preparation of LaTeX documents featuring an index. You are on your own.

Several documents in the same directory

While it is often a good idea to reserve a directory for each of your documents, you might have some reasons to keep several documents in the same directory. You have your reasons and they are probably good ones, so BPS will do its best to help you.

We assume that you have two documents whose sources are living in the same directory, let's say an article and an abridged version of this article. These files share a macro file macro.tex, but are otherwise rather independent (from LaTeX's point of view). The text of the article is split across two files, section1.tex and section2.tex. The summary has just one text file summary.tex. The Makefile used looks like this:

DOC = article.tex
DOC+= summary.tex

SRCS = macros.tex

SRCS.article.tex = section1.tex
SRCS.article.tex+= section2.tex

.include "latex.doc.mk"

Automatically generating a part of a document

Assume you are working on a document containing a table whose content is likely to change several times and will need to be updated. Such a table could be a budget: when information on the situation evolves, so does the budget. It can be quite tedious to type in a table in LaTeX, and updating it might even be trickier. In such a situation, it is probably a good idea to write a program reading the raw data of your table and writing a LaTeX table displaying your data and everything you want to compute from it. Such a program is usually very easy to write, because you only need to deal with text files all of the time.

So you have gathered the raw data of your table in the file table.raw and written a small program gentable that will write for you a LaTeX table on its standard output. In your manuscript, you use the name table to refer to the file containing the generated table. Here is your Makefile:

DOC = galley.tex

table.tex: gentable table.raw
	./gentable < table.raw > table.tex

REALCLEANFILES+= table.tex

.include "latex.doc.mk"

The example assume that the gentable utility in the recipe above is a filter, hence input and output are defined with the help of shell redirections. Other utilities may have other ways to define their input and output, a described by their respective manuals.

If you send your files to someone else, he will maybe not want to run your program gentable, so it is better to list table.tex in REALCLEANFILES than in CLEANFILES.

Of course, you can compute some text or a METAPOST picture, or pretty-print a piece of code, or whatever, instead of generating a table!

Source files spanning across several directories

Some workflows may prescribe that your source files are not located in a single directory, but disseminated across the file system. Imagine that your organisation uses a custom document class for its letters, where some picture appears. You do not want to copy the picture file in each of the folders hosting your letters, nor do you want to have a symbolic link to the picture in each of your directories because the file is irrelevant to your work: you just want to not even know anything about it. The solution to this problem is to rely on the TEXINPUTS variable, its content is a list of directories searched by TeX for its input files.

You can set the TEXINPUTS variable in your environment or in your Makefile, or even write a custom Makefile template including this setting. The role of this variable for TeX is pretty much the same than the role of the environment variable PATH in your shell.

Assume that the picture visually impersonating your organisation is in the ${HOME}/share/texmf/tex/organisation/visual.eps, in order to let TeX look for files in the folder containing the picture, you write a TEXINPUTS statement in your Makefile, like this:

DOC = galley.tex
TEXINPUTS = ${HOME}/share/texmf/organisation
.include "latex.doc.mk"

If you run make in the folder containing this Makefile, you will see something like this in your terminal:

$ make
make build
===> Multipass job for galley.dvi (aux)
env TEXINPUTS=".:${HOME}/share/texmf/organization:" latex galley.tex
This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
...

Take a look at the TEXINPUTS assignment in the env command. Its difference with respect to the declaration in the Makefile above means that TeX will also look for files in the current directory (this is what the initial dot stands for) and all standard TeX locations (this is what the final colon stands for).

If you want to have absolute control on the value of TEXINPUTS, you must add an assignment USE_STRICT_TEXINPUTS=yes in your Makefile. If it sees this statement, BPS will refrain from adding the initial dot and the final colon to your TEXINPUTS declaration.

The supporting macros for METAPOST also understand TEXINPUTS and USE_STRICT_TEXINPUTS. There is an analogous variable MPINPUTS governing the look up of METAPOST input files, it is accompanied with a USE_STRICT_MPINPUTS flag. If you want to have your TeX program and your METAPOST program to be run with different values for TEXINPUTS, you can pass the correct value to METAPOST through the MPTEXINPUTS variable, this variable is also accompanied by a USE_STRICT_MPTEXINPUTS flag.

bsdowl-2.2.2/test/www/tex/page-title.sgml000640 001751 001751 00000000651 12436317346 021410 0ustar00michaelmichael000000 000000

Producing TeX and LaTeX documents

The BSD Owl Scripts may be used to ease the production of TeX and LaTeX documents. As the TeX toolchain functions mostly like a compiler toolchain, TeX document production falls in the predilection domain of Make.

bsdowl-2.2.2/test/www/style/Makefile000640 001751 001751 00000001060 12436317346 020464 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW+= modern.css WWW+= modern_sz.css WWW+= classic.css WWW+= classic_sz.css WWW+= trendy.css WWW+= content.css WWW+= more.css WWW+= title.css WWW+= layout.css WWW+= scroll_layout.css WWWDIR = ${WWWBASE}/style # # update: # Brings the last style files into this directory # WPAGESDIR?= ${HOME}/Workshop/wpages .if exists(${WPAGESDIR}/style) update: cd ${WPAGESDIR} && ${MAKE} PREFIX='${HOME}' WWWDIR='${.CURDIR}' all install .else update: ${FAIL} WPAGESDIR not found .endif .include "www.files.mk" bsdowl-2.2.2/test/www/style/classic.css000640 001751 001751 00000006377 12436317346 021177 0ustar00michaelmichael000000 000000 /* classic.css -- CSS Classique */ @import url("classic_sz.css"); @import url("layout.css"); @import url("content.css"); @import url("title.css"); @import url("more.css"); body { background: #996666; } div#PAGE { border-style: outset; border-left-width: thin; border-right-width: thin; border-top-width: 0em; border-bottom-width: 0em; } /* Styles de texte */ div#TITLE p#INTRODUCTION { font-size: 80%; letter-spacing: 0.05em; } div#TITLE p#HEADLINE { color: #CCCCCC; letter-spacing: 0.33em; text-align: center; text-transform: uppercase; } div#CONTENT h1, div#CONTENT h2, div#CONTENT h3, div#CONTENT h4, div#CONTENT h5, div#CONTENT h6 { font-weight: normal; } div#CONTENT h1 { font-family: Palatino,Adobe Palatino,URW Palladio,URW Palladio L,Palladio,Bitstream Vera Serif,Times,Georgia,serif; color: #CC6600; } div#CONTENT h2 { font-family: Palatino,Adobe Palatino,URW Palladio,URW Palladio L,Palladio,Bitstream Vera Serif,Times,Georgia,serif; color: #996633; } div#CONTENT h3 { color: #996633; } div#CONTENT h3 { color: #996633; } div#CONTENT h4 { color: #996633; } div#CONTENT h5 { color: #996633; } div#CONTENT h6 { color: #996633; } div#MORE { color: #333300; } div#CONTENT a:link, div#CONTENT a:visited { text-decoration: none; } div#CONTENT a:hover { background: #FFFFCC; } div#MORE .news , div#MORE .link_page , div#MORE .link_local , div#MORE .link_external , div#MORE .action { font-family: Adobe Helvetica,Helvetica,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; font-size: 80%; border-style: solid; border-width: 1px; margin-top: 2em; } div#MORE .news .title, div#MORE .link_page .title, div#MORE .link_local .title, div#MORE .link_external .title, div#MORE .action .title { font-weight: bold; line-height: 100%; letter-spacing: 0.15em; padding: 5px; } div#MORE .news .body, div#MORE .link_page .body, div#MORE .link_local .body, div#MORE .link_external .body, div#MORE .action .body { padding: 5px; line-height: 140%; } /* Texte */ div#CONTENT { line-height: 160%; } /* Couleurs */ div#MORE .link_external .body { border-color: #9999CC; background: #eee; } div#MORE .link_external .title { background: #9999CC; } div#MORE .link_page .body { border-color: #CCCCFF; background: #eee; } div#MORE .link_page .title { background: #99CC99; } div#MORE .link_local .body { border-color: #CCFFCC; background: #eee; } div#MORE .link_local .title { background: #CC9999; } div#MORE .news .body { border-color: #FFCC66; background: #FFFFCC; } div#MORE .news .title { background: #FFCC66; } /* Listes de liens */ div#MORE .link_page ul, div#MORE .link_local ul, div#MORE .link_external ul { padding-left: 2em; padding-right: 1em; } div#MORE .link_page li a, div#MORE .link_local li a, div#MORE .link_external li a { text-decoration: none; } div#MORE .link_page li a:hover, div#MORE .link_local li a:hover, div#MORE .link_external li a:hover { text-decoration: underline; } div#TITLE p#INTRODUCTION{ font-family: Sans Serif; } div#TITLE p#LEGALISM { font-family: Palatino,Adobe Palatino,URW Palladio,URW Palladio L,Palladio,Bitstream Vera Serif,Times,Georgia,serif; font-size: 80%; text-align: justify; color: #CCCCCC; } div#TITLE p#LEGALISM:hover { color: black; } bsdowl-2.2.2/test/www/style/classic_sz.css000640 001751 001751 00000000222 12436317346 021672 0ustar00michaelmichael000000 000000 body { font-family: Palatino,Adobe Palatino,URW Palladio,URW Palladio L,Palladio,Bitstream Vera Serif,Times,Georgia,serif; font-size: 11pt; } bsdowl-2.2.2/test/www/style/content.css000640 001751 001751 00000002365 12436317346 021221 0ustar00michaelmichael000000 000000 /* content.css -- Présentation dans la zone de contenu */ div#CONTENT p { text-align: justify; text-indent: 10pt; } div#CONTENT h1, div#CONTENT h2 { text-indent: 0em; margin-left: 0em; } div#CONTENT h3, div#CONTENT h4, div#CONTENT h5, div#CONTENT h6 { text-indent: 0em; margin-left: 10pt; } div#CONTENT h1 { font-size: 170%; } div#CONTENT h2 { font-size: 140%; } div#CONTENT h3 { font-size: 120%; } div#CONTENT h4 { font-size: 110%; font-style: italic; text-align: center; } div#CONTENT h5 { font-size: 110%; } div#CONTENT h6 { font-size: 100%; } /* Structure */ div#CONTENT pre { font-size: 80%; line-height: 140%; margin-top: 12pt; margin-bottom: 14pt; text-align: left; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; } div#CONTENT pre.file, div#CONTENT pre.code { color: #660000; } div#CONTENT pre.shell { color: #006600; } div#CONTENT pre.shell:first-line { font-style: italic; } div#CONTENT ul.resources:before { font-style: italic; margin-left: -1em; } div#CONTENT ul.resources:lang(en):before { content: "Resources:"; } div#CONTENT ul.resources:lang(fr):before { content: "Ressources :"; } div#CONTENT a img { border: none; } bsdowl-2.2.2/test/www/style/layout.css000640 001751 001751 00000000042 12436317346 021052 0ustar00michaelmichael000000 000000 @import url("scroll_layout.css"); bsdowl-2.2.2/test/www/style/modern.css000640 001751 001751 00000006171 12436317346 021032 0ustar00michaelmichael000000 000000 /* modern.css - A Simple CSS for HTML documents */ @import url("modern_sz.css"); @import url("layout.css"); @import url("content.css"); @import url("title.css"); @import url("more.css"); body { background: #F6F6F6; } div#PAGE { border: outset thin black; background: white; } /* Styles de texte */ div#TITLE p#INTRODUCTION { font-size: 80%; letter-spacing: 0.05em; } div#TITLE p#HEADLINE { color: #CCCCCC; letter-spacing: 0.33em; text-align: left; text-transform: uppercase; } div#CONTENT h1, div#CONTENT h2, div#CONTENT h3, div#CONTENT h4, div#CONTENT h5, div#CONTENT h6 { font-weight: normal; } div#CONTENT h1 { color: #CC6600; border-bottom: thin solid; } div#CONTENT h2 { color: #996633; } div#CONTENT h3 { color: #996633; } div#CONTENT h3 { color: #996633; } div#CONTENT h4 { color: #996633; } div#CONTENT h5 { color: #996633; } div#CONTENT h6, div#CONTENT p span.title { color: #996633; } div#CONTENT p span.title { font-style: italic; } div#MORE { color: #333300; } div#CONTENT a:link, div#CONTENT a:visited { text-decoration: none; } div#CONTENT a:hover { background: #FFFFCC; } div#MORE .news , div#MORE .link_page , div#MORE .link_local , div#MORE .link_external , div#MORE .action { font-family: Lucida Grande,Lucida Sans Unicode,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; font-size: 80%; border-style: solid; border-width: 1px; margin-top: 2em; } div#MORE .news .title, div#MORE .link_page .title, div#MORE .link_local .title, div#MORE .link_external .title, div#MORE .action .title { font-weight: bold; line-height: 100%; letter-spacing: 0.15em; padding: 5px; } div#MORE .news .body, div#MORE .link_page .body, div#MORE .link_local .body, div#MORE .link_external .body, div#MORE .action .body { padding: 5px; line-height: 140%; } /* Texte */ div#CONTENT { line-height: 160%; } /* Couleurs */ div#MORE .link_external .body { border-color: #9999CC; background: #eee; } div#MORE .link_external .title { background: #9999CC; } div#MORE .link_page .body { border-color: #CCCCFF; background: #eee; } div#MORE .link_page .title { background: #99CC99; } div#MORE .link_local .body { border-color: #CCFFCC; background: #eee; } div#MORE .link_local .title { background: #CC9999; } div#MORE .news .body { border-color: #FFCC66; background: #FFFFCC; } div#MORE .news .title { background: #FFCC66; } /* Listes de liens */ div#MORE .link_page ul, div#MORE .link_local ul, div#MORE .link_external ul { padding-left: 2em; padding-right: 1em; } div#MORE .link_page li a, div#MORE .link_local li a, div#MORE .link_external li a { text-decoration: none; } div#MORE .link_page li a:hover, div#MORE .link_local li a:hover, div#MORE .link_external li a:hover { text-decoration: underline; } div#TITLE p#INTRODUCTION{ font-family: Lucida Grande,Lucida Sans Unicode,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; } div#TITLE p#LEGALISM { font-family: Lucida Grande,Lucida Sans Unicode,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; font-size: 80%; text-align: justify; color: #CCCCCC; } div#TITLE p#LEGALISM:hover { color: black; } bsdowl-2.2.2/test/www/style/modern_sz.css000640 001751 001751 00000000200 12436317346 021531 0ustar00michaelmichael000000 000000 body { font-family: Lucida Grande,Lucida Sans Unicode,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; font-size: 11pt; } bsdowl-2.2.2/test/www/style/more.css000640 001751 001751 00000000146 12436317346 020504 0ustar00michaelmichael000000 000000 div#MORE .link_local, div#MORE .link_external, div#MORE .news, div#MORE .action { font-size: 80%; } bsdowl-2.2.2/test/www/style/scroll_layout.css000640 001751 001751 00000004113 12436317346 022433 0ustar00michaelmichael000000 000000 /* scroll_layout.css -- Dimensions et positions pour les parchemins */ /* SYNOPSIS body.scroll { font-family: Serif; font-size: 10pt; } @import "scroll_layout.css" La déclaration de la fonte générale et de la taille du corps de texte est aussi une information métrique, car des unités de la CSS utilisent des unités relatives. */ body.scroll, body.scroll div#CANVAS, body.scroll div#PAGE div#HEADER, body.scroll div#PAGE div#FOOTER, body.scroll div#PAGE div#TITLE, body.scroll div#PAGE div#CONTENT { margin: 0px 0px 0px 0px; } body.scroll div#CANVAS { margin-left: auto; margin-right: auto; width: 65em; margin-top: 6ex; margin-bottom: 6ex; } body.scroll div#PAGE { margin-top: 0em; margin-bottom: 0em; padding-bottom: 6em; top: 0em; bottom: auto; left: 0em; right: 0em; width: 48em; height: auto; min-height: 100%; background: white; } body.scroll div#MORE { position: fixed; margin-left: 51em; top: auto; bottom: 2em; width: 14em; } body.scroll div#PAGE div#HEADER, body.scroll div#PAGE div#TITLE, body.scroll div#PAGE div#CONTENT, body.scroll div#PAGE div#FOOTER { margin-left: auto; margin-right: auto; padding-left: 6em; padding-right: 6em; width: 36em; } body.scroll div#PAGE div#TITLE { margin-left: auto; margin-right: auto; width: 36em; } body.scroll div#PAGE div#HEADER, body.scroll div#PAGE div#FOOTER{ visibility: hidden; height: 0px; } /* Espaces verticaux dans la structure */ body.scroll div#PAGE div#CONTENT p { margin-top: 0em; margin-bottom: 0em; } body.scroll div#PAGE div#CONTENT h1, body.scroll div#PAGE div#CONTENT h2, body.scroll div#PAGE div#CONTENT h3, body.scroll div#PAGE div#CONTENT h4 { margin-top: 1.2em; margin-bottom: 0.5em; padding-bottom: 0.2em; } body.scroll div#PAGE div#TITLE p#HEADLINE { margin-top: 3em; margin-bottom: 2em; } body.scroll div#PAGE div#TITLE p#LEGALISM { margin-top: 20pt; margin-bottom: 10pt; } body.scroll div#PAGE div#CONTENT p span.title { padding-right: 1em; } body.scroll div#PAGE div#CONTENT pre.reachme { font-size: 110%; letter-spacing: 105%; } bsdowl-2.2.2/test/www/style/title.css000640 001751 001751 00000000504 12436317346 020661 0ustar00michaelmichael000000 000000 /* title.css -- Présentation dans la zone de titre */ div#TITLE p#HEADLINE { font-size: 170%; } div#TITLE p#INTRODUCTION { text-align: justify; } div#TITLE p#INTRODUCTION:lang(en):before, div#TITLE p#INTRODUCTION:lang(fr):before, div#TITLE p#INTRODUCTION:before { content: "Introduction : "; font-weight: bold; } bsdowl-2.2.2/test/www/style/trendy.css000640 001751 001751 00000006070 12436317346 021051 0ustar00michaelmichael000000 000000 /* modern.css - A Simple CSS for HTML documents */ @import url("modern_sz.css"); @import url("layout.css"); @import url("content.css"); @import url("title.css"); @import url("more.css"); body { background: white; } div#PAGE { border: none; background: white; } body.scroll div#CANVAS { margin-top: 0ex; margin-bottom: 0ex; } /* Styles de texte */ div#TITLE p#INTRODUCTION { font-size: 80%; letter-spacing: 0.05em; } div#TITLE p#HEADLINE { color: #CCCCCC; letter-spacing: 0.33em; text-align: left; text-transform: uppercase; } div#CONTENT h1 + p, div#CONTENT h2 + p, div#CONTENT h3 + p, div#CONTENT h4 + p, div#CONTENT h5 + p, div#CONTENT h6 + p { text-indent: 0; } p . noindent { text-indent: 0; } div#CONTENT p { text-indent: 20pt; } div#CONTENT h1, div#CONTENT h2, div#CONTENT h3, div#CONTENT h4, div#CONTENT h5, div#CONTENT h6 { font-weight: normal; } div#CONTENT h1 { color: #CC6600; border-bottom: thin solid; } div#CONTENT h2 { color: #996633; } div#CONTENT h3 { color: #996633; } div#CONTENT h3 { color: #996633; } div#CONTENT h4 { color: #996633; } div#CONTENT h5 { color: #996633; } div#CONTENT h6, div#CONTENT p span.title { color: #996633; } div#CONTENT p span.title { font-style: italic; } div#MORE { color: #333300; } div#CONTENT a:link, div#CONTENT a:visited { text-decoration: none; } div#CONTENT a:hover { background: #FFFFCC; } div#MORE .news , div#MORE .link_page , div#MORE .link_local , div#MORE .link_external , div#MORE .action { font-family: Lucida Grande,Lucida Sans Unicode,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; font-size: 80%; border: none; margin-top: 2em; } div#MORE .news .title, div#MORE .link_page .title, div#MORE .link_local .title, div#MORE .link_external .title, div#MORE .action .title { font-weight: bold; line-height: 100%; letter-spacing: 0.15em; padding: 5px; } div#MORE .news .body, div#MORE .link_page .body, div#MORE .link_local .body, div#MORE .link_external .body, div#MORE .action .body { padding: 5px; line-height: 140%; } /* Texte */ div#CONTENT { line-height: 140%; } /* Couleurs */ div#MORE .link_external .title { background: #9999CC; } div#MORE .link_page .title { background: #99CC99; } div#MORE .link_local .title { background: #CC9999; } div#MORE .news .title { background: #FFCC66; } /* Listes de liens */ div#MORE .link_page ul, div#MORE .link_local ul, div#MORE .link_external ul { padding-left: 2em; padding-right: 1em; } div#MORE .link_page li a, div#MORE .link_local li a, div#MORE .link_external li a { text-decoration: none; } div#MORE .link_page li a:hover, div#MORE .link_local li a:hover, div#MORE .link_external li a:hover { text-decoration: underline; } div#TITLE p#INTRODUCTION{ font-family: Lucida Grande,Lucida Sans Unicode,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; } div#TITLE p#LEGALISM { font-family: Lucida Grande,Lucida Sans Unicode,Arial,Verdana,Bitstream Vera Sans,sans-serif,sans; font-size: 80%; text-align: justify; color: #CCCCCC; } div#TITLE p#LEGALISM:hover { color: black; } bsdowl-2.2.2/test/www/sgml/copyright-statement.sgml000640 001751 001751 00000000533 12436317346 023530 0ustar00michaelmichael000000 000000 This document is copyright (c) 2008, 2009, 2010, 2011 Michael Grünewald. BSD Owl Scripts is copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 Michael Grünewald, it is released under the terms of the CeCILL-B licence (see COPYING in the sources). bsdowl-2.2.2/test/www/sgml/head-css-global.sgml000640 001751 001751 00000000555 12436317346 022447 0ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/sgml/main.sgml000640 001751 001751 00000003553 12436317346 020447 0ustar00michaelmichael000000 000000 ]> &head-title; &head-css-global;
&more-news;
]]> &more-download;
]]> &more-elink; ]]> &more-ilink; ]]>
&page-title;

©right-statement;

&page-content;
bsdowl-2.2.2/test/www/sgml/more-download.sgml000640 001751 001751 00000000372 12436317346 022266 0ustar00michaelmichael000000 000000
Download
bsdowl-2.2.2/test/www/sgml/more-elink.sgml000640 001751 001751 00000000705 12436317346 021561 0ustar00michaelmichael000000 000000
On the WWW
bsdowl-2.2.2/test/www/sgml/more-ilink.sgml000640 001751 001751 00000001010 12436317346 021553 0ustar00michaelmichael000000 000000
Sections
bsdowl-2.2.2/test/www/sgml/more-news.sgml000640 001751 001751 00000000422 12436317346 021427 0ustar00michaelmichael000000 000000
Latest News
  • 2011-04-28 release-1.4
  • 2011-04-08 releng-1.4-bp
  • 2010-08-01 release-1.3
bsdowl-2.2.2/test/www/sgml/page-footer.sgml000640 001751 001751 00000000147 12436317346 021727 0ustar00michaelmichael000000 000000 $Date$ bsdowl-2.2.2/test/www/sgml/page-header.sgml000640 001751 001751 00000000147 12436317346 021661 0ustar00michaelmichael000000 000000 $Date$ bsdowl-2.2.2/test/www/ocaml/Makefile000640 001751 001751 00000000377 12436317346 020431 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW = ocaml.html WWWDIR = ${WWWBASE} SRCS+= head-title.sgml SRCS+= page-title.sgml SRCS+= page-content.sgml SRCS+= more-ilink.sgml SRCS+= more-elink.sgml SRCS+= more-download.sgml .include "scroll.mk" bsdowl-2.2.2/test/www/ocaml/head-title.sgml000640 001751 001751 00000000254 12436317346 021667 0ustar00michaelmichael000000 000000 Producing and deploying OCaml software bsdowl-2.2.2/test/www/ocaml/page-content.sgml000640 001751 001751 00000000234 12436317346 022231 0ustar00michaelmichael000000 000000

Yet to be written

bsdowl-2.2.2/test/www/ocaml/page-title.sgml000640 001751 001751 00000000503 12436317346 021677 0ustar00michaelmichael000000 000000

Producing and deploying OCaml software

We describe services given by BSD Make Pallàs Scritps in the production and deployment of OCaml software.

bsdowl-2.2.2/test/www/index/Makefile000640 001751 001751 00000000432 12436317346 020435 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW = index.html WWWDIR = ${WWWBASE} SRCS+= head-title.sgml SRCS+= page-title.sgml SRCS+= page-content.sgml SRCS+= more-ilink.sgml SRCS+= more-elink.sgml SRCS+= more-download.sgml SRCS+= head-css-local.sgml .include "scroll.mk" bsdowl-2.2.2/test/www/index/head-css-local.sgml000640 001751 001751 00000000557 12436317346 022450 0ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/index/head-title.sgml000640 001751 001751 00000000225 12436317346 021701 0ustar00michaelmichael000000 000000 BSD Owl Scripts bsdowl-2.2.2/test/www/index/page-content.sgml000640 001751 001751 00000013634 12436317346 022255 0ustar00michaelmichael000000 000000

Introducing Make

Work on Unix systems has a strong emphasis on files, and a typical work session with such a system involves the creation of files (sources) and the invocation of many data processing procedures (recipes) yielding intermediary and final files (objects) as output of their work. Most of the work is usually performed through the use of a shell.

The Make program is a utility whose input is a workflow declaring tasks (targets in Make's parlance) and means to achieve them, and whose invocation yields execution of the given tasks.

This presentation emphasizes that Make is a day-to-day companion of the UNIX operator, as it can be used to systematize a large part of its work. You can read more about the Make program and especially on the FreeBSD Make program by reading the paragraphs dedicated to Make in the FreeBSD Developer's Handbook, and the PMake tutorial (the PMake program is the venerable ancestor of FreeBSD Make).

Make scripts

Make's input is usually not a static specification of the workflow graph, but instead a parametrized specification of the graph, it is then possible to generalize specifications in order to manage many similar situations with the same specification. We call these generic specifications Make scripts, it is possible to gather them in libraries of scripts solving problems occuring in related situations.

BSD Owl Scripts is a collection of such libraries. They can be used to ease the development of OCaml software, the production of TeX and LaTeX documents, and a couple of other things.

BSD Make

Make is not the name of a well defined program, but rather the name of a large brotherhood. Each of the brother has its own strengths and weaknesses, and also its own dialect used to prepare its input specification. BSD Make Pallàs scripts can be used with three of these brothers, all of them being descendants of the make program in BSD4.4. These programs are:

  • FreeBSD's make;
  • MAC OS-X's bsdmake;
  • NetBSD's bmake.

Users of Linux based system are likely to be equipped with GNU Make. This version of Make is a piece of a larger puzzle, the autotools; without these autotools, it is not so useful. However, NetBSD's bmake works fine under many Linux based systems. You can get source files for it at Simon J. Gerraty's, see build instructions in the INSTALL file of BSD Owl Scripts distribution.

Downloading, installing and using

You shall download the latest source distribution: &bps-current-tarball-name;. If you are running a Linux based system, or any system but FreeBSD, NetBSD and MAC OS-X, you also shall consider getting Simon J. Garrety's following software: bmake.tar.gz and mk.tar.gz.

See the INSTALL file in the source distribution for installation instructions. In a few words, you need to copy the script files in some directory and arrange so that your Make program knows about this.

Specific pages are devoted to the uses of the BSD Make Pallàs Scripts:

  • producing TeX and LaTeX documents, note that the scripts have support for the drawing tool METAPOST;
  • producing OCaml software covers production and installation of programs and libraries, although some moderately advanced features of OCaml the compilers are not (yet) supported.
  • code generation presents some code generation tools and their integration in BSD Owl Scripts, M4 and Norman Ramsey's NOWEB are supported;
  • interface guidelines presents aspects shared by all the scripts, documentation for specific scripts occasionally refers to this document;
  • writing Makefiles discusses the art of writing Makefiles, it assumes you already know the basics and focuses on techniques used in BSD Owl Scripts.

Important Note: As this is the case for most software products, improper use of BSD Owl Scripts may lead to data loss or other random disagreement, you are on your own! See also the COPYING file shipped with the sources, where condition of utilisation are stated.

Software supporting BSD Owl Scripts

Some software come with handy scripts using BSD Make Pallàs Scripts, we list these friends here:

  • Bhrìd TeX, a family of TeX formats;
  • Libertine, a small set of libraries for the OCaml language;
  • Abach, a would-be geometry-oriented computation library, for the OCaml language.

BSD Owl Scripts is a Gna! hosted project

Registration Date: Tuesday 03/11/2008 at 20:35
License: CeCILL-B License
Development Status: 5 - Production/Stable
bsdowl-2.2.2/test/www/index/page-title.sgml000640 001751 001751 00000001273 12436317346 021720 0ustar00michaelmichael000000 000000

BSD Owl Scripts

BSD Owl Scripts is a group of BSD Make template files. They are written mich in the spirit of FreeBSD's Make template files, with portability in mind: they can also be used on GNU/Linux systems, Mac OS X and Sun Solaris. Currently available scripts may be used for OCaml projects and (La)TeX documents or macros.

Latest release is &bps-current-version; — get tarballbrowse source code

bsdowl-2.2.2/test/www/guidelines/Makefile000640 001751 001751 00000000404 12436317346 021455 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW = guidelines.html WWWDIR = ${WWWBASE} SRCS+= head-title.sgml SRCS+= page-title.sgml SRCS+= page-content.sgml SRCS+= more-ilink.sgml SRCS+= more-elink.sgml SRCS+= more-download.sgml .include "scroll.mk" bsdowl-2.2.2/test/www/guidelines/head-title.sgml000640 001751 001751 00000000232 12436317346 022720 0ustar00michaelmichael000000 000000 Interface guidelines bsdowl-2.2.2/test/www/guidelines/page-content.sgml000640 001751 001751 00000000235 12436317346 023267 0ustar00michaelmichael000000 000000

Yet to be written.

bsdowl-2.2.2/test/www/guidelines/page-title.sgml000640 001751 001751 00000000331 12436317346 022733 0ustar00michaelmichael000000 000000

Interface guidelines

Yet to be written.

bsdowl-2.2.2/test/www/generation/Makefile000640 001751 001751 00000000404 12436317346 021460 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW = generation.html WWWDIR = ${WWWBASE} SRCS+= head-title.sgml SRCS+= page-title.sgml SRCS+= page-content.sgml SRCS+= more-ilink.sgml SRCS+= more-elink.sgml SRCS+= more-download.sgml .include "scroll.mk" bsdowl-2.2.2/test/www/generation/head-title.sgml000640 001751 001751 00000000225 12436317346 022725 0ustar00michaelmichael000000 000000 Code generation bsdowl-2.2.2/test/www/generation/page-content.sgml000640 001751 001751 00000001123 12436317346 023267 0ustar00michaelmichael000000 000000

Using NOWEB to write TeX or LaTeX macros

Norman Ramsey's NOWEB literate programming tool can be used to write TeX or LaTeX macros.

The Makefile

The Makefile must declare several variables:

  • NOWEB enumerates your NOWEB files;
  • NOTANGLE enumerates the code files that need to be generated from the NOWEB files;
  • NOWEAVE
bsdowl-2.2.2/test/www/generation/page-title.sgml000640 001751 001751 00000000604 12436317346 022741 0ustar00michaelmichael000000 000000

Code generation

BSD Owl Scripts supports the generation of source files with Norman Ramsey's NOWEB literate programming tool. For now, this functionality is restricted to the preparation of TeX or LaTeX macros.

bsdowl-2.2.2/test/www/Template/Makefile000640 001751 001751 00000000542 12436317346 021103 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWW = index.html WWWDIR = ${WWWBASE} INCLUDE = with.news INCLUDE+= with.ilink INCLUDE+= with.elink SRCS = index.sgml SRCS+= head-title.sgml SRCS+= head-css.sgml SRCS+= page-title.sgml SRCS+= page-content.sgml SRCS+= more-news.sgml SRCS+= more-ilink.sgml SRCS+= more-elink.sgml .include "scroll.mk" bsdowl-2.2.2/test/www/Template/head-css.sgml000640 001751 001751 00000000422 12436317346 022013 0ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/www/Template/head-title.sgml000640 001751 001751 00000000156 12436317346 022350 0ustar00michaelmichael000000 000000 Lorem Ipsum bsdowl-2.2.2/test/www/Template/index.sgml000640 001751 001751 00000002140 12436317346 021432 0ustar00michaelmichael000000 000000 ]> &head-title; &head-css;
&more-news;
]]> &more-ilink; ]]> &more-elink; ]]>
&page-title;
&page-content;
bsdowl-2.2.2/test/www/Template/more-elink.sgml000640 001751 001751 00000001011 12436317346 022361 0ustar00michaelmichael000000 000000
Liens externes
bsdowl-2.2.2/test/www/Template/more-ilink.sgml000640 001751 001751 00000000772 12436317346 022402 0ustar00michaelmichael000000 000000
Liens sur cette page
bsdowl-2.2.2/test/www/Template/more-news.sgml000640 001751 001751 00000001174 12436317346 022245 0ustar00michaelmichael000000 000000
Late breaking news
Aliquam vel enim consequat sem aliquet hendrerit. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi. Donec dictum. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Praesent lacus. Sed nec risus ac risus fermentum vestibulum. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Nulla ut mauris. Nam iaculis blandit purus. Pellentesque elementum pharetra ligula.
bsdowl-2.2.2/test/www/Template/page-content.sgml000640 001751 001751 00000054054 12436317346 022722 0ustar00michaelmichael000000 000000

Sed nec risus ac risus fermentum vestibulum

Nunc vulputate leo id urna. Pellentesque suscipit erat vitae mauris. Nunc non mauris id eros venenatis adipiscing. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer tortor massa, aliquam a, lacinia nonummy, sagittis nec, eros. Pellentesque scelerisque purus. Fusce sollicitudin laoreet diam. Etiam neque. Vestibulum vestibulum ultrices turpis. Integer tortor massa, aliquam a, lacinia nonummy, sagittis nec, eros. Praesent lacus. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi.

Aliquam vel enim consequat sem aliquet hendrerit. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi. Donec dictum. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Praesent lacus. Sed nec risus ac risus fermentum vestibulum. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Nulla ut mauris. Nam iaculis blandit purus. Pellentesque elementum pharetra ligula.

Sed nec risus ac risus fermentum vestibulum

Nunc vulputate leo id urna. Pellentesque suscipit erat vitae mauris. Nunc non mauris id eros venenatis adipiscing. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer tortor massa, aliquam a, lacinia nonummy, sagittis nec, eros. Pellentesque scelerisque purus. Fusce sollicitudin laoreet diam. Etiam neque. Vestibulum vestibulum ultrices turpis. Integer tortor massa, aliquam a, lacinia nonummy, sagittis nec, eros. Praesent lacus. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi.

Aliquam vel enim consequat sem aliquet hendrerit. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi. Donec dictum. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Praesent lacus. Sed nec risus ac risus fermentum vestibulum. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Nulla ut mauris. Nam iaculis blandit purus. Pellentesque elementum pharetra ligula.

Ut a sapien

Phasellus nunc turpis, cursus non, rhoncus vitae, sollicitudin vel, velit. Etiam sed enim. Integer tortor massa, aliquam a, lacinia nonummy, sagittis nec, eros. Nam felis. Cras accumsan diam sed turpis. Vivamus suscipit lorem sed felis. Donec dictum. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Suspendisse auctor, sapien et suscipit tempor, turpis enim consequat sem, eu dictum nunc lorem at massa. Nullam malesuada dapibus orci.

Vivamus aliquet tempus velit

Nam iaculis blandit purus. Nulla placerat porta justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus aliquet tempus velit. Integer quis eros ut erat posuere dictum. Cras accumsan diam sed turpis. Sed sit amet purus at felis adipiscing aliquam. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna.

Suspendisse dictum, magna consectetuer hendrerit volutpat, sapien felis faucibus justo, ac dictum lacus pede in metus. Nulla facilisi. Pellentesque elementum pharetra ligula. Vivamus aliquet tempus velit. Sed et nibh eget purus scelerisque volutpat. Mauris eu quam eget nulla fermentum adipiscing. Ut diam. Nam varius ante dignissim arcu. Suspendisse vel sapien.

Nam iaculis blandit purus

Nulla facilisi. Etiam sed enim. Integer tortor massa, aliquam a, lacinia nonummy, sagittis nec, eros. Nullam non turpis. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Sed nec risus ac risus fermentum vestibulum. Aenean ut lectus. Sed sit amet purus at felis adipiscing aliquam. Pellentesque elementum pharetra ligula. Cras accumsan diam sed turpis. Morbi ut odio vitae eros luctus luctus. Curabitur turpis est, bibendum tristique, porttitor tempor, pulvinar vitae, tortor. Vivamus aliquet tempus velit.

In rhoncus

Vivamus aliquet tempus velit. Pellentesque suscipit erat vitae mauris. Vivamus suscipit lorem sed felis. Vivamus et nisl sit amet mauris aliquet molestie. Curabitur id ligula ac libero malesuada pharetra. Sed purus.

Nam iaculis blandit purus

Suspendisse dictum, magna consectetuer hendrerit volutpat, sapien felis faucibus justo, ac dictum lacus pede in metus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam malesuada dapibus orci. Aenean consectetuer pretium enim. Curabitur fringilla. Phasellus ullamcorper arcu vitae wisi. Proin leo risus, elementum eget, ultrices vitae, molestie sed, erat. Aenean tellus quam, condimentum a, adipiscing et, lacinia vel, ante. Ut a sapien. Vivamus viverra, turpis nec rhoncus ultricies, diam turpis eleifend nisl, a eleifend ante felis ac sapien. Sed purus. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Praesent lacus. Nullam non turpis.

Nulla placerat porta justo

In rhoncus. Sed nibh neque, aliquam ut, sagittis id, gravida et, est. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Sed nibh neque, aliquam ut, sagittis id, gravida et, est. Suspendisse potenti. Vivamus suscipit lorem sed felis. Integer orci. Curabitur dignissim. Sed mi. Mauris odio nibh, hendrerit id, cursus vel, sagittis a, dolor. Pellentesque elementum pharetra ligula. Suspendisse in mi non neque bibendum convallis. Suspendisse potenti. Suspendisse dictum, magna consectetuer hendrerit volutpat, sapien felis faucibus justo, ac dictum lacus pede in metus. Ut eu velit at massa auctor mattis.

Ut nec metus quis nulla posuere eleifend

Cras at elit. Ut diam. Nam iaculis blandit purus. Pellentesque suscipit erat vitae mauris. Vivamus et nisl sit amet mauris aliquet molestie. Phasellus ullamcorper arcu vitae wisi. Praesent ornare nulla nec justo. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Cras pede. Sed dapibus ipsum. Nam commodo. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Nulla placerat porta justo. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien.

Nulla facilisi. Mauris eu quam eget nulla fermentum adipiscing. Nulla ut mauris. Donec dictum. Sed consequat, leo pretium sagittis congue, ante nunc laoreet nisl, ac aliquam risus tellus commodo elit. Morbi ut odio vitae eros luctus luctus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla placerat porta justo. Nullam malesuada dapibus orci. Mauris eu quam eget nulla fermentum adipiscing. Ut posuere laoreet pede. Curabitur et lectus in tellus egestas hendrerit. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula.

Sed nec risus ac risus fermentum vestibulum;
  Nunc(vulputate, leo, id, urna) {
    Pellentesque(suscipit + erat - vitae * mauris);
    Nunc = Non(mauris,id);
  }

Aliquam vel enim consequat sem aliquet hendrerit. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi. Donec dictum. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Praesent lacus. Sed nec risus ac risus fermentum vestibulum. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Nulla ut mauris. Nam iaculis blandit purus. Pellentesque elementum pharetra ligula.

Morbi ut odio vitae eros luctus luctus

Sed purus. Nam iaculis blandit purus. Praesent faucibus dignissim enim. Sed iaculis eros vitae mauris. Curabitur et lectus in tellus egestas hendrerit. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Integer orci. Vivamus suscipit lorem sed felis. Ut eu velit at massa auctor mattis. Sed et nibh eget purus scelerisque volutpat. Phasellus ullamcorper arcu vitae wisi. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien.

Cras at elit. Ut diam. Nam iaculis blandit purus. Pellentesque suscipit erat vitae mauris. Vivamus et nisl sit amet mauris aliquet molestie. Phasellus ullamcorper arcu vitae wisi. Praesent ornare nulla nec justo. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Cras pede. Sed dapibus ipsum. Nam commodo. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Nulla placerat porta justo. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien.

Nulla facilisi. Mauris eu quam eget nulla fermentum adipiscing. Nulla ut mauris. Donec dictum. Sed consequat, leo pretium sagittis congue, ante nunc laoreet nisl, ac aliquam risus tellus commodo elit. Morbi ut odio vitae eros luctus luctus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla placerat porta justo. Nullam malesuada dapibus orci. Mauris eu quam eget nulla fermentum adipiscing. Ut posuere laoreet pede. Curabitur et lectus in tellus egestas hendrerit. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula.

$ ls -l *.html
-rw-rw----  1 lorem ipsum   2197 30 oct 22:06 index.html
-rw-r-----  1 lorem ipsum  23660 31 oct 00:00 lorem.html

Aliquam vel enim consequat sem aliquet hendrerit. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi. Donec dictum. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Praesent lacus. Sed nec risus ac risus fermentum vestibulum. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Nulla ut mauris. Nam iaculis blandit purus. Pellentesque elementum pharetra ligula.

Nam commodo

Nulla placerat porta justo. Nam ultricies ullamcorper nibh. Vivamus et nisl sit amet mauris aliquet molestie. Suspendisse in mi non neque bibendum convallis. Morbi ut odio vitae eros luctus luctus. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Aenean tellus quam, condimentum a, adipiscing et, lacinia vel, ante. Vestibulum vestibulum ultrices turpis. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Pellentesque suscipit erat vitae mauris. Cras pede. Nam tristique velit quis nisl.

Nulla facilisi

Aenean tellus quam, condimentum a, adipiscing et, lacinia vel, ante. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Cras et lectus ut nisl pharetra ornare. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Etiam molestie mi quis metus hendrerit tristique. Donec dictum. Curabitur dignissim. Suspendisse auctor, sapien et suscipit tempor, turpis enim consequat sem, eu dictum nunc lorem at massa. Nam ultricies ullamcorper nibh. Aliquam aliquet purus molestie dolor. Morbi ut odio vitae eros luctus luctus.

Pellentesque scelerisque purus

Praesent lacus. Nam felis. Curabitur id ligula ac libero malesuada pharetra. Curabitur id ligula ac libero malesuada pharetra. Vivamus et nisl sit amet mauris aliquet molestie. Nam ultricies ullamcorper nibh. Donec dictum. Phasellus ullamcorper arcu vitae wisi. Etiam molestie mi quis metus hendrerit tristique.

Sed purus

Nam tristique velit quis nisl. Fusce vulputate lacus at ipsum. Etiam sollicitudin lacus. Aliquam vel enim consequat sem aliquet hendrerit. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Donec dictum. Vivamus et nisl sit amet mauris aliquet molestie.

Etiam viverra viverra sem

Aenean ut lectus. Phasellus nunc turpis, cursus non, rhoncus vitae, sollicitudin vel, velit. Integer quis eros ut erat posuere dictum. Quisque in libero nec mi laoreet volutpat. Cras pede. Nam iaculis blandit purus. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

Maecenas tortor metus, pellentesque nec, vehicula vitae, suscipit sed, quam. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Morbi ut odio vitae eros luctus luctus. Etiam sed enim. Cras at elit. Integer bibendum. Aliquam vel enim consequat sem aliquet hendrerit. Aenean ut lectus. Etiam molestie mi quis metus hendrerit tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Quisque in libero nec mi laoreet volutpat

Suspendisse nibh. Praesent ornare nulla nec justo. Nam felis. Nullam non turpis. Ut posuere laoreet pede. Nulla ut mauris. Quisque vel erat eget diam consectetuer iaculis. Ut a sapien.

Pellentesque scelerisque purus. Nulla placerat porta justo. Aenean consectetuer pretium enim. Donec dictum. Suspendisse odio dolor, semper id, feugiat quis, sodales id, mauris. Ut eu velit at massa auctor mattis. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Suspendisse dictum, magna consectetuer hendrerit volutpat, sapien felis faucibus justo, ac dictum lacus pede in metus. Vivamus aliquet tempus velit. Suspendisse auctor, sapien et suscipit tempor, turpis enim consequat sem, eu dictum nunc lorem at massa. Cras accumsan diam sed turpis. Duis egestas, ipsum sit amet molestie tincidunt, ligula libero pretium risus, non faucibus tellus felis mattis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer bibendum. Aliquam vel enim consequat sem aliquet hendrerit.

Ut nec metus quis nulla posuere eleifend

Nam iaculis blandit purus. Suspendisse auctor, sapien et suscipit tempor, turpis enim consequat sem, eu dictum nunc lorem at massa. Cras ante velit, suscipit et, porta tempus, dignissim quis, magna. Ut eu velit at massa auctor mattis. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse id ante et elit accumsan semper. Nunc non mauris id eros venenatis adipiscing. Ut eu velit at massa auctor mattis. Aenean ut lectus. Aliquam vel enim consequat sem aliquet hendrerit. Suspendisse molestie dignissim neque. Nulla facilisi.

Ut diam

Vivamus et nisl sit amet mauris aliquet molestie. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Curabitur dignissim. Nulla vitae turpis. Fusce sollicitudin laoreet diam. Pellentesque suscipit erat vitae mauris. Morbi ut odio vitae eros luctus luctus. Nam iaculis blandit purus. Maecenas tortor metus, pellentesque nec, vehicula vitae, suscipit sed, quam. Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Integer orci. Suspendisse dictum, magna consectetuer hendrerit volutpat, sapien felis faucibus justo, ac dictum lacus pede in metus.

Etiam molestie mi quis metus hendrerit tristique. Ut diam. Quisque vel erat eget diam consectetuer iaculis. Pellentesque scelerisque purus. Mauris odio nibh, hendrerit id, cursus vel, sagittis a, dolor. Phasellus ullamcorper arcu vitae wisi. Sed dapibus ipsum. Vivamus viverra, turpis nec rhoncus ultricies, diam turpis eleifend nisl, a eleifend ante felis ac sapien. Cras accumsan diam sed turpis. Nam iaculis blandit purus. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nam ultricies ullamcorper nibh. Donec dictum. Sed purus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Sed iaculis eros vitae mauris

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque elementum pharetra ligula. Suspendisse dictum, magna consectetuer hendrerit volutpat, sapien felis faucibus justo, ac dictum lacus pede in metus. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Nullam non turpis. Nam iaculis blandit purus.

Nullam non turpis

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed mi. Etiam sollicitudin lacus. Nullam non turpis. Nam varius ante dignissim arcu. Praesent faucibus dignissim enim. Curabitur turpis est, bibendum tristique, porttitor tempor, pulvinar vitae, tortor. Curabitur interdum posuere risus. Pellentesque suscipit erat vitae mauris. Mauris eu quam eget nulla fermentum adipiscing. Curabitur interdum posuere risus. Nulla facilisi.

Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Curabitur turpis est, bibendum tristique, porttitor tempor, pulvinar vitae, tortor. Nulla placerat porta justo. Aenean consectetuer pretium enim. Nam condimentum. Cras ut mi sit amet quam consequat consequat. Sed nec risus ac risus fermentum vestibulum. Quisque sit amet ligula. Suspendisse nibh. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur id ligula ac libero malesuada pharetra.

Cras accumsan diam sed turpis.

Sed iaculis eros vitae mauris. Maecenas sed tortor id turpis consequat consequat. Nulla ut mauris. Sed sit amet purus at felis adipiscing aliquam. Pellentesque urna odio, varius eget, dignissim quis, vehicula placerat, nunc. Praesent faucibus dignissim enim. Suspendisse dictum, magna consectetuer hendrerit volutpat, sapien felis faucibus justo, ac dictum lacus pede in metus. Aenean consectetuer pretium enim. Mauris eu quam eget nulla fermentum adipiscing. Aliquam vel enim consequat sem aliquet hendrerit. Nulla ut mauris.

Integer orci

Proin leo risus, elementum eget, ultrices vitae, molestie sed, erat. Aliquam aliquet purus molestie dolor. Nunc vulputate leo id urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris eu quam eget nulla fermentum adipiscing. Maecenas sed tortor id turpis consequat consequat. Integer quis eros ut erat posuere dictum. Nulla vitae turpis. Aliquam tincidunt. Sed mi. Integer tortor massa, aliquam a, lacinia nonummy, sagittis nec, eros. Etiam sed enim. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Cras ut mi sit amet quam consequat consequat.

Nam iaculis blandit purus

Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Praesent lacus. Etiam molestie mi quis metus hendrerit tristique. In rhoncus. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi. Nam commodo. Ut eu velit at massa auctor mattis. Vivamus aliquet tempus velit. Vivamus viverra, turpis nec rhoncus ultricies, diam turpis eleifend nisl, a eleifend ante felis ac sapien. Suspendisse vel sapien. Nulla ut mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse id ante et elit accumsan semper. Etiam sed enim. Nulla facilisi. Praesent faucibus dignissim enim.

Vivamus aliquet tempus velit

Nullam malesuada dapibus orci. Phasellus nunc turpis, cursus non, rhoncus vitae, sollicitudin vel, velit. Nulla ut mauris. Nulla placerat porta justo. Aenean scelerisque sodales tortor. Sed purus. Sed dapibus ipsum. Aenean ut lectus.

Nam felis. Sed nibh neque, aliquam ut, sagittis id, gravida et, est. Vivamus neque velit, ornare vitae, tempor vel, ultrices et, wisi. Ut a sapien. Curabitur turpis est, bibendum tristique, porttitor tempor, pulvinar vitae, tortor. Nam ultricies ullamcorper nibh. Vestibulum vestibulum ultrices turpis. Aliquam vel enim consequat sem aliquet hendrerit. Praesent lacus. Cras ante velit, suscipit et, porta tempus, dignissim quis, magna. Praesent ornare nulla nec justo. In hac habitasse platea dictumst. Quisque vel erat eget diam consectetuer iaculis. Aenean scelerisque sodales tortor. Etiam viverra viverra sem. In rhoncus.

Integer orci

Proin tellus felis, tincidunt eget, dictum et, adipiscing et, urna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse id ante et elit accumsan semper. Quisque sit amet ligula. Pellentesque elementum pharetra ligula. Nam commodo. Vivamus suscipit lorem sed felis. Curabitur id ligula ac libero malesuada pharetra. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Ut diam. Nam varius ante dignissim arcu. Integer orci.

Praesent faucibus dignissim enim

Sed sit amet purus at felis adipiscing aliquam. Maecenas tortor metus, pellentesque nec, vehicula vitae, suscipit sed, quam. Sed purus. Mauris eu quam eget nulla fermentum adipiscing. Ut eu velit at massa auctor mattis. Nulla placerat porta justo. Cras et lectus ut nisl pharetra ornare.

Curabitur et lectus in tellus egestas hendrerit. Curabitur interdum posuere risus. Maecenas tortor metus, pellentesque nec, vehicula vitae, suscipit sed, quam. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Aenean scelerisque sodales tortor. Fusce sollicitudin laoreet diam. Integer bibendum. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Suspendisse leo ipsum, rutrum cursus, malesuada id, dapibus sed, urna. Ut eu velit at massa auctor mattis. Vivamus viverra, turpis nec rhoncus ultricies, diam turpis eleifend nisl, a eleifend ante felis ac sapien.

bsdowl-2.2.2/test/www/Template/page-footer.sgml000640 001751 001751 00000000173 12436317346 022537 0ustar00michaelmichael000000 000000 Lorem Ipsum --- 9 mai 2008 bsdowl-2.2.2/test/www/Template/page-header.sgml000640 001751 001751 00000000173 12436317346 022471 0ustar00michaelmichael000000 000000 Lorem Ipsum --- 9 mai 2008 bsdowl-2.2.2/test/www/Template/page-title.sgml000640 001751 001751 00000001515 12436317346 022363 0ustar00michaelmichael000000 000000

Lorem Ipsum

Mauris eu quam eget nulla fermentum adipiscing. Nulla ut mauris. Donec dictum. Sed consequat, leo pretium sagittis congue, ante nunc laoreet nisl, ac aliquam risus tellus commodo elit. Morbi ut odio vitae eros luctus luctus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla placerat porta justo. Nullam malesuada dapibus orci. Mauris eu quam eget nulla fermentum adipiscing. Ut posuere laoreet pede. Curabitur et lectus in tellus egestas hendrerit. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula.

This example is copyright (c) 2008 Michael Grünewald.

bsdowl-2.2.2/test/www/Mk/scroll.mk000640 001751 001751 00000000744 12436317346 020072 0ustar00michaelmichael000000 000000 WWWMAIN?= main.sgml SRCS+= main.sgml SRCS+= head-css-global.sgml SRCS+= more-news.sgml SRCS+= copyright-statement.sgml DIRS+= . DIRS+= ${PROJECTBASE}/style DIRS+= ${PROJECTBASE}/sgml SCROLL_INCLUSION = head-css-local SCROLL_INCLUSION+= more-news SCROLL_INCLUSION+= more-ilink SCROLL_INCLUSION+= more-elink SCROLL_INCLUSION+= more-download .for inclusion in ${SCROLL_INCLUSION} .if !empty(SRCS:M${inclusion}.sgml) INCLUDE+= with.${inclusion} .endif .endfor .include "www.sgml.mk" bsdowl-2.2.2/test/tex/Makefile000640 001751 001751 00000000415 12436317346 017303 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION ### Makefile -- Test the production of TeX documents DOCS = octonions.tex FIGS = sketches.mp SRCS = macros.tex .MAKEFLAGS: -I../../bps .MAKEFLAGS: -I../../texmf .include "latex.doc.mk" ### End of file `Makefile' bsdowl-2.2.2/test/tex/macros.tex000640 001751 001751 00000000035 12436317346 017647 0ustar00michaelmichael000000 000000 \newcommand\command{COMMAND} bsdowl-2.2.2/test/tex/octonions.tex000640 001751 001751 00000000241 12436317346 020375 0ustar00michaelmichael000000 000000 \documentclass{article} \input{macros} \title{Octonions} \begin{document} En allant à la pêche, Toto se rendit compte que son seau était vide! \end{document} bsdowl-2.2.2/test/tex/sketches.mp000640 001751 001751 00000000222 12436317346 020006 0ustar00michaelmichael000000 000000 %%% illustrations.mp -- A simple figure beginfig(1) draw(0,0)--(10,0)--(10,10)--(0,10)--(0,0); endfig end %%% End of file `illustrations.mp' bsdowl-2.2.2/test/script/Makefile000640 001751 001751 00000000304 12436317346 020004 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION ### Makefile SCRIPT+= confdump.sh SCRIPT_CONFIGURE+= TMPDIR TMPDIR = ${PREFIX}/var/tmp .include "misc.script.mk" ### End of file `Makefile' bsdowl-2.2.2/test/script/confdump.sh000640 001751 001751 00000000142 12436317346 020513 0ustar00michaelmichael000000 000000 ### confdump.sh -- Écrire des variables echo 'TMPDIR=%%TMPDIR%%' ### End of file `confdump.sh' bsdowl-2.2.2/test/ocaml/Makefile000640 001751 001751 00000003667 12436317346 017612 0ustar00michaelmichael000000 000000 ### Makefile -- Test OCaml support # Author: Michael Grünewald # Date: Fri Oct 4 20:54:55 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt SUBDIR= wordcount-1 SUBDIR+= wordcount-2 SUBDIR+= fibonacci SUBDIR+= newton SUBDIR+= newton-doc SUBDIR+= toplevel SUBDIR+= basic-1 SUBDIR+= basic-2 SUBDIR+= basic-3 SUBDIR+= basic-4 SUBDIR+= ocamlfind SUBDIR+= golden_ratio SUBDIR+= miniproj-1 SUBDIR+= miniproj-2 SUBDIR+= miniproj-3 # # Test setup # COMPILE?= byte_code TESTENV= ${ENVTOOL} -i "PATH=${PATH}" "COMPILE=${COMPILE}" TESTENV+= "MAKEFLAGS=${MAKEFLAGS:NPACKAGE*:NPROJECT*}" test-clean: ${TESTENV} ${MAKE} realclean test-base: ${TESTENV} ${MAKE} all ${TESTENV} ${MAKE} realclean test-doc: ${TESTENV} ${MAKE} doc ${TESTENV} ${MAKE} realclean test-parallel: ${TESTENV} ${MAKE} depend ${TESTENV} ${MAKE} -j4 build ${TESTENV} ${MAKE} realclean test-objdir: ${INSTALL_DIR} ${.CURDIR}/objdir ${TESTENV} MAKEOBJDIRPREFIX=${.CURDIR}/objdir ${MAKE} test -r ${.CURDIR}/objdir/${.CURDIR}/basic-1/.depend test -r ${.CURDIR}/objdir/${.CURDIR}/basic-1/basic_lexer.ml test -r ${.CURDIR}/objdir/${.CURDIR}/basic-1/basic_parser.ml test -r ${.CURDIR}/objdir/${.CURDIR}/basic-1/basic_parser.mli test -x ${.CURDIR}/objdir/${.CURDIR}/golden_ratio/golden_ratio test-compile: ${TESTENV} COMPILE="byte_code" ${MAKE} test ${TESTENV} COMPILE="native_code" ${MAKE} test ${TESTENV} COMPILE="both" ${MAKE} test CLEANDIRS+= ${.CURDIR}/objdir test: test-clean test: test-base test: test-doc test: test-parallel test: test-objdir .include "bps.subdir.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/basic-1/000750 001751 001751 00000000000 12436317346 017354 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/basic-2/000750 001751 001751 00000000000 12436317346 017355 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/basic-3/000750 001751 001751 00000000000 12436317346 017356 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/basic-4/000750 001751 001751 00000000000 12436317346 017357 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/fibonacci/000750 001751 001751 00000000000 12436317346 020052 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/golden_ratio/000750 001751 001751 00000000000 12436317346 020603 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-1/000750 001751 001751 00000000000 12436317346 020122 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-2/000750 001751 001751 00000000000 12436317346 020123 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/000750 001751 001751 00000000000 12436317346 020124 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/newton-doc/000750 001751 001751 00000000000 12436317346 020212 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/newton/000750 001751 001751 00000000000 12436317346 017447 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/ocamlfind/000750 001751 001751 00000000000 12436317346 020071 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/toplevel/000750 001751 001751 00000000000 12436317346 017767 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/wordcount-1/000750 001751 001751 00000000000 12436317346 020317 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/wordcount-2/000750 001751 001751 00000000000 12436317346 020320 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/wordcount-2/Makefile000640 001751 001751 00000001242 12436317346 021760 0ustar00michaelmichael000000 000000 ### Makefile -- Counting characters and lines in a file # Author: Michael Grünewald # Date: Fri Oct 4 06:52:41 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= wordcount SRCS+= ancillary.ml SRCS+= application.ml .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/wordcount-2/ancillary.ml000640 001751 001751 00000001721 12436317346 022632 0ustar00michaelmichael000000 000000 (* Ancillary -- Count characters and words on stdin BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let is_word c = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') let rec wc chan wordflag nc nw nl = let next = try Some(input_char chan) with End_of_file -> None in match next with | Some '\n' -> wc chan false (succ nc) nw (succ nl) | Some c -> ( match is_word c, wordflag with | true, true | false, false -> wc chan wordflag (succ nc) nw nl | true, false -> wc chan true (succ nc) (succ nw) nl | false, true -> wc chan false (succ nc) nw nl ) | None -> (nc, nw, nl) bsdowl-2.2.2/test/ocaml/wordcount-2/application.ml000640 001751 001751 00000001123 12436317346 023153 0ustar00michaelmichael000000 000000 (* Application -- Count characters and words on stdin BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let main () = let (nc, nw, nl) = Ancillary.wc stdin false 0 0 1 in Printf.printf "%d %d %d\n" nc nw nl let () = main () bsdowl-2.2.2/test/ocaml/wordcount-1/Makefile000640 001751 001751 00000001164 12436317346 021762 0ustar00michaelmichael000000 000000 ### Makefile -- Counting characters and lines in a file # Author: Michael Grünewald # Date: Thu Oct 3 22:42:23 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= wordcount .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/wordcount-1/wordcount.ml000640 001751 001751 00000002121 12436317346 022672 0ustar00michaelmichael000000 000000 (* Wordcount -- Count characters and words on stdin BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let is_word c = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') let rec loop chan wordflag nc nw nl = let next = try Some(input_char chan) with End_of_file -> None in match next with | Some '\n' -> loop chan false (succ nc) nw (succ nl) | Some c -> ( match is_word c, wordflag with | true, true | false, false -> loop chan wordflag (succ nc) nw nl | true, false -> loop chan true (succ nc) (succ nw) nl | false, true -> loop chan false (succ nc) nw nl ) | None -> (nc, nw, nl) let main () = let (nc, nw, nl) = loop stdin false 0 0 1 in Printf.printf "%d %d %d\n" nc nw nl let () = main () bsdowl-2.2.2/test/ocaml/toplevel/Makefile000640 001751 001751 00000001232 12436317346 021426 0ustar00michaelmichael000000 000000 ### Makefile -- Custom toplevel # Author: Michael Grünewald # Date: Fri Oct 4 08:23:21 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt TOPLEVEL= toplevel SRCS+= initialise_toplevel.ml LIBS+= unix LIBS+= str .include "ocaml.toplevel.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/toplevel/initialise_toplevel.ml000640 001751 001751 00000000012 12436317346 024357 0ustar00michaelmichael000000 000000 (* nop *) bsdowl-2.2.2/test/ocaml/ocamlfind/Makefile000640 001751 001751 00000001250 12436317346 021530 0ustar00michaelmichael000000 000000 ### Makefile -- Counting characters and lines in a file # Author: Michael Grünewald # Date: Fri Oct 4 23:06:24 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= wordcount SRCS+= extras.ml SRCS+= wordcount.ml PKGS= str .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/ocamlfind/extras.ml000640 001751 001751 00000001032 12436317346 021726 0ustar00michaelmichael000000 000000 (* Wordcount -- Count characters and words on stdin BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let main () = let open Str in let re = regexp ".*" in ignore re bsdowl-2.2.2/test/ocaml/ocamlfind/wordcount.ml000640 001751 001751 00000002121 12436317346 022444 0ustar00michaelmichael000000 000000 (* Wordcount -- Count characters and words on stdin BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let is_word c = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') let rec loop chan wordflag nc nw nl = let next = try Some(input_char chan) with End_of_file -> None in match next with | Some '\n' -> loop chan false (succ nc) nw (succ nl) | Some c -> ( match is_word c, wordflag with | true, true | false, false -> loop chan wordflag (succ nc) nw nl | true, false -> loop chan true (succ nc) (succ nw) nl | false, true -> loop chan false (succ nc) nw nl ) | None -> (nc, nw, nl) let main () = let (nc, nw, nl) = loop stdin false 0 0 1 in Printf.printf "%d %d %d\n" nc nw nl let () = main () bsdowl-2.2.2/test/ocaml/newton/Makefile000640 001751 001751 00000001244 12436317346 021111 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Thu Oct 3 23:39:20 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= newton SRCS+= newton.ml test: newton.cma .PHONY ocaml newton.cma test_newton.ml .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/newton/newton.ml000640 001751 001751 00000001125 12436317346 021313 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let iter dx f x0 = let y = f x0 in let dy= (f(x0 +. dx) -. y) in x0 -. dx *. y /. dy let phi_iter x0 = (x0 *. x0 +. 1.0) /. (2.0 *. x0 -. 1.0) bsdowl-2.2.2/test/ocaml/newton/newton.mli000640 001751 001751 00000001525 12436317346 021470 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Newton's method. *) val iter : float -> (float -> float) -> float -> float (** [iter dx f x0] is the Newton iterate obtained by applying one time Newton's method to [f] and [x0], using the infinitesimal [dx]. It assumes the function [f] is defined for every real number. *) val phi_iter : float -> float (** [phi_iter x0] is the Newton iterate following [x0] and converging the golden ratio [phi]. *) bsdowl-2.2.2/test/ocaml/newton/test_newton.ml000640 001751 001751 00000000250 12436317346 022350 0ustar00michaelmichael000000 000000 #load "newton.cma";; open Printf;; let rec loop n x = printf "%02d %12.8f\n" n x; if n > 0 then loop (pred n) (Newton.phi_iter x) ;; let () = loop 6 1.0 ;; bsdowl-2.2.2/test/ocaml/newton-doc/Makefile000640 001751 001751 00000001255 12436317346 021656 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Thu Oct 3 23:39:20 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= newton SRCS+= newton.ml USE_ODOC= yes ODOC_NAME= newtontk ODOC_TITLE= Newton's method#' .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/newton-doc/newton.ml000640 001751 001751 00000001125 12436317346 022056 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let iter dx f x0 = let y = f x0 in let dy= (f(x0 +. dx) -. y) in x0 -. dx *. y /. dy let phi_iter x0 = (x0 *. x0 +. 1.0) /. (2.0 *. x0 -. 1.0) bsdowl-2.2.2/test/ocaml/newton-doc/newton.mli000640 001751 001751 00000001525 12436317346 022233 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Newton's method. *) val iter : float -> (float -> float) -> float -> float (** [iter dx f x0] is the Newton iterate obtained by applying one time Newton's method to [f] and [x0], using the infinitesimal [dx]. It assumes the function [f] is defined for every real number. *) val phi_iter : float -> float (** [phi_iter x0] is the Newton iterate following [x0] and converging the golden ratio [phi]. *) bsdowl-2.2.2/test/ocaml/newton-doc/test_newton.ml000640 001751 001751 00000000250 12436317346 023113 0ustar00michaelmichael000000 000000 #load "newton.cma";; open Printf;; let rec loop n x = printf "%02d %12.8f\n" n x; if n > 0 then loop (pred n) (Newton.phi_iter x) ;; let () = loop 6 1.0 ;; bsdowl-2.2.2/test/ocaml/miniproj-3/Library/000750 001751 001751 00000000000 12436317346 021530 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/Makefile000640 001751 001751 00000001576 12436317346 021576 0ustar00michaelmichael000000 000000 ### Makefile -- Mini project # Author: Michael Grünewald # Date: Sun Oct 13 10:50:45 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROJECT= golden_ratio VERSION= 1.0 AUTHOR= Michael Grünewald SUBDIR+= fibonacci SUBDIR+= newton SUBDIR+= golden_ratio SUBDIR+= manual PROJECTSETUP= debug profile release universe: .for setup in ${PROJECTSETUP} ${ENVTOOL} MAKEINITRC=Makefile.${setup} MAKEOBJDIR=${.CURDIR}/obj/${setup} ${MAKE} all .endfor .include "bps.project.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-3/fibonacci/000750 001751 001751 00000000000 12436317346 022041 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/golden_ratio/000750 001751 001751 00000000000 12436317346 022572 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/manual/000750 001751 001751 00000000000 12436317346 021401 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/newton/000750 001751 001751 00000000000 12436317346 021436 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/newton/Makefile000640 001751 001751 00000001213 12436317346 023074 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Thu Oct 3 23:39:20 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= newton SRCS+= newton.ml USE_ODOC= yes ODOC_FORMAT= odoc .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-3/newton/newton.ml000640 001751 001751 00000001125 12436317346 023302 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let iter dx f x0 = let y = f x0 in let dy= (f(x0 +. dx) -. y) in x0 -. dx *. y /. dy let phi_iter x0 = (x0 *. x0 +. 1.0) /. (2.0 *. x0 -. 1.0) bsdowl-2.2.2/test/ocaml/miniproj-3/newton/newton.mli000640 001751 001751 00000001525 12436317346 023457 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Newton's method. *) val iter : float -> (float -> float) -> float -> float (** [iter dx f x0] is the Newton iterate obtained by applying one time Newton's method to [f] and [x0], using the infinitesimal [dx]. It assumes the function [f] is defined for every real number. *) val phi_iter : float -> float (** [phi_iter x0] is the Newton iterate following [x0] and converging the golden ratio [phi]. *) bsdowl-2.2.2/test/ocaml/miniproj-3/manual/Makefile000640 001751 001751 00000000604 12436317346 023042 0ustar00michaelmichael000000 000000 ### Makefile -- Preparation of the golden_ratio manual # Author: Michael Grnewald # Date: Tue Oct 15 21:37:11 CEST 2013 # Copyright (c) 2013 Michael Grnewald # All rights reserved. # # This file is part of Waermondt. ODOC_TITLE= Golden Ratio DIRS+= ../newton MANUAL+= newton.odoc DIRS+= ../fibonacci MANUAL+= fibonacci.odoc .include "ocaml.manual.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-3/golden_ratio/Makefile000640 001751 001751 00000001347 12436317346 024240 0ustar00michaelmichael000000 000000 ### Makefile -- Computing the golden ratio # Author: Michael Grünewald # Date: Sat Oct 5 20:47:48 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= golden_ratio SRCS= main.ml LIBS+= nums LIBS+= newton LIBS+= fibonacci DIRS= ${.OBJDIR}/../newton DIRS+= ${.OBJDIR}/../fibonacci .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-3/golden_ratio/main.ml000640 001751 001751 00000000267 12436317346 024056 0ustar00michaelmichael000000 000000 open Printf let rec loop iter n x = printf "%02d %12.8f %s\n" n x (Fibonacci.phi_string n); if n < iter then loop iter (succ n) (Newton.phi_iter x) let () = loop 20 0 1.0 bsdowl-2.2.2/test/ocaml/miniproj-3/fibonacci/Makefile000640 001751 001751 00000001236 12436317346 023504 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Sat Oct 5 20:40:24 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= fibonacci SRCS+= fibonacci.ml LIBS= nums USE_ODOC= yes ODOC_FORMAT= odoc .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-3/fibonacci/fibonacci.ml000640 001751 001751 00000001405 12436317346 024311 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) open Num let rec fibo_num n = match n with | 0 -> Int 1 | 1 -> Int 1 | n -> add_num (fibo_num (n-1)) (fibo_num(n-2)) let calc n = if n < 0 then invalid_arg "Fibonacci.calc" else fibo_num n let phi_string n = let p, q = calc (n+1), calc n in let phi = div_num p q in approx_num_fix 8 phi bsdowl-2.2.2/test/ocaml/miniproj-3/fibonacci/fibonacci.mli000640 001751 001751 00000001202 12436317346 024455 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Compute Fibonacci numbers. The 0-th and 1-st Fibonacci numbers [F_0] and [F_1] are 1, and then [F_n+2 = F_n + F_n+1]. *) val calc : int -> Num.num val phi_string : int -> string bsdowl-2.2.2/test/ocaml/miniproj-3/Library/Ancillary/000750 001751 001751 00000000000 12436317346 023446 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/Library/Mk/000750 001751 001751 00000000000 12436317346 022077 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/Library/Mk/Makefile.debug000640 001751 001751 00000000052 12436317346 024622 0ustar00michaelmichael000000 000000 WITH_DEBUG=yes PROJECTEXPORT+= WITH_DEBUG bsdowl-2.2.2/test/ocaml/miniproj-3/Library/Mk/Makefile.profile000640 001751 001751 00000000056 12436317346 025200 0ustar00michaelmichael000000 000000 WITH_PROFILE=yes PROJECTEXPORT+= WITH_PROFILE bsdowl-2.2.2/test/ocaml/miniproj-3/Library/Mk/Makefile.release000640 001751 001751 00000000000 12436317346 025145 0ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-3/Library/Ancillary/codemetrics000750 001751 001751 00000000111 12436317346 025666 0ustar00michaelmichael000000 000000 #!/bin/sh : ${PROJECTBASE:?} find ${PROJECTBASE} -name '*.ml' | xargs wc bsdowl-2.2.2/test/ocaml/miniproj-2/Makefile000640 001751 001751 00000001320 12436317346 021560 0ustar00michaelmichael000000 000000 ### Makefile -- Mini project # Author: Michael Grünewald # Date: Sun Oct 13 10:50:45 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROJECT= golden_ratio VERSION= 1.0 AUTHOR= Michael Grünewald SUBDIR+= fibonacci SUBDIR+= newton SUBDIR+= golden_ratio SUBDIR+= manual .include "bps.project.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-2/fibonacci/000750 001751 001751 00000000000 12436317346 022040 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-2/golden_ratio/000750 001751 001751 00000000000 12436317346 022571 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-2/manual/000750 001751 001751 00000000000 12436317346 021400 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-2/newton/000750 001751 001751 00000000000 12436317346 021435 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-2/newton/Makefile000640 001751 001751 00000001213 12436317346 023073 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Thu Oct 3 23:39:20 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= newton SRCS+= newton.ml USE_ODOC= yes ODOC_FORMAT= odoc .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-2/newton/newton.ml000640 001751 001751 00000001125 12436317346 023301 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let iter dx f x0 = let y = f x0 in let dy= (f(x0 +. dx) -. y) in x0 -. dx *. y /. dy let phi_iter x0 = (x0 *. x0 +. 1.0) /. (2.0 *. x0 -. 1.0) bsdowl-2.2.2/test/ocaml/miniproj-2/newton/newton.mli000640 001751 001751 00000001525 12436317346 023456 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Newton's method. *) val iter : float -> (float -> float) -> float -> float (** [iter dx f x0] is the Newton iterate obtained by applying one time Newton's method to [f] and [x0], using the infinitesimal [dx]. It assumes the function [f] is defined for every real number. *) val phi_iter : float -> float (** [phi_iter x0] is the Newton iterate following [x0] and converging the golden ratio [phi]. *) bsdowl-2.2.2/test/ocaml/miniproj-2/manual/Makefile000640 001751 001751 00000000604 12436317346 023041 0ustar00michaelmichael000000 000000 ### Makefile -- Preparation of the golden_ratio manual # Author: Michael Grnewald # Date: Tue Oct 15 21:37:11 CEST 2013 # Copyright (c) 2013 Michael Grnewald # All rights reserved. # # This file is part of Waermondt. ODOC_TITLE= Golden Ratio DIRS+= ../newton MANUAL+= newton.odoc DIRS+= ../fibonacci MANUAL+= fibonacci.odoc .include "ocaml.manual.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-2/golden_ratio/Makefile000640 001751 001751 00000001347 12436317346 024237 0ustar00michaelmichael000000 000000 ### Makefile -- Computing the golden ratio # Author: Michael Grünewald # Date: Sat Oct 5 20:47:48 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= golden_ratio SRCS= main.ml LIBS+= nums LIBS+= newton LIBS+= fibonacci DIRS= ${.OBJDIR}/../newton DIRS+= ${.OBJDIR}/../fibonacci .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-2/golden_ratio/main.ml000640 001751 001751 00000000267 12436317346 024055 0ustar00michaelmichael000000 000000 open Printf let rec loop iter n x = printf "%02d %12.8f %s\n" n x (Fibonacci.phi_string n); if n < iter then loop iter (succ n) (Newton.phi_iter x) let () = loop 20 0 1.0 bsdowl-2.2.2/test/ocaml/miniproj-2/fibonacci/Makefile000640 001751 001751 00000001236 12436317346 023503 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Sat Oct 5 20:40:24 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= fibonacci SRCS+= fibonacci.ml LIBS= nums USE_ODOC= yes ODOC_FORMAT= odoc .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-2/fibonacci/fibonacci.ml000640 001751 001751 00000001405 12436317346 024310 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) open Num let rec fibo_num n = match n with | 0 -> Int 1 | 1 -> Int 1 | n -> add_num (fibo_num (n-1)) (fibo_num(n-2)) let calc n = if n < 0 then invalid_arg "Fibonacci.calc" else fibo_num n let phi_string n = let p, q = calc (n+1), calc n in let phi = div_num p q in approx_num_fix 8 phi bsdowl-2.2.2/test/ocaml/miniproj-2/fibonacci/fibonacci.mli000640 001751 001751 00000001202 12436317346 024454 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Compute Fibonacci numbers. The 0-th and 1-st Fibonacci numbers [F_0] and [F_1] are 1, and then [F_n+2 = F_n + F_n+1]. *) val calc : int -> Num.num val phi_string : int -> string bsdowl-2.2.2/test/ocaml/miniproj-1/Makefile000640 001751 001751 00000001177 12436317346 021571 0ustar00michaelmichael000000 000000 ### Makefile -- Mini project # Author: Michael Grünewald # Date: Sun Oct 13 10:50:45 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt SUBDIR+= fibonacci SUBDIR+= newton SUBDIR+= golden_ratio .include "bps.subdir.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-1/fibonacci/000750 001751 001751 00000000000 12436317346 022037 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-1/golden_ratio/000750 001751 001751 00000000000 12436317346 022570 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-1/newton/000750 001751 001751 00000000000 12436317346 021434 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/test/ocaml/miniproj-1/newton/Makefile000640 001751 001751 00000001244 12436317346 023076 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Thu Oct 3 23:39:20 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= newton SRCS+= newton.ml test: newton.cma .PHONY ocaml newton.cma test_newton.ml .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-1/newton/newton.ml000640 001751 001751 00000001125 12436317346 023300 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) let iter dx f x0 = let y = f x0 in let dy= (f(x0 +. dx) -. y) in x0 -. dx *. y /. dy let phi_iter x0 = (x0 *. x0 +. 1.0) /. (2.0 *. x0 -. 1.0) bsdowl-2.2.2/test/ocaml/miniproj-1/newton/newton.mli000640 001751 001751 00000001525 12436317346 023455 0ustar00michaelmichael000000 000000 (* Newton -- Newton's method BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Newton's method. *) val iter : float -> (float -> float) -> float -> float (** [iter dx f x0] is the Newton iterate obtained by applying one time Newton's method to [f] and [x0], using the infinitesimal [dx]. It assumes the function [f] is defined for every real number. *) val phi_iter : float -> float (** [phi_iter x0] is the Newton iterate following [x0] and converging the golden ratio [phi]. *) bsdowl-2.2.2/test/ocaml/miniproj-1/newton/test_newton.ml000640 001751 001751 00000000250 12436317346 024335 0ustar00michaelmichael000000 000000 #load "newton.cma";; open Printf;; let rec loop n x = printf "%02d %12.8f\n" n x; if n > 0 then loop (pred n) (Newton.phi_iter x) ;; let () = loop 6 1.0 ;; bsdowl-2.2.2/test/ocaml/miniproj-1/golden_ratio/Makefile000640 001751 001751 00000001546 12436317346 024237 0ustar00michaelmichael000000 000000 ### Makefile -- Computing the golden ratio # Author: Michael Grünewald # Date: Sat Oct 5 20:47:48 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= golden_ratio SRCS= main.ml LIBS+= nums LIBS+= newton LIBS+= fibonacci DIRS= ${.OBJDIR}/../newton DIRS+= ${.OBJDIR}/../fibonacci newton.cma: @cd ${.CURDIR}/../newton && ${MAKE} ${.TARGET} fibonacci.cma: @cd ${.CURDIR}/../fibonacci && ${MAKE} ${.TARGET} .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-1/golden_ratio/main.ml000640 001751 001751 00000000267 12436317346 024054 0ustar00michaelmichael000000 000000 open Printf let rec loop iter n x = printf "%02d %12.8f %s\n" n x (Fibonacci.phi_string n); if n < iter then loop iter (succ n) (Newton.phi_iter x) let () = loop 20 0 1.0 bsdowl-2.2.2/test/ocaml/miniproj-1/fibonacci/Makefile000640 001751 001751 00000001175 12436317346 023504 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Sat Oct 5 20:40:24 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= fibonacci SRCS+= fibonacci.ml LIBS= nums .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/miniproj-1/fibonacci/fibonacci.ml000640 001751 001751 00000001405 12436317346 024307 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) open Num let rec fibo_num n = match n with | 0 -> Int 1 | 1 -> Int 1 | n -> add_num (fibo_num (n-1)) (fibo_num(n-2)) let calc n = if n < 0 then invalid_arg "Fibonacci.calc" else fibo_num n let phi_string n = let p, q = calc (n+1), calc n in let phi = div_num p q in approx_num_fix 8 phi bsdowl-2.2.2/test/ocaml/miniproj-1/fibonacci/fibonacci.mli000640 001751 001751 00000001202 12436317346 024453 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Compute Fibonacci numbers. The 0-th and 1-st Fibonacci numbers [F_0] and [F_1] are 1, and then [F_n+2 = F_n + F_n+1]. *) val calc : int -> Num.num val phi_string : int -> string bsdowl-2.2.2/test/ocaml/golden_ratio/Makefile000640 001751 001751 00000001546 12436317346 022252 0ustar00michaelmichael000000 000000 ### Makefile -- Computing the golden ratio # Author: Michael Grünewald # Date: Sat Oct 5 20:47:48 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= golden_ratio SRCS= main.ml LIBS+= nums LIBS+= newton LIBS+= fibonacci DIRS= ${.OBJDIR}/../newton DIRS+= ${.OBJDIR}/../fibonacci newton.cma: @cd ${.CURDIR}/../newton && ${MAKE} ${.TARGET} fibonacci.cma: @cd ${.CURDIR}/../fibonacci && ${MAKE} ${.TARGET} .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/golden_ratio/main.ml000640 001751 001751 00000000267 12436317346 022067 0ustar00michaelmichael000000 000000 open Printf let rec loop iter n x = printf "%02d %12.8f %s\n" n x (Fibonacci.phi_string n); if n < iter then loop iter (succ n) (Newton.phi_iter x) let () = loop 20 0 1.0 bsdowl-2.2.2/test/ocaml/fibonacci/Makefile000640 001751 001751 00000001175 12436317346 021517 0ustar00michaelmichael000000 000000 ### Makefile -- Newton's method # Author: Michael Grünewald # Date: Sat Oct 5 20:40:24 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt LIBRARY= fibonacci SRCS+= fibonacci.ml LIBS= nums .include "ocaml.lib.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/fibonacci/fibonacci.ml000640 001751 001751 00000001405 12436317346 022322 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) open Num let rec fibo_num n = match n with | 0 -> Int 1 | 1 -> Int 1 | n -> add_num (fibo_num (n-1)) (fibo_num(n-2)) let calc n = if n < 0 then invalid_arg "Fibonacci.calc" else fibo_num n let phi_string n = let p, q = calc (n+1), calc n in let phi = div_num p q in approx_num_fix 8 phi bsdowl-2.2.2/test/ocaml/fibonacci/fibonacci.mli000640 001751 001751 00000001202 12436317346 022466 0ustar00michaelmichael000000 000000 (* Fibonacci -- Compute Fibonacci numbers BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt *) (** Compute Fibonacci numbers. The 0-th and 1-st Fibonacci numbers [F_0] and [F_1] are 1, and then [F_n+2 = F_n + F_n+1]. *) val calc : int -> Num.num val phi_string : int -> string bsdowl-2.2.2/test/ocaml/basic-4/Makefile000640 001751 001751 00000001255 12436317346 021023 0ustar00michaelmichael000000 000000 ### Makefile -- Mini Basic # Author: Michael Grünewald # Date: Fri Oct 18 07:48:45 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PACK= minibasic SRCS = main.ml SRCS+= basic_types.ml SRCS+= basic_parser.mly SRCS+= basic_lexer.mll .include "ocaml.pack.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/basic-4/basic_lexer.mli000640 001751 001751 00000000060 12436317346 022337 0ustar00michaelmichael000000 000000 val lexer : Lexing.lexbuf -> Basic_parser.token bsdowl-2.2.2/test/ocaml/basic-4/basic_lexer.mll000640 001751 001751 00000002520 12436317346 022345 0ustar00michaelmichael000000 000000 { open Basic_parser ;; let string_chars s = String.sub s 1 ((String.length s)-2) ;; } rule lexer = parse [' ' '\t'] { lexer lexbuf } | '\n' { Leol } | '!' { Lneg } | '&' { Land } | '|' { Lor } | '=' { Legal } | '%' { Lmod } | '+' { Lplus } | '-' { Lmoins } | '*' { Lmult } | '/' { Ldiv } | ['<' '>'] { Lrel (Lexing.lexeme lexbuf) } | "<=" { Lrel (Lexing.lexeme lexbuf) } | ">=" { Lrel (Lexing.lexeme lexbuf) } | "REM" [^ '\n']* { Lrem (Lexing.lexeme lexbuf) } | "LET" { Llet } | "PRINT" { Lprint } | "INPUT" { Linput } | "IF" { Lif } | "THEN" { Lthen } | "GOTO" { Lgoto } | "RUN" { Lcmd (Lexing.lexeme lexbuf) } | "LIST" { Lcmd (Lexing.lexeme lexbuf) } | "END" { Lcmd (Lexing.lexeme lexbuf) } | ['0'-'9']+ { Lint (int_of_string (Lexing.lexeme lexbuf)) } | ['A'-'z']+ { Lident (Lexing.lexeme lexbuf) } | '"' [^ '"']* '"' { Lstring (string_chars (Lexing.lexeme lexbuf)) } bsdowl-2.2.2/test/ocaml/basic-4/basic_parser.mly000640 001751 001751 00000003776 12436317346 022555 0ustar00michaelmichael000000 000000 %{ open Basic_types ;; let phrase_of_cmd c = match c with "RUN" -> Run | "LIST" -> List | "END" -> End | _ -> failwith "line : unexpected command" ;; let op_bin_of_rel r = match r with "=" -> EGAL | "<" -> INF | "<=" -> INFEQ | ">" -> SUP | ">=" -> SUPEQ | "<>" -> DIFF | _ -> failwith "line : unexpected relation symbol" ;; %} %token Lint %token Lident %token Lstring %token Lcmd %token Lplus Lmoins Lmult Ldiv Lmod %token Lrel %token Land Lor Lneg %token Lpar Rpar %token Lrem %token Lrem Llet Lprint Linput Lif Lthen Lgoto %token Legal %token Leol %right Lneg %left Land Lor %left Legal Lrel %left Lmod %left Lplus Lmoins %left Lmult Ldiv %nonassoc Lopp %start line %type line %% line : Lint inst Leol { Ligne {num=$1; inst=$2} } | Lcmd Leol { phrase_of_cmd $1 } ; inst : Lrem { Rem $1 } | Lgoto Lint { Goto $2 } | Lprint exp { Print $2 } | Linput Lident { Input $2 } | Lif exp Lthen Lint { If ($2, $4) } | Llet Lident Legal exp { Let ($2, $4) } ; exp : Lint { ExpInt $1 } | Lident { ExpVar $1 } | Lstring { ExpStr $1 } | Lneg exp { ExpUnr (NON, $2) } | exp Lplus exp { ExpBin ($1, PLUS, $3) } | exp Lmoins exp { ExpBin ($1, MOINS, $3) } | exp Lmult exp { ExpBin ($1, MULT, $3) } | exp Ldiv exp { ExpBin ($1, DIV, $3) } | exp Lmod exp { ExpBin ($1, MOD, $3) } | exp Legal exp { ExpBin ($1, EGAL, $3) } | exp Lrel exp { ExpBin ($1, (op_bin_of_rel $2), $3) } | exp Land exp { ExpBin ($1, ET, $3) } | exp Lor exp { ExpBin ($1, OU, $3) } | Lmoins exp %prec Lopp { ExpUnr(OPPOSE, $2) } | Lpar exp Rpar { $2 } ; %% bsdowl-2.2.2/test/ocaml/basic-4/basic_types.ml000640 001751 001751 00000001163 12436317346 022220 0ustar00michaelmichael000000 000000 type op_unr = OPPOSE | NON ;; type op_bin = PLUS | MOINS | MULT | DIV | MOD | EGAL | INF | INFEQ | SUP | SUPEQ | DIFF | ET | OU ;; type expression = ExpInt of int | ExpVar of string | ExpStr of string | ExpUnr of op_unr * expression | ExpBin of expression * op_bin * expression ;; type instruction = Rem of string | Goto of int | Print of expression | Input of string | If of expression * int | Let of string * expression ;; type ligne = { num : int ; inst : instruction } ;; type program = ligne list ;; type phrase = Ligne of ligne | List | Run | End ;; bsdowl-2.2.2/test/ocaml/basic-4/main.ml000640 001751 001751 00000000042 12436317346 020632 0ustar00michaelmichael000000 000000 let () = print_endline "Hello." bsdowl-2.2.2/test/ocaml/basic-4/minibasic.mli000640 001751 001751 00000001167 12436317346 022026 0ustar00michaelmichael000000 000000 module Basic_types : sig type op_unr = OPPOSE | NON type op_bin = PLUS | MOINS | MULT | DIV | MOD | EGAL | INF | INFEQ | SUP | SUPEQ | DIFF | ET | OU type expression = ExpInt of int | ExpVar of string | ExpStr of string | ExpUnr of op_unr * expression | ExpBin of expression * op_bin * expression type instruction = Rem of string | Goto of int | Print of expression | Input of string | If of expression * int | Let of string * expression type ligne = { num : int ; inst : instruction } type program = ligne list type phrase = Ligne of ligne | List | Run | End end bsdowl-2.2.2/test/ocaml/basic-3/Makefile000640 001751 001751 00000001255 12436317346 021022 0ustar00michaelmichael000000 000000 ### Makefile -- Mini Basic # Author: Michael Grünewald # Date: Fri Oct 18 07:48:45 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PACK= minibasic SRCS = main.ml SRCS+= basic_types.ml SRCS+= basic_parser.mly SRCS+= basic_lexer.mll .include "ocaml.pack.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/basic-3/basic_lexer.mli000640 001751 001751 00000000060 12436317346 022336 0ustar00michaelmichael000000 000000 val lexer : Lexing.lexbuf -> Basic_parser.token bsdowl-2.2.2/test/ocaml/basic-3/basic_lexer.mll000640 001751 001751 00000002520 12436317346 022344 0ustar00michaelmichael000000 000000 { open Basic_parser ;; let string_chars s = String.sub s 1 ((String.length s)-2) ;; } rule lexer = parse [' ' '\t'] { lexer lexbuf } | '\n' { Leol } | '!' { Lneg } | '&' { Land } | '|' { Lor } | '=' { Legal } | '%' { Lmod } | '+' { Lplus } | '-' { Lmoins } | '*' { Lmult } | '/' { Ldiv } | ['<' '>'] { Lrel (Lexing.lexeme lexbuf) } | "<=" { Lrel (Lexing.lexeme lexbuf) } | ">=" { Lrel (Lexing.lexeme lexbuf) } | "REM" [^ '\n']* { Lrem (Lexing.lexeme lexbuf) } | "LET" { Llet } | "PRINT" { Lprint } | "INPUT" { Linput } | "IF" { Lif } | "THEN" { Lthen } | "GOTO" { Lgoto } | "RUN" { Lcmd (Lexing.lexeme lexbuf) } | "LIST" { Lcmd (Lexing.lexeme lexbuf) } | "END" { Lcmd (Lexing.lexeme lexbuf) } | ['0'-'9']+ { Lint (int_of_string (Lexing.lexeme lexbuf)) } | ['A'-'z']+ { Lident (Lexing.lexeme lexbuf) } | '"' [^ '"']* '"' { Lstring (string_chars (Lexing.lexeme lexbuf)) } bsdowl-2.2.2/test/ocaml/basic-3/basic_parser.mly000640 001751 001751 00000003776 12436317346 022554 0ustar00michaelmichael000000 000000 %{ open Basic_types ;; let phrase_of_cmd c = match c with "RUN" -> Run | "LIST" -> List | "END" -> End | _ -> failwith "line : unexpected command" ;; let op_bin_of_rel r = match r with "=" -> EGAL | "<" -> INF | "<=" -> INFEQ | ">" -> SUP | ">=" -> SUPEQ | "<>" -> DIFF | _ -> failwith "line : unexpected relation symbol" ;; %} %token Lint %token Lident %token Lstring %token Lcmd %token Lplus Lmoins Lmult Ldiv Lmod %token Lrel %token Land Lor Lneg %token Lpar Rpar %token Lrem %token Lrem Llet Lprint Linput Lif Lthen Lgoto %token Legal %token Leol %right Lneg %left Land Lor %left Legal Lrel %left Lmod %left Lplus Lmoins %left Lmult Ldiv %nonassoc Lopp %start line %type line %% line : Lint inst Leol { Ligne {num=$1; inst=$2} } | Lcmd Leol { phrase_of_cmd $1 } ; inst : Lrem { Rem $1 } | Lgoto Lint { Goto $2 } | Lprint exp { Print $2 } | Linput Lident { Input $2 } | Lif exp Lthen Lint { If ($2, $4) } | Llet Lident Legal exp { Let ($2, $4) } ; exp : Lint { ExpInt $1 } | Lident { ExpVar $1 } | Lstring { ExpStr $1 } | Lneg exp { ExpUnr (NON, $2) } | exp Lplus exp { ExpBin ($1, PLUS, $3) } | exp Lmoins exp { ExpBin ($1, MOINS, $3) } | exp Lmult exp { ExpBin ($1, MULT, $3) } | exp Ldiv exp { ExpBin ($1, DIV, $3) } | exp Lmod exp { ExpBin ($1, MOD, $3) } | exp Legal exp { ExpBin ($1, EGAL, $3) } | exp Lrel exp { ExpBin ($1, (op_bin_of_rel $2), $3) } | exp Land exp { ExpBin ($1, ET, $3) } | exp Lor exp { ExpBin ($1, OU, $3) } | Lmoins exp %prec Lopp { ExpUnr(OPPOSE, $2) } | Lpar exp Rpar { $2 } ; %% bsdowl-2.2.2/test/ocaml/basic-3/basic_types.ml000640 001751 001751 00000001163 12436317346 022217 0ustar00michaelmichael000000 000000 type op_unr = OPPOSE | NON ;; type op_bin = PLUS | MOINS | MULT | DIV | MOD | EGAL | INF | INFEQ | SUP | SUPEQ | DIFF | ET | OU ;; type expression = ExpInt of int | ExpVar of string | ExpStr of string | ExpUnr of op_unr * expression | ExpBin of expression * op_bin * expression ;; type instruction = Rem of string | Goto of int | Print of expression | Input of string | If of expression * int | Let of string * expression ;; type ligne = { num : int ; inst : instruction } ;; type program = ligne list ;; type phrase = Ligne of ligne | List | Run | End ;; bsdowl-2.2.2/test/ocaml/basic-3/main.ml000640 001751 001751 00000000042 12436317346 020631 0ustar00michaelmichael000000 000000 let () = print_endline "Hello." bsdowl-2.2.2/test/ocaml/basic-2/Makefile000640 001751 001751 00000001260 12436317346 021015 0ustar00michaelmichael000000 000000 ### Makefile -- Mini Basic # Author: Michael Grünewald # Date: Fri Oct 4 20:53:07 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= minibasic SRCS = main.ml SRCS+= basic_types.ml SRCS+= basic_parser.mly SRCS+= basic_lexer.mll .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/basic-2/basic_lexer.mll000640 001751 001751 00000002520 12436317346 022343 0ustar00michaelmichael000000 000000 { open Basic_parser ;; let string_chars s = String.sub s 1 ((String.length s)-2) ;; } rule lexer = parse [' ' '\t'] { lexer lexbuf } | '\n' { Leol } | '!' { Lneg } | '&' { Land } | '|' { Lor } | '=' { Legal } | '%' { Lmod } | '+' { Lplus } | '-' { Lmoins } | '*' { Lmult } | '/' { Ldiv } | ['<' '>'] { Lrel (Lexing.lexeme lexbuf) } | "<=" { Lrel (Lexing.lexeme lexbuf) } | ">=" { Lrel (Lexing.lexeme lexbuf) } | "REM" [^ '\n']* { Lrem (Lexing.lexeme lexbuf) } | "LET" { Llet } | "PRINT" { Lprint } | "INPUT" { Linput } | "IF" { Lif } | "THEN" { Lthen } | "GOTO" { Lgoto } | "RUN" { Lcmd (Lexing.lexeme lexbuf) } | "LIST" { Lcmd (Lexing.lexeme lexbuf) } | "END" { Lcmd (Lexing.lexeme lexbuf) } | ['0'-'9']+ { Lint (int_of_string (Lexing.lexeme lexbuf)) } | ['A'-'z']+ { Lident (Lexing.lexeme lexbuf) } | '"' [^ '"']* '"' { Lstring (string_chars (Lexing.lexeme lexbuf)) } bsdowl-2.2.2/test/ocaml/basic-2/basic_parser.mly000640 001751 001751 00000003776 12436317346 022553 0ustar00michaelmichael000000 000000 %{ open Basic_types ;; let phrase_of_cmd c = match c with "RUN" -> Run | "LIST" -> List | "END" -> End | _ -> failwith "line : unexpected command" ;; let op_bin_of_rel r = match r with "=" -> EGAL | "<" -> INF | "<=" -> INFEQ | ">" -> SUP | ">=" -> SUPEQ | "<>" -> DIFF | _ -> failwith "line : unexpected relation symbol" ;; %} %token Lint %token Lident %token Lstring %token Lcmd %token Lplus Lmoins Lmult Ldiv Lmod %token Lrel %token Land Lor Lneg %token Lpar Rpar %token Lrem %token Lrem Llet Lprint Linput Lif Lthen Lgoto %token Legal %token Leol %right Lneg %left Land Lor %left Legal Lrel %left Lmod %left Lplus Lmoins %left Lmult Ldiv %nonassoc Lopp %start line %type line %% line : Lint inst Leol { Ligne {num=$1; inst=$2} } | Lcmd Leol { phrase_of_cmd $1 } ; inst : Lrem { Rem $1 } | Lgoto Lint { Goto $2 } | Lprint exp { Print $2 } | Linput Lident { Input $2 } | Lif exp Lthen Lint { If ($2, $4) } | Llet Lident Legal exp { Let ($2, $4) } ; exp : Lint { ExpInt $1 } | Lident { ExpVar $1 } | Lstring { ExpStr $1 } | Lneg exp { ExpUnr (NON, $2) } | exp Lplus exp { ExpBin ($1, PLUS, $3) } | exp Lmoins exp { ExpBin ($1, MOINS, $3) } | exp Lmult exp { ExpBin ($1, MULT, $3) } | exp Ldiv exp { ExpBin ($1, DIV, $3) } | exp Lmod exp { ExpBin ($1, MOD, $3) } | exp Legal exp { ExpBin ($1, EGAL, $3) } | exp Lrel exp { ExpBin ($1, (op_bin_of_rel $2), $3) } | exp Land exp { ExpBin ($1, ET, $3) } | exp Lor exp { ExpBin ($1, OU, $3) } | Lmoins exp %prec Lopp { ExpUnr(OPPOSE, $2) } | Lpar exp Rpar { $2 } ; %% bsdowl-2.2.2/test/ocaml/basic-2/basic_types.ml000640 001751 001751 00000001163 12436317346 022216 0ustar00michaelmichael000000 000000 type op_unr = OPPOSE | NON ;; type op_bin = PLUS | MOINS | MULT | DIV | MOD | EGAL | INF | INFEQ | SUP | SUPEQ | DIFF | ET | OU ;; type expression = ExpInt of int | ExpVar of string | ExpStr of string | ExpUnr of op_unr * expression | ExpBin of expression * op_bin * expression ;; type instruction = Rem of string | Goto of int | Print of expression | Input of string | If of expression * int | Let of string * expression ;; type ligne = { num : int ; inst : instruction } ;; type program = ligne list ;; type phrase = Ligne of ligne | List | Run | End ;; bsdowl-2.2.2/test/ocaml/basic-2/basic_types.mli000640 001751 001751 00000001115 12436317346 022364 0ustar00michaelmichael000000 000000 type op_unr = OPPOSE | NON type op_bin = PLUS | MOINS | MULT | DIV | MOD | EGAL | INF | INFEQ | SUP | SUPEQ | DIFF | ET | OU type expression = ExpInt of int | ExpVar of string | ExpStr of string | ExpUnr of op_unr * expression | ExpBin of expression * op_bin * expression type instruction = Rem of string | Goto of int | Print of expression | Input of string | If of expression * int | Let of string * expression type ligne = { num : int; inst : instruction; } type program = ligne list type phrase = Ligne of ligne | List | Run | End bsdowl-2.2.2/test/ocaml/basic-2/main.ml000640 001751 001751 00000000042 12436317346 020630 0ustar00michaelmichael000000 000000 let () = print_endline "Hello." bsdowl-2.2.2/test/ocaml/basic-1/Makefile000640 001751 001751 00000001260 12436317346 021014 0ustar00michaelmichael000000 000000 ### Makefile -- Mini Basic # Author: Michael Grünewald # Date: Fri Oct 4 20:53:07 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PROGRAM= minibasic SRCS = main.ml SRCS+= basic_types.ml SRCS+= basic_parser.mly SRCS+= basic_lexer.mll .include "ocaml.prog.mk" ### End of file `Makefile' bsdowl-2.2.2/test/ocaml/basic-1/basic_lexer.mli000640 001751 001751 00000000060 12436317346 022334 0ustar00michaelmichael000000 000000 val lexer : Lexing.lexbuf -> Basic_parser.token bsdowl-2.2.2/test/ocaml/basic-1/basic_lexer.mll000640 001751 001751 00000002520 12436317346 022342 0ustar00michaelmichael000000 000000 { open Basic_parser ;; let string_chars s = String.sub s 1 ((String.length s)-2) ;; } rule lexer = parse [' ' '\t'] { lexer lexbuf } | '\n' { Leol } | '!' { Lneg } | '&' { Land } | '|' { Lor } | '=' { Legal } | '%' { Lmod } | '+' { Lplus } | '-' { Lmoins } | '*' { Lmult } | '/' { Ldiv } | ['<' '>'] { Lrel (Lexing.lexeme lexbuf) } | "<=" { Lrel (Lexing.lexeme lexbuf) } | ">=" { Lrel (Lexing.lexeme lexbuf) } | "REM" [^ '\n']* { Lrem (Lexing.lexeme lexbuf) } | "LET" { Llet } | "PRINT" { Lprint } | "INPUT" { Linput } | "IF" { Lif } | "THEN" { Lthen } | "GOTO" { Lgoto } | "RUN" { Lcmd (Lexing.lexeme lexbuf) } | "LIST" { Lcmd (Lexing.lexeme lexbuf) } | "END" { Lcmd (Lexing.lexeme lexbuf) } | ['0'-'9']+ { Lint (int_of_string (Lexing.lexeme lexbuf)) } | ['A'-'z']+ { Lident (Lexing.lexeme lexbuf) } | '"' [^ '"']* '"' { Lstring (string_chars (Lexing.lexeme lexbuf)) } bsdowl-2.2.2/test/ocaml/basic-1/basic_parser.mly000640 001751 001751 00000003776 12436317346 022552 0ustar00michaelmichael000000 000000 %{ open Basic_types ;; let phrase_of_cmd c = match c with "RUN" -> Run | "LIST" -> List | "END" -> End | _ -> failwith "line : unexpected command" ;; let op_bin_of_rel r = match r with "=" -> EGAL | "<" -> INF | "<=" -> INFEQ | ">" -> SUP | ">=" -> SUPEQ | "<>" -> DIFF | _ -> failwith "line : unexpected relation symbol" ;; %} %token Lint %token Lident %token Lstring %token Lcmd %token Lplus Lmoins Lmult Ldiv Lmod %token Lrel %token Land Lor Lneg %token Lpar Rpar %token Lrem %token Lrem Llet Lprint Linput Lif Lthen Lgoto %token Legal %token Leol %right Lneg %left Land Lor %left Legal Lrel %left Lmod %left Lplus Lmoins %left Lmult Ldiv %nonassoc Lopp %start line %type line %% line : Lint inst Leol { Ligne {num=$1; inst=$2} } | Lcmd Leol { phrase_of_cmd $1 } ; inst : Lrem { Rem $1 } | Lgoto Lint { Goto $2 } | Lprint exp { Print $2 } | Linput Lident { Input $2 } | Lif exp Lthen Lint { If ($2, $4) } | Llet Lident Legal exp { Let ($2, $4) } ; exp : Lint { ExpInt $1 } | Lident { ExpVar $1 } | Lstring { ExpStr $1 } | Lneg exp { ExpUnr (NON, $2) } | exp Lplus exp { ExpBin ($1, PLUS, $3) } | exp Lmoins exp { ExpBin ($1, MOINS, $3) } | exp Lmult exp { ExpBin ($1, MULT, $3) } | exp Ldiv exp { ExpBin ($1, DIV, $3) } | exp Lmod exp { ExpBin ($1, MOD, $3) } | exp Legal exp { ExpBin ($1, EGAL, $3) } | exp Lrel exp { ExpBin ($1, (op_bin_of_rel $2), $3) } | exp Land exp { ExpBin ($1, ET, $3) } | exp Lor exp { ExpBin ($1, OU, $3) } | Lmoins exp %prec Lopp { ExpUnr(OPPOSE, $2) } | Lpar exp Rpar { $2 } ; %% bsdowl-2.2.2/test/ocaml/basic-1/basic_types.ml000640 001751 001751 00000001163 12436317346 022215 0ustar00michaelmichael000000 000000 type op_unr = OPPOSE | NON ;; type op_bin = PLUS | MOINS | MULT | DIV | MOD | EGAL | INF | INFEQ | SUP | SUPEQ | DIFF | ET | OU ;; type expression = ExpInt of int | ExpVar of string | ExpStr of string | ExpUnr of op_unr * expression | ExpBin of expression * op_bin * expression ;; type instruction = Rem of string | Goto of int | Print of expression | Input of string | If of expression * int | Let of string * expression ;; type ligne = { num : int ; inst : instruction } ;; type program = ligne list ;; type phrase = Ligne of ligne | List | Run | End ;; bsdowl-2.2.2/test/ocaml/basic-1/main.ml000640 001751 001751 00000000042 12436317346 020627 0ustar00michaelmichael000000 000000 let () = print_endline "Hello." bsdowl-2.2.2/test/elisp/Makefile000640 001751 001751 00000000602 12436317346 017615 0ustar00michaelmichael000000 000000 ### Makefile -- Test misc.elisp.mk # Author: Michael Grünewald # Date: Sam 7 jul 2007 18:08:19 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION ### SYNOPSIS # $ make -I ../../make -I ../../misc install SRCS+= emake1.el SRCS+= emake2.el ELISP_INSTALL_SRC.emake2.el = no ELSIPDIR = ${.CURDIR:C%^${HOME}%%:H}/tmp/elisp .include "misc.elisp.mk" ### End of file `Makefile' bsdowl-2.2.2/test/elisp/emake1.el000640 001751 001751 00000003420 12436317346 017643 0ustar00michaelmichael000000 000000 ;;; emake.el -- Emacs Support for make ;; Author: Michael Grünewald ;; Date: Ven 4 mar 2005 09:30:43 CET ;; Description: function to run `make' from within emacs (using `compile') ;; Installation: Magic incantation to put in `dot-emacs' ;; (require 'emake) ;; (global-set-key '[f2] 'emake-all) ;; (global-set-key '[f3] 'emake-install) ;; (global-set-key '[f4] 'emake-clean) ;; (global-set-key '[f5] 'emake-run) (provide 'emake) (defgroup emake nil "Emacs support for make, simple layer over `compile'" :group 'processes :group 'local) (defcustom emake-command "make" "*The make command used by emake" :type 'string :group 'local) (defcustom emake-flags "" "*The make flags used by emake" :type 'string :group 'local) (make-variable-buffer-local 'emake-flags) (defun emake-compile (command) "EMAKE-COMPILE command runs compile with command as compile-command" (let ((compile-command command)) (compile command) )) (defun emake-mk-command (arguments) "EMAKE-MK-COMMAND prepares the command string for pass it to compile" (let ((prepare (function (lambda (s) (if (string= s "") "" (concat " " s)) ))) ) (format "%s%s%s" emake-command (funcall prepare emake-flags) (funcall prepare arguments) ) )) (defun emake (arguments) "EMAKE arguments runs compile with emake-command applied to arguments" (emake-compile (emake-mk-command arguments))) (defun emake-all () "EMAKE-ALL runs a make all" (interactive) (emake "all") ) (defun emake-install () "EMAKE-ALL runs a make install" (interactive) (emake "install") ) (defun emake-clean () "EMAKE-ALL runs a make clean" (interactive) (emake "clean") ) (defun emake-run () "EMAKE-ALL runs a make run" (interactive) (emake "run") ) ;;; End of file `emake.el' bsdowl-2.2.2/test/elisp/emake2.el000640 001751 001751 00000003420 12436317346 017644 0ustar00michaelmichael000000 000000 ;;; emake.el -- Emacs Support for make ;; Author: Michael Grünewald ;; Date: Ven 4 mar 2005 09:30:43 CET ;; Description: function to run `make' from within emacs (using `compile') ;; Installation: Magic incantation to put in `dot-emacs' ;; (require 'emake) ;; (global-set-key '[f2] 'emake-all) ;; (global-set-key '[f3] 'emake-install) ;; (global-set-key '[f4] 'emake-clean) ;; (global-set-key '[f5] 'emake-run) (provide 'emake) (defgroup emake nil "Emacs support for make, simple layer over `compile'" :group 'processes :group 'local) (defcustom emake-command "make" "*The make command used by emake" :type 'string :group 'local) (defcustom emake-flags "" "*The make flags used by emake" :type 'string :group 'local) (make-variable-buffer-local 'emake-flags) (defun emake-compile (command) "EMAKE-COMPILE command runs compile with command as compile-command" (let ((compile-command command)) (compile command) )) (defun emake-mk-command (arguments) "EMAKE-MK-COMMAND prepares the command string for pass it to compile" (let ((prepare (function (lambda (s) (if (string= s "") "" (concat " " s)) ))) ) (format "%s%s%s" emake-command (funcall prepare emake-flags) (funcall prepare arguments) ) )) (defun emake (arguments) "EMAKE arguments runs compile with emake-command applied to arguments" (emake-compile (emake-mk-command arguments))) (defun emake-all () "EMAKE-ALL runs a make all" (interactive) (emake "all") ) (defun emake-install () "EMAKE-ALL runs a make install" (interactive) (emake "install") ) (defun emake-clean () "EMAKE-ALL runs a make clean" (interactive) (emake "clean") ) (defun emake-run () "EMAKE-ALL runs a make run" (interactive) (emake "run") ) ;;; End of file `emake.el' bsdowl-2.2.2/test/dotfile/Makefile000640 001751 001751 00000000613 12436317346 020131 0ustar00michaelmichael000000 000000 ### Makefile -- Test misc.dotfile.mk # Author: Michael Grünewald # Date: Sam 7 jul 2007 18:12:22 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION ### SYNOPSIS # $ make -I ../../make -I ../../misc install DOTFILE+= dot.cshrc DOTFILE+= dot.emacs DOTFILEMODE.dot.cshrc = 644 DOTFILEDIR = ${.CURDIR:C%^${HOME}%%:H}/tmp/dotfile .include "misc.dotfile.mk" ### End of file `Makefile' bsdowl-2.2.2/test/dotfile/dot.cshrc000640 001751 001751 00000000715 12436317346 020306 0ustar00michaelmichael000000 000000 ### csh.cshrc -- TCSH Resource Configuration Script # Author: Michael Grünewald # Date: Ven 26 jan 2007 19:32:47 CET setenv MAKEFLAGS "-I ${HOME}/share/mk" #setenv TEXMFCNF "${HOME}/share/texmf/web2c" set nethack_name=Malchance set nethack_pickup='$' setenv NETHACKOPTIONS "autopickup,name:$nethack_name,catname:Jezabeth,\!cmdassist,dogname:Melba,pettype:cat,color,number_pad:1,suppress_alert:2.0.0,pickup_types:$nethack_pickup" ### End of file `csh.cshrc' bsdowl-2.2.2/test/dotfile/dot.emacs000640 001751 001751 00000034054 12436317346 020277 0ustar00michaelmichael000000 000000 ;; dot.emacs -- Fichier de configuration EMACS -*- lisp -*- ; Author: Michael Grünewald ; Date: Sun Sep 10 11:37:56 CEST 2006 ; Le programme EMACS est un éditeur de texte très populaire parmi les ; utilisateurs de systèmes UNIX. Le programme EMACS est un programme ; versatile et souple. À chacun de ses démarrages il lit le fichier ; `dot.emacs' (ce fichier) situé dans le répertoire personnel de ; l'utilisateur. ; Pour en apprendre plus au sujet d'EMACS, on peut lire les documents ; * (emacs)Intro ; * le ``Developers Handbook'', qui contient un passage consacré à ; l'utilisation d'EMACS pour le développement; ; * enfin, le répertoire /usr/local/share/emacs/21.3/etc contient un ; grand nombre de fichiers dont certains peuvent se révéler ; intéressants. ; ; Pour lire ces documents: ; $ info emacs Intro ; $ lynx file://localhost/usr/share/doc/en_US.ISO8859-1/books/developers-handbook/emacs.html ; Outre les entrées présentes dans ce fichier, on peut aménager ; certaines fonctionnalités d'un intérêt moins général, notamment la ; configuration des modes majeurs. Un mode majeur pour EMACS est un ; ensemble de fonctions spécialisé pour l'édition de tel ou tel format ; de fichier, par exemple les fichiers HTML, PHP, les programmes C, ; JAVA, assembleur, etc. ; ; Le mode PSGML est spécialisé pour l'édition des fichiers SGML/XML, ; comme par exemple les fichier Docbook ou les fichiers HTML. ; ; Le mode GNUS est un client MAIL/NEWS, on peut lire et envoyer son ; courrier éléctronique depuis EMACS, et lire et participer aux ; newsgroups. ; La suite de ce fichier est une liste de règlages pour EMACS, ; accompagnés de quelques nots d'explication et parfois de références ; à une documentation plus complète. ;; scroll-bar-mode ; Lorsqu'EMACS est utilisé sous une interface graphique, la fenêtre ; principale de l'éditeur présente des barres de ; défilements. Celles-ci sont moches et peut utiles, on peut les ; supprimer. (scroll-bar-mode 'nil) ;; set-frame-font ; La taille implicite des caractères est *un peu* petite pour un ; affichage sur une format plus grand que "1024x768". La valeur ; suivante convient pour un affichage en "1280x1024". Pour choisir une ; autre fonte lorsque Emacs est lancé, on peut bien sûr utiliser la ; fonction `set-frame-font', ou utiliser le menu ; Opions => Mule => Set font/fontset ; accessible aussi par la combinaison ; ; en en choisissant une valeur convenable du `popup' qui apparaît ; alors. Sous le système X on peut modifier la fonte utilisée dans la ; fenêtre principale au moyen de ressources X, définies dans le ; fichier `dot.Xresources'. ;(set-frame-font "-adobe-courier-medium-r-normal--*-180-*-*-m-*-iso8859-1") ;; visible-bell ; Lorsque la variable `visible-bell' est positionnée sur 't, Emacs ; fait son possible pour remplacer l'alerte sonore par une alerte ; visuelle. Puisque l'alerte sonore est fréquemment utilisée par ; EMACS, ce réglage est presque nécessaire. (setq visible-bell 't) ;; column-number-mode ; Numéro de colonne visible dans la modeline. (custom-set-variables '(column-number-mode 't)) ;; load-path ; Un bon endroit où entreposer les fichiers Emacs lisp personnels est ; le catalogue "~/share/emacs/site-lisp". Il est en effet souhaitable ; que la hiérarchie sous "~" puisse-t-être traitée comme les ; hiérarchies "/usr" et "/usr/local", et les fichiers elisp de Emacs ; sont stockés dans "/usr/local/share/emacs/site-lisp". Le choix de ce ; lieu concorde avec les directions dessinées dans hier(7) puisque ; "share" reçoit les fichiers "architecture independant" ce qui est le ; cas des fichiers elisp et de leurs versions "byte-compiled". Un ; choix très naturel est "~/lib/elisp", auquel on doit préférer ; "~/share/emacs/site-lisp" à cause des raisons évoquées. (add-to-list 'load-path "~/share/emacs/site-lisp") ;; backup-directory-alist ; Avec ses paramètres naturels, Emacs écrit ses fichiers de sauvegarde ; dans le même catalogue que le fichier édité. Quoique la gestion de ; ces fichiers dispersés est assez facile, grâce à find(1), la ; présence de ces fichiers peut être ennuyeuse lorsque on travaille ; avec des "Makefile" ou CVS. Il ne coûte rien de les regrouper dans ; un catalogue, par exemple "~/.emacs.d/backup". (setq backup-directory-alist '((".*" . "~/.emacs.d/backup"))) ;; set-keyboard-coding-system ; An exceirpt from (emacs) Specify Coding: ; ; By default, keyboard input is not translated at all. ; ; We here selects a keyboard-coding-system that seems accurate. If ; this choice turns out to be irrelevant, you can still use the ; set-keyboard-coding-system function to 'none, with C-x RET k none. ; It might be useful to write a function that guess the correct ; keyboard coding system. ; SEE ALSO: (emacs) Specify Coding, (emacs) Window Systems (if (not window-system) (set-keyboard-coding-system 'iso-latin-9)) ;(set-keyboard-coding-system 'iso-latin-9) ;; Info-directory-list ; La valeur par défaut oublie le catalogue X11R6. (setq Info-directory-list '("/usr/local/info/" "/usr/share/info/" "/usr/X11R6/info/") ) ;; yes-or-no-p ; ; On remplace `yes-or-no-p' par `y-or-no-p' puisque les mots "yes" et; ; "no" sont si longs et si difficiles à taper. (fset 'yes-or-no-p 'y-or-n-p) ;; custom-file ; Où inscrire les `customizations', de façon à garder ce fichier propre. ; Note: à moins que les `customizations' ne soient situées dans le ; fichier `.emacs' (paramètres ordinaires de Emacs), il faut charger ; explicitement ce fichier pour que les modifications soient prises en ; compte. (setq custom-file "~/.emacs.d/custom.el") (load custom-file 't) ;; auto-compression-mode ; Accès transparent aux fichiers compressés. ; ; SeeAlso: gzip(1), gunzip(1), bzip2(1), bumzip2(1). (auto-compression-mode 1) ;; narrow-to-region ; La commande `narrow-to-region' (C-x n n, C-x n w) est nortmalement ; désactivée (on se demande bien pourquoi). ; Limiter la zone dédition est particulièrement utile lors des ; traitements par expressions rationelles. (put 'narrow-to-region 'disabled nil) ;; font-lock-mode ; Hey EMACS! Transforme donc tous mes fichiers en salade de fruit dès ; que tu t'en sens capable. (global-font-lock-mode t) ;; turn-on-auto-fill ; Le programme EMACS est capable de réorgamiser automatiquement les ; mots d'un paragraphe après qu'une insertion ait eu lieu, il peut ; aussi deviner la valeur d'un préfixe à insérer après un retour de ; ligne automatique, comme par exemple une famille d'espaces. Ces ; fonctions sont appelées ``fonctions de remplissage des ; paragraphes''. Ces fonctions ne produisent pas toujours des ; résultats très satisfaisants, le module filladapt permet les modifie ; pour les rendre plus pertinentes (cf. infra). ; ; On peut activer le mode mineur filladapt automatiquement ; lorsqu'EMACS entre dans certains modes majeurs en insérant ici des ; commandes resemblant aux la suivante. ; ; SeeAlso: (emacs)Filling. (add-hook 'text-mode-hook 'turn-on-auto-fill) (add-hook 'lisp-mode-hook 'turn-on-auto-fill) (add-hook 'sh-mode-hook 'turn-on-auto-fill) (add-hook 'c-mode-hook 'turn-on-auto-fill) (add-hook 'makefile-mode-hook 'turn-on-auto-fill) ;; filladapt ; Les fonctions qu'EMACS utilise pour reremplir les paragraphes, comme ; `fill-paragraph' ne produisent pas toujours de bons résultats. Les ; fonctions définies dans filladapt améliorent un peut cette ; situation. ;(require 'filladapt) ;(setq-default filladapt-mode t) ;; ispell ; Le programme `ispell' est un assistant à la correction ; orthographique. Ce programme détecte les mots ne figurant pas dans ; son dictionnaire et propose le cas échéant une correction. Les ; possibilités limitées de ce genre de programme restreint leur ; utilisation au repèrage des fautes de saisie. Le programme EMACS ; dispose d'un mode mineur interfaçant EMACS et ispell, le premier ; proposant à l'utilisateur les services rendus par le second. ; ; D'autres programmes du même type existent, comme aspell. En ce qui ; concerne EMACS, certains utilisateurs apprécient la variante ; flyspell (spleeling ont the fly) du mode mineur ispell. (require 'ispell) ;(defun ispell-decode-string (str) ; "Decodes multibyte character strings. ;Protects against bogus binding of `enable-multibyte-characters' in XEmacs." ; (if (and (or xemacsp ; (and (boundp 'enable-multibyte-characters) ; enable-multibyte-characters)) ; (fboundp 'decode-coding-string) ; (ispell-get-coding-system)) ; (decode-coding-string str buffer-file-coding-system) ; str)) ; Les utilisateurs français souhaitent bien certainement avoir le ; français comme dictionnaire initial avec ispell. On peut le changer ; temporairement avec la commande M-x ispell-change-dictionary, et on ; peut explicitement sélectionner un dictionnaire pour un fichier ; donné grâce aux systèmes des variables locales de EMACS. ; ; SeeAlso: ispell(1), (emacs)Spelling, (emacs)Locals. (custom-set-variables '(ispell-local-dictionary "francais")) ;;; MODIFICATION DES MODES MAJEURS ; La variable `auto-mode-alist' est une liste associative décrivant le ; mode majeur à utiliser pour tel ou tel fichier. Pour pouvoir ajouter ; facilement des valeurs à cette variable, on peut utiliser la fonction ; `mg-set-auto-mode' (defun mg-set-auto-mode (REGEXP MODE) "mg-set-auto-mode REGEXP MODE adds this entry to the auto-mode-alist" (setq auto-mode-alist (cons (cons REGEXP MODE) auto-mode-alist)) ) ;; sh-mode ; Le mode SH est spécialisé dans l'édition des scripts SHELL. Il ; connaît les dialectes de SHELL les plus répandus, comme le shell de ; Bourne, le shell C, le shell K et le shell Z, et il assiste ; l'utilisateur dans la réalisation d'une belle présentation pour le ; dialecte de SHELL employé. ; ; Le mode majeur intérroge la base de donnée des utilisateurs pour se ; préparer éditer un script dans le dialecte du SHELL de connexion de ; l'utilisateur. Par exemple pour les utilisateurs ayant le shell C ; comme shell de connexion, le mode sh-mode se prépare automatiquement ; à éditer un script dans le dialecte du shell C. ; ; Si on édite la plupart du temps des fichiers de script dans le ; dialecte de Bourne, on peut utiliser la commande suivante. (setq sh-shell-file "/bin/sh") ;; subversion ; Le programme SUBVERSION est un programme de contrôle des versions et ; des révisions, à l'instar de son prédecesseur CVS. Si vous n'avez ; jamais utilisez ce type de système auparavant, vous pouvez ; considérer SUBVERSION comme une machine à voyager dans le temps qui ; vous permet de comparer l'état actuel d'un de vos fichiers de ; travail avec un état antérieur de ce fichier, par exemple il y a ; deux jours ou il y a trois mois. ; Le moduler PSVN fournit une interface entre EMACS et SVN. On utilise ; cette interface grâce à la commande `svn-examine'. (require 'psvn) ; Lorsqu'on décide d'utiliser SUBVERSION avec PSVN, il est nécessaire ; de positionner correctement des variables d'environnement pour que ; SUBVERSION tienne compte des différents systèmes de ; codage. Cependant, certaines fonctions de l'interface insistent pour ; que les messages émis par SUBVERSION soient en anglais. Le ; développeur de l'interface obtient cet effet en éxécutant SUBVERSION ; dans une environnement où la variable LANG est liée à la valeur C, ; mais SUBVERSION croit alors que les messages en entrée sont en ; ASCII7 et n'arrive pas à convertir les caractères accentués en ; UTF-8, format dans lequel il stocke les messages. Pour obtenir le ; comportement souhaité --- messages en anglais et recodage des ``log ; messages'' --- on peut remplacer la liaison "LANG=C" par la liaison ; "LC_MESSAGES=C" qui produit l'effet souhaité sur les messages sans ; masquer notre variable "LANG" qui indique le code utilisé pour ; transmettre le ``log message''. (setq svn-status-svn-environment-var-list '("LC_MESSAGES=C")) ;; psgml ; Psgml est un mode spécialisé pour l'édition des fichiers SGML et ; XML, il est en particulier d'une grande utilité pour éditer les ; fichiers HTML (les pages web). (require 'psgml-startup) ; La définition de la variable `sgml-catalog-files' déclarée par le ; programme `psgml' est fausse. Sur le système Llea le catalogue des ; entités XML est un catalogue XML et ne peut être lu par `psgml'. (setq sgml-catalog-files '("catalog" "/usr/local/share/sgml/catalog")) ;(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t) ;(autoload 'xml-mode "psgml" "Major mode to edit XML files." t) ;(setq sgml-custom-dtd ; '( ; ("HTML 4.01" ; "\n" ; sgml-default-dtd-file "~/.emacs.d/psgml/html_4.01.cdtd" ; sgml-indent-data t ; ) ; ) ; ) ;(mg-set-auto-mode "\\.\\(ht\\|sg\\|x\\)ml$" 'psgml-mode) (mg-set-auto-mode "\\.\\(ht\\|sg\\|x\\)ml$" 'sgml-mode) ;; tuareg ; Tuareg est un mode spécialisé pour l'édition de fichiers du langage ; Objective Caml. (require 'tuareg) (autoload 'tuareg-mode "tuareg" "Major mode for editing and running Caml programs" t) (mg-set-auto-mode "\\.ml\\(l\\|i\\|y\\)?$" 'tuareg-mode) ;; css-mode (autoload 'css-mode "css-mode") (mg-set-auto-mode "\\.css\\'" 'css-mode) (setq cssm-mirror-mode 'nil) (setq cssm-indent-function #'cssm-c-style-indenter) ;; emake ; Extra Make (require 'emake) (global-set-key '[f2] 'emake-all) (global-set-key '[f3] 'emake-install) (global-set-key '[f4] 'emake-clean) (global-set-key '[f5] 'emake-run) ;; auc-tex (load "auctex.el" nil t t) (load "preview-latex.el" nil t t) ;; ruby-mode ;; Taken from the comment section in inf-ruby.el (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files") (add-to-list 'auto-mode-alist '("\\.rb$" . ruby-mode)) (add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode)) (autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process") (autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode") (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys))) ;; Édition des fichiers sources BRID TeX (add-to-list 'auto-mode-alist '("\\.\\(cls\\|sty\\|mac\\)$" . plain-TeX-mode)) ;; Circonvention du BUG (setenv "LANG" "fr_FR.ISO8859-1") ;;; End of file `dot.emacs' bsdowl-2.2.2/www/www.files.mk000640 001751 001751 00000005715 12436317346 017176 0ustar00michaelmichael000000 000000 ### www.files.mk -- A bps.files.mk wrapper for my www # Author: Michael Grünewald # Date: Jeu 13 mar 2008 21:58:28 CET # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # Exemple de fichier maître, placé dans le répertoire principal du # document WWW à publier (lorsque les fichiers servant à la # préparation de ce document sont répeartis dans une hiérarchie du # système de fichiers). # # SUBDIR = style # SUBDIR+= main # # # We have to set PREFIX, otherwise the switch credential mechanism # # will break. # # PREFIX = ${HOME} # WWWBASE = ${PREFIX}/Documents/www # # .include "www.files.mk" # Exemple de fichier subordonné, placé dans l'hypothétique dossier # ./style. # # WWW = classic.css # WWW+= classic_sz.css # WWW+= layout.css # WWW+= modern.css # WWW+= modern_sz.css # WWW+= paragraph.css # # WWWDIR = ${WWWBASE}/style # # .include "www.files.mk" ### DESCRIPTION # L'assistant de publication de documents WWW fournit une assistance # pour l'installation des fichiers du document dans le système de # fichiers local. # # Aucune assistance pour la publication sur un système de fichiers # distant n'est actuellement assurée par ce module, elle peut # nénamoins être facilement réalisée à parir d'une installation dans # le système de fichier local. # # Si aucune des variables WWWDIR et SUBDIR n'a reçu une valeur, un # message d'erreur est affiché et le porgramme MAKE se termine. # # Description des variables # # WWWBASE # # Répertoire racine du document cible (la version installée). # # Lorsque cette variable a une valeur, cette valeur est transmise # aux sous-processus MAKE, de cette façon elle peut être utilisée # pour définir correctement WWWDIR. # WWW, WWWOWN, WWWGRP, WWWMODE, WWWDIR # # Paramètres de la procédure d'installation. # # Ces paramètres sont documentés dans le module bps.files.mk. # SUBDIR # # Liste des sous-dossiers dans lesquels les fichiers du document # sont répartis. # # Ce paramètre est utilisé comme pour bps.subdir.mk. .include "bps.init.mk" USE_WWW_OWNERSHIP?= no .if ${USE_WWW_OWNERSHIP} == yes WWWOWN?= www WWWGRP?= www WWWMODE?= 440 .endif FILESGROUPS+= WWW .if !defined(WWWDIR) && (!defined(SUBDIR) || empty(SUBDIR)) .error Proper use needs one of the variables WWWDIR or SUBDIR to have a value .endif .if empty(.MAKEFLAGS:MWWWBASE) .if defined(WWWBASE)&&!empty(WWWBASE) .MAKEFLAGS: WWWBASE='${WWWBASE}' .endif .endif .include "bps.files.mk" .include "bps.clean.mk" .include "bps.usertarget.mk" .include "bps.subdir.mk" ### End of file `www.files.mk' bsdowl-2.2.2/www/Makefile000640 001751 001751 00000000343 12436317346 016350 0ustar00michaelmichael000000 000000 ### Makefile # Author: Michael Grünewald # Date: Sam 7 jul 2007 18:12:00 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION FILES = www.files.mk FILES+= www.sgml.mk .include "project.mk" ### End of file `Makefile' bsdowl-2.2.2/www/www.sgml.mk000640 001751 001751 00000006314 12436317346 017032 0ustar00michaelmichael000000 000000 ### www.sgml.mk -- Production HTML via SGML # Author: Michael Grünewald # Date: Jeu 13 mar 2008 21:58:28 CET # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # Attention: il ne s'agit pas d'un système DOCBOOK! # WWW = index.html # SRCS = index.sgml # SRCS+= head-css.sgml # SRCS+= head-title.sgml # SRCS+= body-content.sgml # SRCS+= body-nav.sgml # # WWWDIR = ${WWWBASE}/subdir # # .include "www.sgml.mk" # # Description des variables # # WWW # # Énumère les fichiers à produire à partir des sources SGML # # Chaque terme a sa propre variable SRCS, et la variable SRCS # générale y est ajoutée. # WWWMAIN # # Nom du fichier principal # # Pour produire plusieurs fichiers, il faut utiliser la forme # spécialisée de cette variable. # WWWBASE # # Répertoire racine du document cible (la version installée) # # Lorsque cette variable a une valeur, cette valeur est transmise # aux sous-processus MAKE, de cette façon elle peut être utilisée # pour définir correctement WWWDIR. # WWWOWN, WWWGRP, WWWMODE, WWWDIR # # Paramètres de la procédure d'installation # # Ces paramètres sont documentés dans le module bps.files.mk. # INCLUDE # # Énumère les entités à inclure # # Il s'agit des entités de type paramètre dont la valeur doit être # positionnée à INCLUDE. # DIRS # # Énumère les dossiers de recherche # CATALOG # # Énumère les catalogues à inclure pour la résolution des entités .include "bps.init.mk" .SUFFIXES: .sgml WWWNORMALIZE?= osgmlnorm -d WWWINPUT?= ascii WWWTIDY?= tidy4 -q -${WWWINPUT} .for variable in DIRS CATALOG INCLUDE .if defined(${variable})&&!empty(${variable}) .MAKEFLAGS: ${variable}='${${variable}}' .else ${variable}= .endif .endfor WWWNORMALIZETOOL = ${WWWNORMALIZE} .for dir in ${DIRS} WWWNORMALIZETOOL+= -D${dir} .PATH.sgml: ${dir} .endfor .for catalog in ${CATALOG} WWWNORMALIZETOOL+= -c${catalog} .endfor .for include in ${INCLUDE} WWWNORMALIZETOOL+= -i${include} .endfor .for file in ${WWW} .if defined(WWWMAIN)&&!empty(WWWMAIN) WWWMAIN.${file:T} = ${WWWMAIN} .endif .if !defined(WWWMAIN.${file:T}) && exists(${file:.html=.sgml}) WWWMAIN.${file:T} = ${file:.html=.sgml} .endif .if !defined(WWWMAIN.${file:T}) || empty(WWWMAIN.${file:T}) .error "No main file for ${file}" .endif SRCS.${file:T}?= ${WWWMAIN.${file:T}} .if empty(SRCS.${file:T}:M${WWWMAIN.${file:T}}) SRCS.${file:T}+= ${WWWMAIN.${file:T}} .endif .endfor .if defined(SRCS)&!empty(SRCS) .for file in ${WWW} SRCS.${file:T}+= ${SRCS} .endfor .endif .for file in ${WWW} CLEANFILES+= ${file} .if exists(${file}.pre) CLEANFILES += ${file}.pre .endif ${file}: ${SRCS.${file:T}} ${WWWNORMALIZETOOL} ${WWWMAIN.${file:T}} | ${WWWTIDY} > ${.TARGET}.pre ${MV} ${.TARGET}.pre ${.TARGET} .endfor .include "www.files.mk" ### End of file `www.files.mk' bsdowl-2.2.2/texmf/Makefile000640 001751 001751 00000001733 12436317346 016653 0ustar00michaelmichael000000 000000 ### Makefile # Author: Michael Grünewald # Date: Sam 7 jul 2007 18:12:07 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION FILES = texmf.init.mk FILES+= tex.init.mk FILES+= tex.doc.pre.mk FILES+= tex.doc.main.mk FILES+= tex.doc.post.mk FILES+= tex.doc.mk FILES+= tex.device.dvi.mk FILES+= tex.device.ps.mk FILES+= tex.device.pdf.mk FILES+= tex.driver.dvi.mk FILES+= tex.driver.pdftex.mk FILES+= tex.driver.dvips.mk FILES+= tex.mpost.mk FILES+= tex.files.mk FILES+= tex.files.main.mk FILES+= latex.doc.mk FILES+= latex.doc.pre.mk FILES+= latex.doc.post.mk FILES+= latex.bibtex.mk tex.driver.pdftex.mk: tex.driver.dvi.mk sed \ -e 's/tex\.driver\.dvi\.mk/tex\.driver\.pdftex\.mk/g'\ -e 's/DVI/PDF/g' \ -e 's/dvi/pdf/g' \ ${.ALLSRC} > ${.TARGET} tex.device.pdf.mk: tex.device.dvi.mk sed -e 's/DVI/PDF/g' -e 's/dvi/pdf/g' ${.ALLSRC} > ${.TARGET} CLEANFILES+= tex.driver.pdftex.mk CLEANFILES+= tex.device.pdf.mk .include "project.mk" ### End of file `Makefile' bsdowl-2.2.2/texmf/latex.doc.mk000640 001751 001751 00000001457 12436317346 017430 0ustar00michaelmichael000000 000000 ### latex.doc.mk -- Produce LaTeX documents # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # Confer `tex.doc.mk'. .include "latex.doc.pre.mk" .include "tex.doc.pre.mk" .include "tex.doc.main.mk" .include "latex.bibtex.mk" .include "tex.doc.post.mk" .include "latex.doc.post.mk" ### End of file `latex.doc.mk' bsdowl-2.2.2/texmf/tex.doc.mk000640 001751 001751 00000002503 12436317346 017104 0ustar00michaelmichael000000 000000 ### tex.doc.mk -- Produce TeX documents # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # PACKAGE = Cours/2de # # DOCS = lalala # DOCS+= lalali.tex # # SRCS = macro.mac # SRCS.lalala = extra.tex # SRCS.lalali = title.tex headline.tex footline.tex # # TEXDEVICE = dvi pdf ps # FORMAT.dvi = # FORMAT.pdf = # FORMAT.ps = # FORMAT.dvi.lalala = ... # # INTERACTION = batch nonstop scroll errorstop # JOBNAME # # Instance variables: # TEXINPUTS, TEXMFOUTPUT, FORMATS, TEXPOOL, TFMFONTS # conflit puisque pour produire un fichier PostScript, le fichier DVI # est une étape intermédiaire. # # Pour produire un fichier DVI qui est un intermédiaire pour DEVICE, # on ajoute donc DEVICE à la fin de JOBNAME pour l'éxécution. .include "tex.doc.pre.mk" .include "tex.doc.main.mk" .include "tex.doc.post.mk" ### End of file `tex.doc.mk' bsdowl-2.2.2/texmf/latex.bibtex.mk000640 001751 001751 00000005057 12436317346 020140 0ustar00michaelmichael000000 000000 ### latex.bibtex.mk -- Support pour BibTeX # Author: Michael Grünewald # Date: Ven 11 jul 2008 22:17:23 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # USE_BIBTEX = yes # .include "latex.bibtex.mk" ### DESCRIPTION # Si USE_BIBTEX vaut yes, les fichiers auxiliaires associés aux # fichiers objet énumérés par les variables _TEX_DVI, _TEX_PS et # _TEX_PDF sont traités avec BIBTEX en vue de la production finale du # document. # # L'étape de traitement de la base de donnée prend place entre la # passe `aux' et la passe `toc' des travaux en plusieurs traitement de # LaTeX. # BSTINPUTS # # Chemins de recherche pour les styles de bibliographie. # # Si la variable BSTINPUTS est définie, celle-ci est exportée vers # l'environnement de la commande BIBTEX. De plus la variable # USE_BIBTEX reçoit `yes' pour valeur implicite. # BIBINPUTS # # Chemins de recherche pour les bases de données bibliographiques. # # Si la variable BIBINPUTS est définie, celle-ci est exportée vers # l'environnement de la commande BIBTEX. De plus la variable # USE_BIBTEX reçoit `yes' pour valeur implicite. ### IMPLÉMENTATION .if !target(____) ____: BIBTEX?= bibtex # # Calcul de l'environnement d'éxécution de la commande BIBTEX # _BIBTEX_ENV = .if defined(BSTINPUTS) _BIBTEX_ENV+= BSTINPUTS='${BSTINPUTS}' USE_BIBTEX?= yes .endif .if defined(BIBINPUTS) _BIBTEX_ENV+= BIBINPUTS='${BIBINPUTS}' USE_BIBTEX?= yes .endif .if !empty(_BIBTEX_ENV) _BIBTEX_CMD = env ${_BIBTEX_ENV} ${BIBTEX} .else _BIBTEX_CMD = ${BIBTEX} .endif USE_BIBTEX?= no .if ${USE_BIBTEX} == yes .for var in _TEX_DVI _TEX_PDF _TEX_PS .if defined(${var})&&!empty(${var}) .for doc in ${${var}} ${COOKIEPREFIX}${doc:T}.toc: ${COOKIEPREFIX}${doc:T}.bib ${COOKIEPREFIX}${doc:T}.bib: ${COOKIEPREFIX}${doc:T}.aux ${INFO} 'Processing bibliography database information for ${doc:T}' ${_BIBTEX_CMD} ${doc:R} @${TOUCH} ${.TARGET} HARDCOOKIEFILES+= ${COOKIEPREFIX}${doc:T}.bib REALCLEANFILES+= ${doc:R}.bbl CLEANFILES+= ${doc:R}.blg .endfor .endif .endfor .endif .endif # !target(____) ### End of file `latex.bibtex.mk' bsdowl-2.2.2/texmf/latex.doc.post.mk000640 001751 001751 00000001751 12436317346 020411 0ustar00michaelmichael000000 000000 ### latex.doc.post.mk -- Produce LaTeX documents # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # Confer `tex.doc.mk'. _latex_doc_summary: .USE ${INFO} 'Information summary for ${.TARGET:T}' @- (\ ! ${GREP} 'LaTeX \(Error\|Warning\|Font Error\)' ${.TARGET:R}.log \ ) && ${ECHO} 'Everything seems in order' .for var in _TEX_DVI _TEX_PDF _TEX_PS .if defined(${var})&&!empty(${var}) .for doc in ${${var}} ${doc}: _latex_doc_summary .endfor .endif .endfor ### End of file `latex.doc.post.mk' bsdowl-2.2.2/texmf/tex.init.mk000640 001751 001751 00000004265 12436317346 017311 0ustar00michaelmichael000000 000000 ### tex.init.mk -- Service d'initialisation # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .if !target(____) ____: .include "texmf.init.mk" DRAFT?= no TEXTIMESTAMP!= date '+%Y-%m-%d' .if ${DRAFT} == no .undef TEXDRAFTSTAMP .else TEXDRAFTSTAMP?= -${TEXTIMESTAMP} .endif TEXDEVICE?= dvi TEX?= pdftex TEX.dvi?= tex TEX.pdf?= pdftex TEX.ps?= ${TEX.dvi} # Les variables énumérées par _TEX_VARS sont des variables d'instance # supportant une spécialisation pour chaque cible. _TEX_VARS+= TEXINPUTS TEXMFOUTPUT TEXFORMATS TEXPOOL TFMFONTS _TEX_VARS+= INTERACTION JOBNAME TEXFORMATS _TEX_VARS+= COMMENT PROGNAME _TEX_DOC?= ${DOCS:.tex=} _TEX_DEVICES?= pdf ps dvi _TEX_SUFFIX.dvi = .dvi _TEX_SUFFIX.pdf = .pdf _TEX_SUFFIX.ps = .ps _TEX_DRIVER.dvi?= dvi _TEX_DRIVER.pdf?= pdftex _TEX_DRIVER.ps?= dvips # Fichiers source de TeX _TEX_SUFFIXES?= .tex _TEX_AUX_SUFFIXES?= .log .for device in ${_TEX_DEVICES} _TEX_DRIVERS+= ${_TEX_DRIVER.${device}} .endfor # Utilisation de MASTERDIR .if defined(MASTERDIR)&&!empty(MASTERDIR) TEXINPUTS+= ${MASTERDIR} MPINPUTS+= ${MASTERDIR} BIBINPUTS+= ${MASTERDIR} .PATH: ${MASTERDIR} .endif # Si la variable TEXINPUTS est définie, on utilise sa valeur pour # .PATH.tex, etc. De même avec MPTEXINPUTS. .SUFFIXES: ${_TEX_SUFFIXES} .if defined(TEXINPUTS)&&!empty(TEXINPUTS) .for suffix in ${_TEX_SUFFIXES} .PATH${suffix}: ${TEXINPUTS} .endfor .endif .if defined(MPTEXINPUTS)&&!empty(MPTEXINPUTS) .for suffix in ${_TEX_SUFFIXES} .PATH${suffix}: ${MPTEXINPUTS} .endfor .endif # Get rid of the file missfont.log, if it is present. .if exists(missfont.log) DISTCLEANFILES+= missfont.log .endif .endif #!target(____) ### End of file `tex.init.mk' bsdowl-2.2.2/texmf/texmf.init.mk000640 001751 001751 00000001421 12436317346 017623 0ustar00michaelmichael000000 000000 ### texmf.init.mk -- Service d'initialisation # Author: Michael Grünewald # Date: Dim 4 oct 2009 11:59:26 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .if !target(____) ____: TEXMFDIR?= ${PREFIX}/share/texmf WEB2CDIR?= ${TEXMFDIR}/web2c .endif #!target(____) ### End of file `texmf.init.mk' bsdowl-2.2.2/texmf/latex.doc.pre.mk000640 001751 001751 00000001500 12436317346 020202 0ustar00michaelmichael000000 000000 ### latex.doc.pre.mk -- Produce LaTeX documents # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # Confer `tex.doc.mk'. TEX = pdflatex TEX.dvi = latex TEX.pdf = pdflatex MULTIPASS+= aux toc _TEX_AUX_SUFFIXES?= .log .aux .toc .out _TEX_SUFFIXES?= .tex .latex .cls .sty MPOST_CONVERT_MPS?= no ### End of file `latex.doc.pre.mk' bsdowl-2.2.2/texmf/tex.device.dvi.mk000640 001751 001751 00000003671 12436317346 020366 0ustar00michaelmichael000000 000000 ### tex.device.dvi.mk -- Réclame la production de fichiers DVI # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # Ce module analyse les paramètres reçus de tex.texdoc.mk et passe # commande à tex.driver.dvi.mk pour la production des fichiers DVI # recquis par ces paramètres. # # Commande la création de ${doc}.dvi # .for doc in ${_TEX_DOC} _TEX_DVI+= ${doc}.dvi .endfor # # Spécialisation des variables # .for doc in ${_TEX_DOC} .for var in ${_TEX_VARS} .if defined(${var}.${doc:T})&&!empty(${var}.${doc:T})&&!defined(${var}.${doc:T}.dvi) ${var}.${doc:T}.dvi = ${${var}.${doc:T}} .endif .endfor .endfor # # Clean files # # Note: si on inverse les deux boucles SFX et DVI, cela ne marche # plus, le paramètre formel SFX n'est pas remplacé! (DVI en premier, # SFX en second.) Ceci peut peut-être s'expliquer d'après les règles # de traitement des boucles for, mais je ne sais pas clarifier ce # comportement. .if !empty(TEXDEVICE:Mdvi) .for sfx in ${_TEX_AUX_SUFFIXES} .for dvi in ${_TEX_DVI} .if empty(CLEANFILES:M${dvi}) CLEANFILES+= ${dvi} .endif .for itm in ${dvi:.dvi=${sfx}} .if empty(CLEANFILES:M${itm}) CLEANFILES+= ${itm} .endif .endfor .endfor .endfor .endif # # Build and install files # .if !empty(TEXDEVICE:Mdvi) TEXDOC+= ${_TEX_DOC:=.dvi} .for doc in ${_TEX_DOC} .if defined(TEXDOCNAME.${doc:T})&&!empty(TEXDOCNAME.${doc:T}) TEXDOCNAME.${doc:T}.dvi = ${TEXDOCNAME.${doc:T}}.dvi .endif .endfor .endif ### End of file `tex.device.dvi.mk' bsdowl-2.2.2/texmf/tex.device.ps.mk000640 001751 001751 00000004604 12436317346 020223 0ustar00michaelmichael000000 000000 ### tex.texdoc.ps.mk -- Réclame la production de fichiers PostScript # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # La production des fichiers PostScript est paramétrée par # l'imprimante à laquelle est destiné le fichier. Dees paramètres # spéciaux permettent de cibler la publication éléctronique # (i.e. l'imprimante est un interprète PostScript comme GHOSTSCRIPT). ### SYNOPSIS # PRINTERS = hp920c lex4400 # # Peuvent apparaître toutes les imprimantes ayant été configurées avec # texconfig --- ou d'une autre façon. ### RÉALISATION # # Augmentation de PRINTERS # # Un membre hp920c.ps dans la variable TEXDEVICE ajoute hp920c à la # variable PRINTERS. .if !empty(TEXDEVICE:M*.ps:.ps=) .for printer in ${TEXDEVICE:M*.ps:.ps=} .if empty(PRINTERS:M${printer}) PRINTERS+= ${printer} .endif .endfor .endif # # Réclamation de fichiers # .for doc in ${_TEX_DOC} .for device in ${TEXDEVICE:M*ps} _TEX_PS+= ${doc}.${device} _TEX_DVI+= ${doc}.${device}.dvi _TEX_SRC.${doc}.${device}.dvi = ${doc}.tex JOBNAME.${doc}.${device}.dvi = ${doc}.${device} .endfor .endfor # # Build and install files # .if !empty(TEXDEVICE:M*ps) .for device in ${TEXDEVICE:M*ps} TEXDOC+= ${_TEX_DOC:=.${device}} .for doc in ${_TEX_DOC} .if defined(TEXDOCNAME.${doc:T})&&!empty(TEXDOCNAME.${doc:T}) TEXDOCNAME.${doc:T}.${device} = ${TEXDOCNAME.${doc:T}}.${device} .endif .endfor .endfor .endif # # Cleanfiles # .if !empty(TEXDEVICE:M*ps) .for sfx in ${_TEX_AUX_SUFFIXES} .for ps in ${_TEX_PS} .if empty(CLEANFILES:M${ps}) CLEANFILES+= ${ps} .endif .for itm in ${ps:.ps=${sfx}} .if empty(CLEANFILES:M${itm}) CLEANFILES+= ${itm} .endif .endfor .endfor .endfor .for sfx in ${_TEX_AUX_SUFFIXES} .for dvi in ${_TEX_DVI} .if empty(CLEANFILES:M${dvi}) CLEANFILES+= ${dvi} .endif .for itm in ${dvi:.dvi=${sfx}} .if empty(CLEANFILES:M${itm}) CLEANFILES+= ${itm} .endif .endfor .endfor .endfor .endif ### End of file `tex.device.ps.mk' bsdowl-2.2.2/texmf/tex.doc.main.mk000640 001751 001751 00000004276 12436317346 020040 0ustar00michaelmichael000000 000000 ### tex.doc.main.mk -- Produce TeX documents (main part) # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # # Spécialisation de FORMAT # # Chaque `device' peut utiliser un format TeX spécifique. La variable # FORMAT permet d'initialiser les variables FORMAT.${device} avec une # valeur commune. .if defined(FORMAT)&&!empty(FORMAT) .for device in ${TEXDOC_DEVICES} FORMAT.${_TEX_SUFFIX.${device}}?= ${FORMAT} .endfor .endif # # Spécialisation de SRCS # .for doc in ${_TEX_DOC} .if defined(SRCS)&&!empty(SRCS) SRCS.${doc:T}+= ${SRCS} .endif .for device in ${TEXDEVICE} .if defined(SRCS.${doc:T})&&!empty(SRCS.${doc:T}) SRCS.${doc:T}.${device}+= ${SRCS.${doc:T}} .endif .endfor .endfor # # Files groups # FILESGROUPS+= TEXDOC TEXDOCDIR?= ${PREFIX}/Documents${PACKAGEDIR} TEXDOCOWN?= ${DOCOWN} TEXDOCGROUP?= ${DOCGROUP} TEXDOCMODE?= ${DOCMODE} .if defined(TEXDOCNAME)&&!empty(TEXDOCNAME) .for doc in ${_TEX_DOC} TEXDOCNAME.${doc:T}?= ${TEXDOCNAME} .endfor .endif .if defined(TEXDRAFTSTAMP)&&!empty(TEXDRAFTSTAMP) .for doc in ${_TEX_DOC} .if defined(TEXDOCNAME.${doc:T}) TEXDOCNAME.${doc:T}:= ${TEXDOCNAME.${doc:T}}${TEXDRAFTSTAMP} .else TEXDOCNAME.${doc:T} = ${doc:T}${TEXDRAFTSTAMP} .endif .endfor .endif # # Génération des dépendances # .for doc in ${_TEX_DOC} .for device in ${TEXDEVICE} .if defined(SRCS.${doc:T}.${device})&&!empty(SRCS.${doc:T}.${device}) ${doc}.${device}: ${SRCS.${doc:T}.${device}} .endif .endfor .endfor # # Pilotes # .for device in ${_TEX_DEVICES} .include "tex.device.${device}.mk" .endfor .for driver in ${_TEX_DRIVERS} .include "tex.driver.${driver}.mk" .endfor # # Objectifs de production de documents # do-build: do-build-doc do-build-doc: ${TEXDOC} ### End of file `tex.doc.main.mk' bsdowl-2.2.2/texmf/tex.doc.post.mk000640 001751 001751 00000001304 12436317346 020066 0ustar00michaelmichael000000 000000 ### tex.doc.post.mk -- Produce TeX documents # Author: Michael Grünewald # Date: sam 16 avr 2011 22:46:34 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `tex.doc.post.mk' bsdowl-2.2.2/texmf/tex.doc.pre.mk000640 001751 001751 00000001273 12436317346 017674 0ustar00michaelmichael000000 000000 ### tex.doc.pre.mk -- Produce TeX documents # Author: Michael Grünewald # Date: sam 16 avr 2011 22:44:59 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .include "tex.init.mk" .include "bps.init.mk" .include "tex.mpost.mk" ### End of file `tex.doc.pre.mk' bsdowl-2.2.2/texmf/tex.driver.dvi.mk000640 001751 001751 00000011734 12436317346 020421 0ustar00michaelmichael000000 000000 ### tex.driver.dvi.mk -- Supervise la production des fichiers DVI # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # TEX = /usr/local/bin/tex # # _TEX_DVI+= lalala.hp920c.ps.dvi # _TEX_SRC.lalala.hp920c.ps.dvi = lalala.tex # _TEX_DVI+= lalala.dvi # # _TEX_AUX_SUFFIXES = .aux .log # # _TEX_VARS = TEXINPUTS TEXMFOUTPUT TEXFORMATS TEXPOOL TFMFONTS # _TEX_VARS+= INTERACTION JOBNAME FORMAT # _TEX_VARS+= COMMENT PROGNAME # # MULTIPASS = aux ref final # DRAFT = yes # Inhibe MULTIPASS # # ${var}.{dvi:T} = value ### RÉALISATION .if !target(____) ____: # # Initialisation des paramètres # _TEX_AUX_SUFFIXES?= .log # # Spécialisation des variables # # La spécialisation produit les variables TEXINPUTS.lalala.dvi, elle # fournit une valeur en cherchant d'abord TEXINPUTS.lalala puis # TEXINPUTS. Si aucune valeur n'est trouvée, la variable n'est pas # affectée. .for var in ${_TEX_VARS} FORMAT.dvi .for dvi in ${_TEX_DVI} .if defined(${var}.${dvi:T:.dvi=})&&!empty(${var.${dvi:T:.dvi=}})&&!defined(${var}.${dvi:T}) ${var}.${dvi:T} = ${${var}.${dvi:T:.dvi=}} .endif .if defined(${var})&&!empty(${var})&&!defined(${var}.${dvi:T}) ${var}.${dvi:T} = ${${var}} .endif .endfor .endfor # # Définition de _TEX_SRC # .for dvi in ${_TEX_DVI} .if !defined(_TEX_SRC.${dvi:T})||empty(_TEX_SRC.${dvi:T}) _TEX_SRC.${dvi:T}=${dvi:.dvi=.tex} .endif .endfor # # Création des lignes de commande # .for dvi in ${_TEX_DVI} # On commence par calculer l'environnement d'éxécution .if defined(TEXINPUTS.${dvi:T})&&!empty(TEXINPUTS.${dvi:T}) .if !defined(USE_STRICT_TEXINPUTS)|| ${USE_STRICT_TEXINPUTS} != yes _TEX_ENV.${dvi:T}+= TEXINPUTS=".:${TEXINPUTS.${dvi:T}:Q:S/\\ /:/g}:" .else _TEX_ENV.${dvi:T}+= TEXINPUTS="${TEXINPUTS.${dvi:T}:Q:S/\\ /:/g}" .endif .endif .if defined(TEXMFOUTPUT.${dvi:T})&&!empty(TEXMFOUTPUT.${dvi:T}) _TEX_ENV.${dvi:T}+= TEXMFOUTPUT=${TEXMFOUTPUT.${dvi:T}:Q} .endif .if defined(TEXFORMATS.${dvi:T})&&!empty(TEXFORMATS.${dvi:T}) _TEX_ENV.${dvi:T}+= TEXFORMATS=${TEXFORMATS.${dvi:T}:Q} .endif .if defined(TEXPOOL.${dvi:T})&&!empty(TEXPOOL.${dvi:T}) _TEX_ENV.${dvi:T}+= TEXPOOL=${TEXPOOL.${dvi:T}:q} .endif .if defined(TFMFONTS.${dvi:T})&&!empty(TFMFONTS.${dvi:T}) _TEX_ENV.${dvi:T}+= TFMFONTS=${TFMFONTS.${dvi:T}:Q} .endif # On insère cet environnement sur la ligne de commande .if defined(_TEX_ENV.${dvi:T})&&!empty(_TEX_ENV.${dvi:T}) _TEX_BUILD.${dvi:T} = ${ENVTOOL} ${_TEX_ENV.${dvi:T}} ${TEX.dvi} .else _TEX_BUILD.${dvi:T} = ${TEX.dvi} .endif # On traite les variables dont l'argument est transmis au programme .if defined(FORMAT.dvi.${dvi:T})&&!empty(FORMAT.dvi.${dvi:T}) _TEX_BUILD.${dvi:T}+= -fmt ${FORMAT.dvi.${dvi:T}} .endif .if defined(INTERACTION.${dvi:T})&&!empty(INTERACTION.${dvi:T}) _TEX_BUILD.${dvi:T}+= -interaction ${INTERACTION.${dvi:T}}mode .endif .if defined(JOBNAME.${dvi:T})&&!empty(JOBNAME.${dvi:T}) _TEX_BUILD.${dvi:T}+= -jobname ${JOBNAME.${dvi:T}} .endif .if defined(COMMENT.${dvi:T})&&!empty(COMMENT.${dvi:T}) _TEX_BUILD.${dvi:T}+= -output-comment ${COMMENT.${dvi:T}} .endif .if defined(PROGNAME.${dvi:T})&&!empty(PROGNAME.${dvi:T}) _TEX_BUILD.${dvi:T}+= -progname ${PROGNAME.${dvi:T}} .endif # On termine en ajoutant le fichier source principal _TEX_BUILD.${dvi:T}+=${_TEX_SRC.${dvi:T}} .endfor # # Production des recettes # # La production des recttes est controlée par les variables # MULTIPASS et DRAFT. # # La dépendance ${dvi}: ${_TEX_SRC.${dvi:T}} est ajoutée # automatiquement. # Pour les traitements à plusieurs passes, on utilise des fichiers # intermédiaires (des `cookies') pour faciliter la gestion des # dépendances, et permettre l'insertion de passes supplémentaires, par # exemple pour la préparation des bibliographies ou des index. .for dvi in ${_TEX_DVI} .if defined(MULTIPASS)&&!empty(MULTIPASS)&&(${DRAFT} == no) .undef _TEX_pass_last .for pass in ${MULTIPASS} .if defined(_TEX_pass_last) ${COOKIEPREFIX}${dvi:T}.${pass}: ${COOKIEPREFIX}${dvi:T}.${_TEX_pass_last} .endif _TEX_pass_last:= ${pass} .endfor .for pass in ${MULTIPASS} ${COOKIEPREFIX}${dvi:T}.${pass}: ${_TEX_SRC.${dvi:T}} ${INFO} 'Multipass job for ${dvi:T} (${pass})' ${_TEX_BUILD.${dvi:T}} @${RM} -f ${dvi} @${TOUCH} ${.TARGET} COOKIEFILES+= ${COOKIEPREFIX}${dvi:T}.${pass} .endfor ${dvi}: ${_TEX_SRC.${dvi:T}} ${COOKIEPREFIX}${dvi:T}.${_TEX_pass_last} ${INFO} 'Multipass job for ${dvi:T} (final)' ${_TEX_BUILD.${dvi:T}} .else ${dvi}: ${_TEX_SRC.${dvi:T}} ${_TEX_BUILD.${dvi:T}} .endif .endfor .endif #!target(____) ### End of file `tex.driver.dvi.mk' bsdowl-2.2.2/texmf/tex.driver.dvips.mk000640 001751 001751 00000004261 12436317346 020761 0ustar00michaelmichael000000 000000 ### tex.driver.dvips.mk -- Organise la production des fichiers PostScript # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .if !target(____) ____: DVIPS?= dvips # # Spécialisation des variables # # Par ordre de spécialisation croissante: # DVIPSFLAGS, # DVIPSFLAGS.document, # DVIPSFLAGS.document.ps, # DVIPSFLAGS.document.printer.ps. .for var in DVIPSFLAGS DVIPS .for doc in ${_TEX_DOC} .if defined(${var})&&!empty(${var})&&!defined(${var}.${doc:T}) ${var}.${doc:T} = ${${var}} .endif .if defined(${var}.${doc:T})&&!empty(${var}.${doc:T})&&!defined(${var}.${doc:T}.ps) ${var}.${doc:T}.ps = ${${var}.${doc:T}} .endif .for printer in ${PRINTERS} .if defined(${var}.${doc:T}.ps)&&!empty(${var}.${doc:T}.ps)&&!defined(${var}.${doc:T}.${printer}.ps) ${var}.${doc:T}.${printer}.ps = ${${var}.${doc:T}.ps} .endif .endfor .endfor .endfor # # Création des lignes de commande # .for ps in ${_TEX_PS} _DVIPS_BUILD.${ps:T} = ${DVIPS} .for printer in ${PRINTERS} # Le prédicat == insiste pour avoir une variable à gauche. La # bidouille __loop__ le satisfait. __loop__=${printer} .if ${__loop__} == ${ps:C/.ps$//:C/^.*\.//} _DVIPS_BUILD.${ps:T}+= -P ${printer} .endif .undef __loop__ .endfor .if defined(DVIPSFLAGS.${ps:T})&&!empty((DVIPSFLAGS.${ps:T}) _DVIPS_BUILD.${ps:T}+= ${DVIPSFLAGS.${ps:T}} .endif _DVIPS_BUILD.${ps:T}+= -o ${ps} ${ps}.dvi .endfor # # Recettes # # La production du fichier dvi est déléguée au module `tex.driver.dvi.mk', qui # s'occupe de gérer correctement les variables MULTIPASS et DRAFT. .for ps in ${_TEX_PS} ${ps}: ${ps}.dvi ${_DVIPS_BUILD.${ps:T}} .endfor .endif #!target(____) ### End of file `tex.driver.dvips.mk' bsdowl-2.2.2/texmf/tex.files.main.mk000640 001751 001751 00000002013 12436317346 020360 0ustar00michaelmichael000000 000000 ### tex.files.main.mk -- Installation de fichiers pour un système TeX # Author: Michael Grünewald # Date: Dim 9 sep 2007 17:32:25 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # Voir le fichier `tex.files.mk' pour la documentation. MKTEXLSR?= mktexlsr FILESGROUPS+= TEXFILES FORMAT?= generic PACKAGE?= misc TEXDOCDIR?= ${TEXMFDIR}/doc/${FORMAT}${PACKAGEDIR} TEXFILESDIR?= ${TEXMFDIR}/tex/${FORMAT}${PACKAGEDIR} .if defined(TEXFILES)&&!empty(TEXFILES) post-install: post-install-mktexlsr post-install-mktexlsr: .IGNORE ${MKTEXLSR} ${TEXMFDIR} .endif ### End of file `tex.files.main.mk' bsdowl-2.2.2/texmf/tex.files.mk000640 001751 001751 00000003561 12436317346 017446 0ustar00michaelmichael000000 000000 ### tex.files.main.mk -- Installation de fichiers pour un système TeX # Author: Michael Grünewald # Date: Dim 9 sep 2007 17:32:25 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # TEXFILES+= lmodern.sty # TEXFILES+= ts1lmvtt.fd # ... # FORMAT = latex # PACKAGE = lm # TEXDIR = ${TEXMFDIR}/tex/${FORMAT}${PACKAGEDIR} # # .include "tex.files.ml" ### DESCRIPTION # Ce module se charge de l'installation de fichiers de macros dans un # système TeX. La liste des fichiers à installer doit être émumérée # dans TEXFILES. Le répertoire de destination est calculé à partir de # la valeur des variables PACKAGE et FORMAT. # # Le module réclame la mise-à-jour des bases de données `ls-R' # nécessaires. # # Description des variables # # TEXFILES # # Énumère les fichiers de macros à installer # FORMAT (generic) # # Format pour lequel les macros sont écrites # # Les valeurs courantes sont: amstex, context, generic, latex, plain. # Ce nom est utilisé pour calculer le dossier d'installation # TEXFILESDIR. # PACKAGE (misc) # # Application désignant les macros # # Ce nom est utilisé pour calculer le dossier d'installation # TEXFILESDIR. # MKTEXLSR (mktexlsr) # # Programme utilisé pour mettre à jour la base de données `ls-R' ### IMPLÉMENTATION .include "bps.init.mk" .include "texmf.init.mk" .include "tex.files.main.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `tex.files.main.mk' bsdowl-2.2.2/texmf/tex.mpost.mk000640 001751 001751 00000014633 12436317346 017510 0ustar00michaelmichael000000 000000 ### tex.mpost.mk -- Création de figures avec METAPOST # Author: Michael Grünewald # Date: Dim 9 sep 2007 14:49:18 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # FIGS = conics.mp # FIGS+= desargues.mp # # FIGS.lalala = pappus.mp # # .include "tex.mpost.mk" # # Description # # MPTEXINPUTS # # This special variable shadows TEXINPUTS when it is defined, this will ease # the share of figure files across several files. Note that, in this case, # figures should be put in a separate folder. # MPOST_OBJECTS # # List of Metapost objects # # After evaluation of this file, the variable MPOST_OBJECTS contains # the list of Metapost intermediary objects. # MPOST_CONVERT_MPS (yes) # # Control conversion of METAPOST encapsulated PostScript to device # # The program pdfTeX is not able to include directly encapsulated # PostScript and therefore require these files to be converted to # PDF. For LaTeX the graphicx package will take care of this # conversion but other packages will need support. # MPOST_LIBS # # Libraries of Metapost macros. MPOST_CONVERT_MPS?= yes # # Pseudo commands # MPOST?= mpost MPTEX?= ${TEX.dvi} MP2EPS?= mp2eps MP2PDF?= mp2pdf MP2PNG?= mp2png MPOST_DEVICE.dvi?= eps MPOST_DEVICE.ps?= eps MPOST_DEVICE.pdf?= pdf .if !empty(TEXDEVICE:M*.ps) .for device in ${TEXDEVICE:M*.ps} MPOST_DEVICE.${device} = ${MPOST_DEVICE.ps} .endfor .endif _MPOST_CLEAN?= _MPOST_FIG?= _MPOST_VARS+= MPINPUTS _MPOST_VARS+= MPTEX _MPOST_VARS+= MPTEXINPUTS MPOST_TOOL.eps = ${MP2EPS} MPOST_TOOL.pdf = ${MP2PDF} MPOST_TOOL.png = ${MP2PNG} # # Analyse figure files # .for fig in ${FIGS} .if empty(_MPOST_FIG:M${fig}) _MPOST_FIG+=${fig} .endif .endfor .for doc in ${_TEX_DOC} .if defined(FIGS.${doc:T})&&!empty(FIGS.${doc:T}) .for fig in ${FIGS.${doc:T}} .if empty(_MPOST_FIG:M${fig}) _MPOST_FIG+=${fig} .endif .endfor .endif .endfor # The variable _MPOST_FIG holds the list of figure files used by the # document. .for fig in ${_MPOST_FIG} ${COOKIEPREFIX}${fig:T}: ${fig} @${SED} -n 's/^beginfig(\([0-9][0-9]*\)).*/${fig:.mp=}-\1.mps/p' ${.ALLSRC} > ${.TARGET} depend: ${COOKIEPREFIX}${fig:T} .if exists(${COOKIEPREFIX}${fig:T}) _MPOST_LIST.${fig:T}!= cat ${COOKIEPREFIX}${fig:T} .else _MPOST_LIST.${fig:T} = .endif HARDCOOKIEFILES+= ${COOKIEPREFIX}${fig:T} .endfor # For each figure file, the variable _MPOST_LIST.${fig:T} holds the # list of figures---if this list was once generated. # # Adding sources # .if defined(_TEX_DOC)&&!empty(_TEX_DOC) .for doc in ${_TEX_DOC} .if defined(FIGS)&&!empty(FIGS) FIGS.${doc:T}+= ${FIGS} .endif .if defined(FIGS.${doc:T}) .for fig in ${FIGS.${doc:T}} .for device in ${TEXDEVICE} .if ${MPOST_CONVERT_MPS} == "yes" .for item in ${_MPOST_LIST.${fig:T}} SRCS.${doc:T}.${device}+= ${item:.mps=.${MPOST_DEVICE.${device}}} .endfor .else SRCS.${doc:T}.${device}+= ${_MPOST_LIST.${fig:T}} .endif .endfor .endfor .endif .endfor .endif # # Creating command lines # # METAPOST files can contain TeX commands. We therefore have to # ensure, they are processed in a similar environment. .for var in ${_TEX_VARS} ${_MPOST_VARS} .for fig in ${FIGS} .if defined(${var})&&!empty(${var})&&!defined(${var}.${fig:T}) ${var}.${fig:T} = ${${var}} .endif .endfor .endfor .for fig in ${FIGS} .if defined(MPTEX.${fig:T})&&!empty(MPTEX.${fig:T}) _MPOST_ENV.${fig:T}+= TEX=${MPTEX.${fig:T}:Q} .endif .if defined(MPINPUTS.${fig:T})&&!empty(MPINPUTS.${fig:T}) .if !defined(USE_STRICT_MPINPUTS)|| ${USE_STRICT_MPINPUTS} != yes _MPOST_ENV.${fig:T}+= MPINPUTS=".:${MPINPUTS.${fig:T}:Q:S/\\ /:/g}:" .else _MPOST_ENV.${fig:T}+= MPINPUTS="${MPINPUTS.${fig:T}:Q:S/\\ /:/g}" .endif .endif .if defined(MPTEXINPUTS.${fig:T})&&!empty(MPTEXINPUTS.${fig:T}) .if !defined(USE_STRICT_MPTEXINPUTS)|| ${USE_STRICT_MPTEXINPUTS} != yes _MPOST_ENV.${fig:T}+= TEXINPUTS=".:${MPTEXINPUTS.${fig:T}:Q:S/\\ /:/g}:" .else _MPOST_ENV.${fig:T}+= TEXINPUTS="${MPTEXINPUTS.${fig:T}:Q:S/\\ /:/g}" .endif .elif defined(TEXINPUTS.${fig:T})&&!empty(TEXINPUTS.${fig:T}) .if !defined(USE_STRICT_TEXINPUTS)|| ${USE_STRICT_TEXINPUTS} != yes _MPOST_ENV.${fig:T}+= TEXINPUTS=".:${TEXINPUTS.${fig:T}:Q:S/\\ /:/g}:" .else _MPOST_ENV.${fig:T}+= TEXINPUTS="${TEXINPUTS.${fig:T}:Q:S/\\ /:/g}" .endif .endif .if defined(TEXMFOUTPUT.${fig:T})&&!empty(TEXMFOUTPUT.${fig:T}) _MPOST_ENV.${fig:T}+= TEXMFOUTPUT=${TEXMFOUTPUT.${fig:T}:Q} .endif .if defined(TEXFORMATS.${fig:T})&&!empty(TEXFORMATS.${fig:T}) _MPOST_ENV.${fig:T}+= TEXFORMATS=${TEXFORMATS.${fig:T}:Q} .endif .if defined(TEXPOOL.${fig:T})&&!empty(TEXPOOL.${fig:T}) _MPOST_ENV.${fig:T}+= TEXPOOL=${TEXPOOL.${fig:T}:q} .endif .if defined(TFMFONTS.${fig:T})&&!empty(TFMFONTS.${fig:T}) _MPOST_ENV.${fig:T}+= TFMFONTS=${TFMFONTS.${fig:T}:Q} .endif .if defined(_MPOST_ENV.${fig:T})&&!empty(_MPOST_ENV.${fig:T}) _MPOST_BUILD.${fig:T} = ${ENVTOOL} ${_MPOST_ENV.${fig:T}} ${MPOST} .else _MPOST_BUILD.${fig:T} = ${MPOST} .endif .endfor # # Path for file lookup # .SUFFIXES: .mp .if defined(MPINPUTS)&&!empty(MPINPUTS) .PATH.mp: ${MPINPUTS} .endif # # Processing files # .for fig in ${_MPOST_FIG} ${_MPOST_LIST.${fig:T}}: ${fig} ${_MPOST_BUILD.${fig:T}} ${fig} .if defined(MPOST_LIBS)&&!empty(MPOST_LIBS) ${_MPOST_LIST.${fig:T}}: ${MPOST_LIBS} .endif MPOST_OBJECTS+= ${_MPOST_LIST.${fig:T}} .endfor # # Post production # .for fig in ${_MPOST_FIG} .for device in ${TEXDEVICE} .for item in ${_MPOST_LIST.${fig:T}} .if !target(${item:.mps=.${MPOST_DEVICE.${device}}}) ${item:.mps=.${MPOST_DEVICE.${device}}}: ${item} ${MPOST_TOOL.${MPOST_DEVICE.${device}}} ${.ALLSRC} .endif .endfor .endfor .endfor # # Cleanfiles # .for fig in ${_MPOST_FIG} DISTCLEANFILES+= ${fig:.mp=.log} ${fig:.mp=.mpx} .endfor .for fig in ${_MPOST_FIG} .for item in ${_MPOST_LIST.${fig:T}} REALCLEANFILES+= ${item} .endfor .endfor .for fig in ${_MPOST_FIG} .for device in ${TEXDEVICE} .for item in ${_MPOST_LIST.${fig:T}} REALCLEANFILES+= ${item:.mps=.${MPOST_DEVICE.${device}}} .endfor .endfor .endfor .for file in mpxerr.log mpxerr.tex texnum.mpx mptextmp.mp mptextmp.mpx .if exists(${file}) CLEANFILES+= ${file} .endif .endfor ### End of file `tex.mpost.mk' bsdowl-2.2.2/support/Makefile000640 001751 001751 00000000430 12436317346 017235 0ustar00michaelmichael000000 000000 ### Makefile -- Support scripts for BSD Owl Scripts # Author: Michael Grünewald # Date: Ven 9 mai 2008 14:47:47 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION SCRIPT+= mp2eps.sh SCRIPT+= mp2png.sh SCRIPT+= mp2pdf.sh .include "script.mk" ### End of file `Makefile' bsdowl-2.2.2/support/mp2eps.sh000640 001751 001751 00000003351 12436317346 017344 0ustar00michaelmichael000000 000000 #!/bin/sh ### mp2eps.sh -- Convert METAPOST output to PostScript # Author: Michael Grünewald # Date: Sat 10 Dec 2005 09:58:48 GMT # Global Variables: AUTHOR="Michael Grünewald " COPYRIGHT="©2005–2014" PROGNAME=`basename "$0"` # Ancillary functions prerr() { echo "$@" 1>&2 } HELP() { iconv -f utf-8 < $texfile </dev/null 1>/dev/null else echo Debugging 1>&2 fi shift $(expr $OPTIND - 1) for arg in "$@"; do process_arg "$arg"; done ### End of file `mp2eps.sh' bsdowl-2.2.2/support/mp2png.sh000640 001751 001751 00000002717 12436317346 017346 0ustar00michaelmichael000000 000000 #!/bin/sh ### mp2png.sh -- Convert METAPOST output to PNG # Author: Michael Grünewald # Date: Sat 10 Dec 2005 09:58:48 GMT # Global Variables: AUTHOR="Michael Grünewald " COPYRIGHT="©2005–2014" PROGNAME=`basename "$0"` # resolution [1200] # Resolution of PostScript rendering. resolution=1200 # Ancillary functions prerr() { echo "$@" 1>&2 } HELP() { iconv -f utf-8 <&2 } HELP() { cat - <__) ____: # # Detect idiosyncratic variables # .if defined(PKGS)&&!empty(PKGS) USE_OCAMLFIND?=yes .endif .if defined(PREDICATES)&&!empty(PREDICATES) USE_OCAMLFIND?=yes .endif # # Conditionally define virtual tools # USE_OCAMLFIND?=no WITH_PROFILE?=no USE_OPTIMIZED_COMPILER?=no .if ${USE_OCAMLFIND} == yes .if !defined(USE_OCAMLFIND_COMMANDS) .if ${WITH_PROFILE} == no && ${USE_OPTIMIZED_COMPILER} == yes USE_OCAMLFIND_COMMANDS=yes OCAMLFIND_OCAMLC=ocamlc.opt OCAMLFIND_OCAMLOPT=ocamlopt.opt .endif .endif USE_OCAMLFIND_COMMANDS?=no .if ${USE_OCAMLFIND_COMMANDS} == yes .if !defined(OCAMLFIND_COMMANDS) OCAMLFIND_OCAMLC?=ocamlc OCAMLFIND_OCAMLOPT?=ocamlopt OCAMLFIND_COMMANDS+=ocamlc=${OCAMLFIND_OCAMLC} OCAMLFIND_COMMANDS+=ocamlopt=${OCAMLFIND_OCAMLOPT} OCAMLFIND?=${ENVTOOL} OCAMLFIND_COMMANDS="${OCAMLFIND_COMMANDS}" ocamlfind .else .endif .endif OCAMLFIND?=ocamlfind .endif .if ${USE_OCAMLFIND} == yes OCAMLDOC?= ${OCAMLFIND} ocamldoc OCAMLMKTOP?= ${OCAMLFIND} ocamlmktop -linkpkg .if ${WITH_PROFILE} == yes # Profiling case OCAMLCB?= ${OCAMLFIND} ocamlcp -c OCAMLCN?= ${OCAMLFIND} ocamloptp -c .if defined(_OCAML_COMPILE_NATIVE_ONLY) OCAMLCI?= ${OCAMLFIND} ocamloptp -c .else OCAMLCI?= ${OCAMLFIND} ocamlcp -c .endif OCAMLLB?= ${OCAMLFIND} ocamlcp -linkpkg OCAMLLN?= ${OCAMLFIND} ocamloptp -linkpkg .else # Not profiling case OCAMLCB?= ${OCAMLFIND} ocamlc -c OCAMLCN?= ${OCAMLFIND} ocamlopt -c .if defined(_OCAML_COMPILE_NATIVE_ONLY) OCAMLCI?= ${OCAMLFIND} ocamlopt -c .else OCAMLCI?= ${OCAMLFIND} ocamlc -c .endif OCAMLLB?= ${OCAMLFIND} ocamlc -linkpkg OCAMLLN?= ${OCAMLFIND} ocamlopt -linkpkg .endif .endif .if defined(WITH_THREADS)&&(${WITH_THREADS} == yes) .if empty(PKGS:Mthreads) PKGS+= threads .endif .endif .for pseudo in OCAMLCB OCAMLCN OCAMLCI OCAMLLB OCAMLLN OCAMLDOC OCAMLMKTOP .if defined(PKGS)&&!empty(PKGS) ${pseudo}+= -package "${PKGS}" .endif .if defined(WITH_THREADS)&&(${WITH_THREADS} == yes) .if defined(WITH_VMTHREADS)&&(${WITH_VMTHREADS} == yes) ${pseudo}+= -threads .else ${pseudo}+= -vmthreads .endif .endif .if defined(PREDICATES)&&!empty(PREDICATES) ${pseudo}+= -predicates "${PREDICATES}" .endif .endfor .endif #!target(____) ### End of file `ocaml.find.mk' bsdowl-2.2.2/ocaml/ocaml.depend.mk000640 001751 001751 00000004716 12436317346 020051 0ustar00michaelmichael000000 000000 ### ocaml.depend.mk -- Dependency generator # Author: Michael Grünewald # Date: Sat Jul 7 20:40:59 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # Define a rule to rebuild the .depend target. It uses the contents of # _OCAML_SRCS to populate the parents of `.depend`. # .depend: module1.ml # .depend: module1.mli # .depend: module2.mly # .depend: module3.mll # .include "ocaml.depend.mk" ### DESCRIPTION # We use ocamldep(1) to generate file dependencies in .depend. We # run ocamldep(1) on the sources listed in the Makefile. # # We need to be smart when handling lexers and parsers because in the # case of parsers, an interface will be supplied by ocamlyacc(1) if # the user did not write one. # # The case where we are only building native code objects also # deserves special treatments to avoid creating spurious bytecode # files. # # This module is intended to be included by other modules rather than # to serve as is to the end user. # Targets: # .depend # do-depend # do-clean-depend # Variables: ### IMPLEMENTATION .if !target(____) ____: .for thg in ${_OCAML_SRCS} .for item in ${${thg}} .depend: ${item:C/.ml[ly]/.ml/} .if exists(${item:.ml=.mli}) .depend: ${item:.ml=.mli} .endif .if !empty(${thg}:M*mly) .for item in ${${thg}:M*.mly} .if !exists(${item:.mly=.mli}) .depend: ${item:.mly=.mli} .endif .endfor .endif .endfor # This logic adds implementation files associated to lexers when they # are defined. Does it belongs `ocaml.lex.mk`? .for item in ${${thg}:M*.mll} .if exists(${item:.mll=.mli}) .depend: ${item:.mll=.mli} .endif .endfor # This logic adds implementation files associated to parsers. Does it # belongs `ocaml.yacc.mk`? .for item in ${${thg}:M*.mly} .depend: ${item:.mly=.mli} .endfor .endfor .depend: .if !defined(_OCAML_COMPILE_NATIVE_ONLY) ocamldep ${OCAMLDEPFLAGS} ${.ALLSRC} > ${.TARGET} .else ocamldep -native ${OCAMLDEPFLAGS} ${.ALLSRC} > ${.TARGET} .endif REALCLEANFILES+= .depend .if target(do-depend) do-depend: .depend .endif .endif # !target(____) ### End of file `ocaml.depend.mk' bsdowl-2.2.2/ocaml/ocaml.init.mk000640 001751 001751 00000003756 12436317346 017560 0ustar00michaelmichael000000 000000 ### ocaml.init.mk -- Common initialisation for OCaml projects # Author: Michael Grünewald # Date: Sat Jul 7 20:59:45 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # .include "ocaml.init.mk" ### DESCRIPTION # This modules is responsible for early initialisation of some # variables used by our OCaml framework. It defines _OCAML_OBJECT and # reads in several modules. # # This module is intended to be included by other modules rather than # to serve as is to the end user. # Variables: # # # _OCAML_OBJECT # The list of object groups handled by our framework # # # LIBDIR # The installation target for libraries # # The value defined in `bps.own.mk` is suited for C libraries but not # for OCaml objects that are rather installed in the same location as # the standard library. # # It takes into account the PACKAGEDIR variable. ### IMPLEMENTATION .if !target(____) ____: .if !defined(PACKAGEDIR)||empty(PACKAGEDIR) LIBDIR?=${PREFIX}/lib/ocaml${PACKAGEDIR} .else LIBDIR?=${PREFIX}/lib/ocaml/site-lib${PACKAGEDIR} .endif .SUFFIXES: .ml .mli .mll .mly .SUFFIXES: .cmi .cmo .cmx .o .a .cma .cmxa _OCAML_OBJECT = _OCAML_CMI _OCAML_OBJECT+= _OCAML_CMO _OCAML_OBJECT+= _OCAML_CMX _OCAML_OBJECT+= _OCAML_O _OCAML_OBJECT+= _OCAML_A _OCAML_OBJECT+= _OCAML_CB _OCAML_OBJECT+= _OCAML_CN _OCAML_OBJECT+= _OCAML_CMA _OCAML_OBJECT+= _OCAML_CMXA _OCAML_OBJECT+= _OCAML_PKO _OCAML_OBJECT+= _OCAML_PKX .include "ocaml.compile.mk" .include "ocaml.find.mk" .include "ocaml.tools.mk" .include "ocaml.dirs.mk" .endif # !target(____) ### End of file `ocaml.init.mk' bsdowl-2.2.2/ocaml/ocaml.tools.mk000640 001751 001751 00000006525 12436317346 017752 0ustar00michaelmichael000000 000000 ### ocaml.tools.mk -- Define virtual tools for OCaml # Author: Michael Grünewald # Date: Sat Jul 7 20:50:52 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # .include "ocaml.compile.mk" # .include "ocaml.tools.mk" ### DESCRIPTION # We define virtual tools to access the OCaml tools suite. Some # modules adjust these variables (as ocaml.find.mk) or define more (as # ocaml.depend.mk). # Variables: # # OCAMLCB (ocamlc) # Bytecode compiler # # # OCAMLCN (ocamlopt) # Native compiler # # # OCAMLCI (ocamlc or ocamlopt) # Interface compiler # # We use ocamlc to compile interface files or ocamlopt in the case # where only native code executables are prepared. The produced # compiled interfaces should be identical. # # # OCAMLAB (ocamlc -a) # Bytecode libraries packager # # # OCAMLAN (ocamlopt -a) # Native libraries packager # # # OCAMLLB (ocamlc) # Bytecode program linker # # # OCAMLLN (ocamlopt) # Native program linker # # # OCAMLPB (ocamlc -pack) # Bytecode packed module packager # # # OCAMLPN (ocamlopt -pack) # Native packed module packager # # # _OCAML_TOOLS # The list of defined tools # # # WITH_PROFILE (no) # Knob controlling build of files with profiling information # # Setting WITH_PROFILE to yes will enforce the use of the profiling # front-ends to OCaml compilers. # # # USE_OPTIMIZED_COMPILER # Use optimized compilers # # This is not compatible with the WITH_PROFILE knob, which will take # precedence. ### IMPLEMENTATION .if !target(____) ____: _OCAML_TOOLS+= OCAMLCI _OCAML_TOOLS+= OCAMLCB _OCAML_TOOLS+= OCAMLCN _OCAML_TOOLS+= OCAMLAB _OCAML_TOOLS+= OCAMLAN _OCAML_TOOLS+= OCAMLLB _OCAML_TOOLS+= OCAMLLN _OCAML_TOOLS+= OCAMLPB _OCAML_TOOLS+= OCAMLPN WITH_PROFILE?= no USE_OPTIMIZED_COMPILER?= no .if ${USE_OPTIMIZED_COMPILER} != no && ${WITH_PROFILE} != no .warning The USE_OPTIMIZED_COMPILER flag is superseded by WITH_PROFILE. .endif .if ${WITH_PROFILE} == yes # Profiling case OCAMLCB?= ocamlcp -c OCAMLCN?= ocamloptp -c .if defined(_OCAML_COMPILE_NATIVE_ONLY) OCAMLCI?= ocamloptp -c .else OCAMLCI?= ocamlcp -c .endif OCAMLAB?= ocamlcp -a OCAMLAN?= ocamloptp -a OCAMLLB?= ocamlcp OCAMLLN?= ocamloptp OCAMLPB?= ocamlcp -pack OCAMLPN?= ocamloptp -pack .elif ${USE_OPTIMIZED_COMPILER} == yes # Optimized compiler case OCAMLCB?= ocamlc.opt -c OCAMLCN?= ocamlopt.opt -c .if defined(_OCAML_COMPILE_NATIVE_ONLY) OCAMLCI?= ocamlopt.opt -c .else OCAMLCI?= ocamlc.opt -c .endif OCAMLAB?= ocamlc.opt -a OCAMLAN?= ocamlopt.opt -a OCAMLLB?= ocamlc.opt OCAMLLN?= ocamlopt.opt OCAMLPB?= ocamlc.opt -pack OCAMLPN?= ocamlopt.opt -pack .else # Normal case OCAMLCB?= ocamlc -c OCAMLCN?= ocamlopt -c .if defined(_OCAML_COMPILE_NATIVE_ONLY) OCAMLCI?= ocamlopt -c .else OCAMLCI?= ocamlc -c .endif OCAMLAB?= ocamlc -a OCAMLAN?= ocamlopt -a OCAMLLB?= ocamlc OCAMLLN?= ocamlopt OCAMLPB?= ocamlc -pack OCAMLPN?= ocamlopt -pack .endif .endif#!target(____) ### End of file `ocaml.tools.mk' bsdowl-2.2.2/ocaml/ocaml.lex.mk000640 001751 001751 00000003661 12436317346 017400 0ustar00michaelmichael000000 000000 ### ocaml.lex.mk -- Support for the OCaml lexer generator # Author: Michael Grünewald # Date: Wed Aug 1 11:38:01 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # .include "ocaml.lex.mk" ### DESCRIPTION # We analyse each list of sources appearing in _OCAML_SRCS and when we # spot an OCaml lexer input file, require it to be processed by # ocamllex. # # This module is intended to be included by other modules rather than # to serve as is to the end user. # Variables: # # # OCAMLLEX # Command used to run the lexer generator # # # _OCAML_MLL # Detected lexers are added to this list # # # _OMCAML_MLI # Interfaces associated to detected lexers are added to this list .if !target(____) ____: OCAMLLEX?= ocamllex .for src in ${_OCAML_SRCS} .if defined(${src}) .if !empty(${src}:M*.mll) .for lexer in ${${src}:M*.mll} .if empty(_OCAML_MLL)||empty(_OCAML_MLL:M${lexer}) _OCAML_MLL+=${lexer} .endif .endfor .endif .endif .endfor .if defined(_OCAML_MLL)&&!empty(_OCAML_MLL) .for unit in ${_OCAML_MLL:.mll=.ml} .if empty(CLEANFILES)||empty(CLEANFILES:M${unit}) CLEANFILES+=${unit} .endif .if empty(_OCAML_ML)||empty(_OCAML_ML:M${unit}) _OCAML_ML+=${unit} .endif .endfor .endif .if defined(_OCAML_MLL)&&!empty(_OCAML_MLL) .for if in ${_OCAML_MLL:.mll=.mli} .if exists(${if}) && empty(_OCAML_MLI:M${if}) _OCAML_MLI+=${if} .endif .endfor .for lexer in ${_OCAML_MLL} ${lexer:.mll=.ml}: ${lexer} ${OCAMLLEX} -o ${.TARGET} ${.ALLSRC} .endfor .endif .endif # !target(____) ### End of file `ocaml.lex.mk' bsdowl-2.2.2/ocaml/ocaml.lib.mk000640 001751 001751 00000005354 12436317346 017357 0ustar00michaelmichael000000 000000 ### ocaml.lib.mk -- Building OCaml libraries # Author: Michael Grünewald # Date: Tue Apr 5 12:31:04 CEST 2005 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # LIBRARY= newton # SRCS+= newton.ml # # .include "ocaml.lib.mk" ### DESCRIPTION # Build an ocaml library, compiling each of the module listed in SRCS # and creating a library named as LIBRARY. # # It supports building bytecode and native libraries, ocamlfind, # lexers and parsers generated by ocamllex and ocamlyacc and # debugging, profiling as well. # Variables: # # # LIBRARY # The name of the library # # # SRCS # Files to put in the library # # It can list implementation files, lexer and parser definitions. # # # LIBOWN, LIBGRP, LIBMODE, LIBDIR, LIBNAME # Paramters of the library installation # # See `bps.own.mk` for a closer description of these variables. If # the PACKAGE library is set, then LIBDIR will appropriately be # initialised to ${PREFIX}/lib/ocaml/site-lib${PACKAGEDIR} # instead of {PREFIX}/lib/ocaml. ### IMPLEMENTATION .include "bps.init.mk" .include "ocaml.init.mk" # We do not support the LIB short name, because it clashes with a file # installation group. # # .if defined(LIB)&&!empty(LIB) # LIBRARY?= ${LIB} # .endif .if !defined(LIBRARY)||empty(LIBRARY) .error The ocaml.lib.mk expects you to set the LIBRARY variable to a sensible value. .endif _OCAML_SRCS?= _OCAML_CMA?= _OCAML_CMXA?= _OCAML_A?= _OCAML_LIB:=${LIBRARY} .for lib in ${_OCAML_LIB} SRCS.${lib:T}?=${SRCS} .if defined(_OCAML_COMPILE_NATIVE) SRCS.${lib:T}.cmxa?=${SRCS.${lib:T}} _OCAML_SRCS+=SRCS.${lib}.cmxa _OCAML_CMXA+=${lib:T}.cmxa _OCAML_A+=${lib:T}.a .endif .if defined(_OCAML_COMPILE_BYTE) SRCS.${lib:T}.cma?=${SRCS.${lib:T}} _OCAML_SRCS+=SRCS.${lib}.cma _OCAML_CMA+=${lib:T}.cma .endif .endfor .include "ocaml.main.mk" .for lib in ${_OCAML_LIB} .if defined(_OCAML_COMPILE_NATIVE) LIB+= ${lib}.cmxa ${lib}.a _OCAML_SRCS.${lib}.cmxa=${.ALLSRC} ${lib}.cmxa: ${SRCS.${lib}.cmxa:C/\.ml[ly]/.ml/:M*.ml:.ml=.cmx} .endif .if defined(_OCAML_COMPILE_BYTE) LIB+= ${lib}.cma _OCAML_SRCS.${lib:T}.cma=${.ALLSRC} ${lib}.cma: ${SRCS.${lib:T}.cma:C/\.ml[ly]/.ml/:M*.ml:.ml=.cmo} .endif .if !empty(SRCS.${lib:T}:C/\.ml[ly]/.ml/:M*.ml) LIB+= ${SRCS.${lib:T}:C/\.ml[ly]/.ml/:M*.ml:.ml=.cmi} .endif .endfor .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `ocaml.lib.mk' bsdowl-2.2.2/ocaml/ocaml.main.mk000640 001751 001751 00000002304 12436317346 017525 0ustar00michaelmichael000000 000000 ### ocaml.main.mk -- Main common file # Author: Michael Grünewald # Date: Wed Aug 1 09:28:08 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # .include "ocaml.main.mk" ### DESCRIPTION # This would-be mean file has for only job to define one entry point # slurping many other simpler files. It is an important node in the # hierarchy but nothing per se. # # This module is intended to be included by other modules rather than # to serve as is to the end user. .if !target(____) ____: do-depend: ${NOP} do-doc: ${NOP} .include "ocaml.source.mk" .include "ocaml.yacc.mk" .include "ocaml.lex.mk" .include "ocaml.object.mk" .include "ocaml.build.mk" .include "ocaml.depend.mk" .include "ocaml.odoc.mk" .endif # !target(____) ### End of file `ocaml.main.mk' bsdowl-2.2.2/ocaml/ocaml.manual.mk000640 001751 001751 00000002415 12436317346 020061 0ustar00michaelmichael000000 000000 ### ocaml.manual.mk -- Preparation of the HTML reference # Author: Michael Grünewald # Date: Mon Mar 10 11:59:53 CET 2008 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # MANUAL = backend.odoc # MANUAL+= filter.odoc # # DIRS = backend_src # DIRS+= filter_src # # .include "ocaml.manual.mk" ### DESCRIPTION # This modules supports the prepration of a HTML reference out of # ocamldoc(1) dump files. These files should prepared separately. # Variables: # # # MANUAL # List the ocamldoc files that should be processed # # # DIRS # List of paths that shall be searched for ocamldoc dump files ### IMPLEMENTATION .include "bps.init.mk" .if defined(MANUAL)&&!empty(MANUAL) ODOC_FORMAT = html .for module in ${MANUAL} ODOC_LOAD+= ${module} .endfor USE_ODOC = yes .include "ocaml.odoc.mk" .endif .include "bps.own.mk" .include "bps.usertarget.mk" ### End of file `ocaml.manual.mk' bsdowl-2.2.2/ocaml/ocaml.meta.mk000640 001751 001751 00000002346 12436317346 017535 0ustar00michaelmichael000000 000000 ### ocaml.meta.mk -- Installation of META files # Author: Michael Grünewald # Date: Wed Jun 30 16:02:10 CEST 2010 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # LIBDIR?= ${PREFIX}/lib/ocaml/site-lib${PACKAGEDIR} # .include "ocaml.meta.mk" ### DESCRIPTION # This module defines a file group for the installation of a META # file. It recognises both a META and a META.in file and register the # META file for installation. .if !target(____) ____: .include "bps.init.mk" .include "ocaml.init.mk" FILESGROUPS+= META METAOWN?= ${LIBOWN} METAGRP?= ${LIBGRP} METADIR?= ${LIBDIR} METAMODE?= ${LIBMODE} METANAME?= META .if exists(META)||exists(META.in) META= META .endif .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" .endif #!target(____) ### End of file `ocaml.meta.mk' bsdowl-2.2.2/ocaml/ocaml.object.mk000640 001751 001751 00000004754 12436317346 020062 0ustar00michaelmichael000000 000000 ### ocaml.object.mk -- Determines which objects are to build # Author: Michael Grünewald # Date: Wed Aug 1 11:37:14 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # _OCAML_ML+= module.ml # _OCAML_ML+= extra.ml # _OCAML_MLI+= module.mli # .include "ocaml.object.mk" ### DESCRIPTION # We scan _OCAML_ML and _OCAML_MLI variables, determine which # objects are to be built and update _OCAML_CMI, _OCAML_CMO, OCAML_CMX, # _OCAML_O and CLEANFILES accordingly. # # For each inferred object file, the variable _OCAML_SRCS.${object:T} # is appropriately filled. # # This module is intended to be included by other modules rather than # to serve as is to the end user. # Variables: # # # _OCAML_ML, _OCAML_MLI # Lists of files to process # # # _OCAML_CMI, _OCAML_CMO, OCAML_CMX, _OCAML_O # Lists of inferred objects # # # _OCAML_SRCS.* # Lists of sources for inferred objects .if !target(____) ____: _OCAML_SRCS?= _OCAML_MLI?= _OCAML_ML?= _OCAML_CMI?= _OCAML_CMO?= _OCAML_CMX?= _OCAML_O?= .if !empty(_OCAML_MLI) .for if in ${_OCAML_MLI:.mli=.cmi} .if empty(_OCAML_CMI:M${if}) _OCAML_CMI+=${if} .endif .endfor .endif .if !empty(_OCAML_ML) .if defined(_OCAML_COMPILE_BYTE) .for unit in ${_OCAML_ML:.ml=.cmo} .if empty(_OCAML_CMO:M${unit}) _OCAML_CMO+=${unit} .endif .endfor .endif .if defined(_OCAML_COMPILE_NATIVE) .for unit in ${_OCAML_ML:.ml=.cmx} .if empty(_OCAML_CMX:M${unit}) _OCAML_CMX+=${unit} .endif .endfor .for unit in ${_OCAML_ML:.ml=.o} .if empty(_OCAML_O:M${unit}) _OCAML_O+=${unit} .endif .endfor .endif .endif .for obj in ${_OCAML_CMI} ${obj}:${obj:.cmi=.mli} _OCAML_SRCS.${obj:T}=${obj:.cmi=.mli} .endfor .for obj in ${_OCAML_CMO} ${obj}:${obj:.cmo=.ml} _OCAML_SRCS.${obj:T}=${obj:.cmo=.ml} .endfor .for obj in ${_OCAML_CMX} ${obj}:${obj:.cmx=.ml} _OCAML_SRCS.${obj:T}=${obj:.cmx=.ml} .endfor .for var in ${_OCAML_OBJECT} .if defined(${var})&&!empty(${var}) .for obj in ${${var}} ${${var}:C/.cm[xo]/.cmi/} .if empty(CLEANFILES:M${obj}) CLEANFILES+= ${obj} .endif .endfor .endif .endfor .endif # !target(____) ### End of file `ocaml.object.mk' bsdowl-2.2.2/ocaml/ocaml.odoc.mk000640 001751 001751 00000016702 12436317346 017534 0ustar00michaelmichael000000 000000 ### ocaml.odoc.mk -- Simple interface to OCamldoc # Author: Michael Grünewald # Date: Sun Aug 5 10:21:05 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # USE_ODOC = yes # # ODOC_NAME = uname # _OCAML_SRCS.${ODOC_NAME} = file_a.mli file_b.mli # # .include "ocaml.odoc.mk" ### DESCRIPTION # This simple interface with OCamldoc allows to produce documentation # dump files or a HTML manual. # # This module is intended to be included by other modules rather than # to serve as is to the end user. (See ocaml.manual.mk for a # module producing HTML documentation.) # Targets: # # do-doc-odoc # do-install-odoc # do-clean-odoc # Variables: # # # ODOC_NAME # UNIX file name used to label objects # # This defaults to ${LIBRARY} or ${PACKAGE} if one of these # variables is defined. # # # ODOC_DIRS # Lookup path for dump files # # Relative paths are interpreted from ${.OBJDIR}. If this variable # is uninitalized but the variable DIRS is, it receives the # value of DIRS. # # # ODOC_LOAD # List of dump files to load # # # ODOC_HIDE # List of modules to hide # # # ODOC_SORT # Flag governing the sorting of the module list # # # ODOC_KEEP_CODE # Flag governing the keep of the code # # # ODOC_MERGE_INVERSE # Flag governing the merge order inversion # # # ODOC_INSTALL_DUMPS # Flag governing the installation of the dumps # # If this is set to yes, then ocamldoc dump files for the # documentation are installed along the documentation and can be # used in another job. See the variables ODOC_DIRS and ODOC_LOAD. # # # ODOC_EXCLUDE # List of modules to exclude # # # ODOC_HTML_CSS_FILE # CSS file to use for the HTML output # # This file is copied in the HTML directory output. # # # ODOC_HTML_CSS_URL # CSS name to use for the HTML output # # This URL is written in the relevant files, but the module does not # take any action to make this URL available. # # # ODOC_HTML_INTRO # Intro name to the use for the HTML output # # This file is pasted in the HTML output. # # # ODOC_HTML_CHARSET # Advertise the charset used in input files and the HTML output. # # Examples: iso-8859-1, iso-8859-15, utf-8. # # # ODOC_SHORT_FUNCTORS # Use the short functor notation ### IMPLEMENTATION .if !target(____) ____: USE_ODOC?= no .if ${USE_ODOC} == yes do-doc: do-doc-odoc ODOC_TITLE?=I am too lazy to set the title ODOC_INTRO?= ODOC_FORMAT?=odoc html ODOC_SORT?=no ODOC_KEEP_CODE?=no ODOC_MERGE_INVERSE=?no ODOC_MERGE?= ODOC_LOAD?= ODOC_HIDE?= ODOC_PREPROCESSOR?= ODOC_DIRS?= ODOC_VERBOSE?=no ODOC_EXCLUDE?= ODOC_INSTALL_DUMPS?=no ODOC_SHORT_FUNCTORS?=yes OCAMLDOC?= ocamldoc .if defined(LIBRARY)&&!empty(LIBRARY) ODOC_NAME?=${LIBRARY} .endif .if defined(PACKAGE)&&!empty(PACKAGE) ODOC_NAME?=${PACKAGE} .endif .if !defined(ODOC_NAME)||empty(ODOC_NAME) .error The ocaml.odoc.mk module expects ODOC_NAME to be set. \ A suitable value could also be guessed from the PACKAGE variable \ value, but you did not provide one. .endif .if defined(DIRS)&&!empty(DIRS) ODOC_DIRS+= ${DIRS} .endif _OCAML_SRCS.${ODOC_NAME}?= # # Computing sources # .for src in ${_OCAML_SRCS} .if !empty(${src}:M*.mli) .for item in ${${src}:M*.mli} .if empty(_OCAML_SRCS.${ODOC_NAME}:M${item}) && empty(ODOC_EXCLUDE:M${item}) _OCAML_SRCS.${ODOC_NAME}+= ${item} .endif .endfor .endif .if !empty(${src}:M*.ml) .for item in ${${src}:M*.ml} .if empty(_OCAML_SRCS.${ODOC_NAME}:M${item}) && empty(ODOC_EXCLUDE:M${item}) _OCAML_SRCS.${ODOC_NAME}+= ${item} .endif .endfor .for item in ${${src}:M*.ml:.ml=.mli} .if exists(${item}) && empty(_OCAML_SRCS.${ODOC_NAME}:M${item}) && empty(ODOC_EXCLUDE:M${item}) _OCAML_SRCS.${ODOC_NAME}+= ${item} .endif .endfor .endif .if !empty(${src}:M*.mll) .for item in ${${src}:M*.mll:.mll=.mli} .if exists(${item}) _OCAML_SRCS.${ODOC_NAME}+= ${item} .endif .endfor .endif .endfor # # Building the command line # .if defined(_OCAML_DIRS)&&!empty(_OCAML_DIRS) _ODOC_FLAGS+=${_OCAML_DIRS} .endif _ODOC_FLAGS+= -t "${ODOC_TITLE}" .if !empty(ODOC_INTRO) _ODOC_FLAGS+= -intro ${ODOC_INTRO} .endif .if ${ODOC_VERBOSE} == yes _ODOC_FLAGS+= -v .endif .if ${ODOC_SHORT_FUNCTORS} == yes _ODOC_FLAGS+= -short-functors .endif .if ${ODOC_SORT} == yes _ODOC_FLAGS+= -sort .endif .if ${ODOC_KEEP_CODE} == yes _ODOC_FLAGS+= -keep-code .endif .if ${ODOC_MERGE_INVERSE} == yes _ODOC_FLAGS+= -inv-merge-ml-mli .endif .if !empty(ODOC_MERGE) _ODOC_FLAGS+= -m${ODOC_MERGE} .endif .if !empty(ODOC_HIDE) _ODOC_FLAGS+= -hide ${ODOC_HIDE:Q:S/\\ /,/g} .endif .if !empty(ODOC_PREPROCESSOR) _ODOC_FLAGS+= -pp ${ODOC_PREPROCESSOR} .endif .if !empty(ODOC_LOAD) .SUFFIXES: .odoc .PATH.odoc: ${ODOC_DIRS} _ODOC_FLAGS+= ${.ALLSRC:M*.odoc:S/^/-load /} .endif _ODOC_TOOL=${OCAMLDOC} .if !empty(_ODOC_FLAGS) _ODOC_TOOL+=${_ODOC_FLAGS} .endif # # Handling ocaml dump files # .if !empty(ODOC_FORMAT:Modoc) ODOCDIR?= ${DOCDIR}/odoc ODOC=${ODOC_NAME}.odoc .if !empty(ODOC_LOAD) ${ODOC_HTML}: ${ODOC_LOAD} .endif ${ODOC}: ${_OCAML_SRCS.${ODOC_NAME}} ${ODOC}: ${_OCAML_SRCS.${ODOC_NAME}:C/.ml[ily]*/.cmi/} ${ODOC}: ${_ODOC_TOOL} -dump ${.TARGET} ${.ALLSRC:N*.cmi:N*.odoc} CLEANFILES+= ${ODOC} do-doc-odoc: ${ODOC} .if ${ODOC_INSTALL_DUMPS} == yes do-install-odoc: do-doc-odoc ${INSTALL_DIR} -o ${DOCOWN} -g ${DOCGRP} \ ${DESTDIR}${ODOCDIR} ${INSTALL} -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE} \ ${ODOC} ${DESTDIR}${ODOCDIR} .endif .endif # !empty(ODOC_FORMAT:Modoc) # # Handling ocaml doc HTML documentation # ODOC_HTMLDIR?= /html # The place where are installed HTML document under DOCDIR. .if !empty(ODOC_FORMAT:Mhtml) ODOC_HTML?= ${ODOC_NAME}_html ODOC_HTML_INTRO?= ODOC_HTML_CHARSET?= _ODOC_HTML_TOOL?= ${_ODOC_TOOL} -html .if defined(ODOC_HTML_CHARSET)&&!empty(ODOC_HTML_CHARSET) _ODOC_HTML_TOOL+= -charset ${ODOC_HTML_CHARSET} .endif .if defined(ODOC_HTML_CSS_URL)&&!empty(ODOC_HTML_CSS_URL) _ODOC_HTML_TOOL+= -css-style ${ODOC_HTML_CSS_URL} .endif .if defined(ODOC_HTML_INTRO)&&!empty(ODOC_HTML_INTRO) ${ODOC_HTML}: ${ODOC_HTML_INTRO} _ODOC_HTML_TOOL+= -intro ${ODOC_HTML_INTRO} .endif do-doc-odoc: ${ODOC_HTML} .if !empty(ODOC_LOAD) ${ODOC_HTML}: ${ODOC_LOAD} .endif ${ODOC_HTML}: ${_OCAML_SRCS.${ODOC_NAME}} ${ODOC_HTML}: ${_OCAML_SRCS.${ODOC_NAME}:C/.ml[ily]*$/.cmi/} ${ODOC_HTML}: ${RM} -R -f ${ODOC_HTML}.temp ${ODOC_HTML} ${MKDIR} ${ODOC_HTML}.temp ${_ODOC_HTML_TOOL} -d ${ODOC_HTML}.temp ${.ALLSRC:N*.cmi:N*.odoc:N*.text} .if defined(ODOC_HTML_CSS_FILE)&&!empty(ODOC_HTML_CSS_FILE) ${CP} ${ODOC_HTML_CSS_FILE} ${ODOC_HTML}.temp/style.css .endif ${MV} ${ODOC_HTML}.temp ${ODOC_HTML} do-install-odoc: do-install-odoc-html do-install-odoc-html: do-doc-odoc ${INSTALL_DIR} -o ${DOCOWN} -g ${DOCGRP} \ ${DESTDIR}${DOCDIR}${ODOC_HTMLDIR} ${INSTALL} -o ${DOCOWN} -g ${DOCGRP} -m ${DOCMODE} \ ${ODOC_HTML}/* ${DESTDIR}${DOCDIR}${ODOC_HTMLDIR} do-clean-odoc: do-clean-odoc-html do-clean-odoc-html: ${RM} -R -f ${ODOC_HTML} .endif # !empty(ODOC_FORMAT:Mhtml) .if target(do-install-odoc) do-install: do-install-odoc .endif .if target(do-clean-odoc) do-clean: do-clean-odoc .endif .endif # USE_ODOC .endif # !target(____) ### End of file `ocaml.odoc.mk' bsdowl-2.2.2/ocaml/ocaml.source.mk000640 001751 001751 00000005042 12436317346 020103 0ustar00michaelmichael000000 000000 ### ocaml.source.mk -- Scanning lists of source files # Author: Michael Grünewald # Date: Wed Aug 1 11:47:44 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # _OCAML_SRCS=SRCS.prog1 SRCS.prog2 SRCS.lib1 # # SRCS.prog1= src11.ml src12.ml sec13.mli # SRCS.prog2= src21.ml src22.ml # SRCS.lib1= mod1.ml lexer.mll parser.mly # # .include "ocaml.source.mk" ### DESCRIPTION # We scan the lists of sources files enumerated in _OCAML_SRCS and # assign their content to specialised lists (such as _OCAML_ML and # _OCAML_MLI are) accordinf to their type. # # Each time that we meet an implementation file, the correponding # interface file is appended to _OCAML_MLI. # # This module is intended to be included by other modules rather than # to serve as is to the end user. (See ocaml.manual.mk for a # module producing HTML documentation.) .if !target(____) ____: # _OCAML_SOURCE = _OCAML_MLY # _OCAML_SOURCE+= _OCAML_MLL # _OCAML_SOURCE+= _OCAML_MLI # _OCAML_SOURCE+= _OCAML_ML # _OCAML_SOURCE+= _OCAML_C # _OCAML_SOURCE+= _OCAML_H # REMARK(michipili) About the M modificator # # When we use the match `M` modificator in variable expansion, the # pattern is *everything* that follows it. For instance # # ${VAR:M*.${SUFFIX}} # # is analysed as # # ${}} # =VAR:M*.${SUFFIX # # and expands to a `}`. But if we write things like # # .for suffix in ${SUFFIX} # ${VAR:M*.${suffix}} # .endfor # # then the expansion of ${suffix} precedes the expansion of the # surrounding match modificator and we obtan the expected result. .for src in ${_OCAML_SRCS} .if defined(${src}) .if !empty(${src}:M*.mli) .for if in ${${src}:M*.mli} .if empty(_OCAML_MLI:M${if}) _OCAML_MLI+=${if} .endif .endfor .endif .if !empty(${src}:M*.ml) .for unit in ${${src}:M*.ml} .if empty(_OCAML_ML)||empty(_OCAML_ML:M${unit}) _OCAML_ML+=${unit} .endif .endfor .endif .endif .endfor .if defined(_OCAML_ML)&&!empty(_OCAML_ML) .for if in ${_OCAML_ML:.ml=.mli} .if exists(${if})&&(empty(_OCAML_MLI)||empty(_OCAML_MLI:M${if})) _OCAML_MLI+= ${if} .endif .endfor .endif .endif # !target(____) ### End of file `ocaml.source.mk' bsdowl-2.2.2/ocaml/ocaml.pack.mk000640 001751 001751 00000007272 12436317346 017530 0ustar00michaelmichael000000 000000 ### ocaml.pack.mk -- Building OCaml packed modules # Author: Michael Grünewald # Date: Tue Apr 5 12:31:04 CEST 2005 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # PACK= minibasic # SRCS= main.ml # SRCS+= basic_types.ml # SRCS+= basic_parser.mly # SRCS+= basic_lexer.mll # # .include "ocaml.pack.mk" ### DESCRIPTION # Build an OCaml packed module as with the `-pack` options of the # compiler. # # It supports building bytecode and native libraries, ocamlfind, # lexers and parsers generated by ocamllex and ocamlyacc and # debugging, profiling as well. # PACK # Name of the packed module # # This can actually be a list of packed modules. In this case for # each `module` a variable `SRCS.module` should specify files that # will be part of the packed `module`. # # # SRCS # Files that must be compiled # # It can list implementation files, interface files, lexer and # parser definitions. It is not necessary to specify interface file # if an implementation is present. # # For each packed `module`, if there is an interface file # `${module}.mli`, it is compiled and used. # # # DIRS # Directories that are searched for libraries or compiled modules # # # PKGS # OCamlfind packages that are used # # # LIBOWN, LIBGRP, LIBMODE, LIBDIR, LIBNAME # Parameters of the module installation # # See `bps.own.mk` for a closer description of these variables. .include "bps.init.mk" .include "ocaml.init.mk" .if !defined(PACK)||empty(PACK) .error The ocaml.pack.mk module expects you to set the PACK variable to a sensible value. .endif _OCAML_SRCS?= _OCAML_CMA?= _OCAML_CMXA?= _OCAML_A?= _OCAML_PACK:=${PACK} _OCAML_CAPITALISED_PACK!= awk -v pack="${_OCAML_PACK}" 'BEGIN{print(toupper(substr(pack,1,1)) substr(pack,2));exit}' OCAMLCNFLAGS+= -for-pack ${_OCAML_CAPITALISED_PACK} # # Prepare source lists # .for pack in ${_OCAML_PACK} SRCS.${pack:T}?=${SRCS} .if exists(${pack:T}.mli) _OCAML_CMI+=${pack:T}.cmi ${pack:T}.cmo: ${pack:T}.cmi ${pack:T}.cmx: ${pack:T}.cmi .elif !target(${pack:T}.cmi) .if defined(_OCAML_COMPILE_NATIVE_ONLY) ${pack:T}.cmi: ${pack:T}.cmx ${NOP} .else ${pack:T}.cmi: ${pack:T}.cmo ${NOP} .endif .endif .if defined(_OCAML_COMPILE_NATIVE) SRCS.${pack:T}.cmx?=${SRCS.${pack:T}} SRCS.${pack:T}.cmxa?=${pack}.cmx _OCAML_SRCS+=SRCS.${pack}.cmx _OCAML_CMXA+=${pack:T}.cmxa _OCAML_PKX+=${pack:T}.cmx _OCAML_A+=${pack:T}.a .endif .if defined(_OCAML_COMPILE_BYTE) SRCS.${pack:T}.cmo?=${SRCS.${pack:T}} SRCS.${pack:T}.cma?=${pack}.cmo _OCAML_SRCS+=SRCS.${pack}.cmo _OCAML_CMA+=${pack:T}.cma _OCAML_PKO+=${pack:T}.cmo .endif .endfor # # Define build targets # .include "ocaml.main.mk" # # Epilogue, # installation groups and product cleaning # .for pack in ${_OCAML_PACK} .if defined(_OCAML_COMPILE_NATIVE) LIB+= ${pack}.cmxa ${pack}.a _OCAML_SRCS.${pack}.cmx=${.ALLSRC} _OCAML_SRCS.${pack}.cmxa=${.ALLSRC} ${pack}.cmx: ${SRCS.${pack:T}.cmx:C/\.ml[ly]/.ml/:M*.ml:.ml=.cmx} ${pack}.cmxa: ${pack}.cmx .endif .if defined(_OCAML_COMPILE_BYTE) LIB+= ${pack}.cma _OCAML_SRCS.${pack}.cmo=${.ALLSRC} _OCAML_SRCS.${pack}.cma=${.ALLSRC} ${pack}.cmo: ${SRCS.${pack:T}.cmo:C/\.ml[ly]/.ml/:M*.ml:.ml=.cmo} ${pack}.cma: ${pack}.cmo .endif LIB+= ${pack}.cmi .endfor LIBDIR=${PREFIX}/lib/ocaml${PACKAGEDIR} .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `ocaml.pack.mk' bsdowl-2.2.2/ocaml/ocaml.compile.mk000640 001751 001751 00000005204 12436317346 020233 0ustar00michaelmichael000000 000000 ### ocaml.compile.mk -- Prepare the COMPILE variable # Author: Michael Grünewald # Date: Tue Apr 5 12:31:04 CEST 2005 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # COMPILE = byte_code|native_code|both|bc|nc|byte|native # .include "ocaml.compile.mk" ### DESCRIPTION # This module reads the COMPILE variable describing the kind of code # that shall be produced and defines several variables that can be # used as predicates in the sequel. # # A predicate is true if, and only if, the corresponding variable is # defined. # # This module is intended to be included by other modules rather than # to serve as is to the end user. (See ocaml.manual.mk for a # module producing HTML documentation.) # Variables: # # COMPILE # List of targeted code generators # # If this variable contains one of the words byte_code, byte, # or both, then the production of byte objects is required. # # If this variable contains one of the words native_code, native # or both, then the production of native objects is required. # # # _OCAML_COMPILE_BYTE # Predicate telling if the production of byte objects is required # # # _OCAML_COMPILE_NATIVE # Predicate telling if the production of native objects is required # # # _OCAML_COMPILE_NATIVE_ONLY # Predicate telling if the production requirement narrows to native objects # # # _OCAML_COMPILE_BOTH # Predicate telling if the production requirement includes both types .if !target(____) ____: .SUFFIXES: .ml .mli .mll .mly .cmi .cmo .cma .cmx .cmxa .byte .native .if !defined(COMPILE) || empty(COMPILE) COMPILE = byte_code .endif .if !empty(COMPILE:Mbyte_code)||!empty(COMPILE:Mbyte) || !empty(COMPILE:Mboth) _OCAML_COMPILE_BYTE= yes .else .undef _OCAML_COMPILE_BYTE .endif .if !empty(COMPILE:Mnative_code)||!empty(COMPILE:Mnative) || !empty(COMPILE:Mboth) _OCAML_COMPILE_NATIVE= yes .else .undef _OCAML_COMPILE_NATIVE .endif .if defined(_OCAML_COMPILE_NATIVE)&&defined(_OCAML_COMPILE_BYTE) _OCAML_COMPILE_BOTH=yes .else .undef _OCAML_COMPILE_BOTH .endif .if defined(_OCAML_COMPILE_NATIVE)&&!defined(_OCAML_COMPILE_BYTE) _OCAML_COMPILE_NATIVE_ONLY=yes .else .undef _OCAML_COMPILE_NATIVE_ONLY .endif .endif #!target(____) ### End of file `ocaml.compile.mk' bsdowl-2.2.2/ocaml/ocaml.prog.mk000640 001751 001751 00000007733 12436317346 017563 0ustar00michaelmichael000000 000000 ### ocaml.prog.mk -- Préparation de programmes avec Objective Caml # Author: Michael Grünewald # Date: Tue Apr 5 12:31:04 CEST 2005 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # PROG = basicrun # SRCS+= main.ml # SRCS+= basic_types.ml # SRCS+= basic_parser.mly basic_lexer.mll # SRCS+= basic_process.ml basic_run.ml # LIBS = unix # TARGET = native_code # If you have many small programs that share a common set of modules, # and do not want ship these modules as a library, you can use the # following: # # PROG = client server # SRCS = protocol.ml # LIBS = unix # # If files client.ml and server.ml do exist, they are appended to the # automatic value of SRCS.client and SRCS.server, so that after the # treatment you end up with the following values: # # SRCS.client = ${SRCS} client.ml # SRCS.server = ${SRCS} server.ml # # This scheme is useful when writing on programs testing a # functionality or regression tests, so that you can keep all of them # in a single directory. ### DESCRIPTION # Variables: # # # PROGRAM or PROG # Name of the program # # This can actually be a list of programs. In this case the SRCS # variables holds source files that will be compiled and linked to # all programs and for each `program` the variable `SRCS.program` # should specify files that will only be compiled and linked in # `program`. # # # SRCS # Files that must be compiled and linked in the program # # It can list implementation files, interface files, lexer and # parser definitions. It is not necessary to specify interface file # if an implementation is present. # # # LIBS # Libraries that must be linked in the program # # # DIRS # Directories that are searched for libraries or compiled modules # # # PKGS # OCamlfind packages that are used in the program # # # BINOWN, BINGRP, BINMODE, BINDIR, BINNAME # Parameters of the program installation # # See `bps.own.mk` for a closer description of these variables. ### MAGIC STUFF .include "bps.init.mk" .include "ocaml.init.mk" .if defined(PROG)&&!empty(PROG) PROGRAM?= ${PROG} .endif .if !defined(PROGRAM)||empty(PROGRAM) .error The ocaml.prog.mk module expects you to set the PROGRAM or the PROG variable to a sensible value. .endif ## DU MODE SINGLETON AU MODE ENSEMBLE .for item in ${PROGRAM} _OCAML_SRCS+=SRCS.${item:T} .if !defined(SRCS.${item:T}) SRCS.${item:T} = ${SRCS} .if exists(${item}.ml) SRCS.${item:T}+= ${item}.ml .endif .endif .if defined(_OCAML_COMPILE_NATIVE) SRCS.${item:T}.native?=${SRCS.${item:T}} _OCAML_CN+=${item:T}.native .endif .if defined(_OCAML_COMPILE_BYTE) SRCS.${item:T}.byte?=${SRCS.${item:T}} _OCAML_CB+=${item:T}.byte .endif .if defined(LIBS)&&!empty(LIBS) LIBS.${item:T}.byte?=${LIBS:=.cma} LIBS.${item:T}.native?=${LIBS:=.cmxa} .endif .endfor .include "ocaml.main.mk" ### AUXILLIARY TARGETS .for item in ${PROGRAM} BIN+=${item} CLEANFILES+=${item} .if defined(_OCAML_COMPILE_NATIVE) ${item}: ${item}.native ${CP} ${item}.native ${item} _OCAML_SRCS.${item}.native=${.ALLSRC} .if !empty(LIBS.${item}.native) ${item}.native: ${LIBS.${item}.native} .endif .if !empty(SRCS.${item}.native) ${item}.native: ${SRCS.${item}.native:C/\.ml[ly]/.ml/:M*.ml:.ml=.cmx} .endif .endif .if defined(_OCAML_COMPILE_BYTE) && !target(${item}) ${item}: ${item}.byte ${CP} ${item}.byte ${item} _OCAML_SRCS.${item}.byte=${.ALLSRC} .if !empty(LIBS.${item}.byte) ${item}.byte: ${LIBS.${item}.byte} .endif .if !empty(SRCS.${item}.byte) ${item}.byte: ${SRCS.${item}.byte:C/\.ml[ly]/.ml/:M*.ml:.ml=.cmo} .endif .endif .endfor .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `ocaml.prog.mk' bsdowl-2.2.2/ocaml/ocaml.dirs.mk000640 001751 001751 00000004056 12436317346 017550 0ustar00michaelmichael000000 000000 ### ocaml.dirs.mk -- Handling lookup paths # Author: Michael Grünewald # Date: Sat Jul 7 20:26:31 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # DIRS+= ../library # # .include "ocaml.init.mk" # .include "ocaml.dirs.mk" ### DESCRIPTION # This module takes care of initialising the _OCAML_DIRS variable, # holding a private version of DIRS that can be pasten on the command # line. It also knows where the standard library is installed. # # This module is intended to be included by other modules rather than # to serve as is to the end user. ### DESCRIPTION # Variables: # # DIRS # Lookup path for OCaml object files # # This list of paths is appended to OCaml suite's tools options and # to Make's internal lookup paths. # # # OCAMLROOTDIR # Path to the standard library .if !target(____) ____: .if defined(DIRS)&&!empty(DIRS) _OCAML_DIRS=${DIRS:C/^/-I /} # Compiled interfaces files probably never appear on the command line # and also probably do not need to be looked up by make, so the .cmi # suffix is omitted from the next list. #.PATH.cmi: ${DIRS} .PATH.cmo: ${DIRS} .PATH.cmx: ${DIRS} .PATH.cmxa: ${DIRS} .PATH.cma: ${DIRS} .PATH.a: ${DIRS} .PATH.o: ${DIRS} .endif .if !defined(OCAMLROOTDIR) OCAMLROOTDIR!= ${OCAMLCI} -where .endif .PATH.cmo: ${OCAMLROOTDIR} .PATH.cmx: ${OCAMLROOTDIR} .PATH.cmxa: ${OCAMLROOTDIR} .PATH.cma: ${OCAMLROOTDIR} .PATH.a: ${OCAMLROOTDIR} .PATH.o: ${OCAMLROOTDIR} .if defined(_OCAML_DIRS) && !empty(_OCAML_DIRS) .for tool in OCAMLCI OCAMLCB OCAMLCN OCAMLLB OCAMLLN OCAMLDEP ${tool}FLAGS+=${_OCAML_DIRS} .endfor .endif .endif # !target(____) ### End of file `ocaml.dirs.mk' bsdowl-2.2.2/ocaml/ocaml.yacc.mk000640 001751 001751 00000003603 12436317346 017523 0ustar00michaelmichael000000 000000 ### ocaml.yacc.mk -- Support for the OCaml parser generator # Author: Michael Grünewald # Date: Sat Jul 7 21:16:36 CEST 2007 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # _OCAML_MLY+= parser1.mly # .include "ocaml.yacc.mk" ### DESCRIPTION # We analyse each list of sources appearing in _OCAML_SRCS and when we # spot an OCaml parser input file, require it to be processed by # ocamllex. # # This module is intended to be included by other modules rather than # to serve as is to the end user. .if !target(____) ____: OCAMLYACC?= ocamlyacc _OCAML_MLY?= .for src in ${_OCAML_SRCS} .if defined(${src}) .if !empty(${src}:M*.mly) .for parser in ${${src}:M*.mly} .if empty(_OCAML_MLY:M${parser}) _OCAML_MLY+=${parser} .endif .endfor .endif .endif .endfor .if defined(_OCAML_MLY)&&!empty(_OCAML_MLY) .for file in ${_OCAML_MLY:.mly=.mli} ${_OCAML_MLY:.mly=.ml} .if empty(CLEANFILES:M${file}) CLEANFILES+= ${file} .endif .endfor .for mod in ${_OCAML_MLY:.mly=.ml} .if !defined(_OCAML_ML)||empty(_OCAML_ML:M${mod}) _OCAML_ML+= ${mod} .endif .endfor .for if in ${_OCAML_MLY:.mly=.mli} .if !defined(_OCAML_MLI)||empty(_OCAML_MLI:M${if}) _OCAML_MLI+= ${if} .endif .endfor .endif .if defined(_OCAML_MLY)&&!empty(_OCAML_MLY) .for parser in ${_OCAML_MLY} ${parser:.mly=.ml} ${parser:.mly=.mli}: ${parser} ${OCAMLYACC} -b ${.TARGET:S/.mli$//:S/.ml$//} ${.ALLSRC} ${parser:.mly=.cmo}: ${parser:.mly=.cmi} .endfor .endif .endif # !target(____) ### End of file `ocaml.yacc.mk' bsdowl-2.2.2/ocaml/ocaml.toplevel.mk000640 001751 001751 00000005751 12436317346 020444 0ustar00michaelmichael000000 000000 ### ocaml.toplevel.mk -- Building custom toplevels # Author: Michael Grünewald # Date: Sun Jun 16 13:54:55 CEST 2013 # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # TOPLEVEL = toplevel # SRCS = initialize_toplevel.ml # LIBS = unix # LIBS+= str # # .include "ocaml.toplevel.mk" ### DESCRIPTION # This simple interface to `ocamlmktop` drives the production of # toplevels. # Targets: # # do-build-toplevel # do-install-toplevel # do-clean-toplevel # Variables: # # # TOPLEVEL # UNIX file name of the generated toplevel # # # DIRS # Lookup path for object files # # Relative paths are interpreted from ${.OBJDIR}. # # # SRCS # OCaml implementation files # # # LIBS # OCaml library files # # # PKGS # OCaml findlib packages # # # TOPLEVEL_CUSTOM # Flag governing generation of a custom toplevel # # # TOPLEVEL_COPT # Pass the given options to the C compiler and linker # # This forces TOPLEVEL_CUSTOM to yes. # # # TOPLEVEL_CLIB # Pass the given library names to the C linker # # This forces TOPLEVEL_CUSTOM to yes. ### IMPLEMENTATION .if !target(____) ____: .include "bps.init.mk" .include "ocaml.init.mk" .if !defined(TOPLEVEL)||empty(TOPLEVEL) .error The ocaml.toplevel.mk module expects you to set the TOPLEVEL variable to a sensible value. .endif TOPLEVEL_CUSTOM?= no TOPLEVEL_COPT?= TOPLEVEL_CLIB?= OCAMLMKTOP?= ocamlmktop _TOPLEVEL_FLAGS=-custom -linkall # # Determining toplevel flags # .if defined(TOPLEVEL_COPT)&&!empty(TOPLEVEL_COPT) TOPLEVEL_CUSTOM=yes .endif .if defined(TOPLEVEL_CLIB)&&!empty(TOPLEVEL_CLIB) TOPLEVEL_CUSTOM=yes .endif .if ${TOPLEVEL_CUSTOM} == yes _TOPLEVEL_FLAGS+=-custom .endif .if defined(TOPLEVEL_COPT)&&!empty(TOPLEVEL_COPT) .for item in ${TOPLEVEL_COPT} _TOPLEVEL_FLAGS+=-ccopt ${item} .endfor .endif .if defined(TOPLEVEL_CLIB)&&!empty(TOPLEVEL_CLIB) .for item in ${TOPLEVEL_CLIB} _TOPLEVEL_FLAGS+=-cclib -l${item} .endfor .endif .if defined(DIRS)&&!empty(DIRS) .for item in ${DIRS} _TOPLEVEL_FLAGS+=-I ${item} .endfor .endif .if !defined(_OCAML_COMPILE_NATIVE_ONLY) .for file in ${SRCS} _OCAML_CMO+= ${file:.ml=.cmo} ${TOPLEVEL}: ${file:.ml=.cmo} .endfor .for file in ${LIBS} ${TOPLEVEL}: ${file:=.cma} .endfor ${TOPLEVEL}: ${OCAMLMKTOP} ${_TOPLEVEL_FLAGS} ${.ALLSRC} -o ${.TARGET} CLEANFILES+= ${TOPLEVEL} BIN+= ${TOPLEVEL} .else ${TOPLEVEL}: ${INFO} Not building toplevel ${.TARGET} in native-only mode .endif .include "ocaml.main.mk" .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" .endif # !target(____) ### End of file `ocaml.odoc.mk' bsdowl-2.2.2/noweb/Makefile000640 001751 001751 00000000554 12436317346 016642 0ustar00michaelmichael000000 000000 ### Makefile -- Collection de makefiles `noweb' # Author: Michael Grünewald # Date: Sam 3 oct 2009 19:09:28 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION FILES = noweb.main.mk FILES+= noweb.latex.mk SHARE+= nwlatex.css TEXFILES+= nwlatex.tex TEXFILESDIR = ${TEXMFDIR}/tex/latex${_BPS_PACKAGEDIR} .include "project.mk" ### End of file `Makefile' bsdowl-2.2.2/noweb/noweb.latex.mk000640 001751 001751 00000003176 12436317346 017764 0ustar00michaelmichael000000 000000 ### noweb.latex.mk -- Préparation de macros LaTeX avec NOWEB # Author: Michael Grünewald # Date: Sam 3 oct 2009 19:10:53 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .include "bps.init.mk" NOWEAVE_GROUP?= DOC NOWEAVE_AUTODEFS = tex NOWEAVE_LATEX_WRAPPER = delay NOWEAVE_LATEX_DEFS?= ${_BPS_TEXMFDIR}/tex/latex${_BPS_PACKAGEDIR}/nwlatex.tex FORMAT = latex # # TEXFILES # # The group TEXFILES holds the files produced by NOTANGLE. FILESGROUPS+= TEXFILES TEXFILESOWN?= ${SHAREOWN} TEXFILESGRP?= ${SHAREGRP} TEXFILESMODE?= ${SHAREMODE} TEXFILESDIR?= ${PREFIX}/share/texmf/latex${PACKAGEDIR} TEXFILES+= ${NOTANGLE} TEXDOCDIR?= ${PREFIX}/share/texmf/doc/latex${PACKAGEDIR} # # Stylesheet # NOWEAVE_HTML_CSS?= nwlatex.css CLEANFILES+= nwlatex.css ${NOWEAVE_GROUP}+= nwlatex.css nwlatex.css: ${_BPS_DATADIR}/nwlatex.css ${CP} ${.ALLSRC} ${.TARGET} .include "noweb.main.mk" # .include "tex.files.main.mk" # .include "tex.mpost.mk" # .include "tex.doc.main.mk" # .include "latex.bibtex.mk" # .include "latex.doc.post.mk" # .include "bps.clean.mk" # .include "bps.files.mk" # .include "bps.usertarget.mk" # .include "bps.project.mk" .include "latex.doc.mk" .include "bps.usertarget.mk" .include "bps.project.mk" bsdowl-2.2.2/noweb/noweb.main.mk000640 001751 001751 00000031511 12436317346 017565 0ustar00michaelmichael000000 000000 ### noweb.main.mk -- Routines pour NOWEB # Author: Michael Grünewald # Date: Sam 3 oct 2009 19:10:53 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # NOTANGLE = code1.c # NOTANGLE+= code1.h # NOTANGLE+= code2.c # # NOWEAVE = document # NOWEAVE_DEVICE = latex html # # NOWEB = source1.nw # NOWEB+= source2.nw # # .include "bps.noweb.mk" ### DESCRIPTION # Require the use of `noweb' to produce object files described by # input files enumerated in the NOWEB variable. # # The files enumerated by the NOTANGLE variable (program files) are # produced with a call to `notangle', this is called _tangling_. # # The documents enumerated by the NOWEAVE variable (documentation files) # are produced with a call to `noweave', this is called _weaving_. # # The variable NOWEAVE_DEVICE controls the output format of the # weaving procedure. If it is defined, the NOWEAVE_MASTER variable # contains the name of the master document that wishes to include # weaving output. # # General variables # # NOWEB # # Enumerate `noweb' source files # # This list is passed to `noweave' for weaving and to `notangle' for # tangling. # # Each target in the NOWEAVE or NOTANGLE list can provide its own # specialised value for this variable. # NOTANGLE # # Enumerate tangling target files # NOWEAVE_DEVICE (latex html) # # Enumerate target devices for the documentation # # Possible values are sublists of: tex latex html troff text. # NOWEAVE # # Enumerate target documents # # Tangling # # NOTANGLE_LINE_HINTS # # Format to use for line hints generated by `noweave' # # This variable can be set to any value acceptable by `noweave's `-L' # flag. These values are described in `noweave(1)'. # NOTANGLE_TABS # # Space between tab stops # # If this variable is set to "yes" or an integer T then tabs are copied # untouched in the output and sequences of spaces are converted into # tabs, combining 8 or T spaces into a tabulation character. # NOTANGLE_FILTER # # List of filters to be used by `notangle' # # See the `-filter' option in `notangle(1)'. # NOTANGLE_MARKUP # # Syntactic analyser to use on source files # # See the `-markup' option in `notangle(1)'. # # Weaving # # NOWEAVE_MASTER # # Master document for `noweave's output # # If this variable is set, it will prevent the generation of some # header and footer of the document by `noweave;. # NOWEAVE_CHUNKS (latex) # # Format used by documentation chunks # # This value controls the utilisation of filter converting from # documentation chunk format to output device format. # # Possible values are: tex, latex, troff, custom. # NOWEAVE_FILTER # # List of filters that shall be used by `noweave' # # See the `-filter' option in `noweave(1)'. # NOWEAVE_MARKUP # # Syntactic analyser to use on source files # # See the `-markup' option in `noweave(1)'. # NOWEAVE_INDEX # # Flag controlling the preparation of an index # # It is only taken into account for output devices html and latex. # NOWEAVE_AUTODEFS # # Language for which definitions should be guessed # NOWEAVE_HTML_CSS # # Path to the CSS # # It is only taken into account for the html output device. # NOWEAVE_LATEX_WRAPPER (yes) # # Flag controlling the emission of a document wrapper # # If the value of this variable is "yes", then `noweave' will wrap # its output into a header and footer. You can customize this header # and footer with some of the `NOWEAVE_LATEX_*' and `NOWEAVE_HTML_*' # variables described below. # # If you want to supply your own wrapper in your noweb sources, you # must set this variable to "delay". # # If this variable is set to another value, `noweave's output will be # suitable for inclusion in a larger document. # # This flag controls the `-n' and `-delay' options described in # `noweave(1)'. # NOWEAVE_LATEX_DEFS # # File containing `l2h' definitions # # LaTeX files whose names are enumerated by this variable are # filtered to extract `l2h' definitions helping the conversion from # your LaTeX document into HTML. # # The output file is `l2h.defs'. # NOWEAVE_LATEX_OPTION # # Énumère les options passées au package LaTeX de noweb. # NOWEAVE_LATEX_PAGENO # # Drapeau contrôlant la marque des chunks par les numéros de page. # # Ce drapeau contrôle l'option `-x' de noweave. # NOWEAVE_LATEX_SIMPLIFY # # Filtre simplifiant un fichier LaTeX pour l2h # NOWEAVE_LATEX_DOCUMENTCLASS # # Classe de document à utiliser au lieu de `article' # # Note: cette variable n'a d'effet que si NOWEAVE_LATEX_WRAPPER est `yes'. # NOWEAVE_LATEX_PREAMBLE # # Préambule à insérer au début d'un document LaTeX # # Si la valeur de cette variable est un nom de fichier, alors le contenu de # ce fichier est utilisé comme préambule, sinon, la valeur est directement # insérée dans le préambule. # # Note: cette variable n'a d'effet que si NOWEAVE_LATEX_WRAPPER est `yes'. # _NOWEAVE_DEVICE.filter. # # Premier filtre utilisé pour produire le fichier de document . # _NOWEAVE_DEVICE.suffix. # # Nom du suffixe utlisé pour produire le fichier de document . ### IMPLÉMENTATION .if !target(____) ____: .SUFFIXES: .nw NOWEAVE_GROUP?= DOC NOWEAVE_DEVICE?= latex html NOWEAVE_CHUNKS?= latex NOWEAVE_INDEX?= yes NOWEAVE_LATEX_WRAPPER?= yes NOWEAVE_LATEX_DEFS?= NOWEAVE_LATEX_DEFS_FILE?= l2h.defs NOWEB_CLEAN?= realclean _NOTANGLE_TOOL?= notangle _NOWEAVE_TOOL?= noweave _NOWEAVE_SED?= _NOWEAVE_CHUNKS = tex latex troff custom _NOWEAVE_DEVICES = texte tex latex troff html #_NOWEAVE_OBJS = _NOTANGLE_VARS = NOWEB _NOTANGLE_VARS+= NOTANGLE_LINE_HINTS _NOTANGLE_VARS+= NOTANGLE_FILTER _NOTANGLE_VARS+= NOTANGLE_MARKUP _NOTANGLE_VARS+= _NOTANGLE_TOOL _NOWEAVE_VARS = NOWEB _NOWEAVE_VARS+= NOWEAVE_FILTER _NOWEAVE_VARS+= NOWEAVE_MARKUP _NOWEAVE_VARS+= NOWEAVE_INDEX _NOWEAVE_VARS+= NOWEAVE_AUTODEFS _NOWEAVE_VARS+= NOWEAVE_MASTER _NOWEAVE_VARS+= _NOWEAVE_TOOL .for device in ${_NOWEAVE_DEVICES} _NOWEAVE_VARS+= _NOWEAVE_SED.${device} .endfor .for device in ${_NOWEAVE_DEVICES} _NOWEAVE_SED.${device}?= ${_NOWEAVE_SED} .endfor _NOWEAVE_FILTER.tex.tex?= _NOWEAVE_FILTER.latex.latex?= .if defined(NOWEAVE_LATEX_SIMPLIFY)&&!empty(NOWEAVE_LATEX_SIMPLIFY) _NOWEAVE_FILTER.latex.html?= '${NOWEAVE_LATEX_SIMPLIFY:S/'/'\''/g} | l2h' # Fool Emacs' .else _NOWEAVE_FILTER.latex.html?= l2h .endif _NOWEAVE_FILTER.troff.troff?= .for chunk in ${_NOWEAVE_CHUNKS} .for device in ${_NOWEAVE_DEVICES} _NOWEAVE_FILTER.${chunk}.${device}?= no .endfor .endfor _NOWEAVE_DEVICE.suffix.texte = .text _NOWEAVE_DEVICE.suffix.tex = .tex _NOWEAVE_DEVICE.suffix.latex = .tex _NOWEAVE_DEVICE.suffix.troff = .mm _NOWEAVE_DEVICE.suffix.html = .html _NOWEAVE_DEVICE.flag.texte = -n -tex _NOWEAVE_DEVICE.flag.tex = -tex _NOWEAVE_DEVICE.flag.latex = -latex _NOWEAVE_DEVICE.flag.troff = -troff _NOWEAVE_DEVICE.flag.html = -html .for device in ${_NOWEAVE_DEVICES} _NOWEAVE_DEVICE.filter.${device} = ${_NOWEAVE_FILTER.${NOWEAVE_CHUNKS}.${device}} .endfor .for tool in NOTANGLE NOWEAVE .for var in ${_${tool}_VARS} ${var}?= .endfor .endfor # # Préparation des outils # .if defined(NOTANGLE_LINE_HINTS)&&!empty(NOTANGLE_LINE_HINTS) _NOTANGLE_TOOL+= -L$'{NOTANGLE_LINE_HINTS}' .endif .if defined(NOTANGLE_TABS)&&!empty(NOTANGLE_TABS) .if ${_NOTANGLE_TABS} == yes _NOTANGLE_TOOL+= -t .else _NOTANGLE_TOOL+= -t${NOTANGLE_TABS} .endif .endif # # Spécialisation des variables # .for tool in NOTANGLE NOWEAVE .for var in ${_${tool}_VARS} .for file in ${${tool}} .if !defined(${var}.${file:T}) ${var}.${file:T}?= ${${var}} .endif .endfor .endfor .endfor # # Tangling # .for file in ${NOTANGLE} .if defined(NOTANGLE_MARKUP.${file:T})&&!empty(NOTANGLE_MARKUP.${file:T}) _NOTANGLE_TOOL.${file:T}+= -markup ${NOTANGLE_MARKUP.${file:T}} .endif .if defined(NOTANGLE_FILTER.${file:T})&&!empty(NOTANGLE_FILTER.${file:T}) _NOTANGLE_TOOL.${file:T}+= ${NOTANGLE_FILTER.${file:T}:C/^/-filter /g} .endif ${file}: ${NOWEB.${file:T}} ${_NOTANGLE_TOOL.${file:T}} -R${.TARGET} ${.ALLSRC} | cpif ${.TARGET} .endfor do-clean-notangle: ${RM} -f ${NOTANGLE} do-${NOWEB_CLEAN}: do-clean-notangle # # Weaving # # Inscription des fichiers objets .for file in ${NOWEAVE} .for device in ${NOWEAVE_DEVICE:Nlatex:Ntex} ${NOWEAVE_GROUP}+= ${file:T}${_NOWEAVE_DEVICE.suffix.${device}} .endfor .if !empty(NOWEAVE_DEVICE:Mlatex)||!empty(NOWEAVE_DEVICE:Mtex) .if defined(NOWEAVE_MASTER.${file:T})&&!empty(NOWEAVE_MASTER.${file:T}) DOCS+= ${NOWEAVE_MASTER.${file:T}} SRCS.${NOWEAVE_MASTER.${file:T}}+= ${file:T}${_NOWEAVE_DEVICE.suffix.latex} .else DOCS+= ${file:T} .endif .endif .endfor # Préparation des outils .for file in ${NOWEAVE} .for device in ${NOWEAVE_DEVICE} _NOWEAVE_TOOL.${device}.${file:T}?= ${_NOWEAVE_TOOL.${file:T}} _NOWEAVE_TOOL.${device}.${file:T}+= ${_NOWEAVE_DEVICE.flag.${device}} .if defined(NOWEAVE_MARKUP.${file:T})&&!empty(NOWEAVE_MARKUP.${file:T}) _NOWEAVE_TOOL.${device}.${file:T}+= -markup ${NOWEAVE_MARKUP.${file:T}} .endif .if defined(NOWEAVE_FILTER.${file:T})&&!empty(NOWEAVE_FILTER.${file:T}) _NOWEAVE_TOOL.${device}.${file:T}+= ${NOWEAVE_FILTER.${file:T}:C/^/-filter /g} .endif .if defined(_NOWEAVE_DEVICE.filter.${device})&&!empty(_NOWEAVE_DEVICE.filter.${device}) _NOWEAVE_TOOL.${device}.${file:T}+= -filter ${_NOWEAVE_DEVICE.filter.${device}} .endif .endfor .endfor .if defined(NOWEAVE_MASTER)&&!empty(NOWEAVE_MASTER) NOWEAVE_LATEX_WRAPPER = no .endif # Préparation spécifique à LaTeX .if !empty(NOWEAVE_DEVICE:Mlatex) .if ${NOWEAVE_LATEX_WRAPPER} == yes .if defined(NOWEAVE_LATEX_PREAMBLE)&&!empty(NOWEAVE_LATEX_PREAMBLE) .if exists(${NOWEAVE_LATEX_PREAMBLE}) _NOWEB.latex_preamble!= tr -d '\n' < ${NOWEAVE_LATEX_PREAMBLE} .else _NOWEB.latex_preamble!= printf "%s" "${NOWEAVE_LATEX_PREAMBLE}" | tr -d '\n' .endif .endif .for file in ${NOWEAVE} .if defined(NOWEAVE_LATEX_PREAMBLE)&&!empty(NOWEAVE_LATEX_PREAMBLE) _NOWEAVE_SED.latex.${file:T}+= -e '1s/^\\documentclass{article}/\\documentclass{article}${_NOWEB.latex_preamble:S%\\%\\\\%g}/' .endif .if defined(NOWEAVE_LATEX_DOCUMENTCLASS)&&!empty(NOWEAVE_LATEX_DOCUMENTCLASS) _NOWEAVE_SED.latex.${file:T}+= -e '1s/^\\documentclass{article}/\\documentclass{${NOWEAVE_LATEX_DOCUMENTCLASS}}/' .endif .endfor .elif ${NOWEAVE_LATEX_WRAPPER} == delay .for file in ${NOWEAVE} _NOWEAVE_TOOL.latex.${file:T}+= -delay .endfor .else # ${NOWEAVE_LATEX_WRAPPER} == yes || delay .for file in ${NOWEAVE} _NOWEAVE_TOOL.latex.${file:T}+= -n .endfor .endif .endif #!empty(NOWEAVE_DEVICE:Mlatex) # Préparation spécifique à html .if !empty(NOWEAVE_DEVICE:Mhtml) .if defined(NOWEAVE_LATEX_DEFS)&&!empty(NOWEAVE_LATEX_DEFS) CLEANFILES+= ${NOWEAVE_LATEX_DEFS_FILE} ${NOWEAVE_LATEX_DEFS_FILE}: ${NOWEAVE_LATEX_DEFS} grep '^% l2h ' ${.ALLSRC} | cpif ${.TARGET} .for file in ${NOWEAVE} ${file}${_NOWEAVE_DEVICE.suffix.html}: ${NOWEAVE_LATEX_DEFS_FILE} .endfor .endif .endif # # Index et autodefs # .for file in ${NOWEAVE} .for device in ${NOWEAVE_DEVICE:Nlatex} .if ${NOWEAVE_INDEX.${file:T}} == yes _NOWEAVE_TOOL.${device}.${file:T}+= -index .endif .endfor .for device in ${NOWEAVE_DEVICE:Mlatex} .if ${NOWEAVE_INDEX.${file:T}} == yes && !(${NOWEAVE_LATEX_WRAPPER} == delay) _NOWEAVE_TOOL.${device}.${file:T}+= -index .endif .endfor .endfor .for file in ${NOWEAVE} .for device in ${NOWEAVE_DEVICE} .if defined(NOWEAVE_AUTODEFS.${file:T})&&!empty(NOWEAVE_AUTODEFS.${file:T}) _NOWEAVE_TOOL.${device}.${file:T}+= -autodefs ${NOWEAVE_AUTODEFS.${file:T}} .endif .endfor .endfor # # Production des documents # .for file in ${NOWEAVE} .for device in ${NOWEAVE_DEVICE} _NOWEAVE_CMD.${device}.${file} = ${_NOWEAVE_TOOL.${device}.${file:T}} _NOWEAVE_CMD.${device}.${file}+= ${.ALLSRC} # Productions spéciales pour HTML .if ${_NOWEAVE_DEVICES:M${device}} == html _NOWEAVE_CMD.${device}.${file}+= | htmltoc _NOWEAVE_SED.${device}.${file}+= -e 's%^$$%
%' _NOWEAVE_SED.${device}.${file}+= -e 's%^$$%
%' .if defined(NOWEAVE_HTML_CSS)&&!empty(NOWEAVE_HTML_CSS) _NOWEAVE_SED.${device}.${file}+= -e '2s%%%' .endif .endif # Filtre SED .if !empty(_NOWEAVE_SED.${device}.${file:T}) _NOWEAVE_CMD.${device}.${file}+= | sed ${_NOWEAVE_SED.${device}.${file:T}} .endif _NOWEAVE_CMD.${device}.${file}+= | cpif ${.TARGET} _NOWEAVE_OBJS+= ${file}${_NOWEAVE_DEVICE.suffix.${device}} ${file}${_NOWEAVE_DEVICE.suffix.${device}}: ${NOWEB.${file:T}} ${_NOWEAVE_CMD.${device}.${file}} .endfor .endfor do-clean-noweave: ${RM} -f ${_NOWEAVE_OBJS} do-${NOWEB_CLEAN}: do-clean-noweave .endif #!target(____) bsdowl-2.2.2/noweb/nwlatex.css000640 001751 001751 00000000623 12424531534 017365 0ustar00michaelmichael000000 000000 html { font-family: Palatino, Garamond, Times New Roman, Serif; } div#tableofcontents { border: solid black 1px; background-color: #CCCCFF; } a { text-decoration: none; } a:hover { background-color: #CCCCFF; } p { text-align: justify; } h4, h5, h6 { display: inline; margin-right: 3ex; } h5 { font-size: 100%; font-weight: normal; font-style: italic; } bsdowl-2.2.2/noweb/nwlatex.tex000640 001751 001751 00000010076 12424531534 017400 0ustar00michaelmichael000000 000000 % % Définitions l2h pour LaTeX % % l2h substitution th þ % l2h argblock paragraph h4 % l2h argblock subparagraph h5 \makeatletter \usepackage[cmyk,dvipsnames]{xcolor} \definecolor{emphasize}{cmyk}{0,0,0,0.05} \colorlet{example}{Bittersweet} \usepackage{fancyvrb} % % Underscore mieux mieux % %\def\_{\/\vrule height 0.4bp depth 0pt width .333em\relax} % % Marquage des éléments du texte % \newcommand\fn[1]{\textsl{#1}} % Function name \newcommand\va[1]{\textit{#1}} % Variable name \newcommand\fa[1]{\textit{#1}} % Formal argument \newcommand\pa[1]{\textsl{#1}} % Path % l2h argblock fn em % l2h argblock va var % l2h argblock fa car % l2h argblock pa em \newcommand\fn@prototype[1]{\texttt{\textbackslash#1}} \newcommand\fa@prototype[1]{\LA{}\textit{#1}\RA{}} % % Ajouter un point à la fin d'une suite de tokens, peut-être % \def\maybeaddadot#1{\maybeaddadot@A#1\relax.\relax\st@p} \def\maybeaddadot@A#1.\relax#2\st@p{#1.} % % Structure % \newenvironment{formalparagraph}[1]% {% \par \bigbreak \noindent \begingroup \def\rmA{#1}% \ifx\rmA\empty\else \textit{#1.~---}\enspace \fi \endgroup \ignorespaces }% {\par\smallbreak}% \newenvironment{remark}% {\begin{formalparagraph}{Remarque}}% {\end{formalparagraph}}% \newenvironment{remarks}% {\begin{formalparagraph}{Remarques}\par\nobreak \ignorespaces \parindent\z@ \parskip\smallskipamount}% {\end{formalparagraph}}% \newenvironment{seealso}% {\let\maybeaddadot\relax \begin{formalparagraph}{Voir aussi:}\let\item\seealso@iA}% {\end{formalparagraph}}% \def\seealso@A{\let\item\seealso@B} \def\seealso@B{, } % % Exemples % % l2h envblock example pre \DefineVerbatimEnvironment{example}% {Verbatim}% {% xleftmargin=\parindent, formatcom=\let\FancyVerbFormatLine\FancyExampleFormatLine }% \def\FancyExampleFormatLine#1{\llap{\smash{$\vdots$}\enspace}\texttt{#1}} \let\begin@example@O\example \def\example{\begingroup\catcode`\^^M\active\example@M} \newcommand\example@M[1][]{% \def\rmA{#1}% \ifx\rmA\empty \def\next{\begin@example@O}% \else \def\next{\begin@example@T{#1}}% \fi \expandafter\endgroup\next } \def\begin@example@T#1{% \par\bigbreak \noindent\textit{\maybeaddadot{#1}}\par\vskip-\medskipamount\nobreak% \begin@example@O }% % % Alinéas spéciaux % \newcommand\paracommand[1]{% \par \vskip 4em plus 1em minus 1em \penalty -20 \relax \begingroup \markslongfalse \marksouterfalse \marksprimitivefalse \toks0{}% \let\TeX@orig\TeX \def\long{\toksrappend\marks@l\to\toks0}% \def\outer{\toksrappend\marks@o\to\toks0}% \def\TeX{\toksrappend\marks@t\to\toks0}% \let\cs@orig\cs \def\cs##1{\gdef\currentcs{##1}\let\cs\cs@orig\cs{##1}}% \def\fa##1{\LA{}\textit{##1}\RA}% \dimen0=\hsize \advance\dimen0-6pt\relax \noindent\colorbox{emphasize}{\makebox[\dimen0]{#1\hfill\commandmarks}}\par \endgroup \nobreak \smallskip \noindent \ignorespaces } \def\commandmarks{% \the\toks0 \let\next\relax \ifmarkslong\let\next\commandmarks@A\fi \ifmarksouter\let\next\commandmarks@A\fi \ifmarksprimitive\let\next\commandmarks@A\fi \next } \def\commandmarks@A{\footnotesize This is % \ifmarksouter an outer \ifmarkslong long \fi \else \ifmarkslong a long \fi \fi \ifmarksprimitive \TeX@orig\ primitive\else command\fi .} \def\marks@l{\markslongtrue} \def\marks@o{\marksoutertrue} \def\marks@t{\marksprimitivetrue} \newif\ifmarkslong \newif\ifmarksouter \newif\ifmarksprimitive \newcommand\paranamespace[1]{% \begin{formalparagraph}{}\em La bibliothèque réserve l'espace de noms privé~\texttt{#1}.% \end{formalparagraph}% } \def\parafakepredicate{% \begin{formalparagraph}{}\em Cette procédure est un faux prédicat. Les faux prédicats sont discutés dans la section~XXX. \end{formalparagraph}% } \def\paraoutercatcode{% \begin{formalparagraph}{}\em Cette procédure manipule la table des % codes de catégorie des caractères~\emph{(catcode table)}, il est % donc recommandé que les procédures l'appelant soient % marquées~\texttt{\string\outer}.% \end{formalparagraph}% } bsdowl-2.2.2/misc/Makefile000640 001751 001751 00000000470 12436317346 016460 0ustar00michaelmichael000000 000000 ### Makefile -- Collection de makefiles `misc' # Author: Michael Grünewald # Date: Sam 7 jul 2007 18:09:47 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION FILES+= conf.freebsd.mk FILES+= misc.script.mk FILES+= misc.elisp.mk FILES+= misc.dotfile.mk .include "project.mk" ### End of file `Makefile' bsdowl-2.2.2/misc/conf.freebsd.mk000640 001751 001751 00000011445 12436317346 017713 0ustar00michaelmichael000000 000000 ### conf.freebsd.mk -- Installation of configuration files for FreeBSD # Author: Michael Grünewald # Date: Sam 3 oct 2009 18:25:04 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # This module defines several FILESGROUPS that can be used to install # configuration files on FreeBSD systems. # # These files groups are: # # BASE For base system configuration files, in /etc # PORT For port configuration files, in ${LOCALBASE}/etc # KERN For kernel configuration files # BOOT For boot configuration files, in /boot # CSUP For csup configuration files, in /etc/csup # FDI For device file informations used by HAL # RC For RC files used to boot the system # KDE For KDE configuration files # XDM For XDM configuration files, in ${LOCALBASE}/lib/X11/xdm # XDMPIXMAP For XDM pixmaps # XFCE For XFCE configuration files PREFIX?= LOCALBASE?= /usr/local # BASE # # Base system configuration files # # Such as rc.conf, hosts, networks, groups, etc. FILESGROUPS+= BASE BASEDIR?= /etc BASEOWN?= root BASEGRP?= wheel BASEMODE?= 444 BASEDIR.sshd_config = ${BASEDIR}/ssh BASEDIR.ssh_config = ${BASEDIR}/ssh BASEMODE.hostpad.conf = 400 # RC # # Setting up services at boot time FILESGROUPS+= RC RCDIR?= ${LOCALBASE}/etc/rc.d RCOWN?= ${BASEOWN} RCGRP?= ${BASEGRP} RCMODE?= 555 .if defined(RC)&&!empty(RC) .if ${RC} == "f77" RC:= .endif .endif # PORT # # Third party packages configurations files # # Such as sudoers, pkgtools.conf, apache configuration files, etc. FILESGROUPS+= PORT PORTDIR?= ${LOCALBASE}/etc PORTOWN?= ${BASEOWN} PORTGRP?= ${BASEGRP} PORTMODE?= 444 PORTMODE.sudoers = 440 PORTDIR.PolicyKit.conf = ${PORTDIR}/PolicyKit PORTDIR.fonts-local.conf = ${PORTDIR}/fonts PORTNAME.fonts-local.conf = local.conf # FDI # # Device information files for the HAL system FILESGROUPS+= FDI FDIDIR?= ${LOCALBASE}/share/hal/fdi/preprobe/20thirdparty FDIOWN?= ${BASEOWN} FDIGRP?= ${BASEGRP} FDIMODE?= 444 # KERN # # Kernel configuration files # # The machine is guessed from the MACHINE variable. Note: it would # be nice to define a group for each supported machine type, so that # kernels for various machines can be prepared. FILESGROUPS+= KERN KERNDIR?= /usr/src/sys/${MACHINE}/conf KERNOWN?= ${BASEOWN} KERNGRP?= ${BASEGRP} KERNMODE?= 444 # BOOT # # Loader configuration files # # These files usually go under /boot. FILESGROUPS+= BOOT BOOTDIR?= /boot BOOTOWN?= ${BASEOWN} BOOTGRP?= ${BASEGRP} BOOTMODE?= 444 # CSUP # # CVS Update # # Csup is a software package for updating collections of files # across a network. It is used to keep FreeBSD sources and the ports # collection in sync. Its configuration files goes under /etc/csup. FILESGROUPS+= CSUP CSUPDIR?= /etc/csup CSUPOWN?= ${BASEOWN} CSUPGRP?= ${BASEGRP} CSUPMODE?= 444 CSUPDIR.refuse-supfile =/var/db/sup CSUPNAME.refuse-supfile = refuse # XORG # # X server configuration files # # Theses files go under /etc/X11. Note that these files must be read # somewhere to be effective, for instance in the Xsession script. FILESGROUPS+= XORG XORGDIR?= /etc/X11 XORGOWN?= ${BASEOWN} XORGGRP?= ${BASEGRP} XORGMODE?= 444 # KDE # # K Desktop Environment # # KDE is a desktop environment. Among other bits of software, it # provides a display manager daemon, that is a system component. We # handle KDE4. FILESGROUPS+= KDE KDEDIR?= ${LOCALBASE}/kde4/share/config KDEOWN?= ${BASEOWN} KDEGRP?= ${BASEGRP} KDEMODE?= 444 KDEDIR.kdmrc = ${KDEDIR}/kdm # XDM # # X Display Manager # # XDM is the display manager daemon shipped with Xorg. It is highly # configurable, see comments in the relevant files. FILESGROUPS+= XDM XDMDIR?= ${LOCALBASE}/lib/X11/xdm XDMOWN?= ${BASEOWN} XDMGRP?= ${BASEGRP} XDMMODE?= 444 XDMMODE.GiveConsole?= 555 XDMMODE.TakeConsole?= 555 XDMMODE.Xreset?= 555 XDMMODE.Xsession?= 555 XDMMODE.Xstartup?= 555 XDMMODE.Xwilling?= 555 .for file in ${XDM:MXsetup_*} XDMMODE.${file:T}?= 555 .endfor FILESGROUPS+= XDMPIXMAP XDMPIXMAPDIR?= ${LOCALBASE}/lib/X11/xdm/pixmaps XDMPIXMAPOWN?= ${BASEOWN} XDMPIXMAPGRP?= ${BASEGRP} XDMPIXMAPMODE?= 444 # Images goes under ${XDMDIR}/pixmaps .for suffix in png gif jpg jpeg xpm .for file in ${XDM:M*.${suffix}} XDMDIR.${file:T}?= ${XDMDIR}/pixmaps .endfor .endfor # # Epilogue # USE_SWITCH_CREDENTIALS = yes .include "bps.init.mk" .include "bps.credentials.mk" .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `conf.freebsd.mk' bsdowl-2.2.2/misc/misc.dotfile.mk000640 001751 001751 00000002137 12436317346 017733 0ustar00michaelmichael000000 000000 ### misc.dotfile.mk -- BSD Makefile for dotfiles # Author: Michael Grünewald # Date: Tue Sep 12 15:33:20 CEST 2006 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # DOTFILE+= dot.cshrc # DOTFILE+= dot.emacs # DOTFILE+= dot.gnus # # DOTFILEDIR = ${HOME} # This is the default # .include "misc.dotfile.mk" ### DESCRIPTION # Install dotfiles. FILESGROUPS+= DOTFILE DOTFILEDIR?= ${HOME} .for item in ${DOTFILE} .if !defined(DOTFILENAME.${item:T}) DOTFILENAME.${item:T}=${item:C/^dot//} .endif .endfor USE_SWITCH_CREDENTIALS=no .include "bps.init.mk" .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `misc.dotfile.mk' bsdowl-2.2.2/misc/misc.elisp.mk000640 001751 001751 00000003625 12436317346 017424 0ustar00michaelmichael000000 000000 ### misc.elisp.mk -- Manage Emacs Lisp Directories # Author: Michael Grünewald # Date: Fri Feb 10 17:59:16 2006 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # SRCS+= module1.el # SRCS+= module2.el # # ELISPC.module1.elc = A command to compile my elisp thing # ELISPMODE.module2.elc = 400 # # ELISP_INSTALL_SRC.module2.el = no # # .include "misc.elisp.mk" ### DESCRIPTION # Ce module compile et installe des modules EMACS LISP. Le répertoire # d'installation est déterminé par la valeur de ELISPDIR # (/share/emacs/site-lisp). # # La variable ELISP_INSTALL_SRC (yes) contrôle l'installation des # fichiers source avec les fichiers byte-code. FILESGROUPS+= ELISP ELISP_INSTALL_SRC = yes ELISPDIR?= ${PREFIX}/share/emacs/site-lisp ELISPC?= emacs -batch -f batch-byte-compile .if defined (SRCS) && !empty(SRCS:M*.el) ELISP+= ${SRCS:M*.el:.el=.elc} .for file in ${SRCS:M*.el} # # Installation des fichiers sources # .if !defined(ELISP_INSTALL_SRC.${file}) ELISP_INSTALL_SRC.${file}=${ELISP_INSTALL_SRC} .endif .if ${ELISP_INSTALL_SRC.${file}} == yes ELISP+=${file} .endif .endfor .for obj in ${SRCS:M*.el:.el=.elc} # # Fichiers à nettoyer # CLEANFILES+= ${obj} # # Calcul de la ligne de compilation # .if !defined(ELISPC.${obj}) ELISPC.${obj} = ${ELISPC} .endif ${obj}: ${obj:.elc=.el} ${ELISPC.${obj}} ${.ALLSRC} .endfor .endif .include "bps.init.mk" .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" ### End of file `misc.elisp.mk' bsdowl-2.2.2/misc/misc.script.mk000640 001751 001751 00000006623 12436317346 017615 0ustar00michaelmichael000000 000000 ### misc.script.mk -- Development of shell scripts # Author: Michael Grünewald # Date: Fri 10 Feb 2006 10:40:49 GMT # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # SCRIPT = mp2eps.sh # SCRIPT+= mp2pdf.sh # SCRIPT+= mp2png.sh # # SCRIPTLIB+= mp2pnglib.sh # # # TMPDIR = /var/run/tmp # # REPLACE = PREFIX TMPDIR # # .include "misc.script.mk" ### DESCRIPTION # This modules handles the configuration and installation of # scripts. The target language is the Bourne shell but other # scripting languages are supported as well. # Scripts and Libraries: # # We consider two groups of files: script programs (SCRIPT) and script # libraries (SCRIPTLIB). # Configuration: # # We support configuration of scripts by allowing replacement # of some fixed strings in the file. This completes the similar # feature of `autoconf`. This replacement is only performed in # script programs and not in script libraries. # Variables: # # SCRIPT # List of script programs to install # # The variables BINDIR, BINMODE, BINOWN and BINGRP # parametrise the installation. # # # SCRIPTLIB # List of script libraries to install # # The variables SCRIPTLIBDIR, SCRIPTLIBMODE, SCRIPTLIBOWN and # SCRIPTLIBGRP parametrise the installation. # # The SCRIPTLIBDIR variable defaults to # `${SHAREDIR}${PACKAGEDIR}` but other sensible locations could # be `${LIBDIR}/perl5/5.12.4/${PACKAGEDIR}`. # # # PACKAGE # Name of the application # # It must be a UNIX filename and can be defined to let script # libraries be installed in an application specific subdirectory. # # # REPLACE # List of variables to be replaced in the configuration step # # The declaration `REPLACE=PREFIX` arranges so that the sequence # `@prefix@` is replaced by the value of `PREFIX` known to `make`. # # The case conversion should help to follow the different # conventions used when writing makefiles and using autoconf. # # The pipe character `|` must not appear in replacement text of the # variables enumerated by REPLACE. ### IMPLEMENTATION .if !target(____) ____: .include "bps.init.mk" # # Replacement of variables # .if defined(REPLACE)&&!empty(REPLACE) .for var in ${REPLACE} _SCRIPT_SED+= -e 's|@${var:L}@|${${var:S/|/\|/g}}|g' .endfor .endif # # Script programs # _SCRIPT_EXTS?= pl sh bash py sed awk .for ext in ${_SCRIPT_EXTS} .for script in ${SCRIPT:M*.${ext}} BIN+= ${script:T:.${ext}=} CLEANFILES+= ${script:T:.${ext}=} .if defined(_SCRIPT_SED) ${script:T:.${ext}=}: ${script} ${SED} ${_SCRIPT_SED} < ${.ALLSRC} > ${.TARGET}.output ${MV} ${.TARGET}.output ${.TARGET} .else ${script:T:.${ext}=}: ${script} ${CP} ${.ALLSRC} ${.TARGET} .endif .endfor .endfor # # Script libraries # SCRIPTLIBMODE?= ${SHAREMODE} SCRIPTLIBDIR?= ${SHAREDIR} SCRIPTLIBOWN?= ${SHAREOWN} SCRIPTLIBGRP?= ${SHAREGRP} FILESGROUPS+= SCRIPTLIB .include "bps.clean.mk" .include "bps.files.mk" .include "bps.usertarget.mk" .endif #!target(____) ### End of file `misc.script.mk' bsdowl-2.2.2/bps/bps.autoconf.mk000640 001751 001751 00000004503 12436326756 017611 0ustar00michaelmichael000000 000000 ### bps.autoconf.mk -- Support pour AUTOCONF # Author: Michael Grünewald # Date: Ven 18 avr 2008 09:59:39 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # CONFIGURE = Makefile.in # CONFIGURE+= header.in # .include "bps.autoconf.mk" ### DESCRIPTION # Si un fichier `configure.ac' ou `configure.in' figure dans notre dossier, ou # si la variable USE_AUTOCONF est positionnée à `yes' alors les fichiers # objets associés aux fichiers énumérés dans la variable # CONFIGURE sont ajoutés aux listes de nettoyage `distclean'. # # Description des variables # # USE_AUTOCONF # # Contrôle l'utilisation des services du module `bps.autoconf.mk'. Si cette # variable n'est pas définie par l'utilisateur et que des traces de # l'utilisation d'autoconf par le projet sont trouvées, cette variable est # positionnée à `yes'. # CONFIGURE # # Énumère les sources traitées par le script `configure'. Les fichiers objets # produits par `autoconf' correspondant à ces sources sont ajoutés à # DISTCLEANFILES. # # Si ils existent, les fichiers `Makefile.in' et `Makefile.inc.in' sont # automatiquement ajoutés à cette énumération. .if !target(____) ____: .if exists(configure.ac)||exists(autoconf.in) USE_AUTOCONF?=yes .endif USE_AUTOCONF?=no .if ${USE_AUTOCONF} == yes .for file in config.status config.log .if exists(${file}) DISTCLEANFILES+= ${file} .endif .endfor .if exists(autom4te.cache) DISTCLEANDIRS+= autom4te.cache .endif CONFIGURE?= .for file in Makefile.in Makefile.inc.in .if exists(${file})&&empty(CONFIGURE:M${file}) CONFIGURE+= ${file} .endif .endfor REALCLEANFILES+= ${CONFIGURE:.in=} .if exists(configure.ac)||exists(configure.in) .if !defined(REALCLEANFILES)||empty(REALCLEANFILES:Mconfigure) REALCLEANFILES+= configure .endif .endif .endif # ${USE_AUTOCONF} == yes .endif # !target(____) ### End of file `bps.autoconf.mk' bsdowl-2.2.2/bps/Makefile000640 001751 001751 00000000674 12436317346 016317 0ustar00michaelmichael000000 000000 ### Makefile -- Collection de Makefiles `make' # Author: Michael Grünewald # Date: Ven 10 fév 2006 16:51:08 GMT # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION FILES+= bps.init.mk FILES+= bps.credentials.mk FILES+= bps.objdir.mk FILES+= bps.own.mk FILES+= bps.usertarget.mk FILES+= bps.clean.mk FILES+= bps.subdir.mk FILES+= bps.files.mk FILES+= bps.autoconf.mk FILES+= bps.project.mk .include "project.mk" ### End of file `Makefile' bsdowl-2.2.2/bps/bps.credentials.mk000640 001751 001751 00000004063 12436317346 020264 0ustar00michaelmichael000000 000000 ### bps.credentials.mk -- Credential switch # Author: Michael Grünewald # Date: Sat 29 Mar 2008 16:05:16 CET # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # USE_SWITCH_CREDENTIALS = yes # # .include "bps.credentials.mk" ### DESCRIPTION # Implement a credential switch which applies to the targets # enumerated in the _SWITCH_CREDENTIALS_TARGETS variable, e.g. install. # # Variable description # # USE_SWITCH_CREDENTIALS # # Command the use of the switch credential functionality # # Possible values are 'yes' or 'no', it defaults to 'yes'. # _SWITCH_CREDENTIALS_TARGETS # # List of targets needing a credential switch # # It defaults to the empty list, except for the user is inable to # write in ${DESTDIR}${PREFIX}, in which case the install target is # added to this list. ### IMPLEMENTATION .if !target(____) ____: # # Variables # USE_SWITCH_CREDENTIALS?= yes _SWITCH_CREDENTIALS_TARGETS?= # Add the `install` target if the current user is not allowed to write # under ${DESTDIR}${PREFIX}. _SWITCH_CREDENTIALS.install!= if [ ! -w /${DESTDIR}${PREFIX} ]; then echo install; else echo ''; fi .if !empty(_SWITCH_CREDENTIALS.install) _SWITCH_CREDENTIALS_TARGETS+= ${_SWITCH_CREDENTIALS.install} .endif # # Credential switch # .if(${USE_SWITCH_CREDENTIALS} == yes)&&!(${UID} == 0) .for target in ${_SWITCH_CREDENTIALS_TARGETS} .if !target(${target}) ${target}:: ${target}-switch-credentials ${NOP} ${target}-switch-credentials: ${INFO} 'Switching to root credentials for target (${target})' @${SU} root -c '${MAKE} ${target}' .endif .endfor .endif .endif # !target(____) ### End of file `bps.credentials.mk' bsdowl-2.2.2/bps/bps.clean.mk000640 001751 001751 00000006422 12436317346 017052 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION ### bps.clean.mk -- Service pour l'effacement de fichiers # Auteur: Michael Grünewald # Date: Ven 10 fév 2006 10:40:49 GMT # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # CLEANFILES+= ${OBJ} # CLEANDIRS+= ${OBJDIR} # DISTCLEANFILES+= ${CONFOBJ} # DISTCLEANDIRS+= ${CONFOBJDIR} # REALCLEANFILES+= ${CONF} # REALCLEANDIRS+= ${CONFDIR} # # .include "bps.clean.mk" ### DESCRIPTION # Le module `bps.clean.mk' fournit un service pour effacer les # fichiers objets et remettre le répertoire de travail dans son état # initial. # # Pour cela, le module `bps.clean.mk' utilise les valeurs des # variables CLEANFILES, CLEANDIRS, DISTCLEANFILES, DISTCLEANDIRS, # REALCLEANFILES, REALCLEANDIRFILES, pour créer des cibles # do-cleanfiles, do-cleandirs, do-distcleanfiles, do-distcleandirs, # do-realcleanfiles et do-realcleandirs et les faire dépendre de # do-clean et do-distclean respectivement. .if !target(____) ____: # # Clean files # .if defined(CLEANFILES)&&!empty(CLEANFILES) do-clean: do-clean-cleanfiles do-clean-cleanfiles: ${RM} -f ${CLEANFILES} .endif # # Clean dirs # .if defined(CLEANDIRS)&&!empty(CLEANDIRS) do-clean: do-clean-cleandirs do-clean-cleandirs: ${RM} -f -r ${CLEANDIRS} .endif # # Distclean files # .if defined(DISTCLEANFILES)&&!empty(DISTCLEANFILES) do-distclean: do-distclean-distcleanfiles do-distclean-distcleanfiles: ${RM} -f ${DISTCLEANFILES} .endif # # Distclean dirs # .if defined(DISTCLEANDIRS)&&!empty(DISTCLEANDIRS) do-distclean: do-distclean-distcleandirs do-distclean-distcleandirs: ${RM} -f -r ${DISTCLEANDIRS} .endif # # Realclean files # .if defined(REALCLEANFILES)&&!empty(REALCLEANFILES) do-realclean: do-realclean-realcleanfiles do-realclean-realcleanfiles: ${RM} -f ${REALCLEANFILES} .endif # # Realclean dirs # .if defined(REALCLEANDIRS)&&!empty(REALCLEANDIRS) do-realclean: do-realclean-realcleandirs do-realclean-realcleandirs: ${RM} -f -r ${REALCLEANDIRS} .endif # # Cookies # # A ``cookie'' is a peristant bit of information used my the # ``Makefile'' infrastructure to keep track of some event. # There is two kind of cookies: ordinary cookies and hard cookies. An # ordinary cookie is removed by a simple `clean' while a hard # cookie remains until a `distclean' or a `realclean' happens. .if defined(COOKIEFILES)&&!empty(COOKIEFILES) do-clean-cookies: @${RM} -f ${COOKIEFILES} do-clean: do-clean-cookies .endif .if defined(HARDCOOKIEFILES)&&!empty(HARDCOOKIEFILES) do-clean-hardcookies: @${RM} -f ${HARDCOOKIEFILES} do-distclean: do-clean-hardcookies .endif .if target(do-clean) clean: do-clean distclean: do-clean realclean: do-clean .endif .if target(do-distclean) distclean: do-distclean realclean: do-distclean .endif .if target(do-realclean) realclean: do-realclean .endif .ORDER: do-realclean do-distclean do-clean .endif # !target(____) ### End of file `bps.clean.mk' bsdowl-2.2.2/bps/bps.usertarget.mk000640 001751 001751 00000004731 12436317346 020156 0ustar00michaelmichael000000 000000 ### bps.usertarget.mk -- Cibles de l'insterface utilisateur # Author: Michael Grünewald # Date: Sam 7 jul 2007 09:59:15 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # _MAKE_USERTARGET = configure depend build doc all install # _MAKE_USERTARGET+= clean distclean realclean update # _MAKE_ALLSUBTARGET = configure depend build doc # # .include "bps.usertarget.mk" ### DESCRIPTION # Définit une recette de production pour chaque cible administrative énumérée # par la variable _MAKE_USERTARGET. Définit une cible administrative `all' qui # appelle le programme `make' pour produire chacune des cibles énumérées dans # _MAKE_ALLSUBTARGET. # # Pour chaque cible ${target} figurant dans _MAKE_USERTARGET et pour # laquelle il n'existe pas de recettes, on définit une recette, de la # façon suivante: # -- si une des cibles pre-${target}, do-${target} ou post-${target} # existe, alors la recette de ${target} est vide et la production # de ${target} dépend des cibles pre-do-post existantes; # -- sinon, une recette affichant un message ``Nothing to do'' est # préparée. .if !target(____) ____: # # Dépendances pre-do-post # # On insère les dépendances * -> pre-*, * -> do-* et * -> post-* # dans le graphe des recettes lorsque le membre de droite existe. .PHONY: ${_MAKE_USERTARGET} .for target in ${_MAKE_USERTARGET:Nall} .if !target(${target}) .for prefix in pre do post .if target(${prefix}-${target}) ${target}: ${prefix}-${target} .endif .endfor .endif .endfor # # Cible all # .for target in ${_MAKE_ALLSUBTARGET} .if target(${target}) do-all: divert-${target} divert-${target}: .USE @echo ${MAKE} ${target} @cd ${.CURDIR}; ${MAKE} ${target} .endif .endfor .for prefix in pre do post .if target(${prefix}-all) all: ${prefix}-all .endif .endfor # # Messages # .for target in ${_MAKE_USERTARGET} .if !target(${target}) ${target}: @: ${INFO} "Nothing to do for target ${target}" .endif .endfor .endif # !target(____) ### End of file `bps.usertarget.mk' bsdowl-2.2.2/bps/bps.files.mk000640 001751 001751 00000015516 12436317346 017076 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION ### bps.files.mk -- Service générique d'installation # Auteur: Michael Grünewald # Date: Ven 10 fév 2006 10:40:49 GMT # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # TYPE1+= file1.type1 # TYPE1+= file2.type1 # TYPE2 = file.type # # TYPE1MODE.file1.type1 = 444 # TYPE1NAME.file2.type1 = fancyname # # FILESGROUPS = TYPE1 TYPE2 # TYPE1OWN = owner # TYPE1GRP = group # TYPE1DIR = ${X11PREFIX}/directory # Will respect ${DESTDIR} # TYPE1MODE = 400 # # .include "bps.init.mk" # .include "bps.files.mk" # .include "bps.usertarget.mk" ### DESCRIPTION # Le module `bps.files.mk' propose une procédure générique # d'installation pour les modules clients. # # Le module `bps.files.mk' définit une notion de groupe d'objets, # chaque groupe d'objet correspond à un ensemble de paramètres pour # l'installation, soit l'emplacement, le propriétaire les droits # d'accès et le nom; et à une liste d'objets. Pour chaque objet membre # d'un groupe, des paramètres individuels peuvent êtres définis # (cf. PARAMÈTRES INDIVIDUELS infra). # # Le module `bps.files.mk' définit encore des cibles/procédures # `buildfiles' `installdirs' et `installfiles' à moins que celles-ci # ne soient déjà définies par le client. Ceci permet au client # d'utiliser des mécanismes spécifiques pour réaliser ces tâches # lorsque les actions proposées par le module `bps.files.mk' se # révèlent inappropriées. # # Le module `bps.files.mk' complète le graphe des dépendances en # affirmant que `buildfiles' est un prérequis pour `all' et # `installfiles'. Le module tient également compte des # cibles/procédures preinstall et postinstall lorsqu'elles existent. # Nota: ce fichier est dérivé de bsd.files.mk, distribué avec le # système FreeBSD. # # Description des variables # # FILESGROUPS # # Énumération des groupes de fichiers réclamant la prise en charge de # leur installation par le module `bps.files.mk'. # # Paramètres individuels # # Les paramètres de la procédure d'installation du fichier '${file}' # appartenant au groupe '${group}' sont décrites ici. # ${group}DIR.${file:T} # # Le dossier d'installation pour ${file}, relativement à # ${DESTDIR}. Si ce dossier n'existe sa création est réclamée par la # cible 'installdirs'. # # La valeur implicite pour cette variable est ${group}DIR. # ${group}NAME.${file:T} # # Le nom d'installation pour ${file}, si celui-ci est différent de # celui de ${file}. # # La valeur implicite pour cette variable est ${group}NAME. Remarquons # que si ${group}NAME est définie, alors tous les fichiers membres du # groupe ${group} sont installés au même emplacement; on ne # positionne donc la variable ${group}NAME que lorsque ce groupe ne # peut compter qu'un seul membre. # ${group}OWN.${file:T} # # Le propriétaire de ${file:T}. # # La valeur implicite pour cette variable est ${group}OWN. # ${group}GRP.${file:T} # # Le groupe propriétaire de ${file:T}. # # La valeur implicite pour cette variable est ${group}GRP. # ${group}MODE.${file:T} # # Le mode d'accès de ${file:T}. Voir chmod(2). # # La valeur implicite pour cette variable est ${group}MODE. # # Définir de nouveaux groupes # # Définir de nouveaux groupes est très simple, comme le montre le # petit exemple suivant. # # Pour créer un groupe SCRIPT, on reporte les déclarations suivantes # dans un fichier de directives: # # FILESGROUPS+= SCRIPT # SCRIPTDIR?= ${BINDIR} # SCRIPTOWN?= ${BINOWN} # SCRIPTGRP?= ${BINGRP} # SCRIPTMODE?= ${BINMODE} # # On peut bien entendu initialiser à sa guise les paramètres # d'installation pour le groupe SCRIPT, le choix fait ici donne # cependant un exemple réaliste. ### IMPLÉMENTATION .if !target(____) ____: .if !target(____) .error Module bps.files.mk require bps.init.mk for proper processing. .endif FILESGROUPS+= FILES BIN DOC SHARE LIB .include "bps.own.mk" .if !target(buildfiles) .for group in ${FILESGROUPS} buildfiles: buildfiles-${group:L} .PHONY: buildfiles-${group:L} buildfiles-${group:L}: ${${group}} .endfor .endif do-build: buildfiles do-install: installdirs do-install: installfiles ## PROCÉDURE D'INSTALLATION # La procédure d'installation est située avant le calcul des variables # ${_${group}_INSTALL.${file:T}} pour déterminer correctement la liste # des répertoires devant être crées, à partir des variables GROUPDIR # et GROUPDIR.specialisation. .if !target(installfiles) installfiles: .PHONY: installfiles .for group in ${FILESGROUPS} .if defined(${group}) && !empty(${group}) installfiles: installfiles-${group:L} .PHONY: installfiles-${group:L} installfiles-${group:L}: .for file in ${${group}} installfiles-${group:L}: installfiles-${group:L}-${file:T} installfiles-${group:L}-${file:T}: ${file} ${_${group}_INSTALL.${file:T}} .PHONY: installfiles-${group:L}-${file:T} .endfor #file in ${${group}} .endif #defined(${group})&&!empty(${group}) .endfor #group in ${FILESGROUPS} .endif #!target(installfiles) .if !target(installdirs) installdirs: .for group in ${FILESGROUPS} .if defined(${group}) && !empty(${group}) ${INSTALL_DIR} ${DESTDIR}${${group}DIR} .for item in ${${group}} .if defined(${group}DIR.${item:T})&&!empty(${group}DIR.${item:T}) ${INSTALL_DIR} ${DESTDIR}${${group}DIR.${item:T}} .endif .endfor .endif #defined(${group})&&!empty(${group}) .endfor #group in ${FILESGROUPS} .endif #!target(installdirs) installfiles: buildfiles ## CALCUL DES PARAMÈTRES D'INSTALLATION .for group in ${FILESGROUPS} .if defined(${group}) && !empty(${group}) ${group}OWN?= ${SHAREOWN} ${group}GRP?= ${SHAREGRP} ${group}MODE?= ${SHAREMODE} ${group}DIR?= ${SHAREDIR} # Nota: le module bsd.files.mk propose BINDIR comme répertoire # implicite pour l'installation. .for file in ${${group}} .for record in DIR OWN GRP MODE ${group}${record}.${file:T}?=${${group}${record}} .endfor .if defined(${group}NAME) ${group}NAME.${file:T}?=${${group}NAME} .endif .if !defined(_${group}_INSTALL.${file:T}) _${group}_INSTALL.${file:T}=${INSTALL}\ -o ${${group}OWN.${file:T}}\ -g ${${group}GRP.${file:T}}\ -m ${${group}MODE.${file:T}}\ ${.ALLSRC} .if defined(${group}NAME.${file:T}) _${group}_INSTALL.${file:T}+=\ ${DESTDIR}${${group}DIR.${file:T}}/${${group}NAME.${file:T}} .else _${group}_INSTALL.${file:T}+=\ ${DESTDIR}${${group}DIR.${file:T}} .endif .endif .endfor #file in ${${group}} .endif #defined(${group})&&!empty(${group}) .endfor #group in ${FILESGROUPS} .endif #!target(____) ### End of file `bps.files.mk' bsdowl-2.2.2/bps/bps.objdir.mk000640 001751 001751 00000004767 12436317346 017253 0ustar00michaelmichael000000 000000 ### bps.objdir.mk -- Utilisation de OBJDIR # Author: Michael Grünewald # Date: Sam 15 mar 2008 20:51:30 CET # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # .include "bps.objdir.mk" ### DESCRIPTION # Le programme BSD Make dispose de certaines fonctionnalités # permettant de produire le code objet dans un répertoire différent de # celui contenant le code source. Ce module propose une interface # simplifiée vers ces fonctionnalités. # # Note: Plus que tout autre, ce module de directives peut entraîner la # perte de données par son utilisation maladroite. # # Description des variables # # MAKE_OBJDIR # MAKE_OBJDIRPREFIX # USE_OBJDIR ### IMPLÉMENTATION .if !target(____) ____: # # Contrôle de MAKEOBJDIRPREFIX et MAKEOBJDIR # # On vérifie que les variables MAKEOBJDIRPREFIX et MAKEOBJDIR n'ont # pas été positionnées sur la ligne de commande ou dans le fichier de # directives (cf. make(1), .OBJDIR). _MAKE_OBJDIRPREFIX!= ${ENVTOOL} -i PATH=${PATH} ${MAKE} \ ${.MAKEFLAGS:MMAKEOBJDIRPREFIX=*} -f /dev/null -V MAKEOBJDIRPREFIX nothing .if !empty(_MAKE_OBJDIRPREFIX) .error MAKEOBJDIRPREFIX can only be set in environment, not as a global\ (in make.conf(5)) or command-line variable. .endif _MAKE_OBJDIR!= ${ENVTOOL} -i PATH=${PATH} ${MAKE} \ ${.MAKEFLAGS:MMAKEOBJDIR=*} -f /dev/null -V MAKEOBJDIR nothing .if !empty(_MAKE_OBJDIR) .error MAKEOBJDIR can only be set in environment, not as a global\ (in bps.conf(5)) or command-line variable. .endif .undef _MAKE_OBJDIRPREFIX .undef _MAKE_OBJDIR # # Initialisation # .if defined(MAKEOBJDIR)||defined(MAKEOBJDIRPREFIX) USE_OBJDIR?= yes .else USE_OBJDIR?= no .endif # # User targets # .if ${USE_OBJDIR} == yes _MAKE_USERTARGET+= obj _MAKE_ALLSUBTARGET+= obj do-obj: .if defined(MAKEOBJDIRPREFIX) ${INSTALL_DIR} ${MAKEOBJDIRPREFIX}/${.CURDIR} .elif defined(MAKEOBJDIR) ${INSTALL_DIR} ${MAKEOBJDIR} .endif .if ${.OBJDIR} != ${.CURDIR} distclean: @rm -Rf ${.OBJDIR} .endif .endif # USE_OBJDIR .endif # !target(____) ### End of file `bps.objdir.mk' bsdowl-2.2.2/bps/bps.own.mk000640 001751 001751 00000005271 12436317346 016574 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION ### bps.own.mk -- Variables pour les utilisateurs, groupes, permissions ... # Auteur: Michael Grünewald # Date: Ven 10 fév 2006 10:40:49 GMT # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # .include "bps.own.mk" ### DESCRIPTION # Ce module définit pour ses clients des paramètres pour # l'installation des objets, soit leur emplacement, leur propiétaire, # leur groupe et leur droits d'accès. # Pour les valeurs implictes de ces paramètes, le module distingue le # cas de l'utilisateur root des autres. Dans le premier cas, il estime # que `root' souahite installer des programmes pour qu'ils soient # disponibles pour tous les utilisateurs de la machine, ce qui se # traduit dans le choix des permissions et de PREFIX, et dans l'autre # cas il estime que les objets sont destinés à une utilisation privée, # ce qui est également reflété par les permissions et PREFIX. # Variable BINDIR BINOWN BINGRP BINMODE # Ces variables décrivent le site d'accueil BINDIR, le propriétaire # (BINOWN, BINGRP) et les droits d'accès (BINMODE) pour les objets # du groupe BIN. Les objets de ce groupe sont des objets binaires # exécutables, résulat d'un assemblage et d'une édition de liens, ou # parfois un fichier interprèté (script). # # D'autres groupes sont définis dans ce module, soit BIN, SHARE, DOC, # LIB, dont le nom est semble-t-il assez explicite. # Nota: hier(7) définit le type de fichier à placer dans SHAREDIR. # SeeAlso: bsd.own.mk, bsd.files.mk, hier(7). ### IMPLÉMENTATION .if !target(____) ____: .if defined(UID)&&(${UID} == 0) _OWN_DIRMODE?= 755 _OWN_BINMODE?= 555 _OWN_DTAMODE?= 444 _OWN_OWN?= ${_BPS_SYSTEMOWN} _OWN_GRP?= ${_BPS_SYSTEMGRP} .else _OWN_DIRMODE?= 750 _OWN_BINMODE?= 550 _OWN_DTAMODE?= 440 _OWN_OWN?= ${USER} _OWN_GRP?= ${GROUP} .endif BINDIR?= ${PREFIX}/bin BINMODE?= ${_OWN_BINMODE} BINOWN?= ${_OWN_OWN} BINGRP?= ${_OWN_GRP} LIBDIR?= ${PREFIX}/lib LIBMODE?= ${_OWN_DTAMODE} LIBOWN?= ${_OWN_OWN} LIBGRP?= ${_OWN_GRP} SHAREDIR?= ${PREFIX}/share${PACKAGEDIR} SHAREMODE?= ${_OWN_DTAMODE} SHAREOWN?= ${_OWN_OWN} SHAREGRP?= ${_OWN_GRP} DOCDIR?= ${PREFIX}/share/doc${PACKAGEDIR} DOCMODE?= ${_OWN_DTAMODE} DOCOWN?= ${_OWN_OWN} DOCGRP?= ${_OWN_GRP} .endif #!target(____) ### End of file `bps.own.mk' bsdowl-2.2.2/bps/bps.project.mk000640 001751 001751 00000026432 12436317346 017441 0ustar00michaelmichael000000 000000 ### bps.project.mk -- Maintenance pour de petits projets # Author: Michael Grünewald # Date: Sam 19 avr 2008 16:27:56 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # PROJECTVERSION = 1.1 # PROJECTNAME = projectpublication # PROJECTAUTHOR = The name of the GPG guy # PROJECTDISTDIR = /attic # # .include "bps.project.mk" ### DESCRIPTION # Le support de maintenance pour de petits projets fournit une # assistance pour les opérations suivantes: # -- la préparation d'archives `tar'; # -- la publication de ces archives (avec signature). # # La publication des archives et des signatures se fait vers un point du # système de fichiers, la publication vers un serveur ouvert au public # nécessite en général des manipulations supplémentaires. # # Description des variables # # PROJECTVERSION # # Version du projet, par exemple: 1.1 # # Si cette variable n'est pas initialisée mais que VERSION l'est, # cette dernière est utilisée pour initialiser PROJECTVERSION. En # l'absence d'initialisation explicite, la valeur 0.0 est # implicitement affectée à PROJECTVERSION. # PROJECTNAME # # Nom du projet, par exemple: bsdmakepscript # # Si cette variable n'est pas initialisée mais que PACKAGE, # PROJECT ou NAME l'est, cette variable est utilisée pour # initialiser PROJECTNAME. En l'absence d'initialisation # explicite, une valeur déduite du nom du répertoire racine du # projet est implicitement affectée à PROJECTNAME. # PROJECTAUTHOR # # Auteur du projet, par exemple: Michael Grünewald # # La valeur de cette variable est utilisée lors de l'étape de # signature pour déterminer la clef à utiliser. # # Si cette variable n'est pas initialisée mais que AUTHOR l'est, # cette dernière est utilisée pour initialiser PROJECTAUTHOR. En # l'absence d'initialisation explicite, la variable n'est pas # initialisée et la valeur de USE_PROJECT_GPG est positionnée à no. # PROJECTDISTDIR # # Dossier où sont placées les archives avant d'être publiées. Ce # dossier reçoit aussi les fichiers de signature. # # Si cette variable n'est pas initialisée mais que DISTDIR l'est, # cette dernière est utilisée pour initialiser PROJECTDISTDIR. En # l'absence d'initialisation explicite, la valeur ${.OBJDIR} # implicitement affectée à PROJECTDISTDIR. # PROJECTDISTNAME # # Le nom des archives, qui est aussi le nom du dossier racine # apparaissant dans l'archive. # # La valeur implicite de PROJECTDISTNAME est # ${PROJECTNAME}-${PROJECTVERSION}. # PROJECTDIST # # Liste de fichiers supplémentaires devant aussi faire l'objet d'une # publication non signée. # # Les fichiers enumérés dans cette variable sont publiés aux côtés # des archives et des signatures des archives. # PROJECTDISTSIGN # # Liste de fichiers supplémentaires devant aussi faire l'objet d'une # publication signée. # # Les fichiers enumérés dans cette variable sont publiés aux côtés # des archives et des signatures des archives. # PROJECTDISTEXCLUDE # # Liste de fichiers à ne pas inclure dans les archives publiées. # Le module ajoute automatiquement les fichiers objets produits par # le script configure à cette liste (voir bps.autoconf.mk). # USE_PROJECT_GPG # # Contôle l'utilisation de GPG pour signer les fichiers publiés. Si # cette variable est positionnée à une autre valeur que yes, les # fichiers sont publiés sans être préalablement signés. # PROJECTENV # # Énumère les variables d'environnement exportées vers les sous-shells # PROJECTBASE # # Dossier principal du projet # # Cette variable est initialisée automatiquement à partir de .CURDIR. # PROJECTLIBRARY # # Bibliothèque du projet # # Nom d'un dossier «bibliothèque» contenant des sous-dossiers pour # les modèles utilisés dans le projet, les makefiles spécifiques, # etc. # PROJECTLIBRARYMAKE # # Bibliothèque de fichiers Make # # Description des cibles # # Toutes les cibles sont décomposées en étapes `pre-do-post' pour # pouvoir accueillir le plus hospitalièrement possible les # modifications de l'utilisateur. # dist: # # Crée les archives destinées à la publication. # Ces archives sont placées dans le dossier PROJECTDISTDIR. # # Note importante: Le programme GNU tar ne dispose pas d'une option # «déréférencer les liens présents sur la ligne de commande». À cause de # cette restriction, il est interdit d'utiliser un lien symbolique dans # l'arbre des sources d'un projet. # publish: # # Prépare les archives, les signe, et les publie. # prepublish: # # Comme publish, mais s'arrête juste avant la publication proprement # dite. # subshell: # # Ouvre un sous-shell pour le développeur # # L'environnement du shell ouvert par cette cible contient les # liaisons énumérées dans PROJECTENV. # # Si cette variable est définie, entre dans le dossier SUBSHELLDIR # avant d'éxécuter ce nouveau shell. # update: # # Permet la mise à jour automatique des sources du projet # # Cette cible n'est associée à aucune rectette, mais l'utilisateur # peut en assigner une, s'il souahite automatiser automatiquement les # soruces de son projet. ### IMPLÉMENTATION .if !target(____) ____: # # Initialistion des variables # .if !defined(PROJECTNAME)&&defined(PACKAGE) PROJECTNAME = ${PACKAGE} .endif .if !defined(PROJECTNAME)&&defined(PROJECT) PROJECTNAME = ${PROJECT} .endif .if !defined(PROJECTNAME)&&defined(NAME) PROJECTNAME = ${NAME} .endif .if !defined(PACKAGE)&&defined(PROJECTNAME) PACKAGE = ${PROJECTNAME} .endif # La définition possible de PACKAGEDIR ci-dessous est redondante # de celle figurant dans `bps.init.mk' mais il se peut que la variable # PACKAGEDIR ait tout-juste été définie. .if defined(PACKAGE)&&!empty(PACKAGE) PACKAGEDIR?= /${PACKAGE} .endif .if !defined(PROJECTAUTHOR)&&defined(AUTHOR) PROJECTAUTHOR = ${AUTHOR} .endif .if !defined(PROJECTVERSION)&&defined(VERSION) PROJECTVERSION = ${VERSION} .endif .if !defined(PROJECTDISTDIR)&&defined(DISTDIR) PROJECTDISTDIR = ${DISTDIR} .endif # Les variables permettant de deviner les valeurs pour le module # PROJECT ont toutes été positionnées, on passe à l'initialistion à # l'aide de valeurs implicites. .if !defined(PROJECTNAME)||empty(PROJECTNAME) PROJECTNAME = ${.CURDIR:T} .endif .if !defined(PROJECTVERSION)||empty(PROJECTVERSION) PROJECTVERSION = 0.0 .endif .if !defined(PROJECTAUTHOR)||empty(PROJECTAUTHOR) USE_PROJECT_GPG = no .endif GPG?= gpg USE_PROJECT_GPG?= yes PROJECTDIST?= PROJECTDISTSIGN?= PROJECTDISTNAME?= ${PROJECTNAME}-${PROJECTVERSION} PROJECTDISTDIR?= ${.OBJDIR} # # Structures pour le module de compression # _PROJECT_COMPRESS_TOOLS?=${_BPS_COMPRESS} _PROJECT_COMPRESS.suffix.none = _PROJECT_COMPRESS.suffix.gzip = .gz _PROJECT_COMPRESS.suffix.bzip2 = .bz2 _PROJECT_COMPRESS.suffix.xz = .xz _PROJECT_COMPRESS.flag.none = _PROJECT_COMPRESS.flag.gzip = -z _PROJECT_COMPRESS.flag.bzip2 = -j _PROJECT_COMPRESS.flag.xz = -J # # Production des archives # initialisation # .for t in ${_PROJECT_COMPRESS_TOOLS} .for f in ${PROJECTDISTNAME}.tar${_PROJECT_COMPRESS.suffix.${t}} PROJECTDISTSIGN+= ${PROJECTDISTDIR}/${f} PROJECTDISTEXCLUDE+= ${f} .endfor .endfor # # Fichiers à omettre dans l'archive # .for f in CVS .cvsignore .svn .gitignore .git .if exists(${f}) PROJECTDISTEXCLUDE+=${f} .endif .endfor .if target(____) .if defined(CONFIGURE)&&!empty(CONFIGURE:M*.in) .for f in ${CONFIGURE:M*.in} PROJECTDISTEXCLUDE+=${PROJECTDISTNAME}/${f:.in=} .endfor .endif .endif # # Production des archives # pour de bon # .for t in ${_PROJECT_COMPRESS_TOOLS} ${PROJECTDISTDIR}/${PROJECTDISTNAME}.tar${_PROJECT_COMPRESS.suffix.${t}}:: ${LN} -s ${.CURDIR} ${PROJECTDISTDIR}/${PROJECTDISTNAME} ${TAR} -c\ ${_PROJECT_COMPRESS.flag.${t}}\ -f ${.TARGET}\ -C ${PROJECTDISTDIR}\ -h\ ${PROJECTDISTEXCLUDE:S/^/--exclude /}\ --exclude ${PROJECTDISTNAME}/${PROJECTDISTNAME}\ ${PROJECTDISTNAME} ${RM} -f ${PROJECTDISTDIR}/${PROJECTDISTNAME} .endfor # # Production des signatures # .for f in ${PROJECTDISTSIGN} ${f:=.sig}: ${f} cd ${PROJECTDISTDIR};\ ${GPG} -u '${PROJECTAUTHOR}' -b ${.ALLSRC} .endfor # # Préparation de la distribution # do-dist-projectdistdir: ${INSTALL_DIR} ${PROJECTDISTDIR} # # Hospitalité # .for t in dist prepublish publish update .if target(pre-${t}) ${t}: pre-${t} .endif ${t}: do-${t} .if target(post-${t}) ${t}: post-${t} .endif .endfor # # Distribution # do-dist: do-dist-projectdistdir .if !empty(PROJECTDIST) do-dist: ${PROJECTDIST} .endif .if !empty(PROJECTDISTSIGN) do-dist: ${PROJECTDISTSIGN} .endif # # Publication # .if ${USE_PROJECT_GPG} == yes do-prepublish: ${PROJECTDISTSIGN:=.sig} .endif # # Initialisation de PROJECTBASE # .if !defined(PROJECTBASE) PROJECTBASE = ${.CURDIR} .MAKEFLAGS: PROJECTBASE="${PROJECTBASE}" .endif # # Initialisation de PROJECTLIBRARY # .if !defined(PROJECTLIBRARY) && exists(${PROJECTBASE}/Library) PROJECTLIBRARY = ${PROJECTBASE}/Library .endif .if defined(PROJECTLIBRARY) .MAKEFLAGS: PROJECTLIBRARY="${PROJECTLIBRARY}" .endif # # Initialisation de PROJECTLIBRARYMAKE # .if !defined(PROJECTLIBRARYMAKE) .if defined(PROJECTLIBRARY) && exists(${PROJECTLIBRARY}/Make) PROJECTLIBRARYMAKE = ${PROJECTLIBRARY}/Make .elif defined(PROJECTLIBRARY) && exists(${PROJECTLIBRARY}/Mk) PROJECTLIBRARYMAKE = ${PROJECTLIBRARY}/Mk .elif defined(PROJECTBASE) && exists(${PROJECTBASE}/Mk) PROJECTLIBRARYMAKE = ${PROJECTBASE}/Mk .endif .endif .if defined(PROJECTLIBRARYMAKE) .MAKEFLAGS: PROJECTLIBRARYMAKE="${PROJECTLIBRARYMAKE}" .MAKEFLAGS: -I"${PROJECTLIBRARYMAKE}" .endif # # Reading project configuration # .if exists(${PROJECTLIBRARYMAKE}/project.mk) .include "${PROJECTLIBRARYMAKE}/project.mk" .endif # # Initialisation de PROJECTLIBRARYSHELL # .if !defined(PROJECTLIBRARYSHELL) .if defined(PROJECTLIBRARY) && exists(${PROJECTLIBRARY}/Ancillary) PROJECTLIBRARYSHELL = ${PROJECTLIBRARY}/Ancillary .elif defined(PROJECTBASE) && exists(${PROJECTBASE}/Ancillary) PROJECTLIBRARYSHELL = ${PROJECTBASE}/Ancillary) .endif .endif # # Ouverture d'un sous-shell pour le développeur # PROJECTENV = MAKEFLAGS="${.MAKEFLAGS:C|-I||:C|^/|-I/|:C|^\.|-I.|}" # La substitution de la variable MAKEFLAGS est modifiée pour que les # options de type `-I' de make apparaissent sous forme compacte. Pour # cela, elle fait l'hypothèse que les termes commençant par un `/' ou # un `.' sont des chemins à traiter comme arguments pour `-I'. .if defined(PROJECTEXPORT)&&!empty(PROJECTEXPORT) .for v in ${PROJECTEXPORT} PROJECTENV+= $v="${$v}" .endfor .endif .if defined(PROJECTLIBRARYSHELL) PROJECTENV+= PATH="${PROJECTLIBRARYSHELL}:${PATH}" .endif # La variable SHELL est définie dans l'environnement de l'utilisateur. SUBSHELLDIR?= . subshell: ${INFO} "Entering developper's subshell" @cd ${SUBSHELLDIR}; ${ENVTOOL} ${PROJECTENV} ${SHELL} ${INFO} "Exiting developper's subshell" .endif # !target(____) .include "bps.subdir.mk" ### End of file `bps.project.mk' bsdowl-2.2.2/bps/bps.subdir.mk000640 001751 001751 00000006566 12436317346 017271 0ustar00michaelmichael000000 000000 ### bps.subdir.mk -- Manage subdirectories # Author: Michael Grünewald # Date: Ven 10 fév 2006 16:24:23 GMT # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # SUBDIR+= library # SUBDIR+= program # SUBDIR+= manual # # .include "bps.subdir.mk" ### DESCRIPTION # Diffuse la demande de production des cibles administratives énumérées par la # variables _SUBDIR_TARGET vers les sous-répertoires énumérés par la variable # SUBDIR. # # Pour chaque cible administrative ${target}, une cible do-${target}-subdir # est définie, la règle de production de cette cible lance le sous-traitement # de ${target} dans les sous-répertoires énumérés dans SUBDIR. # # Les cibles administratives sont marquées par l'attribut `.PHONY'. # # À moins qu'une cible ${target}-switch-credentials existe, la cible # do-${target}-subdir devient un prérequis de ${target}. Ce comportement # permet l'utilsiation conjointe de ce module de directives avec le module # `bps.credentials.mk'. # # Description des variables # # USE_SUBDIR # # Drapeau de contrôle de la rediffusion des ordres de production vers les # sous-dossiers. # # La rediffusion des ordres de production vers les sous-dossiers a lieu # lorsque la variable USE_SUBDIR est positionnée à `yes'. En l'absence # d'initialisation explicite, lorsque SUBDIR est initialisée la variable # USE_SUBDIR reçoit la valeur implicite `yes'. # SUBDIR # # Liste des sous-dossiers vers lesquels les ordres de production sont # rediffusés. # _SUBDIR_TARGET # # Liste des ordres de production devant être rediffusés. # # Les ordres de production énumérés par la variable _MAKE_USERTARGET # (bps.usertarget.mk) sont automatiquement ajoutés à cette variable. # _SUBDIR_EXPORT # # Liste des variables de Make à transmettre aux sous-processus ### IMPLÉMENTATION .include "bps.init.mk" .include "bps.credentials.mk" .if !target(____) ____: _SUBDIR_TARGET+= ${_MAKE_USERTARGET} _SUBDIR_PREFIX?= .if defined(SUBDIR) && !empty(SUBDIR) USE_SUBDIR?= yes .else USE_SUBDIR?= no .endif .if ${USE_SUBDIR} == yes .PHONY: ${SUBDIR} _SUBDIR: .USE .for item in ${SUBDIR} ${INFO} "${_SUBDIR_PREFIX}${item} (${.TARGET:S/^do-//:S/-subdir$//})" @cd ${.CURDIR}/${item}\ &&${MAKE} _SUBDIR_PREFIX=${_SUBDIR_PREFIX}${item}/ ${.TARGET:S/^do-//:S/-subdir$//} .endfor ${SUBDIR}:: ${INFO} "${.TARGET} (all)" @cd ${.CURDIR}/${.TARGET}; ${MAKE} all .if defined(_SUBDIR_TARGET)&&!empty(_SUBDIR_TARGET) .for target in ${_SUBDIR_TARGET} do-${target}-subdir: _SUBDIR ${NOP} .if !target(${target}) && !target(${target}-switch-credentials) ${target}: do-${target}-subdir .endif .endfor .endif .if defined(_SUBDIR_EXPORT)&&!empty(_SUBDIR_EXPORT) .for export in ${_SUBDIR_EXPORT} .if empty(.MAKEFLAGS:M${export}=*)&&defined(${export}) .MAKEFLAGS: ${export}="${${export}}" .endif .endfor .endif .endif # ${USE_SUBDIR} == yes .endif #!target(____) .include "bps.clean.mk" ### End of file `bps.subdir.mk' bsdowl-2.2.2/bps/bps.init.mk.in000640 001751 001751 00000013711 12436317346 017337 0ustar00michaelmichael000000 000000 ### bps.init.mk -- Initialisation pour les modules `make'. # Author: Michael Grünewald # Date: Ven 10 fév 2006 10:40:49 GMT # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # $Id: bps.init.mk 150 2009-09-05 17:13:32Z michi $ # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS # .include "bps.init.mk" ### DESCRIPTION # Rend des services dans le domaine de l'initialisation. # # Définit des pseudo-commandes CP, MV INSTALL, INSTALL_DIR, # SED_INPLACE, etc.; # # Définit une valeur pour PACKAGEDIR sur la base de la valeur de # PACKAGE, si cette dernière a une valeur. # # Définit des pseudo-commandes WARN, INFO, MESG, FAIL utilisées pour # le diagnostique. # # Définit `all' comme cible implicite. # # Demande le traitement des fichiers "bps.own.mk" et "bps.clean.mk" # et "Makefile.inc". # # Demande le traitement du fichier MAKEINITRC si cette variable est # définie et que l'utilisateur courant n'est pas l'utilisateur # root. Ceci permet d'utiliser le même Makefile pour installer des # programmes `localement', et `globalement' avec la commande `sudo'. # # Définit la liste _MAKE_USERTARGET des cibles ``interface utilisateur'' # (all, clean, etc.). Voici la liste des ces cibles et les actions # qu'elles doivent entreprendre: # # * obj: créer l'arborescence nécessaire sous `objdir', le cas échéant # * configure: traite le code source pour l'adapter à # l'environnement courant; # * depend: traite le code source pour déterminer automatiquement # les dépendances entre certaines modules; # * build: prépare le programme; # * doc: prépare la documentation; # * all: configure, depend, build, doc; # * install: installer le programme et la documentation; # * clean: nettoie les fichiers produits lors de la préparation du # programme et de la documentation (y compris le programme et la # documentation eux-mêmes); # * distclean: comme clean, et nettoie les fichiers produits par # les étapes configure et depend. # # Dans certains cas, il faut interpréter très librement le terme # `programme' utilisé ci-dessus. # # Description des variables # # MAKEINITRC # # Fichier d'initialisation pour l'utilisateur. # # Lorsque la variable 'MAKEINITRC' est définie et a comme valeur le nom d'un # fichier, ce fichier est lu par make pendant l'évaluation de ce module. # CP RM INSTALL INSTALL_DIR AWK SED SED_INPLACE ECHO. # # Pseudo commandes. # PACKAGE PACKAGEDIR # # Nom de l'application préparée. # # La variable PACKAGE peut être définie par le client. Lorsque # c'est le cas la Collection de Makefiles en tient compte dans # certains endroits, notamment pour donner des noms de répertoires # censés être appropriés. C'est en fait la variable PACKAGEDIR qui # joue ce rôle, on s'en sert par exemple pour définir # SHAREDIR=/share${PACKAGEDIR}, etc. # # SeeAlso: bps.own.mk bps.files.mk ### IMPLÉMENTATION .if !target(____) ____: .if exists(bps.config.mk) .include "bps.config.mk" .endif ### INSTALLATION DE BPS # Ces déclarations ne tiennent pas compte de tous les paramètres # pouvant être passés au script `configure'. _BPS_PACKAGEDIR?= /bps _BPS_PREFIX?= @prefix@ _BPS_DATADIR?= ${_BPS_PREFIX}/share${_BPS_PACKAGEDIR} _BPS_DOCDIR?= ${_BPS_PREFIX}/share/doc${_BPS_PACKAGEDIR} _BPS_LIBEXECDIR?= ${_BPS_PREFIX}/libexec${_BPS_PACKAGEDIR} _BPS_TEXMFDIR?= ${_BPS_PREFIX}/share/texmf _BPS_SYSTEMOWN?= @SYSTEMOWN@ _BPS_SYSTEMGRP?= @SYSTEMGRP@ _BPS_COMPRESS?= @COMPRESS@ ### PSEUDO COMMANDES (BOOTSTRAP) ID?= @ID@ .if !defined(UID) UID!= ${ID} -u .endif .if !defined(USER) USER!= ${ID} -n -u .endif .if !defined(GROUP) GROUP!= ${ID} -n -g .endif ### DOSSIER D'INSTALLATION DESTDIR?= PREFIX?= @prefix@ ### FICHIER DE CONFIGURATION MAKEINITRC?= Makefile.inc .if exists(${.CURDIR}/${MAKEINITRC}) .include "${.CURDIR}/${MAKEINITRC}" .endif .if defined(PROJECTBASE) && !empty(PROJECTBASE) .if ${PROJECTBASE} != ${.CURDIR} .if exists(${PROJECTBASE}/${MAKEINITRC}) .include "${PROJECTBASE}/${MAKEINITRC}" .endif .endif .endif ## PSEUDO COMMANDES ENVTOOL?= env # Le nom ENV # appartient à sh(1) CP?= cp RM?= rm MV?= mv LN?= ln LN_S?= @LN_S@ MKDIR?= mkdir MKDIR_P?= @MKDIR_P@ TAR?= tar INSTALL?= @INSTALL@ INSTALL_DIR?= @INSTALL@ -d AWK?= @AWK@ GREP?= @GREP@ SED?= @SED@ SED_INPLACE?= ${SED} -i .bk TOUCH?= touch ECHO?= echo INFO?= @echo '===>' WARN?= @echo 'Warning:' FAIL?= @echo 'Failure:' MESG?= @echo NOP?= @: do nada SU?= su ### VARIABLES CLEANFILES?= CLEANDIRS?= DISTCLEANFILES?= DISTCLEANDIRS?= REALCLEANFILES?= REALCLEANDIRS?= COOKIEPREFIX?= .cookie. ## CIBLE IMPLICTE (all) .MAIN: all ## PACKAGEDIR .if !defined(PACKAGE)&&defined(PROJECT)&&!empty(PROJECT) PACKAGE = ${PROJECT} .endif .if defined(PACKAGE)&&!empty(PACKAGE) PACKAGEDIR?= /${PACKAGE} .endif ## _MAKE_USERTARGET _MAKE_USERTARGET?= _MAKE_ALLSUBTARGET?= .include "bps.objdir.mk" .include "bps.autoconf.mk" .include "bps.credentials.mk" _MAKE_USERTARGET+= configure depend build doc all install _MAKE_USERTARGET+= clean distclean realclean _MAKE_ALLSUBTARGET+= configure depend build doc # # Héritage de certaines variables # # Les valeurs des variables DESTDIR, PREFIX et PACKAGE sont # exportées. .if empty(.MAKEFLAGS:MPREFIX=*)&&defined(PREFIX) .MAKEFLAGS: PREFIX='${PREFIX}' .endif .if empty(.MAKEFLAGS:MDESTDIR=*)&&defined(DESTDIR) .MAKEFLAGS: DESTDIR='${DESTDIR}' .endif .if empty(.MAKEFLAGS:MPACKAGE=*)&&defined(PACKAGE) .MAKEFLAGS: PACKAGE='${PACKAGE}' .endif .endif # !target(____) ### End of file `bps.init.mk' bsdowl-2.2.2/Library/Ancillary/000750 001751 001751 00000000000 12436317346 017405 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/Library/Make/000750 001751 001751 00000000000 12436317346 016344 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/Library/Template/000750 001751 001751 00000000000 12436317346 017242 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/Library/Logo/000750 001751 001751 00000000000 12436317346 016367 5ustar00michaelmichael000000 000000 bsdowl-2.2.2/Library/Logo/logo-wings.svg000640 001751 001751 00000030311 12436317346 021174 0ustar00michaelmichael000000 000000 image/svg+xml bsdowl-2.2.2/Library/Logo/logo.svg000640 001751 001751 00000030602 12436317346 020052 0ustar00michaelmichael000000 000000 image/svg+xml bsdowl-2.2.2/Library/Template/makefile.mk000640 001751 001751 00000002004 12436317346 021345 0ustar00michaelmichael000000 000000 #!/bin/sh echo 'We prepare a new makefile' read -p 'filename: ' FILENAME read -p 'comment: ' COMMENT DATE=`date` m4 -g\ -D __FILENAME__="${FILENAME}" \ -D __COMMENT__="${COMMENT}" \ -D __DATE__="${DATE}" \ -D __YEAR__="${YEAR}" \ > ${FILENAME} <<'EOF' changecom()dnl changequote(,)dnl ### __FILENAME__ -- __COMMENT__ # Author: Michael Grünewald # Date: __DATE__ # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS ### DESCRIPTION .if !target(__<__FILENAME__>__) __<__FILENAME__>__: .endif # !target(__<__FILENAME__>__) ### End of file `__FILENAME__' EOF bsdowl-2.2.2/Library/Make/bsdowl.mk000640 001751 001751 00000002202 12436317346 020164 0ustar00michaelmichael000000 000000 ### bsdowl -- Fichier de directives principal # Author: Michael Grünewald # Date: Dim 13 avr 2008 23:56:07 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ### SYNOPSIS ### DESCRIPTION .if !target(____) ____: .MAKEFLAGS: -I${.CURDIR}/Library/Make .for subdir in ${SUBDIR} .MAKEFLAGS: -I${.CURDIR}/${subdir} .endfor .include "subdir.mk" .include "bps.project.mk" # We remove pathes matching the installation prefix ${PREFIX} from the # MAKEFLAGS variable. .for prefix in ${PREFIX} _BPS_MAKEFLAGS:=${.MAKEFLAGS:C|-I||:C|^/|-I/|:C|^\.|-I.|:N-I${prefix}*} .endfor PROJECTENV:= ${PROJECTENV:NMAKEFLAGS=*} MAKEFLAGS="${_BPS_MAKEFLAGS}" .endif # !target(____) ### End of file `bsdowl' bsdowl-2.2.2/Library/Make/project.mk000640 001751 001751 00000001621 12436317346 020344 0ustar00michaelmichael000000 000000 ### project.mk # Author: Michael Grünewald # Date: Jeu 13 mar 2008 21:58:28 CET # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt PACKAGE = bps SCRIPTDIR = ${_BPS_LIBEXEC} SHAREDIR = ${_BPS_DATADIR} FILESDIR = ${_BPS_PREFIX}/share/mk .include "../../bps/bps.init.mk" .include "../../texmf/tex.files.mk" .include "../../bps/bps.files.mk" .include "../../bps/bps.clean.mk" .include "../../bps/bps.usertarget.mk" .include "../../misc/misc.script.mk" ### End of file `project.mk' bsdowl-2.2.2/Library/Make/script.mk000640 001751 001751 00000001167 12436317346 020207 0ustar00michaelmichael000000 000000 ### script.mk # Author: Michael Grünewald # Date: Ven 9 mai 2008 14:47:47 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .include "../../misc/misc.script.mk" ### End of file `script.mk' bsdowl-2.2.2/Library/Make/subdir.mk000640 001751 001751 00000001165 12436317346 020171 0ustar00michaelmichael000000 000000 ### subdir.mk # Author: Michael Grünewald # Date: Jeu 13 mar 2008 21:58:28 CET # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt .include "../../bps/bps.subdir.mk" ### End of file `subdir.mk' bsdowl-2.2.2/Library/Make/website.mk000640 001751 001751 00000000600 12436317346 020334 0ustar00michaelmichael000000 000000 # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION WWWMODE = 444 TEXDOCMODE = 444 WWWBASE?= ${PROJECTBASE}/wwwobj CLEANDIRS+= ${WWWBASE} WWWMAIN = main.sgml .MAKEFLAGS: WWWMAIN="${WWWMAIN}" .MAKEFLAGS: WWWMODE="${WWWMODE}" .MAKEFLAGS: TEXDOCMODE="${TEXDOCMODE}" do-publish: ${MAKE} PREFIX=${HOME} WWWBASE=${WWWBASE} all install .include "bps.project.mk" .include "www.sgml.mk" bsdowl-2.2.2/Library/Ancillary/insert_licence.ed000640 001751 001751 00000000701 12436317346 022704 0ustar00michaelmichael000000 000000 /^# $Id/ +1i # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt . w q bsdowl-2.2.2/Library/Ancillary/modify_license.sh000640 001751 001751 00000003467 12436317346 022745 0ustar00michaelmichael000000 000000 license_subdir="Library bps misc ocaml rox snippets support test text www" license_clue='THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'\'\'' AND ANY EXPRESS OR' license_check() { grep "$license_clue" $1 &>- return $? } license_find() { local f find $license_subdir \( -name .svn -prune \) -or \( -type f -print \) |\ while read f; do if license_check $f; then echo $f; fi done } license_classify_prefix() { sed -n -e "s@$license_clue.*@@p" $1 } license_classify() { local p p=`license_classify_prefix $1` case $p in '#'*) echo shell;; '//') echo cpp;; '/*') echo c;; *) echo unknown;; esac } license_dates_get() { sed -n \ -e 's/\(, [0-9][0-9][0-9][0-9]\)*, /-/' \ -e 's/.*Copyright (c) \([-0-9, ]*\) .*/\1/p' \ $1 } license_make_shell() { sed -e "s/@DATE@/$1/" -e 's/^/# /' <<'EOF' BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) This file is part of BSD Owl Scripts Copyright © 2005–2014 Michael Grünewald This file must be used under the terms of the CeCILL-B. This source file is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt EOF } license_modify() { local o local n local d local l local c o="$1.bak" n="$1" mv "$1" "$o" d=`license_dates_get $o` c=`license_classify $o` l=`license_make_$c "$d"` gawk -v license="$l" ' BEGIN { license_output=0; license_block=0; } /Copyright \(c\) /,/POSSIBILITY OF SUCH DAMAGE\./ { license_block=1 if(!license_output) { print(license); license_output=1; } } // { if(!license_block) { print } license_block=0; } ' $o > $n } license_find | while read file; do license_modify $file done bsdowl-2.2.2/Library/Ancillary/fix_encoding_and_copyright.sh000640 001751 001751 00000003600 12436317346 025307 0ustar00michaelmichael000000 000000 # Author: Michael Grünewald # Date: dim 16 jui 2013 13:41:46 CEST # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt ORIGINAL_IFS="$IFS" lu_query() { find "$1" -name fix_encoding_and_copyright.sh -prune -or -name '.git' -prune -or -type f -print \ | xargs file -i \ | sed -e 's/:[[:space:]]*/|/g' -e 's/;[[:space:]]*/|/g' } lu_remove_id() { sed -n -e '/^[[:space:]]*$/N;/\$Id\$/d;p' } lu_remove_lang() { sed -e '/Lang: fr_FR/d' } lu_fix_my_name() { sed -e ' s/Michaël/Michael/g s/Le Barbier Grünewald/Grünewald/g s/Le Barbier/Grünewald/g s/Gruenewald/Grünewald/g s/// ' } lu_iconv() { iconv -f LATIN-9 -t utf-8 } lu_fix_copyright() { sed -e '/Copyright.*Grünewald/{ s/(c)/(C)/; s/// s/Michaël Le Barbier Grünewald// s/ -// s/ */ /g s/ $// s/$/, 2013 Michael Grünewald/ }' } lu_filter() { local lu_iconv_filter case $1 in charset=iso-8859-1) lu_iconv_filter="lu_iconv";; *) lu_iconv_filter="cat";; esac $lu_iconv_filter \ | lu_remove_id \ | lu_remove_lang \ | lu_fix_copyright \ | lu_fix_my_name } lu_select() { awk -F'|' -v OFS='|' '$2 ~ "text" {print($1,$3)}' } lu_process() { IFS='|' while read file encoding; do # grep -i 'Copyright.*Mich' $file mv "$file" "$file.bak" lu_filter "$encoding" < "$file.bak" > "$file" rm -f "$file.bak" done IFS="$ORIGINAL_IFS" } lu_query . | lu_select | lu_process bsdowl-2.2.2/Library/Ancillary/insert_licence.sh000640 001751 001751 00000001331 12436317346 022726 0ustar00michaelmichael000000 000000 ### insert_licence.sh # Author: Michael Grünewald # Date: Jeu 13 mar 2008 23:01:35 CET # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt find ../../ -name '*.mk' | while read item; do printf 'Modifiying %s\n' $item ex $item < insert_licence.ed done ### End of file `insert_licence.sh' bsdowl-2.2.2/Library/Ancillary/svn_releng.sh000640 001751 001751 00000010172 12436317346 022105 0ustar00michaelmichael000000 000000 #! /bin/sh ### releng -- Release Engineering script # Author: Michael Grünewald # Date: Jeu 13 mar 2008 23:01:35 CET # Cookie: SYNOPSIS TARGET VARIABLE EN DOCUMENTATION # BSD Owl Scripts (https://bitbucket.org/michipili/bsdowl) # This file is part of BSD Owl Scripts # # Copyright © 2005–2014 Michael Grünewald # # This file must be used under the terms of the CeCILL-B. # This source file is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt # Ce programme automatise des parties de la procédure de publication. # Les parties actuellement prises en charge sont: # - La publication des `tarball'. # On utilise SVN, PERL, TAR, GZIP, BZIP2 et CURL. # # Configuration # releng_project='bsdowl' releng_sum_tools='md5 sha256' releng_repository="$REPOSITORY" releng_subversion='/usr/local/bin/svn' releng_tmpdir="/tmp" releng_target="file://$HOME/export/bsdowl/" # # Constantes # SUCCESS=0 FAILURE=1 # # Procédures ancillaires # releng_info() { echo '***' "$@" 1>&2 } releng_svn() { $releng_subversion --non-interactive "$@" return $? } releng_exists() # $1 sub folder of the repository { releng_svn list "$releng_repository/$1" 1>&- 2>&- return $? # Le code de retour de SVN est imprécis } releng_distfile_validate() # $1 a releng label # Checks the formal validity of a releng label to be distributed { perl -e ' if($ARGV[0] =~ m/releng-[0-9]+\.[0-9]+-(bp|rc[0-9]+)/) { exit 0; } elsif ($ARGV[0] =~ m/release-[0-9]+\.[0-9]+/) { exit 0; } else { exit 1; }' $1 return $? } releng_distfile_mkname() # $1 a validated releng label # Computes a public name corresponding to the releng label { perl -e ' $_ = $ARGV[0]; s/^releng-//; s/^release-//; print $_; ' $1 } # # Procédures principales # releng_usage_display() { cat - < CHECKSUM.$sum_tool ); sumfiles="$sumfiles${sumfiles:+ }CHECKSUM.$sum_tool" done allfiles="${distfiles}${sumfiles:+ ${sumfiles}}${otherfiles:+ ${otherfiles}}" releng_info 'Signing files' for file in $distfiles $sumfiles; do ( cd $releng_tmpdir gpg --detach-sign --clearsign $file ); signfiles="$signfiles${signfiles:+ }$file.asc" done case $releng_target in file://*) releng_info 'Creating publication directory' install -d ${releng_target#file://};; esac releng_info 'Publishing files with curl' for file in $allfiles $signfiles; do curlfiles="$curlfiles${curlfiles:+,}$file" done curl -T \ "$releng_tmpdir/{${curlfiles}}" \ "$releng_target" \ || exit 6 releng_info 'Cleaning the temporary directory' ( cd $releng_tmpdir rm $signfiles $allfiles ) } releng_distfile "$1" ### End of file `releng' bsdowl-2.2.2/Library/Ancillary/report_cookie.sh000640 001751 001751 00000000512 12435704246 022602 0ustar00michaelmichael000000 000000 cookies="SYNOPSIS TARGET VARIABLE EN DOCUMENTATION" wiki="$HOME/Wiki/bsdowl" make_report() { printf '# Progress for the %s Cookie\n\n' "$1" find . -type f \ | xargs grep -l "Cookie:.* $1\\( \\|\$\\)" \ | sed -e 's/^\.\// /' } for cookie in $cookies; do make_report $cookie > "$wiki/ReportCookie$cookie.md" done