forked from autoconf-archive/autoconf-archive
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ax_warning_default_pkgconfig.m4
140 lines (137 loc) · 5.53 KB
/
ax_warning_default_pkgconfig.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# =================================================================================
# https://www.gnu.org/software/autoconf-archive/ax_warning_default_pkgconfig.html
# =================================================================================
#
# SYNOPSIS
#
# AX_WARNING_DEFAULT_PKGCONFIGDIR [(dirvariable [,[defsetting][,[A][,[N/A]]]])]
# AX_ENABLE_DEFAULT_PKGCONFIGDIR [(dirvariable [,defsetting])]
#
# DESCRIPTION
#
# print a warning message if the $(datadir)/aclocal directory is not in
# the dirlist searched by the aclocal tool. This macro is useful if some
# `make install` would target $(datadir)/aclocal to install an autoconf m4
# file of your project to be picked up by other projects.
#
# default $1 dirvariable = pkgconfigdir
# default $2 defsetting = ${libdir}/pkgconfig
# default $3 action = nothing to do
# default $4 action = warn the user about mismatch
#
# In the _WARNING_ variant, the defsetting is not placed in dirvariable
# nor is it ac_subst'ed in any way. The default fail-action $4 is to send
# a warning message to the user, and the default accept-action $3 is
# nothing. It is expected that a Makefile is generated with
# pkgconfigdir=${libdir}/pkgconfig
#
# The _ENABLE_ variant however will set not only the $pkgconfigdir shell
# var of the script, but it is also AC-SUBST'ed on default - and
# furthermore a configure option "--enable-default-pkgconfigdir" is
# provided. Only if that option is set then $2 default is not set to the
# canonic default in the a $prefix subpath but instead $2 default is set
# to the primary path where `pkg-config` looks for .pc files. The user may
# also override the default on the command line.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim <[email protected]>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 9
AC_DEFUN([AX_WARNING_DEFAULT_PKGCONFIGDIR],[dnl
AC_REQUIRE([AX_EXPAND_PREFIX])dnl
AS_VAR_PUSHDEF([DIR],[ax_warning_default_pkgconfig_dir])dnl
AS_VAR_PUSHDEF([BIN],[ax_warning_default_pkgconfig_bin])dnl
AS_VAR_PUSHDEF([LOC],[ax_warning_default_pkgconfig_loc])dnl
LOC='m4_if([$2],,[${libdir}/pkgconfig],[$2])'
m4_ifval([$1],[test ".$[]$1" != "." && LOC="$[]$1"])
if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4
AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no])
fi
if test "$PKG_CONFIG" = "no"
then DIR="/" ; test -d "/usr/lib/pkgconfig" && DIR="/usr/lib/pkgconfig"
else BIN=`AS_DIRNAME(["$DIR"])` ;
if test -d "$BIN/lib/pkgconfig" ; then
DIR="$BIN/lib/pkgconfig"
else BIN=`AS_DIRNAME(["$DIR"])`
if test -d "$BIN/lib/pkgconfig" ; then
DIR="$BIN/lib/pkgconfig"
else
if test -d "/usr/lib/pkgconfig" ; then
DIR="/usr/lib/pkgconfig"
else
DIR="/"
fi fi fi
fi
AC_RUN_LOG([: last pkgconfig dir is assumed as "$DIR"])
DIR=`eval "echo $DIR"`
DIR=`eval "echo $DIR"`
LOC=`eval "echo $LOC"`
LOC=`eval "echo $LOC"`
LOC=`eval "echo $LOC"`
LOC=`eval "echo $LOC"`
for DIR in `echo "$PKG_CONFIG_PATH:$DIR" | sed -e 's,:, ,g'` ; do
AC_RUN_LOG([: test ".$LOC" = ".$DIR"])
test ".$LOC" = ".$DIR" && break
done
if test "$LOC" != "$DIR" ; then
m4_ifval([$4],[$4],[dnl
AC_MSG_NOTICE([warning: m4_if([$1],,[pkgconfigdir],[$1])=$LOC dnl
(see config.log)])
AC_MSG_NOTICE([perhaps: make install m4_if([$1],,[pkgconfigdir],[$1])=$DIR])
cat m4_ifset([AS_MESSAGE_LOG_FD],[>&AS_MESSAGE_LOG_FD],[>>config.log]) <<EOF
pkgconfigdir: the m4_if([$1],,[default pkgconfigdir],[$1 value]) of $LOC
pkgconfigdir: is not listed in the dirlist where pkg-config will look for
pkgconfigdir: package-configs - you can override the install-path using
pkgconfigdir: make install m4_if([$1],,[pkgconfigdir],[$1])=$DIR
pkgconfigdir: or set/append the directory to the environment variable
pkgconfigdir: PKG_CONFIG_PATH="$LOC"
EOF
m4_ifvaln([$5],[$5])])dnl
m4_ifvaln([$3],[else $3])dnl
fi
AS_VAR_POPDEF([LOC])dnl
AS_VAR_POPDEF([BIN])dnl
AS_VAR_POPDEF([DIR])dnl
])
AC_DEFUN([AX_ENABLE_DEFAULT_PKGCONFIGDIR],[dnl
AS_VAR_PUSHDEF([BIN],[ax_warning_default_pkgconfig_bin])dnl
AS_VAR_PUSHDEF([DIR],[ax_warning_default_pkgconfig_def])dnl
AS_VAR_PUSHDEF([DEF],[ax_warning_default_pkgconfig_def])dnl
AC_ARG_ENABLE([enable-default-pkgconfigdir],
[ --enable-default-pkgconfigdir(=PATH) override the libdir/pkgconfig default])
test ".$enable_default_pkgconfigdir" = "." && enable_default_pkgconfigdir="no"
case ".$enable_default_pkgconfigdir" in
.no) DIR='m4_if([$2],,[${libdir}/pkgconfig],[$2])' ;;
.yes) # autodetect
if test ".$PKG_CONFIG" = "." ; then # we use the same default as in pkg.m4
AC_PATH_PROG([PKG_CONFIG],[pkg-config],[no])
fi
if test "$PKG_CONFIG" = "no"
then DIR="/tmp" ; test -d "/usr/lib/pkgconfig" && DIR="/usr/lib/pkgconfig"
else BIN=`AS_DIRNAME(["$DIR"])` ;
if test -d "$BIN/lib/pkgconfig" ; then
DIR="$BIN/lib/pkgconfig"
else BIN=`AS_DIRNAME(["$DIR"])`
if test -d "$BIN/lib/pkgconfig" ; then
DIR="$BIN/lib/pkgconfig"
else
if test -d "/usr/lib/pkgconfig" ; then
DIR="/usr/lib/pkgconfig"
else
DIR="/tmp"
fi fi fi
fi ;;
*) DIR="$enable_default_pkgconfigdir" ;;
esac
AX_WARNING_DEFAULT_PKGCONFIGDIR([$1],[$DEF],[$3],[$4],[$5])
m4_if([$1],,[pkgconfigdir],[$1])="$ax_warning_default_pkgconfig_dir"
AC_SUBST(m4_if([$1],,[pkgconfigdir],[$1]))
AS_VAR_POPDEF([DEF])dnl
AS_VAR_POPDEF([DIR])dnl
AS_VAR_POPDEF([BIN])dnl
])