3 dnl # Read metadata from the META file.
6 dnl # Chris Dunlap <cdunlap@llnl.gov>
7 dnl # Brian Behlendorf <behlendorf1@llnl.gov>
9 AC_DEFUN([SPL_AC_META], [
13 #undef PACKAGE_BUGREPORT
16 #undef PACKAGE_TARNAME
17 #undef PACKAGE_VERSION
21 AC_MSG_CHECKING([metadata])
24 _spl_ac_meta_got_file=no
25 if test -f "$META"; then
26 _spl_ac_meta_got_file=yes
28 SPL_META_NAME=_SPL_AC_META_GETVAL([(?:NAME|PROJECT|PACKAGE)]);
29 if test -n "$SPL_META_NAME"; then
30 AC_DEFINE_UNQUOTED([SPL_META_NAME], ["$SPL_META_NAME"],
31 [Define the project name.]
33 AC_SUBST([SPL_META_NAME])
36 SPL_META_VERSION=_SPL_AC_META_GETVAL([VERSION]);
37 if test -n "$SPL_META_VERSION"; then
38 AC_DEFINE_UNQUOTED([SPL_META_VERSION], ["$SPL_META_VERSION"],
39 [Define the project version.]
41 AC_SUBST([SPL_META_VERSION])
44 SPL_META_RELEASE=_SPL_AC_META_GETVAL([RELEASE]);
45 if test -n "$SPL_META_RELEASE"; then
46 AC_DEFINE_UNQUOTED([SPL_META_RELEASE], ["$SPL_META_RELEASE"],
47 [Define the project release.]
49 AC_SUBST([SPL_META_RELEASE])
52 if test -n "$SPL_META_NAME" -a -n "$SPL_META_VERSION"; then
53 SPL_META_ALIAS="$SPL_META_NAME-$SPL_META_VERSION"
54 test -n "$SPL_META_RELEASE" &&
55 SPL_META_ALIAS="$SPL_META_ALIAS-$SPL_META_RELEASE"
56 AC_DEFINE_UNQUOTED([SPL_META_ALIAS],
58 [Define the project alias string.]
60 AC_SUBST([SPL_META_ALIAS])
63 SPL_META_DATA=_SPL_AC_META_GETVAL([DATE]);
64 if test -n "$SPL_META_DATA"; then
65 AC_DEFINE_UNQUOTED([SPL_META_DATA], ["$SPL_META_DATA"],
66 [Define the project release date.]
68 AC_SUBST([SPL_META_DATA])
71 SPL_META_AUTHOR=_SPL_AC_META_GETVAL([AUTHOR]);
72 if test -n "$SPL_META_AUTHOR"; then
73 AC_DEFINE_UNQUOTED([SPL_META_AUTHOR], ["$SPL_META_AUTHOR"],
74 [Define the project author.]
76 AC_SUBST([SPL_META_AUTHOR])
79 m4_pattern_allow([^LT_(CURRENT|REVISION|AGE)$])
80 SPL_META_LT_CURRENT=_SPL_AC_META_GETVAL([LT_CURRENT]);
81 SPL_META_LT_REVISION=_SPL_AC_META_GETVAL([LT_REVISION]);
82 SPL_META_LT_AGE=_SPL_AC_META_GETVAL([LT_AGE]);
83 if test -n "$SPL_META_LT_CURRENT" \
84 -o -n "$SPL_META_LT_REVISION" \
85 -o -n "$SPL_META_LT_AGE"; then
86 test -n "$SPL_META_LT_CURRENT" || SPL_META_LT_CURRENT="0"
87 test -n "$SPL_META_LT_REVISION" || SPL_META_LT_REVISION="0"
88 test -n "$SPL_META_LT_AGE" || SPL_META_LT_AGE="0"
89 AC_DEFINE_UNQUOTED([SPL_META_LT_CURRENT],
90 ["$SPL_META_LT_CURRENT"],
91 [Define the libtool library 'current'
94 AC_DEFINE_UNQUOTED([SPL_META_LT_REVISION],
95 ["$SPL_META_LT_REVISION"],
96 [Define the libtool library 'revision'
99 AC_DEFINE_UNQUOTED([SPL_META_LT_AGE], ["$SPL_META_LT_AGE"],
100 [Define the libtool library 'age'
101 version information.]
103 AC_SUBST([SPL_META_LT_CURRENT])
104 AC_SUBST([SPL_META_LT_REVISION])
105 AC_SUBST([SPL_META_LT_AGE])
109 AC_MSG_RESULT([$_spl_ac_meta_got_file])
113 AC_DEFUN([_SPL_AC_META_GETVAL],
115 -e "BEGIN { \\$key=shift @ARGV; }"\
116 -e "next unless s/^\s*\\$key@<:@:=@:>@//i;"\
117 -e "s/^((?:@<:@^'\"#@:>@*(?:(@<:@'\"@:>@)@<:@^\2@:>@*\2)*)*)#.*/\\@S|@1/;"\
120 -e "s/^(@<:@'\"@:>@)(.*)\1/\\@S|@2/;"\
122 -e "END { print \\$val if defined \\$val; }"\