~ubuntu-branches/ubuntu/trusty/log4shib/trusty

« back to all changes in this revision

Viewing changes to m4/ac_config_libconfig_in.m4

  • Committer: Package Import Robot
  • Author(s): Russ Allbery
  • Date: 2012-06-05 21:20:25 UTC
  • Revision ID: package-import@ubuntu.com-20120605212025-uyigtav7dqwvnf41
Tags: upstream-1.0.4
ImportĀ upstreamĀ versionĀ 1.0.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl @synopsis AC_CONFIG_LIBCONFIG_IN [(LIBRARY [, DESTINATION [, MODULES]])]
 
2
dnl
 
3
dnl Creates a custom LIBRARY-config script.  The script supports
 
4
dnl --cflags, --libs and --version options, as well as all of the
 
5
dnl standard configure variables e.g. --libdir and --sysconfdir.
 
6
dnl --prefix and --exec-prefix may be specified to override the
 
7
dnl defaults.  --help gives a complete list of available options.
 
8
dnl Modules allow multiple sets of --libs, --cflags and --version
 
9
dnl options to be used, and combined together.
 
10
dnl
 
11
dnl This macro saves you all the typing for a library-config.in script;
 
12
dnl you don't even need to distribute one along. Place this macro
 
13
dnl in your configure.ac, et voila, you got one that you want to install.
 
14
dnl
 
15
dnl The options:
 
16
dnl
 
17
dnl  $1 = LIBRARY       e.g. gtk, ncurses
 
18
dnl  $2 = DESTINATION   Directory path, e.g. src/scripts
 
19
dnl  $3 = MODULES       Additional library modules, not including the
 
20
dnl                     default ($1).
 
21
dnl
 
22
dnl It is suggested that the following CFLAGS and LIBS variables are
 
23
dnl used in your configure.in.  library_libs is *essential*.
 
24
dnl library_cflags is important, but not always needed.  If they do not
 
25
dnl exist, defaults will be taken from LIBRARY_CFLAGS, LIBRARY_LIBS
 
