1$! configure.com
2$! This file sets things up to build gas on a VMS system to generate object
3$! files for a VMS system.  We do not use the configure script, since we
4$! do not have /bin/sh to execute it.
5$!
6$!   Copyright (C) 2012-2017 Free Software Foundation, Inc.
7$!
8$! This file is free software; you can redistribute it and/or modify
9$! it under the terms of the GNU General Public License as published by
10$! the Free Software Foundation; either version 3 of the License, or
11$! (at your option) any later version.
12$!
13$! This program is distributed in the hope that it will be useful,
14$! but WITHOUT ANY WARRANTY; without even the implied warranty of
15$! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16$! GNU General Public License for more details.
17$!
18$! You should have received a copy of the GNU General Public License
19$! along with this program; see the file COPYING3.  If not see
20$! <http://www.gnu.org/licenses/>.
21$!
22$!
23$ arch=F$GETSYI("ARCH_NAME")
24$ arch=F$EDIT(arch,"LOWERCASE")
25$ if arch.eqs."alpha"
26$ then
27$   format = "evax"
28$   env = "generic"
29$   target_alias = "alpha-dec-openvms"
30$   target_canonical = "alpha-dec-openvms"
31$ endif
32$ if arch.eqs."ia64"
33$ then
34$   format = "elf"
35$   env = "vms"
36$   target_alias = "ia64-openvms"
37$   target_canonical = "ia64-unknown-openvms"
38$ endif
39$!
40$!
41$ write sys$output "Generate targ-cpu.[ch]"
42$!
43$! Target specific information
44$ open/write outfile targ-cpu.h
45$ write outfile "#include ""tc-''arch'.h"""
46$ close outfile
47$! Target specific information
48$ open/write outfile targ-cpu.c
49$ write outfile "#include ""tc-''arch'.c"""
50$ close outfile
51$!
52$ write sys$output "Generate targ-env.h"
53$!
54$ open/write outfile targ-env.h
55$ write outfile "#include ""te-''env'.h"""
56$ close outfile
57$!
58$ write sys$output "Generate obj-format.[ch]"
59$!
60$! Code to handle the object file format.
61$ open/write outfile obj-format.h
62$ write outfile "#include ""obj-''format'.h"""
63$ close outfile
64$ open/write outfile obj-format.c
65$ write outfile "#include ""obj-''format'.c"""
66$ close outfile
67$!
68$ write sys$output "Generate atof-targ.c"
69$!
70$ create atof-targ.c
71#include "atof-ieee.c"
72$!
73$ write sys$output "Generate gas/config.h"
74$!
75$  create config-vms.in
76/* config.h.  Generated by configure.com.  */
77/* Define to 1 if using `alloca.c'. */
78#undef C_ALLOCA
79
80/* Default architecture. */
81#undef DEFAULT_ARCH
82
83/* Default emulation. */
84#define DEFAULT_EMULATION ""
85
86/* Supported emulations. */
87#define EMULATIONS
88
89/* Define if you want run-time sanity checks. */
90#undef ENABLE_CHECKING
91
92/* Define to 1 if translation of program messages to the user's native
93   language is requested. */
94#undef ENABLE_NLS
95
96/* Define to 1 if you have `alloca', as a function or macro. */
97#define HAVE_ALLOCA 1
98#include <builtins.h>
99#define C_alloca(x) __ALLOCA(x)
100
101/* Define to 1 if you have the `basename' function. */
102#define HAVE_DECL_BASENAME 1
103
104/* Is the prototype for getopt in <unistd.h> in the expected format? */
105#define HAVE_DECL_GETOPT 1
106
107/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
108   don't. */
109#undef HAVE_DECL_VSNPRINTF
110
111/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
112   don't. */
113#define HAVE_DECL_SNPRINTF 1
114
115/* Define to 1 if you have the <errno.h> header file. */
116#define HAVE_ERRNO_H 1
117
118/* Define to 1 if you have the <limits.h> header file. */
119#undef HAVE_LIMITS_H
120
121/* Define to 1 if you have the `remove' function. */
122#define HAVE_REMOVE 1
123
124/* Define to 1 if you have the <stdarg.h> header file. */
125#define HAVE_STDARG_H 1
126
127/* Define to 1 if you have the <stdint.h> header file. */
128#undef HAVE_STDINT_H
129
130/* Define to 1 if you have the <stdlib.h> header file. */
131#define HAVE_STDLIB_H 1
132
133/* Define to 1 if you have the <strings.h> header file. */
134#define HAVE_STRINGS_H 1
135
136/* Define to 1 if you have the <string.h> header file. */
137#define HAVE_STRING_H 1
138
139/* Define to 1 if you have the <sys/stat.h> header file. */
140#undef HAVE_SYS_STAT_H
141
142/* Define to 1 if you have the <sys/types.h> header file. */
143#define HAVE_SYS_TYPES_H
144
145/* Define to 1 if you have the <unistd.h> header file. */
146#define HAVE_UNISTD_H
147
148/* Define to 1 if you have the `unlink' function. */
149#undef HAVE_UNLINK
150
151/* Name of package */
152#define PACKAGE "gas"
153
154/* Define to the address where bug reports for this package should be sent. */
155#define PACKAGE_BUGREPORT ""
156
157/* Define to the full name of this package. */
158#define PACKAGE_NAME ""
159
160/* Define to the full name and version of this package. */
161#define PACKAGE_STRING ""
162
163/* Define to the one symbol short name of this package. */
164#define PACKAGE_TARNAME ""
165
166/* Define to the version of this package. */
167#define PACKAGE_VERSION ""
168
169/* Define to 1 if you have the ANSI C header files. */
170#define STDC_HEADERS 1
171
172/* Target OS. */
173#define TARGET_OS "openvms"
174
175/* Target vendor. */
176#define TARGET_VENDOR "dec"
177
178/* Define to 1 if your processor stores words with the most significant byte
179   first (like Motorola and SPARC, unlike Intel and VAX). */
180#define WORDS_BIGENDIAN 1
181
182/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
183   `char[]'. */
184#undef YYTEXT_POINTER
185
186/* Version number of package */
187$!
188$! Get VERSION from ../bfd/version.m4
189$!
190$ edit/tpu/nojournal/nosection/nodisplay/command=sys$input
191$DECK
192   set (success, off);
193   mfile := CREATE_BUFFER("mfile", "[-.bfd]version.m4");
194   match_pos := SEARCH_QUIETLY('m4_define([BFD_VERSION], [', FORWARD, EXACT, mfile);
195   IF match_pos <> 0 THEN;
196     POSITION(BEGINNING_OF(match_pos));
197     ERASE(match_pos);
198     vers := CURRENT_LINE-"])";
199   ELSE;
200     vers := "unknown";
201   ENDIF;
202
203   file := CREATE_BUFFER("file", "config-vms.in");
204   POSITION(END_OF(file));
205   COPY_TEXT("#define VERSION """);
206   COPY_TEXT(vers);
207   COPY_TEXT("""");
208   WRITE_FILE(file, "config.h");
209   QUIT
210$EOD
211$del/nolog config-vms.in;
212$ open/append outfile config.h
213$  write outfile ""
214$  write outfile "/* Target alias. */"
215$  write outfile "#define TARGET_ALIAS ""''target_alias'"""
216$  write outfile ""
217$  write outfile "/* Canonical target. */"
218$  write outfile "#define TARGET_CANONICAL ""''target_canonical'"""
219$  write outfile ""
220$  write outfile "/* Target CPU. */"
221$  write outfile "#define TARGET_CPU ""'arch'"""
222$ close outfile
223$!
224$ write sys$output "Generate gas/build.com"
225$!
226$ create build.com
227$DECK
228$ DEFS=""
229$ OPT="/noopt/debug"
230$ CFLAGS=OPT + "/include=([],""../include"",[-.bfd],""../"",[.config])" +-
231 "/name=(as_is,shortened)" +-
232 "/prefix=(all,exc=(""getopt"",""optarg"",""optopt"",""optind"",""opterr""))"
233$ FILES="obj-format,atof-targ,app,as,atof-generic,cond,depend,"+-
234  "expr,flonum-konst,flonum-copy,flonum-mult,frags,hash,input-file,"+-
235  "input-scrub,literal,messages,output-file,read,subsegs,symbols,write,"+-
236  "listing,ecoff,stabs,sb,macro,ehopt,dw2gencfi,dwarf2dbg,remap"
237$ LIBBFD = ",[-.bfd]libbfd.olb/lib"
238$ LIBIBERTY = ",[-.libiberty]libiberty.olb/lib"
239$ LIBOPCODES = ",[-.opcodes]libopcodes.olb/lib"
240$!
241$ AS_OBJS="targ-cpu," + FILES
242$!
243$ write sys$output "CFLAGS=",CFLAGS
244$!
245$EOD
246$!
247$ if arch.eqs."ia64"
248$ then
249$   open/append outfile build.com
250$   write outfile "$ write sys$output ""Compiling te-vms.c"""
251$   write outfile "$ cc 'CFLAGS /obj=te-vms.obj [.config]te-vms.c + " +-
252      "sys$library:sys$lib_c.tlb/lib"
253$   write outfile "$ AS_OBJS=AS_OBJS + "",te-vms.obj"""
254$   close outfile
255$ endif
256$!
257$ append sys$input build.com
258$DECK
259$ if p1.nes."LINK"
260$ then
261$   write sys$output "Compiling targ-cpu.c (/noopt)"
262$   cc 'CFLAGS /noopt targ-cpu
263$   NUM = 0
264$   LOOP:
265$     F = F$ELEMENT(NUM,",",FILES)
266$     IF F.EQS."," THEN GOTO END
267$     write sys$output "Compiling ", F, ".c"
268$     cc 'CFLAGS 'F.c
269$     NUM = NUM + 1
270$     GOTO LOOP
271$   END:
272$ endif
273$ purge
274$!
275$ write sys$output "Building as.exe"
276$ AS_OBJS=AS_OBJS + LIBOPCODES +  LIBBFD +  LIBIBERTY
277$ link/exe=as 'AS_OBJS
278$EOD
279$exit
280
281