| 1 | $! |
| 2 | $! This file configures binutils for use with openVMS/Alpha |
| 3 | $! We do not use the configure script, since we do not have /bin/sh |
| 4 | $! to execute it. |
| 5 | $! |
| 6 | $! Written by Klaus K"ampf (kkaempf@rmi.de) |
| 7 | $! |
| 8 | $ arch=F$GETSYI("ARCH_NAME") |
| 9 | $ arch=F$EDIT(arch,"LOWERCASE") |
| 10 | $ write sys$output "Configuring binutils for ''arch' target" |
| 11 | $! |
| 12 | $! Generate config.h |
| 13 | $! |
| 14 | $ create config.h |
| 15 | /* config.h. Generated automatically by configure.com */ |
| 16 | /* Is the type time_t defined in <time.h>? */ |
| 17 | #define HAVE_TIME_T_IN_TIME_H 1 |
| 18 | /* Is the type time_t defined in <sys/types.h>? */ |
| 19 | #define HAVE_TIME_T_IN_TYPES_H 1 |
| 20 | /* Does <utime.h> define struct utimbuf? */ |
| 21 | #define HAVE_GOOD_UTIME_H 1 |
| 22 | /* Whether fprintf must be declared even if <stdio.h> is included. */ |
| 23 | #define NEED_DECLARATION_FPRINTF 1 |
| 24 | /* Do we need to use the b modifier when opening binary files? */ |
| 25 | /* #undef USE_BINARY_FOPEN */ |
| 26 | /* Define if you have the utimes function. */ |
| 27 | #define HAVE_UTIMES 1 |
| 28 | /* Define if you have the <fcntl.h> header file. */ |
| 29 | #define HAVE_FCNTL_H 1 |
| 30 | /* Define if you have the <stdlib.h> header file. */ |
| 31 | #define HAVE_STDLIB_H 1 |
| 32 | /* Define if you have the <string.h> header file. */ |
| 33 | #define HAVE_STRING_H 1 |
| 34 | /* Define if you have the <strings.h> header file. */ |
| 35 | #define HAVE_STRINGS_H 1 |
| 36 | /* Define if you have the <sys/file.h> header file. */ |
| 37 | #define HAVE_SYS_FILE_H 1 |
| 38 | /* Define if you have the <unistd.h> header file. */ |
| 39 | #define HAVE_UNISTD_H 1 |
| 40 | /* Alloca. */ |
| 41 | #ifdef __DECC |
| 42 | #include <builtins.h> |
| 43 | #define C_alloca(x) __ALLOCA(x) |
| 44 | #endif |
| 45 | $! |
| 46 | $! Add TARGET. |
| 47 | $! |
| 48 | $ if arch .eqs. "ia64" then target = "elf64-ia64-vms" |
| 49 | $ if arch .eqs. "alpha" then target = "vms-alpha" |
| 50 | $ if arch .eqs. "vax" then target = "vms-vax" |
| 51 | $! |
| 52 | $ open/append tfile config.h |
| 53 | $ write tfile "#define TARGET """ + target + """" |
| 54 | $ close tfile |
| 55 | $ write sys$output "Created `config.h'" |
| 56 | $! |
| 57 | $ write sys$output "Generate binutils build.com" |
| 58 | $! |
| 59 | $ create build.com |
| 60 | $DECK |
| 61 | $ DEFS="" |
| 62 | $ OPT="/noopt/debug" |
| 63 | $ CFLAGS=OPT + "/include=([],""../include"",[-.bfd])" +- |
| 64 | "/name=(as_is,shortened)" +- |
| 65 | "/prefix=(all,exc=(""getopt"",""optarg"",""optopt"",""optind"",""opterr""))" |
| 66 | $ BFDLIB = ",[-.bfd]libbfd.olb/lib" |
| 67 | $ LIBIBERTY = ",[-.libiberty]libiberty.olb/lib" |
| 68 | $ OPCODES = ",[-.opcodes]libopcodes.olb/lib" |
| 69 | $ DEBUG_FILES = ",rddbg,debug,stabs,ieee,rdcoff,dwarf" |
| 70 | $ BULIBS_FILES = ",bucomm,version,filemode" |
| 71 | $ ALL_FILES="nm,strings,addr2line,size,objdump,prdbg" +- |
| 72 | BULIBS_FILES + DEBUG_FILES |
| 73 | $! |
| 74 | $ write sys$output "CFLAGS=",CFLAGS |
| 75 | $ if p1.nes."LINK" |
| 76 | $ then |
| 77 | $ NUM = 0 |
| 78 | $ LOOP: |
| 79 | $ F = F$ELEMENT(NUM,",",ALL_FILES) |
| 80 | $ IF F.EQS."," THEN GOTO END |
| 81 | $ write sys$output "Compiling ", F, ".c" |
| 82 | $ cc 'CFLAGS 'F.c |
| 83 | $ NUM = NUM + 1 |
| 84 | $ GOTO LOOP |
| 85 | $ END: |
| 86 | $ endif |
| 87 | $ purge |
| 88 | $! |
| 89 | $ write sys$output "Building nm.exe" |
| 90 | $ NM_OBJS="nm.obj" + BULIBS_FILES + BFDLIB + LIBIBERTY |
| 91 | $ link/exe=nm 'NM_OBJS |
| 92 | $! |
| 93 | $ write sys$output "Building strings.exe" |
| 94 | $ STRINGS_OBJS="strings.obj" + BULIBS_FILES + BFDLIB + LIBIBERTY |
| 95 | $ link/exe=strings 'STRINGS_OBJS |
| 96 | $! |
| 97 | $ write sys$output "Building size.exe" |
| 98 | $ SIZE_OBJS="size.obj" + BULIBS_FILES + BFDLIB + LIBIBERTY |
| 99 | $ link/exe=size 'SIZE_OBJS |
| 100 | $! |
| 101 | $ write sys$output "Building addr2line.exe" |
| 102 | $ ADDR2LINE_OBJS="addr2line.obj" + BULIBS_FILES + BFDLIB + LIBIBERTY |
| 103 | $ link/exe=addr2line 'ADDR2LINE_OBJS |
| 104 | $! |
| 105 | $ write sys$output "Building objdump.exe" |
| 106 | $ OBJDUMP_OBJS="objdump.obj,prdbg.obj" + DEBUG_FILES + BULIBS_FILES +- |
| 107 | BFDLIB + OPCODES + LIBIBERTY |
| 108 | $ link/exe=objdump 'OBJDUMP_OBJS |
| 109 | $EOD |