# -*- 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)