diff options
Diffstat (limited to 'vere/ext/nasm/build.zig')
-rw-r--r-- | vere/ext/nasm/build.zig | 830 |
1 files changed, 830 insertions, 0 deletions
diff --git a/vere/ext/nasm/build.zig b/vere/ext/nasm/build.zig new file mode 100644 index 0000000..557a8e5 --- /dev/null +++ b/vere/ext/nasm/build.zig @@ -0,0 +1,830 @@ +const std = @import("std"); +const builtin = @import("builtin"); + +pub fn build(b: *std.Build) void { + const target = b.graph.host; + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const exe = b.addExecutable(.{ + .name = "nasm", + .target = target, + .optimize = optimize, + }); + + exe.addIncludePath(b.path("include")); + exe.addIncludePath(b.path("asm")); + exe.addIncludePath(b.path("x86")); + exe.addIncludePath(b.path("output")); + + exe.addConfigHeader(b.addConfigHeader(.{ + .style = .blank, + .include_path = "version.h", + }, .{ + .NASM_MAJOR_VER = 2, + .NASM_MINOR_VER = 16, + .NASM_SUBMINOR_VER = 1, + .NASM_PATCHLEVEL_VER = 0, + .NASM_VERSION_ID = 0x02100100, + .NASM_VER = "2.16.01", + })); + + if (b.graph.host.result.os.tag == .windows) { + exe.addConfigHeader(b.addConfigHeader(.{ + .style = .{ .autoconf = b.path("config/config.h.in") }, + .include_path = "config/config.h", + }, .{ + .ABORT_ON_PANIC = have(optimize == .Debug), + .AC_APPLE_UNIVERSAL_BUILD = null, + .CFLAGS_FDATA_SECTIONS = null, + .CFLAGS_FFUNCTION_SECTIONS = null, + .CFLAGS_FGNU89_INLINE = null, + .CFLAGS_FLTO = null, + .CFLAGS_FNO_COMMON = null, + .CFLAGS_FNO_OMIT_FRAME_POINTER = null, + .CFLAGS_FSANITIZE_ADDRESS = null, + .CFLAGS_FSANITIZE_UNDEFINED = null, + .CFLAGS_FTRIVIAL_AUTO_VAR_INIT_ZERO = null, + .CFLAGS_FVISIBILITY_HIDDEN = null, + .CFLAGS_FWRAPV = null, + .CFLAGS_GGDB3 = null, + .CFLAGS_O0 = have(optimize == .Debug), + .CFLAGS_PEDANTIC = null, + .CFLAGS_PG = null, + .CFLAGS_STD_C11 = null, + .CFLAGS_STD_C17 = 1, + .CFLAGS_STD_C99 = null, + .CFLAGS_U_STRICT_ANSI = null, + .CFLAGS_W = null, + .CFLAGS_WALL = null, + .CFLAGS_WC90_C99_COMPAT = null, + .CFLAGS_WC99_COMPAT = null, + .CFLAGS_WC99_EXTENSIONS = null, + .CFLAGS_WERROR = null, + .CFLAGS_WERROR_ATTRIBUTES = null, + .CFLAGS_WERROR_COMMENT = null, + .CFLAGS_WERROR_IMPLICIT = null, + .CFLAGS_WERROR_MISSING_BRACES = null, + .CFLAGS_WERROR_MISSING_DECLARATIONS = null, + .CFLAGS_WERROR_MISSING_PROTOTYPES = null, + .CFLAGS_WERROR_POINTER_ARITH = null, + .CFLAGS_WERROR_RETURN_TYPE = null, + .CFLAGS_WERROR_STRICT_PROTOTYPES = null, + .CFLAGS_WERROR_TRIGRAPHS = null, + .CFLAGS_WERROR_UNKNOWN_WARNING_OPTION = null, + .CFLAGS_WERROR_VLA = null, + .CFLAGS_WLONG_LONG = null, + .CFLAGS_WPEDANTIC_MS_FORMAT = null, + .CFLAGS_WSHIFT_NEGATIVE_VALUE = null, + .CFLAGS_WSTRINGOP_TRUNCATION = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_COLD = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_CONST = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_FORMAT = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_MALLOC = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_NORETURN = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_PURE = null, + .HAVE_ACCESS = 1, + .HAVE_CANONICALIZE_FILE_NAME = null, + .HAVE_CPU_TO_LE16 = null, + .HAVE_CPU_TO_LE32 = null, + .HAVE_CPU_TO_LE64 = null, + .HAVE_DECL_STRCASECMP = 1, + .HAVE_DECL_STRICMP = 0, + .HAVE_DECL_STRLCPY = null, + .HAVE_DECL_STRNCASECMP = 1, + .HAVE_DECL_STRNICMP = 0, + .HAVE_DECL_STRNLEN = 0, + .HAVE_DECL_STRRCHRNUL = 0, + .HAVE_DECL_STRSEP = 0, + .HAVE_ENDIAN_H = null, + .HAVE_FACCESSAT = 1, + .HAVE_FCNTL_H = 1, + .HAVE_FILENO = 1, + .HAVE_FSEEKO = 1, + .HAVE_FSTAT = 1, + .HAVE_FTRUNCATE = 1, + .HAVE_FUNC_ATTRIBUTE1_ALLOC_SIZE = 1, + .HAVE_FUNC_ATTRIBUTE2_ALLOC_SIZE = null, + .HAVE_FUNC_ATTRIBUTE3_FORMAT = 1, + .HAVE_FUNC_ATTRIBUTE_COLD = 1, + .HAVE_FUNC_ATTRIBUTE_CONST = 1, + .HAVE_FUNC_ATTRIBUTE_ERROR = 1, + .HAVE_FUNC_ATTRIBUTE_MALLOC = 1, + .HAVE_FUNC_ATTRIBUTE_NORETURN = 1, + .HAVE_FUNC_ATTRIBUTE_PURE = 1, + .HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL = 1, + .HAVE_FUNC_ATTRIBUTE_SENTINEL = 1, + .HAVE_FUNC_ATTRIBUTE_UNUSED = 1, + .HAVE_FUNC_PTR_ATTRIBUTE1_ALLOC_SIZE = 1, + .HAVE_FUNC_PTR_ATTRIBUTE2_ALLOC_SIZE = null, + .HAVE_FUNC_PTR_ATTRIBUTE3_FORMAT = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_COLD = null, + .HAVE_FUNC_PTR_ATTRIBUTE_CONST = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_MALLOC = null, + .HAVE_FUNC_PTR_ATTRIBUTE_NORETURN = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_PURE = null, + .HAVE_FUNC_PTR_ATTRIBUTE_RETURNS_NONNULL = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_SENTINEL = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_UNUSED = 1, + .HAVE_GETGID = null, + .HAVE_GETPAGESIZE = null, + .HAVE_GETRLIMIT = null, + .HAVE_GETUID = null, + .HAVE_HTOLE16 = null, + .HAVE_HTOLE32 = null, + .HAVE_HTOLE64 = null, + .HAVE_INTRIN_H = 1, + .HAVE_INTTYPES_H = 1, + .HAVE_IO_H = null, + .HAVE_ISASCII = 1, + .HAVE_ISCNTRL = 1, + .HAVE_MACHINE_ENDIAN_H = null, + .HAVE_MEMPCPY = 1, + .HAVE_MEMPSET = null, + .HAVE_MINIX_CONFIG_H = null, + .HAVE_MMAP = null, + .HAVE_PATHCONF = null, + .HAVE_REALPATH = null, + .HAVE_SNPRINTF = 1, + .HAVE_STAT = 1, + .HAVE_STDARG_H = 1, + .HAVE_STDBOOL_H = 1, + .HAVE_STDC_INLINE = 1, + .HAVE_STDINT_H = 1, + .HAVE_STDIO_H = 1, + .HAVE_STDLIB_H = 1, + .HAVE_STDNORETURN_H = 1, + .HAVE_STRCASECMP = 1, + .HAVE_STRICMP = 1, + .HAVE_STRINGS_H = 1, + .HAVE_STRING_H = 1, + .HAVE_STRLCPY = null, + .HAVE_STRNCASECMP = 1, + .HAVE_STRNICMP = 1, + .HAVE_STRNLEN = 1, + .HAVE_STRRCHRNUL = null, + .HAVE_STRSEP = null, + .HAVE_STRUCT_STAT = null, + .HAVE_STRUCT__STATI64 = null, + .HAVE_SYSCONF = null, + .HAVE_SYS_ENDIAN_H = null, + .HAVE_SYS_MMAN_H = null, + .HAVE_SYS_PARAM_H = null, + .HAVE_SYS_RESOURCE_H = null, + .HAVE_SYS_STAT_H = 1, + .HAVE_SYS_TYPES_H = 1, + .HAVE_S_ISREG = null, + .HAVE_TYPEOF = null, + .HAVE_UINTPTR_T = 1, + .HAVE_UNISTD_H = null, + .HAVE_VSNPRINTF = 1, + .HAVE_WCHAR_H = null, + .HAVE__ACCESS = null, + .HAVE__BITSCANREVERSE = null, + .HAVE__BITSCANREVERSE64 = null, + .HAVE__BOOL = 1, + .HAVE__BYTESWAP_UINT64 = null, + .HAVE__BYTESWAP_ULONG = null, + .HAVE__BYTESWAP_USHORT = null, + .HAVE__CHSIZE = null, + .HAVE__CHSIZE_S = null, + .HAVE__FILENO = null, + .HAVE__FSEEKI64 = null, + .HAVE__FSTATI64 = null, + .HAVE__FULLPATH = null, + .HAVE__STATI64 = null, + .HAVE___BSWAP_16 = 1, + .HAVE___BSWAP_32 = 1, + .HAVE___BSWAP_64 = 1, + .HAVE___BUILTIN_BSWAP16 = 1, + .HAVE___BUILTIN_BSWAP32 = 1, + .HAVE___BUILTIN_BSWAP64 = 1, + .HAVE___BUILTIN_CHOOSE_EXPR = 1, + .HAVE___BUILTIN_CLZ = 1, + .HAVE___BUILTIN_CLZL = 1, + .HAVE___BUILTIN_CLZLL = 1, + .HAVE___BUILTIN_CONSTANT_P = 1, + .HAVE___BUILTIN_EXPECT = 1, + .HAVE___CPU_TO_LE16 = null, + .HAVE___CPU_TO_LE32 = null, + .HAVE___CPU_TO_LE64 = null, + .LDFLAGS_WL_GC_SECTIONS = null, + .PACKAGE_BUGREPORT = "", + .PACKAGE_NAME = "", + .PACKAGE_STRING = "", + .PACKAGE_TARNAME = "", + .PACKAGE_URL = "", + .PACKAGE_VERSION = "", + .STDC_HEADERS = 1, + ._ALL_SOURCE = 1, + ._DARWIN_C_SOURCE = 1, + .__EXTENSIONS__ = 1, + ._GNU_SOURCE = 1, + ._HPUX_ALT_XOPEN_SOCKET_API = 1, + ._MINIX = null, + ._NETBSD_SOURCE = 1, + ._OPENBSD_SOURCE = 1, + ._POSIX_SOURCE = null, + ._POSIX_1_SOURCE = null, + ._POSIX_PTHREAD_SEMANTICS = 1, + .__STDC_WANT_IEC_60559_ATTRIBS_EXT__ = 1, + .__STDC_WANT_IEC_60559_BFP_EXT__ = 1, + .__STDC_WANT_IEC_60559_DFP_EXT__ = 1, + .__STDC_WANT_IEC_60559_FUNCS_EXT__ = 1, + .__STDC_WANT_IEC_60559_TYPES_EXT__ = 1, + .__STDC_WANT_LIB_EXT2__ = 1, + .__STDC_WANT_MATH_SPEC_FUNCS__ = 1, + ._TANDEM_SOURCE = 1, + ._XOPEN_SOURCE = null, + .WORDS_BIGENDIAN = have(t.cpu.arch.endian() == .big), + .WORDS_LITTLEENDIAN = have(t.cpu.arch.endian() != .big), + ._FILE_OFFSET_BITS = null, + ._LARGEFILE_SOURCE = null, + ._LARGE_FILES = null, + .@"const" = .@"const", + .@"inline" = .@"inline", + .restrict = .restrict, + .size_t = null, + .snprintf = null, + .typeof = .__typeof, + .uintptr_t = null, + .vsnprintf = null, + })); + } else if (b.graph.host.result.os.tag.isDarwin()) { + exe.addConfigHeader(b.addConfigHeader(.{ + .style = .{ .autoconf = b.path("config/config.h.in") }, + .include_path = "config/config.h", + }, .{ + // Define to 1 to call abort() on panics (internal errors), for debugging. + .ABORT_ON_PANIC = null, + // Define if building universal (internal helper macro) + .AC_APPLE_UNIVERSAL_BUILD = null, + // Compiler flags + .CFLAGS_STD_C11 = null, + .CFLAGS_STD_C17 = 1, + .CFLAGS_STD_C99 = null, + .CFLAGS_WC90_C99_COMPAT = null, + .CFLAGS_WC99_COMPAT = null, + .CFLAGS_WC99_EXTENSIONS = null, + .CFLAGS_WERROR_ATTRIBUTES = null, + .CFLAGS_FDATA_SECTIONS = 1, + .CFLAGS_FFUNCTION_SECTIONS = 1, + .CFLAGS_FGNU89_INLINE = null, + .CFLAGS_FLTO = null, + .CFLAGS_FNO_COMMON = 1, + .CFLAGS_FNO_OMIT_FRAME_POINTER = null, + .CFLAGS_FSANITIZE_ADDRESS = null, + .CFLAGS_FSANITIZE_UNDEFINED = null, + .CFLAGS_FTRIVIAL_AUTO_VAR_INIT_ZERO = 1, + .CFLAGS_FVISIBILITY_HIDDEN = 1, + .CFLAGS_FWRAPV = 1, + .CFLAGS_GGDB3 = 1, + .CFLAGS_O0 = have(optimize == .Debug), + .CFLAGS_PEDANTIC = 1, + .CFLAGS_PG = null, + .CFLAGS_U_STRICT_ANSI = 1, + .CFLAGS_W = 1, + .CFLAGS_WALL = 1, + .CFLAGS_WERROR = null, + .CFLAGS_WERROR_COMMENT = 1, + .CFLAGS_WERROR_IMPLICIT = 1, + .CFLAGS_WERROR_MISSING_BRACES = 1, + .CFLAGS_WERROR_MISSING_DECLARATIONS = 1, + .CFLAGS_WERROR_MISSING_PROTOTYPES = 1, + .CFLAGS_WERROR_POINTER_ARITH = 1, + .CFLAGS_WERROR_RETURN_TYPE = 1, + .CFLAGS_WERROR_STRICT_PROTOTYPES = 1, + .CFLAGS_WERROR_TRIGRAPHS = 1, + .CFLAGS_WERROR_UNKNOWN_WARNING_OPTION = 1, + .CFLAGS_WERROR_VLA = 1, + .CFLAGS_WLONG_LONG = null, + .CFLAGS_WPEDANTIC_MS_FORMAT = null, + .CFLAGS_WSHIFT_NEGATIVE_VALUE = null, + .CFLAGS_WSTRINGOP_TRUNCATION = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_COLD = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_CONST = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_FORMAT = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_MALLOC = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_NORETURN = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_PURE = null, + + // Function availability + .HAVE_ACCESS = 1, + .HAVE_CANONICALIZE_FILE_NAME = null, + .HAVE_CPU_TO_LE16 = null, + .HAVE_CPU_TO_LE32 = null, + .HAVE_CPU_TO_LE64 = null, + .HAVE_FACCESSAT = 1, + .HAVE_FILENO = 1, + .HAVE_FSEEKO = 1, + .HAVE_FSTAT = 1, + .HAVE_FTRUNCATE = 1, + .HAVE_GETGID = 1, + .HAVE_GETPAGESIZE = 1, + .HAVE_GETRLIMIT = 1, + .HAVE_GETUID = 1, + .HAVE_HTOLE16 = null, + .HAVE_HTOLE32 = null, + .HAVE_HTOLE64 = null, + .HAVE_ISASCII = 1, + .HAVE_ISCNTRL = 1, + .HAVE_MEMPCPY = null, + .HAVE_MEMPSET = null, + .HAVE_MMAP = 1, + .HAVE_PATHCONF = 1, + .HAVE_REALPATH = 1, + .HAVE_SNPRINTF = 1, + .HAVE_STAT = 1, + .HAVE_STRCASECMP = 1, + .HAVE_STRICMP = null, + .HAVE_STRLCPY = 1, + .HAVE_STRNCASECMP = 1, + .HAVE_STRNICMP = null, + .HAVE_STRNLEN = 1, + .HAVE_STRRCHRNUL = null, + .HAVE_STRSEP = 1, + .HAVE_SYSCONF = 1, + .HAVE_S_ISREG = null, + .HAVE_VSNPRINTF = 1, + .HAVE__ACCESS = null, + .HAVE__BITSCANREVERSE = null, + .HAVE__BITSCANREVERSE64 = null, + .HAVE__BYTESWAP_UINT64 = null, + .HAVE__BYTESWAP_ULONG = null, + .HAVE__BYTESWAP_USHORT = null, + .HAVE__CHSIZE = null, + .HAVE__CHSIZE_S = null, + .HAVE__FILENO = null, + .HAVE__FSEEKI64 = null, + .HAVE__FSTATI64 = null, + .HAVE__FULLPATH = null, + .HAVE__STATI64 = null, + + // Function declarations + .HAVE_DECL_STRCASECMP = 1, + .HAVE_DECL_STRICMP = 0, + .HAVE_DECL_STRLCPY = 1, + .HAVE_DECL_STRNCASECMP = 1, + .HAVE_DECL_STRNICMP = 0, + .HAVE_DECL_STRNLEN = 1, + .HAVE_DECL_STRRCHRNUL = 0, + .HAVE_DECL_STRSEP = 1, + + // Header files + .HAVE_ENDIAN_H = null, + .HAVE_FCNTL_H = 1, + .HAVE_INTRIN_H = null, + .HAVE_INTTYPES_H = 1, + .HAVE_IO_H = null, + .HAVE_MACHINE_ENDIAN_H = 1, + .HAVE_MINIX_CONFIG_H = null, + .HAVE_STDARG_H = 1, + .HAVE_STDBOOL_H = 1, + .HAVE_STDINT_H = 1, + .HAVE_STDIO_H = 1, + .HAVE_STDLIB_H = 1, + .HAVE_STDNORETURN_H = 1, + .HAVE_STRINGS_H = 1, + .HAVE_STRING_H = 1, + .HAVE_SYS_ENDIAN_H = null, + .HAVE_SYS_MMAN_H = 1, + .HAVE_SYS_PARAM_H = 1, + .HAVE_SYS_RESOURCE_H = 1, + .HAVE_SYS_STAT_H = 1, + .HAVE_SYS_TYPES_H = 1, + .HAVE_UNISTD_H = 1, + .HAVE_WCHAR_H = 1, + + // Built-in functions + .HAVE___BSWAP_16 = null, + .HAVE___BSWAP_32 = null, + .HAVE___BSWAP_64 = null, + .HAVE___BUILTIN_BSWAP16 = 1, + .HAVE___BUILTIN_BSWAP32 = 1, + .HAVE___BUILTIN_BSWAP64 = 1, + .HAVE___BUILTIN_CHOOSE_EXPR = 1, + .HAVE___BUILTIN_CLZ = 1, + .HAVE___BUILTIN_CLZL = 1, + .HAVE___BUILTIN_CLZLL = 1, + .HAVE___BUILTIN_CONSTANT_P = 1, + .HAVE___BUILTIN_EXPECT = 1, + .HAVE___CPU_TO_LE16 = null, + .HAVE___CPU_TO_LE32 = null, + .HAVE___CPU_TO_LE64 = null, + + // Function attributes + .HAVE_FUNC_ATTRIBUTE1_ALLOC_SIZE = 1, + .HAVE_FUNC_ATTRIBUTE2_ALLOC_SIZE = 1, + .HAVE_FUNC_ATTRIBUTE3_FORMAT = 1, + .HAVE_FUNC_ATTRIBUTE_COLD = 1, + .HAVE_FUNC_ATTRIBUTE_CONST = 1, + .HAVE_FUNC_ATTRIBUTE_ERROR = 1, + .HAVE_FUNC_ATTRIBUTE_MALLOC = null, + .HAVE_FUNC_ATTRIBUTE_NORETURN = 1, + .HAVE_FUNC_ATTRIBUTE_PURE = 1, + .HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL = 1, + .HAVE_FUNC_ATTRIBUTE_SENTINEL = 1, + .HAVE_FUNC_ATTRIBUTE_UNUSED = 1, + + // Function pointer attributes + .HAVE_FUNC_PTR_ATTRIBUTE1_ALLOC_SIZE = 1, + .HAVE_FUNC_PTR_ATTRIBUTE2_ALLOC_SIZE = 1, + .HAVE_FUNC_PTR_ATTRIBUTE3_FORMAT = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_COLD = null, + .HAVE_FUNC_PTR_ATTRIBUTE_CONST = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_MALLOC = null, + .HAVE_FUNC_PTR_ATTRIBUTE_NORETURN = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_PURE = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_RETURNS_NONNULL = null, + .HAVE_FUNC_PTR_ATTRIBUTE_SENTINEL = null, + .HAVE_FUNC_PTR_ATTRIBUTE_UNUSED = 1, + + // Types and features + .HAVE_STDC_INLINE = 1, + .HAVE_STRUCT_STAT = 1, + .HAVE_STRUCT__STATI64 = null, + .HAVE_TYPEOF = 1, + .HAVE_UINTPTR_T = 1, + .HAVE__BOOL = 1, + + // Linker flags + .LDFLAGS_WL_GC_SECTIONS = null, + + // Package information + .PACKAGE_BUGREPORT = "", + .PACKAGE_NAME = "", + .PACKAGE_STRING = "", + .PACKAGE_TARNAME = "", + .PACKAGE_URL = "", + .PACKAGE_VERSION = "", + + // Standard headers + .STDC_HEADERS = 1, + + // Feature test macros + ._ALL_SOURCE = 1, + ._DARWIN_C_SOURCE = 1, + .__EXTENSIONS__ = 1, + ._GNU_SOURCE = 1, + ._HPUX_ALT_XOPEN_SOCKET_API = 1, + ._MINIX = null, + ._NETBSD_SOURCE = 1, + ._OPENBSD_SOURCE = 1, + ._POSIX_SOURCE = null, + ._POSIX_1_SOURCE = null, + ._POSIX_PTHREAD_SEMANTICS = 1, + .__STDC_WANT_IEC_60559_BFP_EXT__ = 1, + .__STDC_WANT_IEC_60559_DFP_EXT__ = 1, + .__STDC_WANT_IEC_60559_FUNCS_EXT__ = 1, + .__STDC_WANT_IEC_60559_ATTRIBS_EXT__ = 1, + .__STDC_WANT_IEC_60559_TYPES_EXT__ = 1, + .__STDC_WANT_LIB_EXT2__ = 1, + .__STDC_WANT_MATH_SPEC_FUNCS__ = 1, + ._TANDEM_SOURCE = 1, + ._XOPEN_SOURCE = null, + + // Endianness + .WORDS_BIGENDIAN = null, + .WORDS_LITTLEENDIAN = 1, + + // File offset bits + ._FILE_OFFSET_BITS = null, + ._LARGEFILE_SOURCE = null, + ._LARGE_FILES = null, + + // Type definitions and replacements + .@"const" = null, + .@"inline" = null, + .restrict = .__restrict__, + .size_t = null, + .snprintf = null, + .typeof = .__typeof, + .uintptr_t = null, + .vsnprintf = null, + })); + } else if (b.graph.host.result.os.tag == .linux) { + exe.addConfigHeader(b.addConfigHeader(.{ + .style = .{ .autoconf = b.path("config/config.h.in") }, + .include_path = "config/config.h", + }, .{ + .ABORT_ON_PANIC = have(optimize == .Debug), + .AC_APPLE_UNIVERSAL_BUILD = null, + .CFLAGS_FDATA_SECTIONS = null, + .CFLAGS_FFUNCTION_SECTIONS = null, + .CFLAGS_FGNU89_INLINE = null, + .CFLAGS_FLTO = null, + .CFLAGS_FNO_COMMON = null, + .CFLAGS_FNO_OMIT_FRAME_POINTER = null, + .CFLAGS_FSANITIZE_ADDRESS = null, + .CFLAGS_FSANITIZE_UNDEFINED = null, + .CFLAGS_FTRIVIAL_AUTO_VAR_INIT_ZERO = null, + .CFLAGS_FVISIBILITY_HIDDEN = null, + .CFLAGS_FWRAPV = null, + .CFLAGS_GGDB3 = null, + .CFLAGS_O0 = have(optimize == .Debug), + .CFLAGS_PEDANTIC = null, + .CFLAGS_PG = null, + .CFLAGS_STD_C11 = null, + .CFLAGS_STD_C17 = 1, + .CFLAGS_STD_C99 = null, + .CFLAGS_U_STRICT_ANSI = null, + .CFLAGS_W = null, + .CFLAGS_WALL = null, + .CFLAGS_WC90_C99_COMPAT = null, + .CFLAGS_WC99_COMPAT = null, + .CFLAGS_WC99_EXTENSIONS = null, + .CFLAGS_WERROR = null, + .CFLAGS_WERROR_ATTRIBUTES = null, + .CFLAGS_WERROR_COMMENT = null, + .CFLAGS_WERROR_IMPLICIT = null, + .CFLAGS_WERROR_MISSING_BRACES = null, + .CFLAGS_WERROR_MISSING_DECLARATIONS = null, + .CFLAGS_WERROR_MISSING_PROTOTYPES = null, + .CFLAGS_WERROR_POINTER_ARITH = null, + .CFLAGS_WERROR_RETURN_TYPE = null, + .CFLAGS_WERROR_STRICT_PROTOTYPES = null, + .CFLAGS_WERROR_TRIGRAPHS = null, + .CFLAGS_WERROR_UNKNOWN_WARNING_OPTION = null, + .CFLAGS_WERROR_VLA = null, + .CFLAGS_WLONG_LONG = null, + .CFLAGS_WPEDANTIC_MS_FORMAT = null, + .CFLAGS_WSHIFT_NEGATIVE_VALUE = null, + .CFLAGS_WSTRINGOP_TRUNCATION = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_COLD = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_CONST = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_FORMAT = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_MALLOC = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_NORETURN = null, + .CFLAGS_WSUGGEST_ATTRIBUTE_PURE = null, + .HAVE_ACCESS = 1, + .HAVE_CANONICALIZE_FILE_NAME = null, + .HAVE_CPU_TO_LE16 = null, + .HAVE_CPU_TO_LE32 = null, + .HAVE_CPU_TO_LE64 = null, + .HAVE_DECL_STRCASECMP = 0, + .HAVE_DECL_STRICMP = 0, + .HAVE_DECL_STRLCPY = 0, + .HAVE_DECL_STRNCASECMP = 0, + .HAVE_DECL_STRNICMP = 0, + .HAVE_DECL_STRNLEN = 0, + .HAVE_DECL_STRRCHRNUL = 0, + .HAVE_DECL_STRSEP = 0, + .HAVE_ENDIAN_H = 1, + .HAVE_FACCESSAT = 1, + .HAVE_FCNTL_H = 1, + .HAVE_FILENO = 1, + .HAVE_FSEEKO = 1, + .HAVE_FSTAT = 1, + .HAVE_FTRUNCATE = 1, + .HAVE_FUNC_ATTRIBUTE1_ALLOC_SIZE = 1, + .HAVE_FUNC_ATTRIBUTE2_ALLOC_SIZE = null, + .HAVE_FUNC_ATTRIBUTE3_FORMAT = 1, + .HAVE_FUNC_ATTRIBUTE_COLD = 1, + .HAVE_FUNC_ATTRIBUTE_CONST = 1, + .HAVE_FUNC_ATTRIBUTE_ERROR = 1, + .HAVE_FUNC_ATTRIBUTE_MALLOC = 1, + .HAVE_FUNC_ATTRIBUTE_NORETURN = 1, + .HAVE_FUNC_ATTRIBUTE_PURE = 1, + .HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL = 1, + .HAVE_FUNC_ATTRIBUTE_SENTINEL = 1, + .HAVE_FUNC_ATTRIBUTE_UNUSED = 1, + .HAVE_FUNC_PTR_ATTRIBUTE1_ALLOC_SIZE = 1, + .HAVE_FUNC_PTR_ATTRIBUTE2_ALLOC_SIZE = null, + .HAVE_FUNC_PTR_ATTRIBUTE3_FORMAT = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_COLD = null, + .HAVE_FUNC_PTR_ATTRIBUTE_CONST = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_MALLOC = null, + .HAVE_FUNC_PTR_ATTRIBUTE_NORETURN = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_PURE = null, + .HAVE_FUNC_PTR_ATTRIBUTE_RETURNS_NONNULL = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_SENTINEL = 1, + .HAVE_FUNC_PTR_ATTRIBUTE_UNUSED = 1, + .HAVE_GETGID = null, + .HAVE_GETPAGESIZE = null, + .HAVE_GETRLIMIT = null, + .HAVE_GETUID = null, + .HAVE_HTOLE16 = null, + .HAVE_HTOLE32 = null, + .HAVE_HTOLE64 = null, + .HAVE_INTRIN_H = 1, + .HAVE_INTTYPES_H = 1, + .HAVE_IO_H = null, + .HAVE_ISASCII = 1, + .HAVE_ISCNTRL = 1, + .HAVE_MACHINE_ENDIAN_H = 1, + .HAVE_MEMPCPY = 1, + .HAVE_MEMPSET = null, + .HAVE_MINIX_CONFIG_H = null, + .HAVE_MMAP = 1, + .HAVE_PATHCONF = null, + .HAVE_REALPATH = 1, + .HAVE_SNPRINTF = 1, + .HAVE_STAT = 1, + .HAVE_STDARG_H = 1, + .HAVE_STDBOOL_H = 1, + .HAVE_STDC_INLINE = 1, + .HAVE_STDINT_H = 1, + .HAVE_STDIO_H = 1, + .HAVE_STDLIB_H = 1, + .HAVE_STDNORETURN_H = 1, + .HAVE_STRCASECMP = 1, + .HAVE_STRICMP = 1, + .HAVE_STRINGS_H = 1, + .HAVE_STRING_H = 1, + .HAVE_STRLCPY = null, + .HAVE_STRNCASECMP = 1, + .HAVE_STRNICMP = 1, + .HAVE_STRNLEN = 1, + .HAVE_STRRCHRNUL = null, + .HAVE_STRSEP = null, + .HAVE_STRUCT_STAT = null, + .HAVE_STRUCT__STATI64 = null, + .HAVE_SYSCONF = null, + .HAVE_SYS_ENDIAN_H = 1, + .HAVE_SYS_MMAN_H = 1, + .HAVE_SYS_PARAM_H = null, + .HAVE_SYS_RESOURCE_H = null, + .HAVE_SYS_STAT_H = 1, + .HAVE_SYS_TYPES_H = 1, + .HAVE_S_ISREG = null, + .HAVE_TYPEOF = null, + .HAVE_UINTPTR_T = 1, + .HAVE_UNISTD_H = null, + .HAVE_VSNPRINTF = null, + .HAVE_WCHAR_H = null, + .HAVE__ACCESS = null, + .HAVE__BITSCANREVERSE = null, + .HAVE__BITSCANREVERSE64 = null, + .HAVE__BOOL = 1, + .HAVE__BYTESWAP_UINT64 = null, + .HAVE__BYTESWAP_ULONG = null, + .HAVE__BYTESWAP_USHORT = null, + .HAVE__CHSIZE = null, + .HAVE__CHSIZE_S = null, + .HAVE__FILENO = null, + .HAVE__FSEEKI64 = null, + .HAVE__FSTATI64 = null, + .HAVE__FULLPATH = null, + .HAVE__STATI64 = null, + .HAVE___BSWAP_16 = 1, + .HAVE___BSWAP_32 = 1, + .HAVE___BSWAP_64 = 1, + .HAVE___BUILTIN_BSWAP16 = 1, + .HAVE___BUILTIN_BSWAP32 = 1, + .HAVE___BUILTIN_BSWAP64 = 1, + .HAVE___BUILTIN_CHOOSE_EXPR = 1, + .HAVE___BUILTIN_CLZ = 1, + .HAVE___BUILTIN_CLZL = 1, + .HAVE___BUILTIN_CLZLL = 1, + .HAVE___BUILTIN_CONSTANT_P = 1, + .HAVE___BUILTIN_EXPECT = 1, + .HAVE___CPU_TO_LE16 = null, + .HAVE___CPU_TO_LE32 = null, + .HAVE___CPU_TO_LE64 = null, + .LDFLAGS_WL_GC_SECTIONS = null, + .PACKAGE_BUGREPORT = "", + .PACKAGE_NAME = "", + .PACKAGE_STRING = "", + .PACKAGE_TARNAME = "", + .PACKAGE_URL = "", + .PACKAGE_VERSION = "", + .STDC_HEADERS = 1, + ._ALL_SOURCE = 1, + ._DARWIN_C_SOURCE = 1, + .__EXTENSIONS__ = 1, + ._GNU_SOURCE = 1, + ._HPUX_ALT_XOPEN_SOCKET_API = 1, + ._MINIX = null, + ._NETBSD_SOURCE = 1, + ._OPENBSD_SOURCE = 1, + ._POSIX_SOURCE = null, + ._POSIX_1_SOURCE = null, + ._POSIX_PTHREAD_SEMANTICS = 1, + .__STDC_WANT_IEC_60559_ATTRIBS_EXT__ = 1, + .__STDC_WANT_IEC_60559_BFP_EXT__ = 1, + .__STDC_WANT_IEC_60559_DFP_EXT__ = 1, + .__STDC_WANT_IEC_60559_FUNCS_EXT__ = 1, + .__STDC_WANT_IEC_60559_TYPES_EXT__ = 1, + .__STDC_WANT_LIB_EXT2__ = 1, + .__STDC_WANT_MATH_SPEC_FUNCS__ = 1, + ._TANDEM_SOURCE = 1, + ._XOPEN_SOURCE = null, + .WORDS_BIGENDIAN = have(t.cpu.arch.endian() == .big), + .WORDS_LITTLEENDIAN = have(t.cpu.arch.endian() != .big), + ._FILE_OFFSET_BITS = null, + ._LARGEFILE_SOURCE = null, + ._LARGE_FILES = null, + .@"const" = .@"const", + .@"inline" = .@"inline", + .restrict = .restrict, + .size_t = null, + .snprintf = null, + .typeof = .__typeof, + .uintptr_t = null, + .vsnprintf = null, + })); + } + + const files = [_][]const u8{ + "nasmlib/alloc.c", + "nasmlib/asprintf.c", + "nasmlib/badenum.c", + "nasmlib/bsi.c", + "nasmlib/crc32.c", + "nasmlib/crc64.c", + "nasmlib/file.c", + "nasmlib/filename.c", + "nasmlib/hashtbl.c", + "nasmlib/ilog2.c", + "nasmlib/md5c.c", + "nasmlib/mmap.c", + "nasmlib/nctype.c", + "nasmlib/path.c", + "nasmlib/perfhash.c", + "nasmlib/raa.c", + "nasmlib/rbtree.c", + "nasmlib/readnum.c", + "nasmlib/realpath.c", + "nasmlib/rlimit.c", + "nasmlib/saa.c", + "nasmlib/string.c", + "nasmlib/strlist.c", + "nasmlib/ver.c", + "nasmlib/zerobuf.c", + + "asm/assemble.c", + "asm/directbl.c", + "asm/directiv.c", + "asm/error.c", + "asm/eval.c", + "asm/exprdump.c", + "asm/exprlib.c", + "asm/floats.c", + "asm/labels.c", + "asm/listing.c", + "asm/nasm.c", + "asm/parser.c", + "asm/pptok.c", + "asm/pragma.c", + "asm/preproc.c", + "asm/quote.c", + "asm/rdstrnum.c", + "asm/segalloc.c", + "asm/srcfile.c", + "asm/stdscan.c", + "asm/strfunc.c", + "asm/tokhash.c", + "asm/warnings.c", + + "stdlib/snprintf.c", + "stdlib/strlcpy.c", + "stdlib/strnlen.c", + "stdlib/strrchrnul.c", + "stdlib/vsnprintf.c", + + "x86/disp8.c", + "x86/iflag.c", + "x86/insnsa.c", + "x86/insnsb.c", + "x86/insnsd.c", + "x86/insnsn.c", + "x86/regflags.c", + "x86/regs.c", + "x86/regvals.c", + + "common/common.c", + + "macros/macros.c", + + "output/codeview.c", + "output/legacy.c", + "output/nulldbg.c", + "output/nullout.c", + "output/outaout.c", + "output/outas86.c", + "output/outbin.c", + "output/outcoff.c", + "output/outdbg.c", + "output/outelf.c", + "output/outform.c", + "output/outieee.c", + "output/outlib.c", + "output/outmacho.c", + "output/outobj.c", + }; + const flags = [_][]const u8{ + "-DHAVE_CONFIG_H", + "-std=c17", + "-Wno-implicit-function-declaration", + }; + exe.addCSourceFiles(.{ + .files = &files, + .flags = &flags, + }); + exe.linkLibC(); + b.installArtifact(exe); +} + +fn have(c: bool) ?c_int { + return if (c) 1 else null; +} |