# This shell script emits C code -*- C -*- # to keep track of the machine type of Z80 object files # It does some substitutions. # Copyright (C) 2005-2014 Free Software Foundation, Inc. # This file is part of the GNU Binutils. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, # MA 02110-1301, USA. LDEMUL_BEFORE_PARSE=gldz80_before_parse LDEMUL_RECOGNIZED_FILE=gldz80_recognized_file LDEMUL_AFTER_OPEN=gldz80_after_open fragment <the_bfd); switch (mach_type) { case bfd_mach_z80strict: result_mach_type |= M_Z80STRICT; break; case bfd_mach_z80: result_mach_type |= M_Z80; break; case bfd_mach_z80full: result_mach_type |= M_Z80FULL; break; case bfd_mach_r800: result_mach_type |= M_R800; break; default: result_mach_type |= M_Z80ANY; } return FALSE; } /* Set the machine type of the output file based on result_mach_type. */ static void gldz80_after_open (void) { unsigned long mach_type; after_open_default (); switch (result_mach_type) { case M_Z80STRICT: mach_type = bfd_mach_z80strict; break; case M_Z80: mach_type = bfd_mach_z80; break; case M_Z80FULL: mach_type = bfd_mach_z80full; break; case M_R800: mach_type = bfd_mach_r800; break; default: mach_type = 0; } bfd_set_arch_mach (link_info.output_bfd, bfd_arch_z80, mach_type); } /* --- \end{z80.em} */ EOF