# advertising or publicity pertaining to the Software or any
# derivatives without specific, written prior permission.
-dnl NX_BUILDNR([NUMBER])
+dnl NX_BUILDNR
dnl
-dnl If NUMBER is empty, substitutes BUILDNR with 0 and sets C
-dnl preprocessor variable BUILDNR to "".
+dnl If --with-build-number=NUMBER is used, substitutes a Makefile
+dnl variable BUILDNR with NUMBER, and sets a C preprocessor variable
+dnl BUILDNR to "+buildNUMBER".
dnl
-dnl If NUMBER is nonempty, substitutes a Makefile variable BUILDNR
-dnl with NUMBER, and sets a C preprocessor variable BUILDNR to
-dnl "+buildNUMBER".
+dnl Otherwise, if --with-build-number is not used, substitutes BUILDNR
+dnl with 0 and sets C preprocessor variable BUILDNR to "".
AC_DEFUN([NX_BUILDNR],
- [AC_SUBST([BUILDNR],
- [m4_if([$1], [], [0], [$1])])
- AC_DEFINE([BUILDNR],
- [m4_if([$1], [], [""], ["+build$1"])],
- [Official build number.])])
+ [AC_ARG_WITH(
+ [build-number],
+ [AS_HELP_STRING([--with-build-number=NUMBER],
+ [Official build number (default is none)])])
+ AC_MSG_CHECKING([build number])
+ case $with_build_number in # (
+ [[0-9]] | \
+ [[0-9]][[0-9]] | \
+ [[0-9]][[0-9]][[0-9]] | \
+ [[0-9]][[0-9]][[0-9]][[0-9]] | \
+ [[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
+ BUILDNR=$with_build_number
+ buildnr='"+build'$BUILDNR'"'
+ AC_MSG_RESULT([$with_build_number])
+ ;; # (
+ ''|no)
+ BUILDNR=0
+ buildnr='""'
+ AC_MSG_RESULT([none])
+ ;; # (
+ *)
+ AC_MSG_ERROR([invalid build number $with_build_number])
+ ;;
+ esac
+ AC_SUBST([BUILDNR])
+ AC_DEFINE_UNQUOTED([BUILDNR], [$buildnr],
+ [Official build number as a VERSION suffix string, e.g. "+build123",
+ or "" if this is not an official build.])])