Gentoo Archives: gentoo-dev

From: Mike Frysinger <vapier@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] autoconf-cache.eclass: helper functions for managing autoconf cache variables
Date: Wed, 30 Nov 2011 00:12:59
Message-Id: 201111291911.57865.vapier@gentoo.org
1 as i started to write more open coded autoconf cache variable tweaks, i got
2 annoyed to write a simple eclass. here's a rough PoC.
3 -mike
4
5 # Copyright 1999-2011 Gentoo Foundation
6 # Distributed under the terms of the GNU General Public License v2
7 # $Header: /var/cvsroot/gentoo-x86/eclass/autotools.eclass,v 1.110 2011/11/14 17:08:49 vapier Exp $
8
9 # @ECLASS: autotools-cache.eclass
10 # @MAINTAINER:
11 # base-system@g.o
12 # @BLURB: Simplify management of autotool cache variables
13
14 # just for usex()
15 inherit eutils
16
17 _ac_varify() {
18 echo ${1//[![:alnum:]_]/_}
19 }
20
21 ac_cv() {
22 export ac_cv_$(_ac_varify "$1")="$2"
23 }
24
25 # @FUNCTION: ac_check_lib
26 # @USAGE: "<function> <library> [value]" ["<function> <library> [value]" ...]
27 ac_check_lib() {
28 local line
29 for line in "$@" ; do
30 local args=( ${line} )
31 local func=${args[0]} lib=${args[1]} val=${args[2]}
32 ac_cv "lib_${lib}_${func}" "${val:-no}"
33 done
34 }
35 # @FUNCTION: use_ac_check_lib
36 # @USAGE: <USE flag> "<function> <library>" ["<function> <library>" ...]
37 use_ac_check_lib() {
38 local flag=$1 line packed=()
39 for line in "${@:2}" ; do
40 packed+=$( "${line} $(usex ${flag})" )
41 done
42 ${FUNCNAME#use_} "${packed[@]}"
43 }
44
45 # @FUNCTION: ac_search_libs
46 # @USAGE: "<function> [value]" ["<function> [value]" ...]
47 ac_search_libs() {
48 local line
49 for line in "$@" ; do
50 local args=( ${line} )
51 local func=${args[0]} val=${args[1]}
52 ac_cv "search_${func}" "${val:-no}"
53 done
54 }
55 # @FUNCTION: use_ac_search_libs
56 # @USAGE: <USE flag> "<function> <library>" ["<function> <library>" ...]
57 use_ac_search_libs() {
58 local flag=$1 line packed=()
59 for line in "${@:2}" ; do
60 local args=( ${line} )
61 local lib=${args[1]}
62 packed+=( "${line} $(usex ${flag} -l${lib})" )
63 done
64 ${FUNCNAME#use_} "${packed[@]}"
65 }
66
67 # @FUNCTION: ac_check_headers
68 # @USAGE: "<header> [value]" ["<header> [value]" ...]
69 ac_check_headers() {
70 local line
71 for line in "$@" ; do
72 local args=( ${line} )
73 local h=${args[0]} val=${args[1]}
74 ac_cv "header_${h}" "${val:-no}"
75 done
76 }
77 # @FUNCTION: use_ac_check_headers
78 # @USAGE: <USE flag> <headers>
79 use_ac_check_headers() {
80 local flag=$1 h packed=()
81 for h in "${@:2}" ; do
82 packed+=( "${h} $(usex ${flag})" )
83 done
84 ac_check_headers "${packed[@]}"
85 }

Attachments

File name MIME type
signature.asc application/pgp-signature