diff options
Diffstat (limited to 'build/moz.configure/headers.configure')
-rw-r--r-- | build/moz.configure/headers.configure | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/build/moz.configure/headers.configure b/build/moz.configure/headers.configure new file mode 100644 index 000000000..52ffa2f89 --- /dev/null +++ b/build/moz.configure/headers.configure @@ -0,0 +1,93 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Check for headers defining standard int types. +check_header('stdint.h') +have_inttypes = check_header('inttypes.h') + +# Assume we have ansi C header files available. +set_define('STDC_HEADERS', True) + +set_config('HAVE_INTTYPES_H', have_inttypes) + +building_linux = depends(target)(lambda target: target.kernel == 'Linux') + +have_malloc = check_header('malloc.h') + +check_header('alloca.h') + +add_old_configure_assignment('HAVE_MALLOC_H', have_malloc) + +check_headers( + 'sys/byteorder.h', + 'getopt.h', + 'unistd.h', + 'nl_types.h', + 'cpuid.h', + when=non_msvc_compiler, +) + +# These are all the places some variant of statfs can be hiding. +check_headers( + 'sys/statvfs.h', + 'sys/statfs.h', + 'sys/vfs.h', + 'sys/mount.h', + when=non_msvc_compiler, +) + +# Quota support +check_header('sys/quota.h', + when=non_msvc_compiler) +check_header('linux/quota.h', + includes=['sys/socket.h'], + when=building_linux) + +# SCTP support - needs various network include headers +check_headers( + 'linux/if_addr.h', + 'linux/rtnetlink.h', + includes=['sys/socket.h'], + when=building_linux, +) + +check_header('sys/queue.h', + when=non_msvc_compiler) + +check_headers( + 'sys/types.h', + 'netinet/in.h', + 'byteswap.h', + when=non_msvc_compiler, +) + +# TODO: Move these checks to file specific to --enable-project=js. +have_perf_event_h = check_header('linux/perf_event.h', + when=building_linux) + +js_option('--with-linux-headers', + help='location where the Linux kernel headers can be found', + nargs=1) + +passed_linux_header_flags = depends_if('--with-linux-headers')(lambda v: ['-I%s' % v[0]]) + +@depends_when(try_compile(includes=['asm/unistd.h'], + body='return sizeof(__NR_perf_event_open);', + flags=passed_linux_header_flags, + check_msg='for perf_event_open system call'), + when=have_perf_event_h) +def have_perf_event_open(have_perf_event_open): + if have_perf_event_open: + return True + +set_config('HAVE_LINUX_PERF_EVENT_H', have_perf_event_open) + +@depends(passed_linux_header_flags, have_perf_event_open) +def linux_headers_includes(passed_linux_header_flags, have_perf_event_open): + if have_perf_event_open and passed_linux_header_flags: + return passed_linux_header_flags[0] + +set_config('LINUX_HEADERS_INCLUDES', linux_headers_includes) |