26
dnl (should be -llibrary *only*) and LIBRARY_LIBDEPS (-l options for
 
27
dnl libraries your library depends upon.
 
28
dnl LIBLIBRARY_LIBS is simply $LIBRARY_LIBS $LIBRARY_LIBDEPS.
 
29
dnl NB. LIBRARY and library are the name of your library, in upper and
 
30
dnl lower case repectively e.g. GTK, gtk.
 
31
dnl
 
32
dnl  LIBRARY_CFLAGS:    cflags for compiling libraries and example progs
 
33
dnl  LIBRARY_LIBS:      libraries for linking programs
 
34
dnl  LIBRARY_LIBDEPS*:  libraries for linking libraries against (needed
 
35
dnl                     to link -static
 
36
dnl  library_cflags*:   cflags to store in library-config
 
37
dnl  library_libs*:     libs to store in library-config
 
38
dnl  LIBLIBRARY_LIBS:   libs to link programs IN THIS PACKAGE ONLY against
 
39
dnl  LIBRARY_VERSION*:  the version of your library (x.y.z recommended)
 
40
dnl    *=required if you want sensible output, otherwise they will be
 
41
dnl      *guessed* (DWIM)
 
42
dnl
 
43
dnl Support for pkg-config is available by default.  libs, cflags and
 
44
dnl version information will be obtained from the pkg-config metadata
 
45
dnl file library.pc if it exists in the pkgconfig data directory.
 
46
dnl The above information still needs to be specified, as it will still
 
47
dnl be used if pkg-config is not found on the host system at configure
 
48
dnl time.
 
49
dnl
 
50
dnl -I and -L flags will be obtained from *both* pkgconfig and the script.
 
51
dnl AC_CONFIG_LIBCONFIG_IN_PKGCONFIG enables pkg-config support (default)
 
52
dnl AC_CONFIG_LIBCONFIG_IN_STATIC disables pkg-config support
 
53
dnl
 
54
dnl There is also an AC_SUBST(LIBRARY_CONFIG) that will be set to
 
55
dnl the name of the file that we output in this macro. Use as:
 
56
dnl
 
57
dnl  install-exec-local: install-config
 
58
dnl  install-config:
 
59
dnl     $(mkinstalldirs) $(DESTDIR)$(bindir)
 
60
dnl     $(INSTALL_EXEC) @LIBRARY_CONFIG@ $(DESTDIR)$(bindir)
 
61
dnl
 
62
dnl Or, if using automake:
 
63
dnl
 
64
dnl  bin_SCRIPTS = @LIBRARY_CONFIG@
 
65
dnl
 
66
dnl Based upon AC_CREATE_GENERIC_CONFIG (ac_create_generic_config.m4)
 
67
dnl by Guido Draheim <guidod@gmx.de> and gtk-config by Owen Taylor.
 
68
dnl
 
69
dnl @version $Id: ac_config_libconfig_in.m4,v 1.2 2002/09/12 21:53:35 guidod Exp $
 
70
dnl @author Roger Leigh <roger@whinlatter.uklinux.net>
 
71
dnl
 
72
# AC_CONFIG_LIBCONFIG_IN(LIBRARY, DESTINATION, MODULES)
 
73
# -----------------------------------------------------
 
74
# Generate a custom LIBRARY-config script.  Create the script in the
 
75
# DESTINATION directory, including support for MODULES.
 
76
AC_DEFUN([AC_CONFIG_LIBCONFIG_IN],
 
77
[# create a custom library-config file ($1-config)
 
78
m4_if(AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG, [true],
 
79
      [AC_PATH_PROG(PKG_CONFIG, pkg-config)])
 
80
pushdef([LIBCONFIG_DIR], [m4_if([$2], , , [$2/])])
 
81
LIBCONFIG_FILE="LIBCONFIG_DIR[]$1-config.in"
 
82
AC_SUBST(target)dnl
 
83
AC_SUBST(host)dnl
 
84
AC_SUBST(build)dnl
 
85
dnl create directory if it does not preexist
 
86
m4_if([$2], , , [AS_MKDIR_P([$2])])
 
87
AC_MSG_NOTICE([creating $LIBCONFIG_FILE])
 
88
echo '#! /bin/sh' >$LIBCONFIG_FILE
 
89
echo "# $1-config library configuration script" >>$LIBCONFIG_FILE
 
90
echo '# generated by ac_config_libconfig_in.m4' >>$LIBCONFIG_FILE
 
91
echo ' ' >>$LIBCONFIG_FILE
 
92
echo 'template_version="1.0.0"' >>$LIBCONFIG_FILE
 
93
echo ' ' >>$LIBCONFIG_FILE
 
94
echo 'package="@PACKAGE@"' >>$LIBCONFIG_FILE
 
95
echo ' ' >>$LIBCONFIG_FILE
 
96
echo '# usage instructions if no options given' >>$LIBCONFIG_FILE
 
97
echo 'if test "'"\$""#"'" -eq 0; then' >>$LIBCONFIG_FILE
 
98
echo '   cat <<EOF' >>$LIBCONFIG_FILE
 
99
m4_if($3, ,
 
100
      [echo 'Usage: $1-config [[OPTIONS]]' >>$LIBCONFIG_FILE],
 
101
      [echo 'Usage: $1-config [[OPTIONS]] [[LIBRARIES]]' >>$LIBCONFIG_FILE])
 
102
echo 'Options:' >>$LIBCONFIG_FILE
 
103
echo '        [[--prefix[=DIR]]]' >>$LIBCONFIG_FILE
 
104
echo '        [[--exec-prefix[=DIR]]]' >>$LIBCONFIG_FILE
 
105
echo '        [[--package]]' >>$LIBCONFIG_FILE
 
106
echo '        [[--version]]' >>$LIBCONFIG_FILE
 
107
echo '        [[--cflags]]' >>$LIBCONFIG_FILE
 
108
echo '        [[--libs]]' >>$LIBCONFIG_FILE
 
109
echo '        [[--help]]' >>$LIBCONFIG_FILE
 
110
m4_if($3, , ,
 
111
      [echo 'Libraries:' >>$LIBCONFIG_FILE
 
112
       for module in $1 $3 ; do
 
113
         echo "        $module" >>$LIBCONFIG_FILE ;
 
114
       done])
 
115
echo 'EOF' >>$LIBCONFIG_FILE
 
116
echo 'fi' >>$LIBCONFIG_FILE
 
117
echo ' ' >>$LIBCONFIG_FILE
 
118
echo '# parse options' >>$LIBCONFIG_FILE
 
119
echo 'o=""' >>$LIBCONFIG_FILE
 
120
echo 'h=""' >>$LIBCONFIG_FILE
 
121
echo 'for i in $''@; do' >>$LIBCONFIG_FILE
 
122
echo '  case $i in' >>$LIBCONFIG_FILE
 
123
options="prefix exec-prefix eprefix package version cflags libs bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir infodir mandir target host build pkgdatadir pkglibdir pkgincludedir template-version help"
 
124
echo '    --prefix=*) prefix=`echo $i | sed -e "s/--prefix=//"` ;;' >>$LIBCONFIG_FILE
 
125
echo '    --exec-prefix=*) exec_prefix=`echo $i | sed -e "s/--exec-prefix=//"` ;;' >>$LIBCONFIG_FILE
 
126
echo '    --eprefix=*) exec_prefix=`echo $i | sed -e "s/--eprefix=//"` ;;' >>$LIBCONFIG_FILE
 
127
for option in $options ; do
 
128
  case $option in
 
129
    exec-prefix)  echo "    --$option) echo_exec_prefix=\"yes\" ;;" >>$LIBCONFIG_FILE ;;
 
130
    template-version)  echo "    --$option) echo_template_version=\"yes\" ;;" >>$LIBCONFIG_FILE ;;
 
131
    *)  echo "    --$option) echo_$option=\"yes\" ;;" >>$LIBCONFIG_FILE ;;
 
132
  esac
 
133
done
 
134
m4_if($3, , ,
 
135
      [for module in $1 $3 ; do
 
136
         echo "  $module) echo_module_$module=\"yes\" ;" >>$LIBCONFIG_FILE ;
 
137
         echo '    echo_module="yes" ;;' >>$LIBCONFIG_FILE ;
 
138
       done])
 
139
echo '    //*|/*//*|./*//*)        echo_extra="yes" ;;' >>$LIBCONFIG_FILE
 
140
echo '    *) eval "echo Unknown option: $i" ; exit 1 ;;' >>$LIBCONFIG_FILE
 
141
echo '  esac' >>$LIBCONFIG_FILE
 
142
echo 'done' >>$LIBCONFIG_FILE
 
143
echo ' ' >>$LIBCONFIG_FILE
 
144
# in the order of occurence a standard automake Makefile
 
145
echo '# defaults from configure; set only if not set previously' >>$LIBCONFIG_FILE
 
146
vars="prefix exec_prefix bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir infodir mandir includedir target host build"
 
147
for var in $vars ; do
 
148
  echo "if test -z \"\$$var\" ; then" >>$LIBCONFIG_FILE
 
149
  echo "  $var=\"@$var@\"" >>$LIBCONFIG_FILE
 
150
  echo 'fi' >>$LIBCONFIG_FILE
 
151
done
 
152
echo ' ' >>$LIBCONFIG_FILE
 
153
echo '# generate output' >>$LIBCONFIG_FILE
 
154
echo 'if test x$echo_module != xyes ; then' >>$LIBCONFIG_FILE
 
155
echo '  echo_module_$1="yes"' >>$LIBCONFIG_FILE
 
156
echo 'fi' >>$LIBCONFIG_FILE
 
157
AC_CONFIG_LIBCONFIG_IN_MODULES(m4_if([$3], , [$1], [m4_translit([$1 $3], [ ], [,])]))dnl
 
158
for option in $options extra; do
 
159
  case $option in
 
160
    exec-prefix)  echo "if test x\$echo_exec_prefix = xyes ; then" >>$LIBCONFIG_FILE ;;
 
