Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

$! 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-2022 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