From 4f7f77e673a578d426e1f5b6fe78f78cb1317a6f Mon Sep 17 00:00:00 2001 From: davi Date: Thu, 29 Nov 2007 03:49:39 +0000 Subject: [PATCH] Added man pages and pc file. --- INSTALL | 66 +++++++++++++++++++++++------------------------- Makefile.am | 7 ++++-- cmph.pc | 12 +++++++++ configure.ac | 4 +-- gendocs | 2 ++ man/Makefile.am | 2 ++ man/cmph.1 | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 122 insertions(+), 38 deletions(-) create mode 100644 cmph.pc create mode 100644 man/Makefile.am create mode 100644 man/cmph.1 diff --git a/INSTALL b/INSTALL index 56b077d..5458714 100644 --- a/INSTALL +++ b/INSTALL @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. @@ -10,7 +10,10 @@ unlimited permission to copy, distribute and modify it. Basic Installation ================== -These are generic installation instructions. +Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -23,9 +26,9 @@ debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is +the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale -cache files.) +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + `./configure' to configure the package for your system. - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. @@ -78,7 +78,7 @@ details on some of the pertinent environment variables. by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. @@ -87,31 +87,29 @@ Compiling For Multiple Architectures You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. Installation Names ================== -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PREFIX'. +By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PREFIX', the package will -use PREFIX as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular @@ -159,7 +157,7 @@ where SYSTEM can have one of these forms: need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a @@ -190,12 +188,12 @@ them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: +overridden in the site shell script). - /bin/bash ./configure CONFIG_SHELL=/bin/bash +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== diff --git a/Makefile.am b/Makefile.am index a8d050c..fc9a62a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,2 +1,5 @@ -SUBDIRS = src tests examples -EXTRA_DIST = cmph.spec configure.ac +SUBDIRS = src tests examples man +EXTRA_DIST = cmph.spec configure.ac cmph.pc.in + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = cmph.pc diff --git a/cmph.pc b/cmph.pc new file mode 100644 index 0000000..c0d9207 --- /dev/null +++ b/cmph.pc @@ -0,0 +1,12 @@ +url=http://cmph.sourceforge.net/ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: alsa +Description: minimal perfect hashing library +Version: 0.7 +Libs: -L${libdir} -lcmph +Cflags: -I${includedir} +URL: ${url} diff --git a/configure.ac b/configure.ac index 4a56077..8e10ff5 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(Makefile.am) -AM_INIT_AUTOMAKE(cmph, 0.6) +AM_INIT_AUTOMAKE(cmph, 0.7) AM_CONFIG_HEADER(config.h) dnl Checks for programs. @@ -35,4 +35,4 @@ dnl Checks for library functions. AC_CHECK_SPOON dnl AC_OUTPUT(Makefile tests/Makefile samples/Makefile) -AC_OUTPUT(Makefile src/Makefile tests/Makefile examples/Makefile) +AC_OUTPUT(Makefile src/Makefile tests/Makefile examples/Makefile man/Makefile cmph.pc) diff --git a/gendocs b/gendocs index 05be819..d3c05a4 100755 --- a/gendocs +++ b/gendocs @@ -1,3 +1,5 @@ +#!/bin/sh + txt2tags -t html --mask-email -i README.t2t -o index.html txt2tags -t html -i BMZ.t2t -o bmz.html txt2tags -t html -i BRZ.t2t -o brz.html diff --git a/man/Makefile.am b/man/Makefile.am new file mode 100644 index 0000000..40d83ce --- /dev/null +++ b/man/Makefile.am @@ -0,0 +1,2 @@ +man_MANS = cmph.1 +EXTRA_DIST=cmph.1 diff --git a/man/cmph.1 b/man/cmph.1 new file mode 100644 index 0000000..cdc717a --- /dev/null +++ b/man/cmph.1 @@ -0,0 +1,67 @@ +.TH CMPH "1" "October 2007" "cmph 0.6" "User Commands" +.SH NAME +cmph \- minimum perfect hashing tool +.SH SYNOPSIS +.B cmph +[-v] [-h] [-V] [-k nkeys] [-f hash_function] [-g [-c value][-s seed] ] [-a algorithm] [-M memory_in_MB] [-b BRZ_parameter] [-d tmp_dir] [-m file.mph] keysfile +.SH DESCRIPTION +.PP +Command line tool to generate and query minimal perfect hash functions. +.PP +Please refer to http://cmph.sf.net for full documentation. +.TP +\fB\-h\fR +Print an help message +.TP +\fB\-c\fR +This value determines: the number of vertices in the graph for the algorithms BMZ and CHM; the number of bits per key required in the FCH algorithm +.TP +\fB\-a\fR +Algorithm. Valid values are: bmz, bmz8, chm, brz, fch +.TP +\fB\-f\fR +hash function (may be used multiple times). valid values are: djb2, fnv, jenkins, sdbm +.TP +\fB\-V\fR +Print version number and exit +.TP +\fB\-v\fR +Increase verbosity (may be used multiple times) +.TP +\fB\-k\fR +Number of keys +.TP +\fB\-g\fR +Generation mode +.TP +\fB\-s\fR +Random seed +.TP +\fB\-m\fR +Minimum perfect hash function file +.TP +\fB\-M\fR +Main memory availability (in MB) +.TP +\fB\-d\fR +Temporary directory used in brz algorithm +.TP +\fB\-b\fR +Parameter of BRZ algorithm to make the maximal number of keys in a bucket lower than 256 +.TP +\fBkeysfile\fR +Line separated file with keys +.SH EXAMPLE +$ # Using the default algorithm (chm) for constructing a mphf +.br +$ # for keys in file keys_file. Lines in keys_file _must_ be unique. +.br +$ ./cmph -v -g keys_file +.br +$ # Query id of keys in the file keys_query +.br +$ ./cmph -v -m keys_file.mph keys_query +.SH AUTHOR +This manual page was written by Enrico Tassi , +for the Debian project (but may be used by others). +