161
    template-version)  echo "if test x\$echo_template_version = xyes ; then" >>$LIBCONFIG_FILE ;;
 
162
    *)  echo "if test x\$echo_$option = xyes ; then" >>$LIBCONFIG_FILE ;;
 
163
  esac
 
164
  case $option in
 
165
    exec-prefix | eprefix)  echo '  o="$o $exec_prefix"' >>$LIBCONFIG_FILE ;;
 
166
    template-version)  echo '  o="$o $template_version"' >>$LIBCONFIG_FILE ;;
 
167
    cflags)
 
168
      echo '  i=`eval echo "$includedir"`' >>$LIBCONFIG_FILE ;
 
169
      echo '  i=`eval echo "$i"`' >>$LIBCONFIG_FILE ;
 
170
      echo '  if test "_$i" != "_/usr/include" ; then' >>$LIBCONFIG_FILE ;
 
171
      echo '    o="$o -I$includedir"' >>$LIBCONFIG_FILE ;
 
172
      echo '  fi' >>$LIBCONFIG_FILE ;
 
173
      echo '  o="$o $cflags"' >>$LIBCONFIG_FILE ;;
 
174
    libs)  echo '  o="$o -L$libdir $libs"' >>$LIBCONFIG_FILE ;;
 
175
    help)  echo '  h="1"' >>$LIBCONFIG_FILE ;;
 
