X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=bfd%2Fconfigure.com;h=8b629ae202ebebd3d73879fa45c647bc8e8142dc;hb=e2cbcd9156d1606a9f2153aecd93a89fe6e29180;hp=b4d648626f35b8a5008afaff21f0979a43a8e392;hpb=e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/configure.com b/bfd/configure.com index b4d648626f..8b629ae202 100644 --- a/bfd/configure.com +++ b/bfd/configure.com @@ -1,17 +1,38 @@ $! -$! This file configures the bfd library for use with openVMS/Alpha +$! This file configures the bfd library for use with openVMS. +$! $! We do not use the configure script, since we do not have /bin/sh $! to execute it. $! -$! Written by Klaus K"ampf (kkaempf@progis.de) +$! Written by Klaus K"ampf (kkaempf@rmi.de) +$! Rewritten by Tristan Gingold (gingold@adacore.com) +$! +$! Copyright (C) 2012-2016 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 +$! . $! -$arch_indx = 1 + ((f$getsyi("CPU").ge.128).and.1) ! vax==1, alpha==2 -$arch = f$element(arch_indx,"|","|VAX|Alpha|") -$if arch .eqs. "VAX" +$ arch=F$GETSYI("ARCH_NAME") +$ arch=F$EDIT(arch,"LOWERCASE") +$if arch .eqs. "alpha" then target = "alpha" +$if arch .eqs. "ia64" then target = "ia64" +$! +$if (arch .eqs. "alpha") .or. (arch .eqs. "ia64") $then -$ write sys$output "Target VAX not supported." -$ exit 2 -$endif +$! +$ write sys$output "Configuring BFD for ''target' target" +$! $! $! copy bfd-in2.h to bfd.h, replacing @ macros $! @@ -22,20 +43,18 @@ $DECK ! Copy file, changing lines with macros (@@) ! ! - vfile := CREATE_BUFFER("vfile", "VERSION."); - POSITION(BEGINNING_OF(vfile)); - vers := CURRENT_LINE; + set (success,off); file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name")); rang := CREATE_RANGE(BEGINNING_OF(file), END_OF(file)); - match_pos := SEARCH_QUIETLY('@VERSION@', FORWARD, EXACT, rang); + match_pos := SEARCH_QUIETLY('@wordsize@', FORWARD, EXACT, rang); IF match_pos <> 0 THEN; POSITION(BEGINNING_OF(match_pos)); ERASE(match_pos); - COPY_TEXT(vers); + COPY_TEXT('64'); ENDIF; - match_pos := SEARCH_QUIETLY('@wordsize@', FORWARD, EXACT, rang); + match_pos := SEARCH_QUIETLY('@bfd_default_target_size@', FORWARD, EXACT, rang); IF match_pos <> 0 THEN; POSITION(BEGINNING_OF(match_pos)); ERASE(match_pos); @@ -47,6 +66,96 @@ $DECK ERASE(match_pos); COPY_TEXT('0'); ENDIF; + match_pos := SEARCH_QUIETLY('@BFD_HOST_LONG_LONG@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('1'); + ENDIF; + match_pos := SEARCH_QUIETLY('@BFD_HOST_64BIT_LONG_LONG@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('1'); + ENDIF; + match_pos := SEARCH_QUIETLY('@BFD_HOST_64_BIT_DEFINED@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('1'); + ENDIF; + match_pos := SEARCH_QUIETLY('@BFD_HOST_64_BIT@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('__int64'); + ENDIF; + match_pos := SEARCH_QUIETLY('@BFD_HOST_U_64_BIT@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('unsigned __int64'); + ENDIF; + match_pos := SEARCH_QUIETLY('@BFD_HOSTPTR_T@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('unsigned __int64'); + ENDIF; + match_pos := SEARCH_QUIETLY('@bfd_file_ptr@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('bfd_signed_vma'); + ENDIF; + match_pos := SEARCH_QUIETLY('unsigned @bfd_file_ptr@ ufile_ptr', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('bfd_vma ufile_ptr'); + ENDIF; + match_pos := SEARCH_QUIETLY('@supports_plugins@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('0'); + ENDIF; + WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file")); + QUIT +$ EOD +$ +$else +$ +$ write sys$output "Configuring for Vax target" +$ target = "vax" +$! +$! copy bfd-in2.h to bfd.h, replacing @ macros +$! +$ write sys$output "Generated `bfd.h' from `bfd-in2.h'." +$ edit/tpu/nojournal/nosection/nodisplay/command=sys$input - + []bfd-in2.h /output=[]bfd.h +$DECK +! +! Copy file, changing lines with macros (@@) +! +! + set (success,off); + + file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name")); + rang := CREATE_RANGE(BEGINNING_OF(file), END_OF(file)); + + match_pos := SEARCH_QUIETLY('@wordsize@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('32'); + ENDIF; + match_pos := SEARCH_QUIETLY('@BFD_HOST_64BIT_LONG@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('0'); + ENDIF; match_pos := SEARCH_QUIETLY('@BFD_HOST_64_BIT_DEFINED@', FORWARD, EXACT, rang); IF match_pos <> 0 THEN; POSITION(BEGINNING_OF(match_pos)); @@ -70,13 +179,78 @@ $DECK WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file")); QUIT $ EOD -$ write sys$output "Generated `bfd.h' from `bfd-in2.h'." +$endif +$ +$! +$! create bfdver.h +$! +$ write sys$output "Generate `bfdver.h' from 'version.h' and `configure.in'." +$ edit/tpu/nojournal/nosection/nodisplay/command=sys$input - + []version.h /output=[]bfdver.h +$DECK +! +! Copy file, changing lines with macros (@@) +! +! + set (success,off); + vfile := CREATE_BUFFER("vfile", "configure.in"); + rang := CREATE_RANGE(BEGINNING_OF(vfile), END_OF(vfile)); + match_pos := SEARCH_QUIETLY('AC_INIT([bfd], [', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + vers := CURRENT_LINE-"])"; + ELSE; + vers := "unknown"; + ENDIF; + versnum := vers - "." - "."; + + file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name")); + rang := CREATE_RANGE(BEGINNING_OF(file), END_OF(file)); + + match_pos := SEARCH_QUIETLY('@bfd_version@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT(versnum); + ENDIF; + match_pos := SEARCH_QUIETLY('@bfd_version_string@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('"'); + COPY_TEXT(vers); + COPY_TEXT('"'); + ENDIF; + match_pos := SEARCH_QUIETLY('@bfd_version_package@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('"(GNU Binutils) "'); + ENDIF; + match_pos := SEARCH_QUIETLY('@report_bugs_to@', FORWARD, EXACT, rang); + IF match_pos <> 0 THEN; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('""'); + ENDIF; + WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file")); + QUIT +$ EOD +$! +$! +$! create bfd_stdint.h +$! +$ write sys$output "Generate `bfd_stdint.h'" +$ create []bfd_stdint.h +#include $! $! $! create targmatch.h $! +$ write sys$output "Generate `targmatch.h'" $ open/write tfile []targmatch.h -$ write tfile "{ " + """alpha-*-*vms*""" + "," +$ write tfile "{ """ + target + "-*-*vms*""" + "," $ write tfile "#if defined (SELECT_VECS)" $ write tfile "SELECT_VECS" $ write tfile "#else" @@ -84,11 +258,11 @@ $ write tfile "UNSUPPORTED_TARGET" $ write tfile "#endif" $ write tfile "}," $ close tfile -$ write sys$output "Generated `targmatch.h'" $! $! $! create config.h $! +$ write sys$output "Generate `config.h'" $ create []config.h /* config.h-vms. Generated by hand by Klaus Kämpf, kkaempf@didymus.rmi.de. */ /* config.in. Generated automatically from configure.in by autoheader. */ @@ -130,6 +304,104 @@ $ create []config.h #define HAVE_TIME_H 1 /* Define if you have the header file. */ #define HAVE_UNISTD_H 1 +/* Disable NLS */ +#undef ENABLE_NLS +/* Name of package */ +#define PACKAGE "bfd" +/* 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 "bfd" +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "bfd" +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "bfd" +/* Define to the home page for this package. */ +#define PACKAGE_URL "" +/* Define to the version of this package. */ +#define PACKAGE_VERSION "(package version)" +$! +$ write sys$output "Copy sysdep.h" +$ copy [.hosts]alphavms.h sysdep.h +$ +$ write sys$output "Generate build.com" $! -$ write sys$output "Generated `config.h'" +$ if ARCH.eqs."alpha" +$ then +$ create build.com +$DECK +$ DEFS="""SELECT_VECS=&alpha_vms_vec"","+- + """SELECT_ARCHITECTURES=&bfd_alpha_arch""" +$ FILES="cpu-alpha,vms,vms-hdr,vms-gsd,vms-tir,vms-misc," +$EOD +$ endif +$ if ARCH.eqs."ia64" +$ then +$ create build.com +$DECK +$ DEFS="""SELECT_VECS=&ia64_elf64_vms_vec"","+- + """SELECT_ARCHITECTURES=&bfd_ia64_arch""" +$ FILES="cpu-ia64,elf64-ia64,elf-strtab,corefile,stabs,merge,elf-eh-frame,"+- + "elflink,elf-attrs,dwarf1,elf64," +$EOD +$ create substxx.tpu +$DECK + set (success,off); + file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name")); + found_range := CREATE_RANGE(BEGINNING_OF(file), BEGINNING_OF(file)); + LOOP + rang := CREATE_RANGE (END_OF(found_range),END_OF(file)); + match_pos := SEARCH_QUIETLY('NN', FORWARD, EXACT, rang); + EXITIF match_pos = 0; + POSITION(BEGINNING_OF(match_pos)); + ERASE(match_pos); + COPY_TEXT('64'); + ENDLOOP; + WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file")); + QUIT +$ EOD +$ write sys$output "Generate elf64-target.h from elfxx-target.h" +$ edit/tpu/nojournal/nosection/nodisplay/command=substxx.tpu - + []elfXX-target.h /output=[]elf64-target.h +$ del substxx.tpu;* +$ endif +$ append sys$input build.com +$DECK +$ DEFS=DEFS + ",""unlink=remove"",""DEBUGDIR=""""GNU$DEBUGDIR:""""""" +$ OPT="/noopt/debug" +$ CFLAGS="/name=(as_is,shortened)" + - + "/include=([],""../"",""../include"")" + - + "/define=(" + DEFS + ")" + OPT +$ FILES=FILES + "archive,archive64,archures,bfd,bfdio,binary,cache,coffgen,"+- + "compress,corefile,dwarf2,elf,format,hash,ihex,init,libbfd,linker,"+- + "opncls,reloc,section,simple,srec,stab-syms,syms,targets,tekhex,verilog" +$ write sys$output "CFLAGS=",CFLAGS +$ cflags_libbfd="/warning=(disable=missingreturn)" +$ cflags_nil="" +$ NUM = 0 +$ OBJS="" +$ LOOP: +$ F = F$ELEMENT(NUM,",",FILES) +$ IF F.EQS."," THEN GOTO END +$ eflags_name="cflags_''f'" +$ name_len=f$length(eflags_name) +$ dash_pos=f$locate("-",eflags_name) +$ if dash_pos.ne.name_len +$ then +$ eflags_name['dash_pos,1]:="_" +$ dash_pos=f$locate("-",eflags_name) +$ if dash_pos.ne.name_len then eflags_name['dash_pos,1]:="_" +$ endif +$ if f$type('eflags_name).eqs."" then eflags_name="cflags_nil" +$ eflags='eflags_name +$ write sys$output "Compiling ", F, ".c", eflags +$ cc 'CFLAGS 'eflags 'F.c +$ IF OBJS.NES."" THEN OBJS=OBJS + "," +$ OBJS=OBJS + F + ".obj" +$ NUM = NUM + 1 +$ GOTO LOOP +$ END: +$ purge +$ lib/create libbfd 'OBJS +$EOD