Next: , Previous: , Up: The Macros  


ax_with_curses_extra

Synopsis

AX_WITH_CURSES_PANEL
AX_WITH_CURSES_MENU
AX_WITH_CURSES_FORM

Description

These macros try to find additional libraries that often come with SysV-compatible Curses. In particular, the Panel, Menu and Form libraries are searched, along with their header files. These macros depend on AX_WITH_CURSES.

The following preprocessor symbols may be defined by these macros:

  By AX_WITH_CURSES_PANEL:
  HAVE_PANEL              - if the Panel library is present
  HAVE_PANEL_H            - if <panel.h> is present and should be used
  HAVE_NCURSES_PANEL_H    - if <ncurses/panel.h> should be used
  HAVE_NCURSESW_PANEL_H   - if <ncursesw/panel.h> should be used
  By AX_WITH_CURSES_MENU:
  HAVE_MENU               - if the Menu library is present
  HAVE_MENU_H             - if <menu.h> is present and should be used
  HAVE_NCURSES_MENU_H     - if <ncurses/menu.h> should be used
  HAVE_NCURSESW_MENU_H    - if <ncursesw/menu.h> should be used
  By AX_WITH_CURSES_FORM:
  HAVE_FORM               - if the Form library is present
  HAVE_FORM_H             - if <form.h> is present and should be used
  HAVE_NCURSES_FORM_H     - if <ncurses/form.h> should be used
  HAVE_NCURSESW_FORM_H    - if <ncursesw/form.h> should be used

The following output variables may be defined by these macros; these are precious and may be overridden on the ./configure command line:

  PANEL_LIB   - library to add to xxx_LDADD before CURSES_LIB
  MENU_LIB    - library to add to xxx_LDADD before CURSES_LIB
  FORM_LIB    - library to add to xxx_LDADD before CURSES_LIB

These libraries are NOT added to LIBS by default. You need to add them to the appropriate xxx_LDADD line in your Makefile.am in front of the equivalent CURSES_LIB incantation. For example:

  prog_LDADD = @PANEL_LIB@ @CURSES_LIB@

If one of the xxx_LIB variables is set on the configure command line (such as by running "./configure PANEL_LIB=-lmypanel"), then the header file searched must NOT contain a subpath. In this case, in other words, only <panel.h> would be searched for. The user may use the CPPFLAGS precious variable to override the standard #include search path.

The following shell variables may be defined by these macros:

  ax_cv_panel   - set to "yes" if Panels library is present
  ax_cv_menu    - set to "yes" if Menu library is present
  ax_cv_form    - set to "yes" if Form library is present

These variables can be used in your configure.ac to determine whether a library you require is actually present. For example:

  AX_WITH_CURSES
  if test "x$ax_cv_curses" != xyes; then
      AC_MSG_ERROR([requires a SysV or X/Open-compatible Curses library])
  fi
  AX_WITH_CURSES_PANEL
  if test "x$ax_cv_panel" != xyes; then
      AC_MSG_ERROR([requires the Curses Panel library])
  fi

To use the HAVE_xxx_H preprocessor symbols, insert the following into your system.h (or equivalent) header file:

  For AX_WITH_CURSES_PANEL:
  #if defined HAVE_NCURSESW_PANEL_H
  #  include <ncursesw/panel.h>
  #elif defined HAVE_NCURSES_PANEL_H
  #  include <ncurses/panel.h>
  #elif defined HAVE_PANEL_H
  #  include <panel.h>
  #else
  #  error "SysV-compatible Curses Panel header file required"
  #endif
  For AX_WITH_CURSES_MENU:
  #if defined HAVE_NCURSESW_MENU_H
  #  include <ncursesw/menu.h>
  #elif defined HAVE_NCURSES_MENU_H
  #  include <ncurses/menu.h>
  #elif defined HAVE_MENU_H
  #  include <menu.h>
  #else
  #  error "SysV-compatible Curses Menu header file required"
  #endif
  For AX_WITH_CURSES_FORM:
  #if defined HAVE_NCURSESW_FORM_H
  #  include <ncursesw/form.h>
  #elif defined HAVE_NCURSES_FORM_H
  #  include <ncurses/form.h>
  #elif defined HAVE_FORM_H
  #  include <form.h>
  #else
  #  error "SysV-compatible Curses Form header file required"
  #endif

Source Code

Download the latest version of ax_with_curses_extra.m4 or browse the macro’s revision history.

License

Copyright © 2011 John Zaitseff J.Zaitseff@zap.org.au

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

As a special exception, the respective Autoconf Macro’s copyright owner gives unlimited permission to copy, distribute and modify the configure scripts that are the output of Autoconf when processing the Macro. You need not follow the terms of the GNU General Public License when using or distributing such scripts, even though portions of the text of the Macro appear in them. The GNU General Public License (GPL) does govern all other use of the material that constitutes the Autoconf Macro.

This special exception to the GPL applies to versions of the Autoconf Macro released by the Autoconf Archive. When you make and distribute a modified version of the Autoconf Macro, you may extend this special exception to the GPL to apply to your modified version as well.


Next: , Previous: , Up: The Macros