176
    pkgdatadir)  echo "  o=\"$o \${datadir}/\${package}\"" >>$LIBCONFIG_FILE ;;
 
177
    pkglibdir)  echo "  o=\"$o \${libdir}/\${package}\"" >>$LIBCONFIG_FILE ;;
 
178
    pkgincludedir)  echo "  o=\"$o \${includedir}/\${package}\"" >>$LIBCONFIG_FILE ;;
 
179
    extra)
 
180
      echo '  v=`echo $i | sed -e s://:\$:g`' >>$LIBCONFIG_FILE ;
 
181
      echo '  v=`eval "echo $v"`' >>$LIBCONFIG_FILE ;
 
182
      echo '  o="$o $v"' >>$LIBCONFIG_FILE ;;
 
183
    *)  echo "  o=\"$o \$$option\"" >>$LIBCONFIG_FILE
 
184
  esac
 
185
  echo 'fi' >>$LIBCONFIG_FILE
 
186
done
 
187
echo ' ' >>$LIBCONFIG_FILE
 
188
echo '# output data' >>$LIBCONFIG_FILE
 
189
echo 'o=`eval "echo $o"`' >>$LIBCONFIG_FILE
 
190
echo 'o=`eval "echo $o"`' >>$LIBCONFIG_FILE
 
191
echo 'if test -n "$o" ; then ' >>$LIBCONFIG_FILE
 
192
echo '  eval "echo $o"' >>$LIBCONFIG_FILE
 
193
echo 'fi' >>$LIBCONFIG_FILE
 
194
echo ' ' >>$LIBCONFIG_FILE
 
195
echo '# help text' >>$LIBCONFIG_FILE
 
196
echo 'if test ! -z "$h" ; then ' >>$LIBCONFIG_FILE
 
197
echo '  cat <<EOF' >>$LIBCONFIG_FILE
 
198
echo 'All available options:' >>$LIBCONFIG_FILE
 
199
echo '  --prefix=DIR and   change \$prefix and \$exec-prefix' >>$LIBCONFIG_FILE
 
200
echo '  --exec-prefix=DIR  (affects all other options)' >>$LIBCONFIG_FILE
 
201
echo '  --prefix           \$prefix        $prefix' >>$LIBCONFIG_FILE
 
202
echo '  --exec_prefix  or... ' >>$LIBCONFIG_FILE
 
203
echo '  --eprefix          \$exec_prefix   $exec_prefix' >>$LIBCONFIG_FILE
 
204
echo '  --version          \$version       $version' >>$LIBCONFIG_FILE
 
205
echo '  --cflags           -I\$includedir  unless it is /usr/include' >>$LIBCONFIG_FILE
 
206
echo '  --libs             -L\$libdir \$LIBS $libs' >>$LIBCONFIG_FILE
 
207
echo '  --package          \$package       $package' >>$LIBCONFIG_FILE
 
