1104834Sobrien/* Binutils emulation layer.
2130561Sobrien   Copyright 2002, 2003 Free Software Foundation, Inc.
3218822Sdim   Written by Tom Rix, Red Hat Inc.
4104834Sobrien
5104834Sobrien   This file is part of GNU Binutils.
6104834Sobrien
7104834Sobrien   This program is free software; you can redistribute it and/or modify
8104834Sobrien   it under the terms of the GNU General Public License as published by
9104834Sobrien   the Free Software Foundation; either version 2 of the License, or
10104834Sobrien   (at your option) any later version.
11104834Sobrien
12104834Sobrien   This program is distributed in the hope that it will be useful,
13104834Sobrien   but WITHOUT ANY WARRANTY; without even the implied warranty of
14104834Sobrien   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15104834Sobrien   GNU General Public License for more details.
16104834Sobrien
17104834Sobrien   You should have received a copy of the GNU General Public License
18104834Sobrien   along with this program; if not, write to the Free Software
19218822Sdim   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
20104834Sobrien
21104834Sobrien#include "binemul.h"
22104834Sobrien
23104834Sobrienextern bin_emulation_xfer_type bin_dummy_emulation;
24104834Sobrien
25104834Sobrienvoid
26130561Sobrienar_emul_usage (FILE *fp)
27104834Sobrien{
28104834Sobrien  if (bin_dummy_emulation.ar_usage)
29104834Sobrien    bin_dummy_emulation.ar_usage (fp);
30104834Sobrien}
31104834Sobrien
32104834Sobrienvoid
33130561Sobrienar_emul_default_usage (FILE *fp)
34104834Sobrien{
35104834Sobrien  AR_EMUL_USAGE_PRINT_OPTION_HEADER (fp);
36104834Sobrien  /* xgettext:c-format */
37104834Sobrien  fprintf (fp, _("  No emulation specific options\n"));
38104834Sobrien}
39104834Sobrien
40130561Sobrienbfd_boolean
41130561Sobrienar_emul_append (bfd **after_bfd, char *file_name, bfd_boolean verbose)
42104834Sobrien{
43104834Sobrien  if (bin_dummy_emulation.ar_append)
44104834Sobrien    return bin_dummy_emulation.ar_append (after_bfd, file_name, verbose);
45104834Sobrien
46130561Sobrien  return FALSE;
47104834Sobrien}
48104834Sobrien
49130561Sobrienbfd_boolean
50130561Sobrienar_emul_default_append (bfd **after_bfd, char *file_name,
51130561Sobrien			bfd_boolean verbose)
52104834Sobrien{
53104834Sobrien  bfd *temp;
54104834Sobrien
55104834Sobrien  temp = *after_bfd;
56104834Sobrien  *after_bfd = bfd_openr (file_name, NULL);
57104834Sobrien
58104834Sobrien  AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name);
59104834Sobrien  AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name);
60104834Sobrien
61218822Sdim  (*after_bfd)->archive_next = temp;
62104834Sobrien
63130561Sobrien  return TRUE;
64104834Sobrien}
65104834Sobrien
66130561Sobrienbfd_boolean
67130561Sobrienar_emul_replace (bfd **after_bfd, char *file_name, bfd_boolean verbose)
68104834Sobrien{
69104834Sobrien  if (bin_dummy_emulation.ar_replace)
70104834Sobrien    return bin_dummy_emulation.ar_replace (after_bfd, file_name, verbose);
71104834Sobrien
72130561Sobrien  return FALSE;
73104834Sobrien}
74104834Sobrien
75130561Sobrienbfd_boolean
76130561Sobrienar_emul_default_replace (bfd **after_bfd, char *file_name,
77130561Sobrien			 bfd_boolean verbose)
78104834Sobrien{
79104834Sobrien  bfd *temp;
80104834Sobrien
81104834Sobrien  temp = *after_bfd;
82104834Sobrien  *after_bfd = bfd_openr (file_name, NULL);
83104834Sobrien
84104834Sobrien  AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name);
85104834Sobrien  AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name);
86104834Sobrien
87218822Sdim  (*after_bfd)->archive_next = temp;
88104834Sobrien
89130561Sobrien  return TRUE;
90104834Sobrien}
91104834Sobrien
92130561Sobrienbfd_boolean
93130561Sobrienar_emul_parse_arg (char *arg)
94104834Sobrien{
95104834Sobrien  if (bin_dummy_emulation.ar_parse_arg)
96104834Sobrien    return bin_dummy_emulation.ar_parse_arg (arg);
97104834Sobrien
98130561Sobrien  return FALSE;
99104834Sobrien}
100104834Sobrien
101130561Sobrienbfd_boolean
102130561Sobrienar_emul_default_parse_arg (char *arg ATTRIBUTE_UNUSED)
103104834Sobrien{
104130561Sobrien  return FALSE;
105104834Sobrien}
106