Browse Source

Make a new macro, DPKG_C_GCC_ATTRIBUTE.

Adam Heath 24 years ago
parent
commit
bd91eaff54
3 changed files with 20 additions and 25 deletions
  1. 4 0
      ChangeLog
  2. 11 0
      automake/dpkg.m4
  3. 5 25
      configure.in

+ 4 - 0
ChangeLog

@@ -1,3 +1,7 @@
+Sun May 19 06:01:31 CDT 2002 Adam Heath <doogie@debian.org>
+
+  * configure.in, automake/dpkg.m4: Make a new macro, DPKG_C_GCC_ATTRIBUTE.
+
 Sun May 19 05:57:24 CDT 2002 Adam Heath <doogie@debian.org>
 Sun May 19 05:57:24 CDT 2002 Adam Heath <doogie@debian.org>
 
 
   * automake/dpkg.m4.  Gah, I hate gcc.  AC_TRY_COMPILE() produces code
   * automake/dpkg.m4.  Gah, I hate gcc.  AC_TRY_COMPILE() produces code

+ 11 - 0
automake/dpkg.m4

@@ -13,6 +13,17 @@ AC_DEFUN(DPKG_CACHED_TRY_COMPILE,[
  fi
  fi
 ])
 ])
 
 
+dnl DPKG_C_GCC_ATTRIBUTE(<short-label>,<cachevar>,<func-params>,<attribute>,<HAVE>,<desc>,[<true-cmds>],[<false-cmds>])
+AC_DEFUN(DPKG_C_GCC_ATTRIBUTE,[
+  DPKG_CACHED_TRY_COMPILE(__attribute__(($1)),dpkg_cv_c_attribute_$2,,
+   [extern int testfunction($3) __attribute__(($4))],
+   AC_MSG_RESULT(yes)
+   AC_DEFINE(HAVE_GNUC25_$5,,$6)
+   $7,
+   AC_MSG_RESULT(no)
+   $8)
+])
+
 dnl DPKG_C_GCC_TRY_WARNS(<warnings>,<cachevar>)
 dnl DPKG_C_GCC_TRY_WARNS(<warnings>,<cachevar>)
 AC_DEFUN(DPKG_C_GCC_TRY_WARNS,[
 AC_DEFUN(DPKG_C_GCC_TRY_WARNS,[
  AC_MSG_CHECKING([GCC warning flag(s) $1])
  AC_MSG_CHECKING([GCC warning flag(s) $1])

+ 5 - 25
configure.in

@@ -189,31 +189,11 @@ va_list v1,v2;
 v1 = v2;
 v1 = v2;
 ], AC_MSG_RESULT(yes),AC_MSG_ERROR(no))])
 ], AC_MSG_RESULT(yes),AC_MSG_ERROR(no))])
 
 
-DPKG_CACHED_TRY_COMPILE(__attribute__((,,)),dpkg_cv_c_attribute_supported,,
- [extern int testfunction(int x) __attribute__((,,))],
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_GNUC25_ATTRIB,,[Define if function attributes a la GCC 2.5 and higher are available.])
-  DPKG_CACHED_TRY_COMPILE(__attribute__((noreturn)),dpkg_cv_c_attribute_noreturn,,
-   [extern int testfunction(int x) __attribute__((noreturn))],
-   AC_MSG_RESULT(yes)
-   AC_DEFINE(HAVE_GNUC25_NORETURN,,[Define if nonreturning functions a la GCC 2.5 and higher are available.]),
-   AC_MSG_RESULT(no))
-  DPKG_CACHED_TRY_COMPILE(__attribute__((const)),dpkg_cv_c_attribute_const,,
-   [extern int testfunction(int x) __attribute__((const))],
-   AC_MSG_RESULT(yes)
-   AC_DEFINE(HAVE_GNUC25_CONST,,[Define if constant functions a la GCC 2.5 and higher are available.]),
-   AC_MSG_RESULT(no))
-  DPKG_CACHED_TRY_COMPILE(__attribute__((unused)),dpkg_cv_c_attribute_unused,,
-   [extern int testfunction(int x) __attribute__((unused))],
-   AC_MSG_RESULT(yes)
-   AC_DEFINE(HAVE_GNUC25_UNUSED,,[Define if unused variables la GCC 2.5 and higher are available.]),
-   AC_MSG_RESULT(no))
-  DPKG_CACHED_TRY_COMPILE(__attribute__((format...)),dpkg_cv_attribute_format,,
-   [extern int testfunction(char *y, ...) __attribute__((format(printf,1,2)))],
-   AC_MSG_RESULT(yes)
-   AC_DEFINE(HAVE_GNUC25_PRINTFFORMAT,,[Define if printf-format argument lists a la GCC are available.]),
-   AC_MSG_RESULT(no)),
- AC_MSG_RESULT(no))
+DPKG_C_GCC_ATTRIBUTE([,,],supported,[int x],[,,],ATTRIB,[Define if function attributes a la GCC 2.5 and higher are available.],
+  DPKG_C_GCC_ATTRIBUTE(noreturn,noreturn,[int x],noreturn,NORETURN,[Define if nonreturning functions a la GCC 2.5 and higher are available.])
+  DPKG_C_GCC_ATTRIBUTE(const,const,[int x],const,CONST,[Define if constant functions a la GCC 2.5 and higher are available.])
+  DPKG_C_GCC_ATTRIBUTE(unused,unused,[int x],unused,UNUSED,[Define if unused variables la GCC 2.5 and higher are available.])
+  DPKG_C_GCC_ATTRIBUTE(format...,format,[char *y, ...],[format(printf,1,2)],PRINTFFORMAT,[Define if printf-format argument lists a la GCC are available.]))
 
 
 AC_MSG_CHECKING(whether to use -Werror)
 AC_MSG_CHECKING(whether to use -Werror)
 AC_ARG_WITH(Werror,
 AC_ARG_WITH(Werror,