208
echo '  --bindir           \$bindir        $bindir' >>$LIBCONFIG_FILE
 
209
echo '  --sbindir          \$sbindir       $sbindir' >>$LIBCONFIG_FILE
 
210
echo '  --libexecdir       \$libexecdir    $libexecdir' >>$LIBCONFIG_FILE
 
211
echo '  --datadir          \$datadir       $datadir' >>$LIBCONFIG_FILE
 
212
echo '  --sysconfdir       \$sysconfdir    $sysconfdir' >>$LIBCONFIG_FILE
 
213
echo '  --sharedstatedir   \$sharedstatedir$sharedstatedir' >>$LIBCONFIG_FILE
 
214
echo '  --localstatedir    \$localstatedir $localstatedir' >>$LIBCONFIG_FILE
 
215
echo '  --libdir           \$libdir        $libdir' >>$LIBCONFIG_FILE
 
216
echo '  --infodir          \$infodir       $infodir' >>$LIBCONFIG_FILE
 
217
echo '  --mandir           \$mandir        $mandir' >>$LIBCONFIG_FILE
 
218
echo '  --target           \$target        $target' >>$LIBCONFIG_FILE
 
219
echo '  --host             \$host          $host' >>$LIBCONFIG_FILE
 
220
echo '  --build            \$build         $build' >>$LIBCONFIG_FILE
 
221
echo '  --pkgdatadir       \$datadir/\$package    ${datadir}/${package}'    >>$LIBCONFIG_FILE
 
222
echo '  --pkglibdir        \$libdir/\$package     ${libdir}/${package}' >>$LIBCONFIG_FILE
 
223
echo '  --pkgincludedir    \$includedir/\$package ${includedir}/${package}' >>$LIBCONFIG_FILE
 
224
echo '  --template-version \$template_version     $template_version' >>$LIBCONFIG_FILE
 
225
echo '  --help' >>$LIBCONFIG_FILE
 
226
echo 'EOF' >>$LIBCONFIG_FILE
 
227
echo 'fi' >>$LIBCONFIG_FILE
 
228
m4_pushdef([LIBCONFIG_UP], [m4_translit([$1], [a-z], [A-Z])])dnl
 
229
LIBCONFIG_UP[]_CONFIG="LIBCONFIG_DIR[]$1-config"
 
230
AC_SUBST(LIBCONFIG_UP[]_CONFIG)
 
231
dnl AC_CONFIG_FILES(LIBCONFIG_DIR[]$1[-config], [chmod +x ]LIBCONFIG_DIR[]$1[-config])
 
232
m4_popdef([LIBCONFIG_DIR])
 
233
m4_popdef([LIBCONFIG_UP])
 
234
])
 
235
 
 
236
 
 
237
# AC_CONFIG_LIBCONFIG_IN_MODULES [(MODULE1 [, MODULE2 [, ...]])]
 
238
# --------------------------------------------------------------
 
239
#Output shell script using custom module variables.
 
240
AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_MODULES],
 
