summaryrefslogtreecommitdiff
path: root/modules/net_if
Commit message (Collapse)AuthorAgeFilesLines
* gen-header: new modulePaul Eggert2021-12-241-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify header generation by using Makefile variables defined by a new gen-header module. * modules/gen-header: New module. * modules/alloca-opt, modules/argz, modules/arpa_inet: * modules/assert-h, modules/byteswap: * modules/ctype, modules/dirent, modules/dynarray, modules/errno: * modules/execinfo, modules/fcntl-h, modules/float: * modules/fnmatch-h, modules/getopt-posix, modules/glob-h: * modules/iconv-h, modules/ieee754-h, modules/inttypes-incomplete: * modules/langinfo, modules/libtextstyle-optional, modules/limits-h: * modules/locale, modules/malloc-h, modules/math, modules/monetary: * modules/net_if, modules/netdb, modules/netinet_in: * modules/openmp-init, modules/poll-h: * modules/pthread-h, modules/pty, modules/sched: * modules/scratch_buffer, modules/search, modules/selinux-h: * modules/signal-h, modules/sigsegv: * modules/spawn, modules/stdalign, modules/stdarg, modules/stdbool: * modules/stddef, modules/stdint, modules/stdio, modules/stdlib: * modules/stdnoreturn, modules/string, modules/strings: * modules/sys_file, modules/sys_ioctl, modules/sys_random: * modules/sys_resource, modules/sys_select, modules/sys_socket: * modules/sys_stat, modules/sys_time, modules/sys_times: * modules/sys_types, modules/sys_uio, modules/sys_utsname: * modules/sys_wait, modules/sysexits, modules/termios: * modules/threads-h, modules/time, modules/uchar: * modules/unicase/base, modules/unicase/special-casing: * modules/uniconv/base, modules/unictype/base, modules/unigbrk/base: * modules/unilbrk/base, modules/uniname/base, modules/uninorm/base: * modules/unistd, modules/unistdio/base, modules/unistr/base: * modules/unitypes, modules/uniwbrk/base, modules/uniwidth/base: * modules/utime-h, modules/wchar, modules/wctype-h: Depend on gen-header, and use its macros to simplify header generation.
* maint: omit unnecessary ‘rm -f $@-t $@’Paul Eggert2021-12-221-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * modules/alloca-opt, modules/argz, modules/arpa_inet: * modules/assert-h, modules/byteswap, modules/configmake: * modules/ctype, modules/dirent, modules/dynarray, modules/errno: * modules/execinfo, modules/fcntl-h, modules/float: * modules/fnmatch-h, modules/getopt-posix, modules/glob-h: * modules/iconv-h, modules/ieee754-h, modules/inttypes-incomplete: * modules/langinfo, modules/libtextstyle-optional: * modules/limits-h, modules/langinfo, modules/libgmp, modules/limits-h: * modules/locale, modules/malloc-h, modules/math, modules/monetary: * modules/net_if, modules/netdb, modules/netinet_in: * modules/openmp-init, modules/poll-h, modules/posix-shell: * modules/posix_spawnp-tests, modules/pthread-h, modules/pty: * modules/sched, modules/scratch_buffer, modules/search: * modules/selinux-h, modules/signal-h, modules/sigsegv: * modules/snippet/link-warning, modules/spawn, modules/stdalign: * modules/stdarg, modules/stdbool, modules/stddef, modules/stdint: * modules/stdio, modules/stdlib, modules/stdnoreturn: * modules/string, modules/strings, modules/sys_file: * modules/sys_ioctl, modules/sys_random, modules/sys_resource: * modules/sys_select, modules/sys_socket, modules/sys_stat: * modules/sys_time, modules/sys_times, modules/sys_types: * modules/sys_uio, modules/sys_utsname, modules/sys_wait: * modules/sysexits, modules/termios, modules/threads-h: * modules/time, modules/uchar, modules/unicase/base: * modules/unicase/special-casing, modules/uniconv/base: * modules/unictype/base, modules/unigbrk/base, modules/unilbrk/base: * modules/uniname/base, modules/uninorm/base, modules/unistd: * modules/unistdio/base, modules/unistr/base, modules/unitypes: * modules/uniwbrk/base, modules/uniwidth/base, modules/utime-h: * modules/wchar, modules/wctype-h: Don’t bother to do a ‘rm -f $@-t $@’ at the start of recipes that create .h and similar files. This is a revenant of a style in which the files were created read-only. Also, consistently use use plain ‘mv $@-t $@’ afterwards, instead of usually using ‘mv -f’ but sometimes plain ‘mv’.
* Move AM_V_GEN to recipe startPaul Eggert2021-12-211-2/+2
| | | | | | | | | | | | | | | | | | | This is especially needed when building Emacs, as it uses ‘AM_V_GEN=@$(info GEN $@)', which means the GEN line is output by GNU make just before the recipe runs, regardless of where AM_V_GEN appears in the recipe. And it’s also good practice even if the default Automake ‘AM_V_GEN=@echo GEN $@;’ is used, as it’s better to output the GEN line consistently at the start of every recipe, even if this precedes a preparatory command that almost always works silently. * modules/arpa_inet, modules/dynarray, modules/net_if: * modules/netinet_in, modules/scratch_buffer, modules/selinux-h: * modules/sys_file, modules/sys_ioctl, modules/sys_random: * modules/sys_resource, modules/sys_select, modules/sys_socket: * modules/sys_stat, modules/sys_time, modules/sys_times: * modules/sys_types, modules/sys_uio, modules/sys_utsname: * modules/sys_wait, modules/unicase/special-casing, top/maint.mk: Use AM_V_GEN only at the start of each recipe.
* Move .h file names out of the *.m4 files.Bruno Haible2021-12-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful because Autoconf macros defined in *.m4 files can be AC_REQUIREd. In the configure file, they are then expanded before gl_INIT, i.e. at a place where it is not known whether they are required for the lib/ or for the tests/ directory (or both). * m4/gnulib-common.m4 (gl_CONDITIONAL_HEADER): New macro. * m4/alloca.m4 (gl_FUNC_ALLOCA): Set GL_GENERATE_ALLOCA_H instead of ALLOCA_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/alloca-opt (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/argz.m4 (gl_FUNC_ARGZ): Set GL_GENERATE_ARGZ_H instead of ARGZ_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/argz (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/assert_h.m4 (gl_ASSERT_H): Set GL_GENERATE_ASSERT_H instead of ASSERT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/assert-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/byteswap.m4 (gl_BYTESWAP): Set GL_GENERATE_BYTESWAP_H instead of BYTESWAP_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/byteswap (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Set GL_GENERATE_ERRNO_H instead of ERRNO_H. Drop AC_SUBST and AM_CONDITIONAL invocations. (gl_REPLACE_ERRNO_VALUE): Update. * m4/perror.m4 (gl_FUNC_PERROR): Update. * m4/strerror.m4 (gl_FUNC_STRERROR): Update. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R, gl_FUNC_STRERROR_R_WORKS): Update. * modules/errno (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/execinfo.m4 (gl_EXECINFO_H): Set GL_GENERATE_EXECINFO_H instead of EXECINFO_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Drop AC_LIBOBJ invocation. * modules/execinfo (configure.ac): Invoke gl_CONDITIONAL_HEADER and AC_LIBOBJ. * m4/float_h.m4 (gl_FLOAT_H): Set GL_GENERATE_FLOAT_H instead of FLOAT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/float (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/fnmatch_h.m4 (gl_FNMATCH_H, gl_REPLACE_FNMATCH_H): Set GL_GENERATE_FNMATCH_H instead of FNMATCH_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/fnmatch-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/fnmatch (configure.ac): Likewise. * m4/getopt.m4 (gl_FUNC_GETOPT_POSIX, gl_GETOPT_SUBSTITUTE_HEADER): Set GL_GENERATE_GETOPT_H instead of GETOPT_H. Set GL_GENERATE_GETOPT_CDEFS_H instead of GETOPT_CDEFS_H. Drop AC_SUBST invocations. * modules/getopt-posix (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/glob_h.m4 (gl_GLOB_H, gl_REPLACE_GLOB_H): Set GL_GENERATE_GLOB_H instead of GLOB_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/glob-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/glob (configure.ac): Likewise. * m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS, gl_REPLACE_ICONV_H): Set GL_GENERATE_ICONV_H instead of ICONV_H. Drop AC_SUBST and AM_CONDITIONAL invocations. (gl_ICONV_H): Update. * modules/iconv-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/iconv_open (configure.ac): Likewise. * m4/ieee754-h.m4 (gl_IEEE754_H): Set GL_GENERATE_IEEE754_H instead of IEEE754_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/ieee754-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/libgmp.m4 (gl_LIBGMP): Set GL_GENERATE_GMP_H instead of GMP_H. Drop AC_SUBST invocation. * modules/libgmp (configure.ac): Invoke gl_CONDITIONAL_HEADER. (Makefile.am): Use GL_GENERATE_GMP_H. * m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Set GL_GENERATE_TEXTSTYLE_H instead of TEXTSTYLE_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/libtextstyle-optional (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/limits-h.m4 (gl_LIMITS_H, gl_REPLACE_LIMITS_H): Set GL_GENERATE_LIMITS_H instead of LIMITS_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/limits-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/monetary_h.m4 (gl_MONETARY_H): Set GL_GENERATE_MONETARY_H instead of MONETARY_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/monetary (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/net_if_h.m4 (gl_HEADER_NET_IF): Set GL_GENERATE_NET_IF_H instead of NET_IF_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/net_if (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Set GL_GENERATE_NETINET_IN_H instead of NETINET_IN_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/netinet_in (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): Set GL_GENERATE_SELINUX_CONTEXT_H instead of SELINUX_CONTEXT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * m4/selinux-label-h.m4 (gl_HEADERS_SELINUX_LABEL_H): Set GL_GENERATE_SELINUX_LABEL_H instead of SELINUX_LABEL_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/selinux-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdalign.m4 (gl_STDALIGN_H): Set GL_GENERATE_STDALIGN_H instead of STDALIGN_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stdalign (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdarg.m4 (gl_STDARG_H): Set GL_GENERATE_STDARG_H instead of STDARG_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stdarg (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdbool.m4 (gl_STDBOOL_H): Renamed from AM_STDBOOL_H. Set GL_GENERATE_STDBOOL_H instead of STDBOOL_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Don't require AM_STDBOOL_H. * modules/stdbool (configure.ac): Invoke gl_STDBOOL_H instead of AM_STDBOOL_H. Invoke gl_CONDITIONAL_HEADER. * m4/stddef_h.m4 (gl_STDDEF_H): Set GL_GENERATE_STDDEF_H instead of STDDEF_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stddef (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdint.m4 (gl_STDINT_H): Set GL_GENERATE_STDINT_H instead of STDINT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Update. * modules/stdint (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdnoreturn.m4 (gl_STDNORETURN_H): Set GL_GENERATE_STDNORETURN_H instead of STDNORETURN_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stdnoreturn (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_H): Set GL_GENERATE_SYS_SOCKET_H instead of SYS_SOCKET_H. * m4/sysexits.m4 (gl_SYSEXITS): Set GL_GENERATE_SYSEXITS_H instead of SYSEXITS_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/sysexits (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/sigsegv (configure.ac): Set GL_GENERATE_SIGSEGV_H instead of SIGSEGV_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Invoke gl_CONDITIONAL_HEADER.
* Fix creation of build directories with non-recursive-gnulib-prefix-hack.Bruno Haible2021-12-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary for executing "make" in a VPATH build of a package that uses prefix-gnulib-mk and a module such as alloca-opt. * modules/alloca-opt (Makefile.am): Before generating the .h-t file, ensure that the directory in which we want to create it exists. (configure.ac): Invoke AC_PROG_MKDIR_P. * modules/argz: Likewise. * modules/arpa_inet: Likewise. * modules/assert-h: Likewise. * modules/byteswap: Likewise. * modules/configmake: Likewise. * modules/ctype: Likewise. * modules/dirent: Likewise. * modules/dynarray: Likewise. * modules/errno: Likewise. * modules/execinfo: Likewise. * modules/fcntl-h: Likewise. * modules/float: Likewise. * modules/fnmatch-h: Likewise. * modules/getopt-posix: Likewise. * modules/glob-h: Likewise. * modules/iconv-h: Likewise. * modules/ieee754-h: Likewise. * modules/inttypes-incomplete: Likewise. * modules/langinfo: Likewise. * modules/libgmp: Likewise. * modules/libtextstyle-optional: Likewise. * modules/limits-h: Likewise. * modules/locale: Likewise. * modules/malloc-h: Likewise. * modules/math: Likewise. * modules/monetary: Likewise. * modules/net_if: Likewise. * modules/netdb: Likewise. * modules/netinet_in: Likewise. * modules/openmp-init: Likewise. * modules/poll-h: Likewise. * modules/posix-shell: Likewise. * modules/pthread-h: Likewise. * modules/pty: Likewise. * modules/sched: Likewise. * modules/scratch_buffer: Likewise. * modules/search: Likewise. * modules/selinux-h: Likewise. * modules/signal-h: Likewise. * modules/sigsegv: Likewise. * modules/snippet/link-warning: Likewise. * modules/spawn: Likewise. * modules/stdalign: Likewise. * modules/stdarg: Likewise. * modules/stdbool: Likewise. * modules/stddef: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/stdnoreturn: Likewise. * modules/string: Likewise. * modules/strings: Likewise. * modules/sys_file: Likewise. * modules/sys_ioctl: Likewise. * modules/sys_random: Likewise. * modules/sys_resource: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sys_times: Likewise. * modules/sys_types: Likewise. * modules/sys_uio: Likewise. * modules/sys_utsname: Likewise. * modules/sys_wait: Likewise. * modules/sysexits: Likewise. * modules/termios: Likewise. * modules/threads-h: Likewise. * modules/time: Likewise. * modules/uchar: Likewise. * modules/unicase/base: Likewise. * modules/unicase/special-casing: Likewise. * modules/uniconv/base: Likewise. * modules/unictype/base: Likewise. * modules/unigbrk/base: Likewise. * modules/unilbrk/base: Likewise. * modules/uniname/base: Likewise. * modules/uninorm/base: Likewise. * modules/unistd: Likewise. * modules/unistdio/base: Likewise. * modules/unistr/base: Likewise. * modules/unitypes: Likewise. * modules/uniwbrk/base: Likewise. * modules/uniwidth/base: Likewise. * modules/utime-h: Likewise. * modules/wchar: Likewise. * modules/wctype-h: Likewise. * gnulib-tool (func_emit_lib_Makefile_am): When producing output for GNU make, eliminate %reldir% tokens.
* net_if: new moduleEric Blake2012-09-051-0/+49
OpenBSD's <net/if.h> is not self-contained; this should compile: | #define _POSIX_C_SOURCE 200809L | #include <net/if.h> | struct if_nameindex i; but fails with: In file included from foo.c:2: /usr/include/net/if.h:112: error: expected specifier-qualifier-list before 'u_int' ... /usr/include/net/if.h:674: error: field 'dstaddr' has incomplete type In file included from /usr/include/net/if.h:691, from foo.c:2: /usr/include/net/if_arp.h:79: error: field 'arp_pa' has incomplete type /usr/include/net/if_arp.h:80: error: field 'arp_ha' has incomplete type *** Error code 1 We already had a test program for systems with the if_* functions (including OpenBSD); but in adding this module, I had to enhance that test to also work on platforms like mingw where we are now providing a new header. * modules/net_if: New module, borrowing ideas from netinet_in. * m4/net_if_h.m4: New file. * lib/net_if.in.h: Likewise. * doc/posix-headers/net_if.texi (net/if.h): Document it. * MODULES.html.sh (lacking POSIX:2008): Likewise. * tests/test-net_if.c: Make function checks conditional. Reported by Jasper Lievisse Adriaanse <jasper@humppa.nl>. Signed-off-by: Eric Blake <eblake@redhat.com>