#ifndef NASM_OUTFORM_H
#define NASM_OUTFORM_H
#include "nasm.h"
#ifndef OF_ONLY
#ifndef OF_ALL
#define OF_ALL …
#endif
#endif
#ifdef OF_ALL
#ifndef OF_BIN
#define OF_BIN
#endif
#ifndef OF_OBJ
#define OF_OBJ
#endif
#ifndef OF_ELF32
#define OF_ELF32
#endif
#ifndef OF_ELFX32
#define OF_ELFX32
#endif
#ifndef OF_ELF64
#define OF_ELF64
#endif
#ifndef OF_COFF
#define OF_COFF
#endif
#ifndef OF_AOUT
#define OF_AOUT
#endif
#ifndef OF_AOUTB
#define OF_AOUTB
#endif
#ifndef OF_WIN32
#define OF_WIN32
#endif
#ifndef OF_WIN64
#define OF_WIN64
#endif
#ifndef OF_AS86
#define OF_AS86
#endif
#ifndef OF_RDF2
#define OF_RDF2
#endif
#ifndef OF_IEEE
#define OF_IEEE
#endif
#ifndef OF_MACHO32
#define OF_MACHO32
#endif
#ifndef OF_MACHO64
#define OF_MACHO64
#endif
#ifndef OF_DBG
#define OF_DBG
#endif
#endif
#ifdef OF_DOS
#ifndef OF_OBJ
#define OF_OBJ
#endif
#ifndef OF_BIN
#define OF_BIN
#endif
#ifndef OF_COFF
#define OF_COFF …
#endif
#ifndef OF_WIN32
#define OF_WIN32
#endif
#ifndef OF_WIN64
#define OF_WIN64
#endif
#endif
#ifdef OF_UNIX
#ifndef OF_AOUT
#define OF_AOUT
#endif
#ifndef OF_AOUTB
#define OF_AOUTB
#endif
#ifndef OF_COFF
#define OF_COFF
#endif
#ifndef OF_ELF32
#define OF_ELF32
#endif
#ifndef OF_ELF64
#define OF_ELF64
#endif
#ifndef OF_ELFX32
#define OF_ELFX32
#endif
#endif
#ifdef OF_OTHERS
#ifndef OF_BIN
#define OF_BIN
#endif
#ifndef OF_AS86
#define OF_AS86
#endif
#ifndef OF_RDF2
#define OF_RDF2
#endif
#ifndef OF_IEEE
#define OF_IEEE
#endif
#ifndef OF_MACHO32
#define OF_MACHO32
#endif
#ifndef OF_MACHO64
#define OF_MACHO64
#endif
#endif
#ifdef OF_NO_BIN
#undef OF_BIN
#endif
#ifdef OF_NO_OBJ
#undef OF_OBJ
#endif
#ifdef OF_NO_ELF32
#undef OF_ELF32
#endif
#ifdef OF_NO_ELF64
#undef OF_ELF64
#endif
#ifdef OF_NO_ELFX32
#undef OF_ELFX32
#endif
#ifdef OF_NO_AOUT
#undef OF_AOUT
#endif
#ifdef OF_NO_AOUTB
#undef OF_AOUTB
#endif
#ifdef OF_NO_COFF
#undef OF_COFF
#endif
#ifdef OF_NO_WIN32
#undef OF_WIN32
#endif
#ifdef OF_NO_WIN64
#undef OF_WIN64
#endif
#ifdef OF_NO_AS86
#undef OF_AS86
#endif
#ifdef OF_NO_RDF2
#undef OF_RDF2
#endif
#ifdef OF_NO_IEEE
#undef OF_IEEE
#endif
#ifdef OF_NO_MACHO32
#undef OF_MACHO32
#endif
#ifdef OF_NO_MACHO64
#undef OF_MACHO64
#endif
#ifdef OF_NO_DBG
#undef OF_DBG
#endif
#ifndef OF_DEFAULT
#define OF_DEFAULT …
#endif
extern const struct ofmt of_bin;
extern const struct ofmt of_ith;
extern const struct ofmt of_srec;
extern const struct ofmt of_aout;
extern const struct ofmt of_aoutb;
extern const struct ofmt of_coff;
extern const struct ofmt of_elf32;
extern const struct ofmt of_elfx32;
extern const struct ofmt of_elf64;
extern const struct ofmt of_as86;
extern const struct ofmt of_obj;
extern const struct ofmt of_win32;
extern const struct ofmt of_win64;
extern const struct ofmt of_rdf2;
extern const struct ofmt of_ieee;
extern const struct ofmt of_macho32;
extern const struct ofmt of_macho64;
extern const struct ofmt of_dbg;
#ifdef BUILD_DRIVERS_ARRAY
static const struct ofmt * const drivers[] = {
#ifdef OF_BIN
&of_bin,
&of_ith,
&of_srec,
#endif
#ifdef OF_AOUT
&of_aout,
#endif
#ifdef OF_AOUTB
&of_aoutb,
#endif
#ifdef OF_COFF
&of_coff,
#endif
#ifdef OF_ELF32
&of_elf32,
#endif
#ifdef OF_ELF64
&of_elf64,
#endif
#ifdef OF_ELFX32
&of_elfx32,
#endif
#ifdef OF_AS86
&of_as86,
#endif
#ifdef OF_OBJ
&of_obj,
#endif
#ifdef OF_WIN32
&of_win32,
#endif
#ifdef OF_WIN64
&of_win64,
#endif
#ifdef OF_RDF2
&of_rdf2,
#endif
#ifdef OF_IEEE
&of_ieee,
#endif
#ifdef OF_MACHO32
&of_macho32,
#endif
#ifdef OF_MACHO64
&of_macho64,
#endif
#ifdef OF_DBG
&of_dbg,
#endif
NULL
};
static const struct ofmt_alias ofmt_aliases[] = {
#ifdef OF_ELF32
{ "elf", &of_elf32 },
#endif
#ifdef OF_MACHO32
{ "macho", &of_macho32 },
#endif
#ifdef OF_WIN32
{ "win", &of_win32 },
#endif
{ NULL, NULL }
};
#endif
const struct ofmt *ofmt_find(const char *name, const struct ofmt_alias **ofmt_alias);
const struct dfmt *dfmt_find(const struct ofmt *, const char *);
void ofmt_list(const struct ofmt *, FILE *);
void dfmt_list(FILE *);
extern const struct dfmt null_debug_form;
#endif