Return to README CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / sntp / libopts |
1.1 ! misho 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.