241
[m4_if([$1], , ,
 
242
       [# create module definition for $1
 
243
dnl we're going to need uppercase, lowercase and user-friendly versions of the
 
244
dnl string `MODULE'
 
245
m4_pushdef([MODULE_UP], m4_translit([$1], [a-z], [A-Z]))dnl
 
246
m4_pushdef([MODULE_DOWN], m4_translit([$1], [A-Z], [a-z]))dnl
 
247
if test -z "$MODULE_DOWN[]_cflags" ; then
 
248
  if test -n "$MODULE_UP[]_CFLAGS" ; then
 
249
      MODULE_DOWN[]_cflags="$MODULE_UP[]_CFLAGS"
 
250
  else
 
251
dnl    AC_MSG_WARN([variable `MODULE_DOWN[]_cflags' undefined])
 
252
    MODULE_DOWN[]_cflags=''
 
253
  fi
 
254
fi
 
255
AC_SUBST(MODULE_DOWN[]_cflags)dnl
 
256
if test -z "$MODULE_DOWN[]_libs" ; then
 
257
  if test -n "$MODULE_UP[]_LIBS" ; then
 
258
    MODULE_DOWN[]_libs="$MODULE_UP[]_LIBS"
 
259
  else
 
260
    AC_MSG_WARN([variable `MODULE_DOWN[]_libs' and `MODULE_UP[]_LIBS' undefined])
 
261
    MODULE_DOWN[]_libs='-l$1'
 
262
  fi
 
263
  if test -n "$MODULE_UP[]_LIBDEPS" ; then
 
264
    MODULE_DOWN[]_libs="$MODULE_DOWN[]_libs $MODULE_UP[]_LIBDEPS"
 
265
  fi
 
266
fi
 
267
AC_SUBST(MODULE_DOWN[]_libs)dnl
 
268
if test -z "$MODULE_UP[]_VERSION" ; then
 
269
  AC_MSG_WARN([variable `MODULE_UP[]_VERSION' undefined])
 
270
  MODULE_UP[]_VERSION="$VERSION"
 
271
fi
 
272
AC_SUBST(MODULE_UP[]_VERSION)dnl
 
273
echo 'if test x$echo_module_$1 = xyes ; then' >>$LIBCONFIG_FILE
 
274
AC_CONFIG_LIBCONFIG_IN_MODULES_VARS([cflags], [MODULE_DOWN[]_cflags], [cflags])
 
275
AC_CONFIG_LIBCONFIG_IN_MODULES_VARS([libs], [MODULE_DOWN[]_libs], [libs])
 
276
AC_CONFIG_LIBCONFIG_IN_MODULES_VARS([version], [MODULE_UP[]_VERSION], [modversion])
 
277
echo 'fi' >>$LIBCONFIG_FILE
 
278
m4_popdef([MODULE_UP])dnl
 
279
m4_popdef([MODULE_DOWN])dnl
 
280
AC_CONFIG_LIBCONFIG_IN_MODULES(m4_shift($@))])dnl
 
281
])
 
282
 
 
283
 
 
284
# AC_CONFIG_LIBCONFIG_IN_MODULES_VARS [(VAR, SUBSTITUTION,
 
285
# PKGCONFIG_ARGS)]
 
286
# --------------------------------------------------------
 
287
# Output AC_CONFIG_LIBCONFIG_IN_MODULES variables.
 
288
#   VAR = variable to set
 
289
#   SUBSTITUTION = set if pkg-config is not available
 
290
#   PKGCONFIG_ARGS = args for pkg-config
 
291
AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_MODULES_VARS],
 
292
[m4_if(AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG, [true],
 
293
[
 
294
echo 'if test -x "`which pkg-config`" ; then' >>$LIBCONFIG_FILE
 
295
echo '  if pkg-config --atleast-pkgconfig-version=0.7 --exists "MODULE_DOWN"; then' >>$LIBCONFIG_FILE
 
296
echo '    $1="@S|@$1 `pkg-config --$3 MODULE_DOWN`"' >>$LIBCONFIG_FILE
 
297
echo '  fi' >>$LIBCONFIG_FILE
 
298
echo 'else' >>$LIBCONFIG_FILE
 
299
echo '  $1="@S|@$1 @$2@"' >>$LIBCONFIG_FILE
 
300
echo 'fi' >>$LIBCONFIG_FILE
 
301
],
 
302
[echo '  $1="@S|@$1 @$2@"' >>$LIBCONFIG_FILE
 
303
])])
 
304
 
 
305
 
 
306
# AC_CONFIG_LIBCONFIG_IN_PKGCONFIG
 
307
# --------------------------------
 
308
# Enable pkgconfig support in libconfig script (default)
 
309
AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_PKGCONFIG],
 
310
[m4_define([AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG], [true])
 
311
])dnl
 
312
 
 
313
 
 
314
# AC_CONFIG_LIBCONFIG_IN_STATIC
 
315
# -----------------------------
 
316
# Disable pkgconfig support in libconfig script
 
317
AC_DEFUN([AC_CONFIG_LIBCONFIG_IN_STATIC],
 
318
[m4_define([AC_CONFIG_LIBCONFIG_IN_USEPKGCONFIG], [false])
 
319
])dnl