| $! configure.com | |
| $! This file sets things up to build gas on a VMS system to generate object | |
| $! files for a VMS system. We do not use the configure script, since we | |
| $! do not have /bin/sh to execute it. | |
| $! | |
| $! Copyright (C) 2012-2019 Free Software Foundation, Inc. | |
| $! | |
| $! This file 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; see the file COPYING3. If not see | |
| $! <http://www.gnu.org/licenses/>. | |
| $! | |
| $! | |
| $ arch=F$GETSYI("ARCH_NAME") | |
| $ arch=F$EDIT(arch,"LOWERCASE") | |
| $ if arch.eqs."alpha" | |
| $ then | |
| $ format = "evax" | |
| $ env = "generic" | |
| $ target_alias = "alpha-dec-openvms" | |
| $ target_canonical = "alpha-dec-openvms" | |
| $ endif | |
| $ if arch.eqs."ia64" | |
| $ then | |
| $ format = "elf" | |
| $ env = "vms" | |
| $ target_alias = "ia64-openvms" | |
| $ target_canonical = "ia64-unknown-openvms" | |
| $ endif | |
| $! | |
| $! | |
| $ write sys$output "Generate targ-cpu.[ch]" | |
| $! | |
| $! Target specific information | |
| $ open/write outfile targ-cpu.h | |
| $ write outfile "#include ""tc-''arch'.h""" | |
| $ close outfile | |
| $! Target specific information | |
| $ open/write outfile targ-cpu.c | |
| $ write outfile "#include ""tc-''arch'.c""" | |
| $ close outfile | |
| $! | |
| $ write sys$output "Generate targ-env.h" | |
| $! | |
| $ open/write outfile targ-env.h | |
| $ write outfile "#include ""te-''env'.h""" | |
| $ close outfile | |
| $! | |
| $ write sys$output "Generate obj-format.[ch]" | |
| $! | |
| $! Code to handle the object file format. | |
| $ open/write outfile obj-format.h | |
| $ write outfile "#include ""obj-''format'.h""" | |
| $ close outfile | |
| $ open/write outfile obj-format.c | |
| $ write outfile "#include ""obj-''format'.c""" | |
| $ close outfile | |
| $! | |
| $ write sys$output "Generate atof-targ.c" | |
| $! | |
| $ create atof-targ.c | |
| #include "atof-ieee.c" | |
| $! | |
| $ write sys$output "Generate gas/config.h" | |
| $! | |
| $ create config-vms.in | |
| /* config.h. Generated by configure.com. */ | |
| /* Define to 1 if using `alloca.c'. */ | |
| #undef C_ALLOCA | |
| /* Default architecture. */ | |
| #undef DEFAULT_ARCH | |
| /* Default emulation. */ | |
| #define DEFAULT_EMULATION "" | |
| /* Supported emulations. */ | |
| #define EMULATIONS | |
| /* Define if you want run-time sanity checks. */ | |
| #undef ENABLE_CHECKING | |
| /* Define to 1 if translation of program messages to the user's native | |
| language is requested. */ | |
| #undef ENABLE_NLS | |
| /* Define to 1 if you have `alloca', as a function or macro. */ | |
| #define HAVE_ALLOCA 1 | |
| #include <builtins.h> | |
| #define C_alloca(x) __ALLOCA(x) | |
| /* Define to 1 if you have the `basename' function. */ | |
| #define HAVE_DECL_BASENAME 1 | |
| /* Is the prototype for getopt in <unistd.h> in the expected format? */ | |
| #define HAVE_DECL_GETOPT 1 | |
| /* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you | |
| don't. */ | |
| #undef HAVE_DECL_VSNPRINTF | |
| /* Define to 1 if you have the declaration of `snprintf', and to 0 if you | |
| don't. */ | |
| #define HAVE_DECL_SNPRINTF 1 | |
| /* Define to 1 if you have the <errno.h> header file. */ | |
| #define HAVE_ERRNO_H 1 | |
| /* Define to 1 if you have the <limits.h> header file. */ | |
| #undef HAVE_LIMITS_H | |
| /* Define to 1 if you have the `remove' function. */ | |
| #define HAVE_REMOVE 1 | |
| /* Define to 1 if you have the <stdarg.h> header file. */ | |
| #define HAVE_STDARG_H 1 | |
| /* Define to 1 if you have the <stdint.h> header file. */ | |
| #undef HAVE_STDINT_H | |
| /* Define to 1 if you have the <stdlib.h> header file. */ | |
| #define HAVE_STDLIB_H 1 | |
| /* Define to 1 if you have the <strings.h> header file. */ | |
| #define HAVE_STRINGS_H 1 | |
| /* Define to 1 if you have the <string.h> header file. */ | |
| #define HAVE_STRING_H 1 | |
| /* Define to 1 if you have the <sys/stat.h> header file. */ | |
| #undef HAVE_SYS_STAT_H | |
| /* Define to 1 if you have the <sys/types.h> header file. */ | |
| #define HAVE_SYS_TYPES_H | |
| /* Define to 1 if you have the <unistd.h> header file. */ | |
| #define HAVE_UNISTD_H | |
| /* Define to 1 if you have the `unlink' function. */ | |
| #undef HAVE_UNLINK | |
| /* Name of package */ | |
| #define PACKAGE "gas" | |
| /* Define to the address where bug reports for this package should be sent. */ | |
| #define PACKAGE_BUGREPORT "" | |
| /* Define to the full name of this package. */ | |
| #define PACKAGE_NAME "" | |
| /* Define to the full name and version of this package. */ | |
| #define PACKAGE_STRING "" | |
| /* Define to the one symbol short name of this package. */ | |
| #define PACKAGE_TARNAME "" | |
| /* Define to the version of this package. */ | |
| #define PACKAGE_VERSION "" | |
| /* Define to 1 if you have the ANSI C header files. */ | |
| #define STDC_HEADERS 1 | |
| /* Target OS. */ | |
| #define TARGET_OS "openvms" | |
| /* Target vendor. */ | |
| #define TARGET_VENDOR "dec" | |
| /* Define to 1 if your processor stores words with the most significant byte | |
| first (like Motorola and SPARC, unlike Intel and VAX). */ | |
| #define WORDS_BIGENDIAN 1 | |
| /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a | |
| `char[]'. */ | |
| #undef YYTEXT_POINTER | |
| /* Version number of package */ | |
| $! | |
| $! Get VERSION from ../bfd/version.m4 | |
| $! | |
| $ edit/tpu/nojournal/nosection/nodisplay/command=sys$input | |
| $DECK | |
| set (success, off); | |
| mfile := CREATE_BUFFER("mfile", "[-.bfd]version.m4"); | |
| match_pos := SEARCH_QUIETLY('m4_define([BFD_VERSION], [', FORWARD, EXACT, mfile); | |
| IF match_pos <> 0 THEN; | |
| POSITION(BEGINNING_OF(match_pos)); | |
| ERASE(match_pos); | |
| vers := CURRENT_LINE-"])"; | |
| ELSE; | |
| vers := "unknown"; | |
| ENDIF; | |
| file := CREATE_BUFFER("file", "config-vms.in"); | |
| POSITION(END_OF(file)); | |
| COPY_TEXT("#define VERSION """); | |
| COPY_TEXT(vers); | |
| COPY_TEXT(""""); | |
| WRITE_FILE(file, "config.h"); | |
| QUIT | |
| $EOD | |
| $del/nolog config-vms.in; | |
| $ open/append outfile config.h | |
| $ write outfile "" | |
| $ write outfile "/* Target alias. */" | |
| $ write outfile "#define TARGET_ALIAS ""''target_alias'""" | |
| $ write outfile "" | |
| $ write outfile "/* Canonical target. */" | |
| $ write outfile "#define TARGET_CANONICAL ""''target_canonical'""" | |
| $ write outfile "" | |
| $ write outfile "/* Target CPU. */" | |
| $ write outfile "#define TARGET_CPU ""'arch'""" | |
| $ close outfile | |
| $! | |
| $ write sys$output "Generate gas/build.com" | |
| $! | |
| $ create build.com | |
| $DECK | |
| $ DEFS="" | |
| $ OPT="/noopt/debug" | |
| $ CFLAGS=OPT + "/include=([],""../include"",[-.bfd],""../"",[.config])" +- | |
| "/name=(as_is,shortened)" +- | |
| "/prefix=(all,exc=(""getopt"",""optarg"",""optopt"",""optind"",""opterr""))" | |
| $ FILES="obj-format,atof-targ,app,as,atof-generic,cond,depend,"+- | |
| "expr,flonum-konst,flonum-copy,flonum-mult,frags,hash,input-file,"+- | |
| "input-scrub,literal,messages,output-file,read,subsegs,symbols,write,"+- | |
| "listing,ecoff,stabs,sb,macro,ehopt,dw2gencfi,dwarf2dbg,remap" | |
| $ LIBBFD = ",[-.bfd]libbfd.olb/lib" | |
| $ LIBIBERTY = ",[-.libiberty]libiberty.olb/lib" | |
| $ LIBOPCODES = ",[-.opcodes]libopcodes.olb/lib" | |
| $! | |
| $ AS_OBJS="targ-cpu," + FILES | |
| $! | |
| $ write sys$output "CFLAGS=",CFLAGS | |
| $! | |
| $EOD | |
| $! | |
| $ if arch.eqs."ia64" | |
| $ then | |
| $ open/append outfile build.com | |
| $ write outfile "$ write sys$output ""Compiling te-vms.c""" | |
| $ write outfile "$ cc 'CFLAGS /obj=te-vms.obj [.config]te-vms.c + " +- | |
| "sys$library:sys$lib_c.tlb/lib" | |
| $ write outfile "$ AS_OBJS=AS_OBJS + "",te-vms.obj""" | |
| $ close outfile | |
| $ endif | |
| $! | |
| $ append sys$input build.com | |
| $DECK | |
| $ if p1.nes."LINK" | |
| $ then | |
| $ write sys$output "Compiling targ-cpu.c (/noopt)" | |
| $ cc 'CFLAGS /noopt targ-cpu | |
| $ NUM = 0 | |
| $ LOOP: | |
| $ F = F$ELEMENT(NUM,",",FILES) | |
| $ IF F.EQS."," THEN GOTO END | |
| $ write sys$output "Compiling ", F, ".c" | |
| $ cc 'CFLAGS 'F.c | |
| $ NUM = NUM + 1 | |
| $ GOTO LOOP | |
| $ END: | |
| $ endif | |
| $ purge | |
| $! | |
| $ write sys$output "Building as.exe" | |
| $ AS_OBJS=AS_OBJS + LIBOPCODES + LIBBFD + LIBIBERTY | |
| $ link/exe=as 'AS_OBJS | |
| $EOD | |
| $exit | |