* ar.c, Makefile.in, new files {is,not,maybe}-ranlib.c:
authorPer Bothner <per@bothner.com>
Mon, 7 Oct 1991 23:14:30 +0000 (23:14 +0000)
committerPer Bothner <per@bothner.com>
Mon, 7 Oct 1991 23:14:30 +0000 (23:14 +0000)
Make two different binaries for ar and ranlib, instead of
distinguishing them at run time using argv[0].
(Old behavior is still available if you "make ar_with_ranlib",
but it is not the default.)
* ranlib.sh (new):  An alternative one-line
shell implementation of ranlib.

binutils/.Sanitize
binutils/ChangeLog
binutils/Makefile.in

index 487a9007cca1fed1c73f81f727988c95acd6590e..f466de38506840552ed92d9928824a331a62d515 100644 (file)
@@ -32,6 +32,9 @@ Makefile.in
 TODO
 alloca.c
 ar.c
+is-ranlib.o
+not-ranlib.o
+maybe-ranlib.o
 bucomm.c
 config
 config.sub
@@ -47,6 +50,7 @@ m68k-pinsn.c
 nm.c
 objdump.c
 ostrip.c
+ranlib.sh
 size.c
 sparc-pinsn.c
 strip.c
@@ -59,7 +63,16 @@ echo Done in `pwd`.
 #
 #
 # $Log$
-# Revision 1.3  1991/09/01 03:47:07  steve
+# Revision 1.4  1991/10/07 23:14:30  bothner
+#      * ar.c, Makefile.in, new files {is,not,maybe}-ranlib.c:
+#      Make two different binaries for ar and ranlib, instead of
+#      distinguishing them at run time using argv[0].
+#      (Old behavior is still available if you "make ar_with_ranlib",
+#      but it is not the default.)
+#      * ranlib.sh (new):  An alternative one-line
+#      shell implementation of ranlib.
+#
+# Revision 1.3  1991/09/01  03:47:07  steve
 # Added config.sub
 #
 # Revision 1.2  1991/07/15  23:38:04  steve
index b1e9e476ea05cade8b86e9fee78fb3a84354afac..416155a65aa166c2bae5bcd00de2a774359ebdaa 100644 (file)
@@ -1,3 +1,13 @@
+Mon Oct  7 11:31:05 1991  Per Bothner  (bothner at cygnus.com)
+
+       * ar.c, Makefile.in, new files {is,not,maybe}-ranlib.c:
+       Make two different binaries for ar and ranlib, instead of
+       distinguishing them at run time using argv[0].
+       (Old behavior is still available if you "make ar_with_ranlib",
+       but it is not the default.)
+       * ranlib.sh (new):  An alternative one-line
+       shell implementation of ranlib.
+
 Fri Oct  4 21:49:44 1991  John Gilmore  (gnu at cygnus.com)
 
        * objdump.c:  Cope with renames of a few BFD types & enums.
index 75a5d01182c96a1c4aa0c1cae620b5cc74f0a87c..61320b4c657d25a83008c90e24a2dd108ecafad2 100644 (file)
@@ -5,7 +5,7 @@
 srcdir = .
 destdir = /usr/local
 
-version=`$(srcdir)/../gcc$(subdir)/gcc -dumpversion`
+version=`$(unsubdir)/../gcc$(subdir)/gcc -dumpversion`
 prefix = $(destdir)
 bindir = $(prefix)/bin
 libdir = $(prefix)/lib
@@ -19,7 +19,7 @@ INSTALL_FILE = $(INSTALL)
 # These should be all you need set before compiling
 
 #CC=gcc -Wall
-# these two should be the same program
+# these two are almost the same program
 AR_PROG=ar
 RANLIB_PROG=ranlib
 
@@ -35,8 +35,8 @@ OBJDUMP_PROG=objdump
 PROGS = $(SIZE_PROG) $(COPY_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRIP_PROG) $(RANLIB_PROG)
 STAGESTUFF = $(PROGS) *.o
 
-BASEDIR = $(srcdir)/..
-LIBDIR  = $(srcdir)/../bfd$(subdir)
+BASEDIR = $(unsubdir)/..
+LIBDIR  = $(unsubdir)/../bfd$(subdir)
 
 #### host and target dependant Makefile fragments come in here.
 ###
@@ -65,7 +65,7 @@ DISASMS = m68k-pinsn.o i960-pinsn.o sparc-pinsn.o  am29k-pinsn.o
 # Use the GNU getopt unless you have problems with it.
 # The IRIS version could probably benefit from being assembled with
 # libmalloc rather than the ordinary malloc.
-LIBIBERTY = $(srcdir)/../libiberty$(subdir)/libiberty.a
+LIBIBERTY = $(unsubdir)/../libiberty$(subdir)/libiberty.a
 
 # Code shared by all the binutils.
 BULIBS = bucomm.o version.o filemode.o
@@ -94,10 +94,21 @@ $(NM_PROG): $(ADDL_LIBS) nm.o $(BFD)
 $(OBJDUMP_PROG): $(ADDL_LIBS) size.o objdump.o $(DISASMS) $(BFD)
        $(CC) $(LDFLAGS) $(CFLAGS) -o $(OBJDUMP_PROG) objdump.o $(DISASMS) $(ADDL_LIBS) $(LOADLIBES)
 
-$(AR_PROG): $(ADDL_LIBS) ar.o $(BFD)
-       $(CC) $(LDFLAGS) $(CFLAGS) -o $(AR_PROG) ar.o $(ADDL_LIBS) $(LOADLIBES)
+$(AR_PROG): $(ADDL_LIBS) ar.o not-ranlib.o $(BFD)
+       $(CC) $(LDFLAGS) $(CFLAGS) -o $(AR_PROG) ar.o not-ranlib.o $(ADDL_LIBS) $(LOADLIBES)
 
-$(RANLIB_PROG): $(AR_PROG) 
+$(RANLIB_PROG): $(ADDL_LIBS) ar.o is-ranlib.o $(BFD)
+       $(CC) $(LDFLAGS) $(CFLAGS) -o $(AR_PROG) ar.o is-ranlib.o $(ADDL_LIBS) $(LOADLIBES)
+
+# This rule creates a single binary that switches between ar and ranlib
+# by looking at argv[0].  Use this kludge to save some disk space.
+# However, you have to install things by hand.
+# (That is after 'make install', replace the installed ranlib by a link to ar.)
+
+# Alternatively, you can install ranlib.sh as ranlib.
+
+ar_with_ranlib: $(ADDL_LIBS) ar.o maybe-ranlib.o $(BFD)
+       $(CC) $(LDFLAGS) $(CFLAGS) -o $(AR_PROG) ar.o maybe-ranlib.o $(ADDL_LIBS) $(LOADLIBES)
        -rm -f $(RANLIB_PROG)
        -ln $(AR_PROG) $(RANLIB_PROG)