build: do not call boilerplate ourself
[zfs.git] / config / zfs-meta.m4
1 ###############################################################################
2 # Written by Chris Dunlap <cdunlap@llnl.gov>.
3 # Modified by Brian Behlendorf <behlendorf1@llnl.gov>.
4 ###############################################################################
5 # ZFS_AC_META: Read metadata from the META file.  When building from a
6 # git repository the ZFS_META_RELEASE field will be overwritten if there
7 # is an annotated tag matching the form ZFS_META_NAME-ZFS_META_VERSION-*.
8 # This allows for working builds to be uniquely identified using the git
9 # commit hash.
10 ###############################################################################
11
12 AC_DEFUN([ZFS_AC_META], [
13
14         AH_BOTTOM([
15 #undef PACKAGE
16 #undef PACKAGE_BUGREPORT
17 #undef PACKAGE_NAME
18 #undef PACKAGE_STRING
19 #undef PACKAGE_TARNAME
20 #undef PACKAGE_VERSION
21 #undef STDC_HEADERS
22 #undef VERSION])
23
24         AC_MSG_CHECKING([metadata])
25
26         META="$srcdir/META"
27         _zfs_ac_meta_type="none"
28         if test -f "$META"; then
29                 _zfs_ac_meta_type="META file"
30
31                 ZFS_META_NAME=_ZFS_AC_META_GETVAL([(?:NAME|PROJECT|PACKAGE)]);
32                 if test -n "$ZFS_META_NAME"; then
33                         AC_DEFINE_UNQUOTED([ZFS_META_NAME], ["$ZFS_META_NAME"],
34                                 [Define the project name.]
35                         )
36                         AC_SUBST([ZFS_META_NAME])
37                 fi
38
39                 ZFS_META_VERSION=_ZFS_AC_META_GETVAL([VERSION]);
40                 if test -n "$ZFS_META_VERSION"; then
41                         AC_DEFINE_UNQUOTED([ZFS_META_VERSION], ["$ZFS_META_VERSION"],
42                                 [Define the project version.]
43                         )
44                         AC_SUBST([ZFS_META_VERSION])
45                 fi
46
47                 ZFS_META_RELEASE=_ZFS_AC_META_GETVAL([RELEASE]);
48                 if git rev-parse --git-dir > /dev/null 2>&1; then
49                         _match="${ZFS_META_NAME}-${ZFS_META_VERSION}*"
50                         _alias=$(git describe --match=${_match} 2>/dev/null)
51                         _release=$(echo ${_alias}|cut -f3- -d'-'|sed 's/-/_/g')
52                         if test -n "${_release}"; then
53                                 ZFS_META_RELEASE=${_release}
54                                 _zfs_ac_meta_type="git describe"
55                         fi
56                 fi
57
58                 if test -n "$ZFS_META_RELEASE"; then
59                         AC_DEFINE_UNQUOTED([ZFS_META_RELEASE], ["$ZFS_META_RELEASE"],
60                                 [Define the project release.]
61                         )
62                         AC_SUBST([ZFS_META_RELEASE])
63
64                         RELEASE="$ZFS_META_RELEASE"
65                         AC_SUBST([RELEASE])
66                 fi
67
68                 ZFS_META_LICENSE=_ZFS_AC_META_GETVAL([LICENSE]);
69                 if test -n "$ZFS_META_LICENSE"; then
70                         AC_DEFINE_UNQUOTED([ZFS_META_LICENSE], ["$ZFS_META_LICENSE"],
71                                 [Define the project license.]
72                         )
73                         AC_SUBST([ZFS_META_LICENSE])
74                 fi
75
76                 if test -n "$ZFS_META_NAME" -a -n "$ZFS_META_VERSION"; then
77                                 ZFS_META_ALIAS="$ZFS_META_NAME-$ZFS_META_VERSION"
78                                 test -n "$ZFS_META_RELEASE" && 
79                                         ZFS_META_ALIAS="$ZFS_META_ALIAS-$ZFS_META_RELEASE"
80                                 AC_DEFINE_UNQUOTED([ZFS_META_ALIAS],
81                                         ["$ZFS_META_ALIAS"],
82                                         [Define the project alias string.] 
83                                 )
84                                 AC_SUBST([ZFS_META_ALIAS])
85                 fi
86
87                 ZFS_META_DATA=_ZFS_AC_META_GETVAL([DATE]);
88                 if test -n "$ZFS_META_DATA"; then
89                         AC_DEFINE_UNQUOTED([ZFS_META_DATA], ["$ZFS_META_DATA"],
90                                 [Define the project release date.] 
91                         )
92                         AC_SUBST([ZFS_META_DATA])
93                 fi
94
95                 ZFS_META_AUTHOR=_ZFS_AC_META_GETVAL([AUTHOR]);
96                 if test -n "$ZFS_META_AUTHOR"; then
97                         AC_DEFINE_UNQUOTED([ZFS_META_AUTHOR], ["$ZFS_META_AUTHOR"],
98                                 [Define the project author.]
99                         )
100                         AC_SUBST([ZFS_META_AUTHOR])
101                 fi
102
103                 m4_pattern_allow([^LT_(CURRENT|REVISION|AGE)$])
104                 ZFS_META_LT_CURRENT=_ZFS_AC_META_GETVAL([LT_CURRENT]);
105                 ZFS_META_LT_REVISION=_ZFS_AC_META_GETVAL([LT_REVISION]);
106                 ZFS_META_LT_AGE=_ZFS_AC_META_GETVAL([LT_AGE]);
107                 if test -n "$ZFS_META_LT_CURRENT" \
108                                  -o -n "$ZFS_META_LT_REVISION" \
109                                  -o -n "$ZFS_META_LT_AGE"; then
110                         test -n "$ZFS_META_LT_CURRENT" || ZFS_META_LT_CURRENT="0"
111                         test -n "$ZFS_META_LT_REVISION" || ZFS_META_LT_REVISION="0"
112                         test -n "$ZFS_META_LT_AGE" || ZFS_META_LT_AGE="0"
113                         AC_DEFINE_UNQUOTED([ZFS_META_LT_CURRENT],
114                                 ["$ZFS_META_LT_CURRENT"],
115                                 [Define the libtool library 'current'
116                                  version information.]
117                         )
118                         AC_DEFINE_UNQUOTED([ZFS_META_LT_REVISION],
119                                 ["$ZFS_META_LT_REVISION"],
120                                 [Define the libtool library 'revision'
121                                  version information.]
122                         )
123                         AC_DEFINE_UNQUOTED([ZFS_META_LT_AGE], ["$ZFS_META_LT_AGE"],
124                                 [Define the libtool library 'age' 
125                                  version information.]
126                         )
127                         AC_SUBST([ZFS_META_LT_CURRENT])
128                         AC_SUBST([ZFS_META_LT_REVISION])
129                         AC_SUBST([ZFS_META_LT_AGE])
130                 fi
131         fi
132
133         AC_MSG_RESULT([$_zfs_ac_meta_type])
134         ]
135 )
136
137 AC_DEFUN([_ZFS_AC_META_GETVAL], 
138         [`perl -n\
139                 -e "BEGIN { \\$key=shift @ARGV; }"\
140                 -e "next unless s/^\s*\\$key@<:@:=@:>@//i;"\
141                 -e "s/^((?:@<:@^'\"#@:>@*(?:(@<:@'\"@:>@)@<:@^\2@:>@*\2)*)*)#.*/\\@S|@1/;"\
142                 -e "s/^\s+//;"\
143                 -e "s/\s+$//;"\
144                 -e "s/^(@<:@'\"@:>@)(.*)\1/\\@S|@2/;"\
145                 -e "\\$val=\\$_;"\
146                 -e "END { print \\$val if defined \\$val; }"\
147                 '$1' $META`]dnl
148 )