-m4_pattern_allow(AC_LUSTRE)
-[AC_LUSTRE_MAJOR]=$LUSTRE_MAJOR
-[AC_LUSTRE_MINOR]=$LUSTRE_MINOR
-[AC_LUSTRE_PATCH]=$LUSTRE_PATCH
-[AC_LUSTRE_FIX]=$LUSTRE_FIX
-
-AC_SUBST([AC_LUSTRE_MAJOR])
-AC_SUBST([AC_LUSTRE_MINOR])
-AC_SUBST([AC_LUSTRE_PATCH])
-AC_SUBST([AC_LUSTRE_FIX])
+AC_DEFINE_UNQUOTED([LUSTRE_MAJOR], [$LUSTRE_MAJOR], [First number in the Lustre version])
+AC_DEFINE_UNQUOTED([LUSTRE_MINOR], [$LUSTRE_MINOR], [Second number in the Lustre version])
+AC_DEFINE_UNQUOTED([LUSTRE_PATCH], [$LUSTRE_PATCH], [Third number in the Lustre version])
+AC_DEFINE_UNQUOTED([LUSTRE_FIX], [$LUSTRE_FIX], [Fourth number in the Lustre version])
+# Even though the code could just use VERSION or PACKAGE_VERSION directly,
+# we use this copy named LUSTRE_VERSION_STRING instead to maintain less
+# divergence from the Lustre client code in the upstream Linux kernel code.
+AC_DEFINE_UNQUOTED([LUSTRE_VERSION_STRING], ["$PACKAGE_VERSION"], [A copy of PACKAGE_VERSION])