Initial revision
[deliverable/binutils-gdb.git] / ld / ld-emul.c
1 /* Copyright (C) 1991 Free Software Foundation, Inc.
2
3 This file is part of GLD, the Gnu Linker.
4
5 GLD is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 1, or (at your option)
8 any later version.
9
10 GLD is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GLD; see the file COPYING. If not, write to
17 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
18
19 /*
20 * $Id$
21 */
22
23 /*
24 * clearing house for ld emulation states
25 */
26
27 #include "sysdep.h"
28 #include "bfd.h"
29
30 #include "config.h"
31 #include "ld.h"
32 #include "ld-emul.h"
33 #include "ldmisc.h"
34
35 extern ld_emulation_xfer_type ld_lnk960_emulation;
36 extern ld_emulation_xfer_type ld_gld_emulation;
37 extern ld_emulation_xfer_type ld_vanilla_emulation;
38 extern ld_emulation_xfer_type ld_gld68k_emulation;
39 extern ld_emulation_xfer_type ld_gld960_emulation;
40
41
42
43 ld_emulation_xfer_type *ld_emulation;
44
45 void
46 ldemul_hll(name)
47 char *name;
48 {
49 ld_emulation->hll(name);
50 }
51
52
53 void ldemul_syslib(name)
54 char *name;
55 {
56 ld_emulation->syslib(name);
57 }
58
59 void
60 ldemul_after_parse()
61 {
62 ld_emulation->after_parse();
63 }
64
65 void
66 ldemul_before_parse()
67 {
68 ld_emulation->before_parse();
69 }
70
71 void
72 ldemul_after_allocation()
73 {
74 ld_emulation->after_allocation();
75 }
76
77 void
78 ldemul_before_allocation()
79 {
80 if (ld_emulation->before_allocation) {
81 ld_emulation->before_allocation();
82 }
83 }
84
85
86 void
87 ldemul_set_output_arch()
88 {
89 ld_emulation->set_output_arch();
90 }
91
92 char *
93 ldemul_choose_target()
94 {
95 return ld_emulation->choose_target();
96 }
97
98 char *
99 ldemul_get_script()
100 {
101 return ld_emulation->get_script();
102 }
103
104 void
105 ldemul_choose_mode(target)
106 char *target;
107 {
108 if (strcmp(target,LNK960_EMULATION_NAME)==0) {
109 ld_emulation = &ld_lnk960_emulation;
110 }
111 else if (strcmp(target,GLD960_EMULATION_NAME)==0) {
112 ld_emulation = &ld_gld960_emulation;
113 }
114 #ifndef GNU960
115 else if (strcmp(target,GLD_EMULATION_NAME)==0) {
116 ld_emulation = &ld_gld_emulation;
117 }
118 else if (strcmp(target,VANILLA_EMULATION_NAME)==0) {
119 ld_emulation = &ld_vanilla_emulation;
120 }
121 else if (strcmp(target,GLD68K_EMULATION_NAME)==0) {
122 ld_emulation = &ld_gld68k_emulation;
123 }
124 #endif
125 else {
126 info("%P%F unrecognised emulation mode: %s\n",target);
127 }
128 }
129
130
131
This page took 0.031642 seconds and 4 git commands to generate.