* Makefile.in: Make $(OBJS) depend on $(ALL_OBJ_DEPS).
authorKen Raeburn <raeburn@cygnus>
Thu, 14 Apr 1994 22:46:53 +0000 (22:46 +0000)
committerKen Raeburn <raeburn@cygnus>
Thu, 14 Apr 1994 22:46:53 +0000 (22:46 +0000)
* configure.in: Set ALL_OBJ_DEPS in output Makefile.

Based on suggestions from <BAILEY@hmivax.humgen.upenn.edu> (Charles Bailey):
* vmsconf.sh: In generated file, get ".obj" suffix right, build source files
from other directories into objects in the current directory, and specify PSECT
attributes explicitly to linker.  Also added missing label.
* Makefile.in (stamp-mk.com): Reference new variable VMS_OTHER_OBJS for list of
non-local object files, instead of listing them here.
(VMS_OTHER_OBJS): New variable, added more libiberty files.
* make-gas.com: Regenerated.

* config/ho-vms.h (unlink): Define as delete.

* config-gas.com: Fix quoting on TARGET_CANONICAL definition.  Delete files
before creating them.

gas/ChangeLog
gas/Makefile.in
gas/config-gas.com
gas/config/ho-vms.h
gas/configure.in
gas/make-gas.com
gas/vmsconf.sh

index efff1d7..5926ae4 100644 (file)
@@ -4,6 +4,26 @@ Thu Apr 14 15:12:36 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
        floating point and binary numbers respectively; if it doesn't
        work, treat them as local labels.
 
+       * Makefile.in: Make $(OBJS) depend on $(ALL_OBJ_DEPS).
+       * configure.in: Set ALL_OBJ_DEPS in output Makefile.
+
+       Based on suggestions from <BAILEY@hmivax.humgen.upenn.edu>
+       (Charles Bailey):
+       * vmsconf.sh: In generated file, get ".obj" suffix right, build
+       source files from other directories into objects in the current
+       directory, and specify PSECT attributes explicitly to linker.
+       Also added missing label.
+       * Makefile.in (stamp-mk.com): Reference new variable
+       VMS_OTHER_OBJS for list of non-local object files, instead of
+       listing them here.
+       (VMS_OTHER_OBJS): New variable, added more libiberty files.
+       * make-gas.com: Regenerated.
+
+       * config/ho-vms.h (unlink): Define as delete.
+
+       * config-gas.com: Fix quoting on TARGET_CANONICAL definition.
+       Delete files before creating them.
+
 Thu Apr 14 13:34:24 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
        * Makefile.in (de-stage1, de-stage2, de-stage3): Use rm -f.
index 2c2089d..7473c7e 100644 (file)
@@ -232,6 +232,14 @@ OBJS = \
        xmalloc.o \
        $(TE_OBJS)
 
+# These are objects we know we'll be pulling in from other directories.
+# For VMS, we have to build them explicitly.
+VMS_OTHER_OBJS = \
+       ../libiberty/obstack.o \
+       ../libiberty/strdup.o \
+       ../libiberty/strncasecmp.o \
+       ../libiberty/getruntime.o
+
 all: as.new gasp.new
        @srcroot=`cd $(srcroot); pwd`; export srcroot; \
        (cd doc ; $(MAKE) $(FLAGS_TO_PASS) all)
@@ -242,7 +250,7 @@ dvi info install-info clean-info:
 
 make-gas.com: stamp-mk.com
 stamp-mk.com: vmsconf.sh Makefile
-       sh $(srcdir)/vmsconf.sh $(OBJS) ../libiberty/obstack.o ../libiberty/strdup.o > new-make.com
+       sh $(srcdir)/vmsconf.sh $(OBJS) $(VMS_OTHER_OBJS) > new-make.com
        $(srcdir)/../move-if-change new-make.com $(srcdir)/make-gas.com
        touch stamp-mk.com
 
