1: THIS TARBALL IS NOT A FULL DISTRIBUTION.
2:
3: The contents of this tarball is designed to be incorporated into
4: software packages that utilize the AutoOpts option automation package
5: and are intended to be installed on systems that may not have libopts
6: installed. It is redistributable under the terms of either the LGPL
7: (see COPYING.lgpl) or under the terms of the advertising clause free BSD
8: license (see COPYING.mbsd).
9:
10: Usage Instructions for autoconf/automake/libtoolized projects:
11:
12: 1. Install the unrolled tarball into your package source tree,
13: copying ``libopts.m4'' to your autoconf macro directory.
14:
15: In your bootstrap (pre-configure) script, you can do this:
16:
17: rm -rf libopts libopts-*
18: gunzip -c `autoopts-config libsrc` | tar -xvf -
19: mv -f libopts-*.*.* libopts
20: cp -fp libopts/m4/*.m4 m4/.
21:
22: I tend to put my configure auxiliary files in "m4".
23: Whatever directory you choose, if it is not ".", then
24: be sure to tell autoconf about it with:
25:
26: AC_CONFIG_AUX_DIR(m4)
27:
28: This is one macro where you *MUST* remember to *NOT* quote
29: the argument. If you do, automake will get lost.
30:
31: 2. Add an invocation of either LIBOPTS_CHECK or LIBOPTS_CHECK_NOBUILD
32: to your configure.ac file. See LIBOPTS_CHECK: below for details.
33:
34: 3. Add the following to your top level ``Makefile.am'' file:
35:
36: if NEED_LIBOPTS
37: SUBDIRS += $(LIBOPTS_DIR)
38: endif
39:
40: where ``<...>'' can be whatever other files or directories you may
41: need. The SUBDIRS must be properly ordered. *PLEASE NOTE* it is
42: crucial that the SUBDIRS be set under the control of an automake
43: conditional. To work correctly, automake has to know the range of
44: possible values of SUBDIRS. It's a magical name with magical
45: properties. ``NEED_LIBOPTS'' will be correctly set by the
46: ``LIBOPTS_CHECK'' macro, above.
47:
48: 4. Add ``$(LIBOPTS_CFLAGS)'' to relevant compiler flags and
49: ``$(LIBOPTS_LDADD)'' to relevant link options whereever
50: you need them in your build tree.
51:
52: 5. Make sure your object files explicitly depend upon the
53: generated options header file. e.g.:
54:
55: $(prog_OBJECTS) : prog-opts.h
56: prog-opts.h : prog-opts.c
57: prog-opts.c : prog-opts.def
58: autogen prog-opts.def
59:
60: 6. *OPTIONAL* --
61: If you are creating man pages and texi documentation from
62: the program options, you will need these rules somewhere, too:
63:
64: man_MANS = prog.1
65: prog.1 : prog-opts.def
66: autogen -Tagman-cmd.tpl -bprog prog-opts.def
67:
68: invoke-prog.texi : prog-opts.def
69: autogen -Tagtexi-cmd.tpl prog-opts.def
70:
71: If your package does not utilize the auto* tools, then you
72: will need to hand craft the rules for building the library.
73:
74: LIBOPTS_CHECK:
75:
76: The arguments to both macro are a relative path to the directory with
77: the libopts source code. It is optional and defaults to "libopts".
78: These macros work as follows:
79:
80: 1. LIBOPTS_CHECK([libopts/rel/path/optional])
81:
82: Adds two command-line options to the generated configure script,
83: --enable-local-libopts and --disable-libopts-install. AC_SUBST's
84: LIBOPTS_CFLAGS, LIBOPTS_LDADD, and LIBOPTS_DIR for use in
85: Makefile.am files. Adds Automake conditional NEED_LIBOPTS which
86: will be true when the local copy of libopts should be built. Uses
87: AC_CONFIG_FILES([$libopts-dir/Makefile]) to cause the local libopts
88: into the package build. If the optional relative path to libopts is
89: not provided, it defaults to simply "libopts".
90:
91: 2. LIBOPTS_CHECK_NOBUILD([libopts/rel/path/optional])
92:
93: This variant of LIBOPTS_CHECK is useful when multiple configure.ac
94: files in a package make use of a single libopts tearoff. In that
95: case, only one of the configure.ac files should build libopts and
96: others should simply use it. Consider this package arrangment:
97:
98: all-tools/
99: configure.ac
100: common-tools/
101: configure.ac
102: libopts/
103:
104: The parent package all-tools contains a subpackage common-tools
105: which can be torn off and used independently. Programs configured
106: by both configure.ac files link against the common-tools/libopts
107: tearoff, when not using the system's libopts. The top-level
108: configure.ac uses LIBOPTS_CHECK_NOBUILD([common-tools/libopts]),
109: while common-tools/configure.ac uses LIBOPTS_CHECK. The difference
110: is LIBOPTS_CHECK_NOBUILD will never build the libopts tearoff,
111: leaving that to the subpackage configure.ac's LIBOPTS_CHECK.
112: Specifically, LIBOPTS_CHECK_NOBUILD always results in the
113: NEED_LIBOPTS Automake conditional being false, and does not invoke
114: AC_CONFIG_FILES(path-to-libopts/Makefile).
115:
116: LICENSING:
117:
118: This material is Copyright (c) 1992-2011 by Bruce Korb. You are
119: licensed to use this under the terms of either the GNU Lesser General
120: Public License (see: COPYING.lgpl), or, at your option, the modified
121: Berkeley Software Distribution License (see: COPYING.mbsd). Both of
122: these files should be included with this tarball.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>