@@ -275,6 +283,8 @@ SUBDIR_INCLUDES = -I.. -I$(srcdir) -I$(srcdir)/config
 # Files to be copied away after each stage in building.
 STAGESTUFF = *.o as.new gasp.new
 
+$(OBJS): $(ALL_OBJ_DEPS)
+
 as.new: $(OBJS) $(LIBS)
        $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o as.new $(OBJS) $(LIBS) $(LOADLIBES)
 
index 06bba35..7ad1a0a 100644 (file)
@@ -41,14 +41,16 @@ $line=f$extract(ijk,f$length(line)-ijk,line)
 $ijk=f$locate("\n",line)
 $line=f$extract(0,ijk,line)
 $!
+$ if f$search("version.opt").nes."" then delete/noconfirm version.opt;*
 $open ifile$ version.opt/write
 $write ifile$ "ident="+""""+line+""""
 $close ifile$
 $! Now write config.h.
+$ if f$search("config.h").nes."" then delete/noconfirm config.h;*
 $open ifile$ config.h/write
 $write ifile$ "#define TARGET_CPU       """,cpu_type,"""
 $write ifile$ "#define TARGET_ALIAS     ""vms"""
-$write ifile$ "#define TARGET_CANONICAL ""vax-dec-vms""""
+$write ifile$ "#define TARGET_CANONICAL ""vax-dec-vms"""
 $write ifile$ "#define GAS_VERSION      """,line,""""
 $close ifile$
 $!
index c4e941c..a546019 100644 (file)
@@ -32,4 +32,6 @@
 #define EXIT_FAILURE 0
 #endif
 
+#define unlink delete
+
 /* end of ho-vms.h */
index d4413c9..4839064 100644 (file)
@@ -338,8 +338,11 @@ case ${bfd_gas} in
 esac
 
 case ${need_bfd} in
-  yes) bfdlib="BFDLIB=../bfd/libbfd.a"                 ;;
-  *)   bfdlib=""                                       ;;
+  yes) bfdlib="BFDLIB=../bfd/libbfd.a"
+       all_obj_deps="$all_obj_deps ../bfd/bfd.h"
+       ;;
+  *)   bfdlib=""
+       ;;
 esac
 
 case "x${host}" in
@@ -349,11 +352,8 @@ esac
 
 rm -f Makefile.tem
 echo $cross                    >  Makefile.tem
-case "$extra_def" in
-  "") ;;
-  *)  echo defs=$extra_def     >> Makefile.tem
-      ;;
-esac
+echo ALL_OBJ_DEPS=$all_obj_deps        >> Makefile.tem
+echo defs=$extra_def           >> Makefile.tem
 echo $bfdlib                   >> Makefile.tem
 echo "OPCODES_LIB=$opcodes"    >> Makefile.tem
 cat Makefile                   >> Makefile.tem
index 6a04021..95b573e 100644 (file)
@@ -73,42 +73,47 @@ $ gcc 'c_flags'/define=('C_DEFS') listing.c
 $ gcc 'c_flags'/define=('C_DEFS') ecoff.c
 $ gcc 'c_flags'/define=('C_DEFS') stabs.c
 $ gcc 'c_flags'/define=('C_DEFS') xmalloc.c
-$ gcc 'c_flags'/define=('C_DEFS') [-.libiberty]obstack.c
-$ gcc 'c_flags'/define=('C_DEFS') [-.libiberty]strdup.c
-$if f$search("obstack.obj").eqs."" then copy [-.libiberty]obstack.obj *.*
-$if f$search("strdup.obj").eqs."" then copy [-.libiberty]strdup.obj *.*
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]obstack.obj [-.libiberty]obstack.c
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]strdup.obj [-.libiberty]strdup.c
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]strncasecmp.obj [-.libiberty]strncasecmp.c
+$ gcc 'c_flags'/define=('C_DEFS')/object=[]getruntime.obj [-.libiberty]getruntime.c
+$link:
 $ link/nomap/exec=gcc-as version.opt/opt+sys$input:/opt
 !
 !      Linker options file for GNU assembler
 !
-targ-cpu.o,-
-obj-format.o,-
-atof-targ.o,-
-app.o,-
-as.o,-
-atof-generic.o,-
-bignum-copy.o,-
-cond.o,-
-expr.o,-
-flonum-konst.o,-
-flonum-copy.o,-
-flonum-mult.o,-
-frags.o,-
-hash.o,-
-hex-value.o,-
-input-file.o,-
-input-scrub.o,-
-literal.o,-
-messages.o,-
-output-file.o,-
-read.o,-
-subsegs.o,-
-symbols.o,-
-write.o,-
-listing.o,-
-ecoff.o,-
-stabs.o,-
-xmalloc.o,-
-obstack.o,-
-strdup.o,-
+targ-cpu.obj,-
+obj-format.obj,-
+atof-targ.obj,-
+app.obj,-
+as.obj,-
+atof-generic.obj,-
+bignum-copy.obj,-
+cond.obj,-
+expr.obj,-
+flonum-konst.obj,-
+flonum-copy.obj,-
+flonum-mult.obj,-
+frags.obj,-
+hash.obj,-
+hex-value.obj,-
+input-file.obj,-
+input-scrub.obj,-
+literal.obj,-
+messages.obj,-
+output-file.obj,-
+read.obj,-
+subsegs.obj,-
+symbols.obj,-
+write.obj,-
+listing.obj,-
+ecoff.obj,-
+stabs.obj,-
+xmalloc.obj,-
+obstack.obj,-
+strdup.obj,-
+strncasecmp.obj,-
+getruntime.obj,-
 gnu_cc:[000000]gcclib/lib,sys$share:vaxcrtl/lib
+! Tell linker exactly what psect attributes we want -- match VAXCRTL.
+psect_addr=ENVIRON,long,pic,ovr,rel,gbl,noshr,noexe,rd,wrt
index 1f732c3..e1111eb 100644 (file)
@@ -53,19 +53,19 @@ EOF
 cfiles="`echo $* | sed -e 's/\.o/.c/g' -e 's!../\([^ /]*\)/\([^ /]*\.c\)![-.\1]\2!g'`"
 
 for cfile in $cfiles ; do
-  echo "\$ gcc 'c_flags'/define=('C_DEFS') $cfile"
   case $cfile in
-    "[-."*)  copyfiles="$copyfiles $cfile" ;;
+    "[-."*)
+       base=`echo $cfile | sed -e 's/\[.*\]//' -e 's/\.c$//'`
+       echo "\$ gcc 'c_flags'/define=('C_DEFS')/object=[]$base.obj $cfile"
+       ;;
+    *)
+       echo "\$ gcc 'c_flags'/define=('C_DEFS') $cfile"
+       ;;
   esac
 done
 
-for c in $copyfiles ; do
-  base=`echo $c | sed -e 's/\[.*\]//' -e 's/\.c$//'`
-  dir=`echo $c | sed 's/\].*$/]/'`
-  echo "\$if f\$search(\"$base.obj\").eqs.\"\" then copy $dir$base.obj *.*"
-done
-
 cat << 'EOF'
+$link:
 $ link/nomap/exec=gcc-as version.opt/opt+sys$input:/opt
 !
 !      Linker options file for GNU assembler
@@ -73,9 +73,12 @@ $ link/nomap/exec=gcc-as version.opt/opt+sys$input:/opt
 EOF
 
 for obj in $* ; do
-  echo $obj,- | sed 's!.*/!!g'
+  # Change "foo.o" into "foo.obj".
+  echo ${obj}bj,- | sed 's!.*/!!g'
 done
 
 cat << 'EOF'
 gnu_cc:[000000]gcclib/lib,sys$share:vaxcrtl/lib
+! Tell linker exactly what psect attributes we want -- match VAXCRTL.
+psect_addr=ENVIRON,long,pic,ovr,rel,gbl,noshr,noexe,rd,wrt
 EOF