X-Git-Url: https://repo.jachan.dev/binutils.git/blobdiff_plain/2226a09076ca6ae40a714cb9ab2b711aadac29b0..f7ed13c7d50d5eb44360d2dd991e78c574460064:/binutils/Makefile.in diff --git a/binutils/Makefile.in b/binutils/Makefile.in index 7cbdb967f7..595d64068f 100644 --- a/binutils/Makefile.in +++ b/binutils/Makefile.in @@ -1,5 +1,5 @@ # Makefile for GNU binary-file utilities -# Copyright (C) 1989-1991 Free Software Foundation, Inc. +# Copyright (C) 1989-1992 Free Software Foundation, Inc. # This file is part of GNU binutils. @@ -17,33 +17,64 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -#$Id$ - srcdir = . -ddestdir = /usr/local -idestdir = $(ddestdir) +prefix = /usr/local + +program_transform_name = +exec_prefix = $(prefix) +bindir = $(exec_prefix)/bin +libdir = $(exec_prefix)/lib +tooldir = $(libdir)/$(target_alias) + +datadir = $(prefix)/lib +mandir = $(prefix)/man +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +man9dir = $(mandir)/man9 +infodir = $(prefix)/info +includedir = $(prefix)/include +docdir = $(datadir)/doc SHELL = /bin/sh +INSTALL = install -c +INSTALL_PROGRAM = $(INSTALL) +INSTALL_DATA = $(INSTALL) + +AR = ar +AR_FLAGS = qv +CFLAGS = -g +MAKEINFO = makeinfo +TEXI2DVI = texi2dvi +RANLIB = ranlib +BISONFLAGS = -d +TEXI2ROFF=texi2roff + +SYMLINK = ln -s + +BISON = `if [ -f ../byacc/byacc ] ; then echo ../byacc/byacc ; else echo byacc ; fi` +# Comment these out if using lex. +LEX_OPTIONS = -I -Cem +LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ; else echo flex ; fi` + # Distribution version -VERSION=1.91 +VERSION=2.1 # Distribution name -DIST_NAME=binutils-beta-${VERSION} +DIST_NAME=binutils-${VERSION} -version=`$(unsubdir)/../gcc$(subdir)/gcc -dumpversion` -prefix = $(ddestdir) -bindir = $(prefix)/bin -mandir = $(idestdir)/man +version=`./../gcc/gcc -dumpversion` # Where to find texinfo.tex to format docn with TeX TEXIDIR = $(srcdir)/../texinfo/fsf -MANPAGES= ar.1 nm.1 objdump.1 ranlib.1 size.1 strip.1 - -#INSTALL = install -c -#INSTALL_PROGRAM = $(INSTALL) -#INSTALL_FILE = $(INSTALL) +MANPAGES= ar nm objdump ranlib size strip #CC=gcc -Wall # these two are almost the same program @@ -59,23 +90,29 @@ SIZE_PROG=size NM_PROG=nm OBJDUMP_PROG=objdump -PROGS = $(SIZE_PROG) $(COPY_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRIP_PROG) $(RANLIB_PROG) +# This is the demangler, as a standalone program. +DEMANGLER_PROG=demangle + +PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) STAGESTUFF = $(PROGS) *.o +# Files that can be generated, but should be in the distribution. +DISTSTUFF=arparse.c arlex.c binutils.mm BASEDIR = $(srcdir)/.. -LIBDIR = $(unsubdir)/../bfd$(subdir) +LIBDIR = ./../bfd +OPCODEDIR = ./../opcodes -MINUS_G = -g #### host and target dependant Makefile fragments come in here. ### -INCDIR = $(BASEDIR)/include +INCLUDES = -I. -I$(srcdir) -I$(BASEDIR)/include -I$(BASEDIR)/bfd -CFLAGS = $(MINUS_G) -I. -I$(srcdir) -I$(INCDIR) $(HDEFINES) $(TDEFINES) +.c.o: + $(CC) -c $(CFLAGS) $(INCLUDES) $(HDEFINES) $(TDEFINES) $< # When adding .o files, to make VPATH work in Sun Make, you have to # also add a foo.o: foo.c line at the bottom of the file. -DISASMS = m68k-pinsn.o i960-pinsn.o sparc-pinsn.o am29k-pinsn.o +DISASMS = i960-pinsn.o am29k-pinsn.o # ## Random definitions @@ -93,7 +130,9 @@ 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 = $(unsubdir)/../libiberty$(subdir)/libiberty.a +LIBIBERTY_SRC_DIR = $(srcdir)/../libiberty +LIBIBERTY_BIN_DIR = ./../libiberty +LIBIBERTY = $(LIBIBERTY_BIN_DIR)/libiberty.a # Code shared by all the binutils. BULIBS = bucomm.o version.o filemode.o @@ -101,11 +140,28 @@ BULIBS = bucomm.o version.o filemode.o ADDL_LIBS = $(MALLOC) $(BULIBS) $(BFD) $(LIBIBERTY) BFD = $(LIBDIR)/libbfd.a +OPCODES = $(OPCODEDIR)/libopcodes.a # ## The rules -all: $(ADDL_LIBS) $(PROGS) +all: $(ADDL_LIBS) $(PROGS) testsuite +testsuite: + if [ -d testsuite ]; then \ + (rootme=`pwd`/ ; export rootme ; \ + rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \ + cd testsuite; $(MAKE) $(FLAGS_TO_PASS)); \ + else true ; fi + +check: all + /bin/sh $(srcdir)/sanity.sh . + +installcheck: + /bin/sh $(srcdir)/sanity.sh $(bindir) + +info: binutils.info + +dvi: binutils.dvi #$(BFD):$(LIBDIR)/../common/*.c # (cd $(LIBDIR); make) @@ -113,20 +169,36 @@ all: $(ADDL_LIBS) $(PROGS) $(SIZE_PROG): $(ADDL_LIBS) size.o $(BFD) $(CC) $(LDFLAGS) $(CFLAGS) -o $(SIZE_PROG) size.o $(ADDL_LIBS) $(LOADLIBES) -$(COPY_PROG): $(ADDL_LIBS) copy.o $(BFD) - $(CC) $(LDFLAGS) $(CFLAGS) -o $(COPY_PROG) copy.o $(ADDL_LIBS) $(LOADLIBES) +$(COPY_PROG): $(ADDL_LIBS) copy.o not-strip.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(COPY_PROG) copy.o not-strip.o $(ADDL_LIBS) $(LOADLIBES) + +$(STRIP_PROG): $(ADDL_LIBS) copy.o is-strip.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(STRIP_PROG) copy.o is-strip.o $(ADDL_LIBS) $(LOADLIBES) $(NM_PROG): $(ADDL_LIBS) nm.o $(BFD) $(CC) $(LDFLAGS) $(CFLAGS) -o $(NM_PROG) nm.o $(ADDL_LIBS) $(LOADLIBES) -$(OBJDUMP_PROG): $(ADDL_LIBS) size.o objdump.o $(DISASMS) $(BFD) - $(CC) $(LDFLAGS) $(CFLAGS) -o $(OBJDUMP_PROG) objdump.o $(DISASMS) $(ADDL_LIBS) $(LOADLIBES) +$(OBJDUMP_PROG): $(ADDL_LIBS) size.o objdump.o $(DISASMS) $(BFD) $(OPCODES) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(OBJDUMP_PROG) objdump.o $(DISASMS) $(OPCODES) $(ADDL_LIBS) $(LOADLIBES) + +$(DEMANGLER_PROG): $(LIBIBERTY_SRC_DIR)/cplus-dem.c + $(CC) $(LDFLAGS) $(CFLAGS) $(INCLUDES) $(HDEFINES) $(TDEFINES) -DMAIN -o $(DEMANGLER_PROG) $(LIBIBERTY_SRC_DIR)/cplus-dem.c $(LIBIBERTY) $(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) +arparse.c:arparse.y + $(BISON) $(BISONFLAGS) $(srcdir)/arparse.y + -mv y.tab.c arparse.c + -mv y.tab.h arparse.h -$(RANLIB_PROG): $(ADDL_LIBS) ar.o is-ranlib.o $(BFD) - $(CC) $(LDFLAGS) $(CFLAGS) -o $(RANLIB_PROG) ar.o is-ranlib.o $(ADDL_LIBS) $(LOADLIBES) + +arlex.c: arlex.l + $(LEX) $(LEX_OPTIONS) $(srcdir)/arlex.l + mv lex.yy.c arlex.c + +$(AR_PROG): $(ADDL_LIBS) ar.o arparse.o arlex.o not-ranlib.o $(BFD) arsup.o + $(CC) $(LDFLAGS) $(CFLAGS) -o $(AR_PROG) ar.o arparse.o arlex.o arsup.o not-ranlib.o $(ADDL_LIBS) $(LOADLIBES) + +$(RANLIB_PROG): $(ADDL_LIBS) ar.o is-ranlib.o arparse.o arlex.o arsup.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(RANLIB_PROG) ar.o arparse.o arlex.o arsup.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. @@ -140,7 +212,10 @@ ar_with_ranlib: $(ADDL_LIBS) ar.o maybe-ranlib.o $(BFD) -rm -f $(RANLIB_PROG) -ln $(AR_PROG) $(RANLIB_PROG) -$(STRIP_PROG): $(COPY_PROG) +# copy and strip in one binary that uses argv[0] to decide its action. + +copy_with_strip: $(ADDL_LIBS) copy.o maybe-strip.o $(BFD) + $(CC) $(LDFLAGS) $(CFLAGS) -o $(COPY_PROG) copy.o maybe-strip.o $(ADDL_LIBS) $(LOADLIBES) -rm -f $(STRIP_PROG) -ln $(COPY_PROG) $(STRIP_PROG) @@ -177,33 +252,53 @@ de-stage3: force # DOCUMENTATION TARGETS # TeX output binutils.dvi: $(srcdir)/binutils.texi - TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex $(srcdir)/binutils.texi - texindex binutils.?? - TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex $(srcdir)/binutils.texi + $(TEXI2DVI) $(srcdir)/binutils.texi # info file for online browsing binutils.info: $(srcdir)/binutils.texi - makeinfo -o binutils.info $(srcdir)/binutils.texi + $(MAKEINFO) -o binutils.info $(srcdir)/binutils.texi # different targets for -ms, -mm, -me -# (we don't use a variable because we don't trust all makes to handle -# a var in the target name right). +# Try to use a recent texi2roff. v2 was put on prep in jan91. +# If you want an index, see texi2roff doc for postprocessing +# and add -i to texi2roff invocations below. +# Workarounds for texi2roff-2 (probably fixed in later texi2roff's, delete +# correspondint -e lines when later texi2roff's are current) +# + @ifinfo's deleted explicitly due to texi2roff-2 bug w nested constructs. +# + @c's deleted explicitly because texi2roff sees texinfo commands in them +# + @ (that's at-BLANK) not recognized by texi2roff, turned into blank +# + @alphaenumerate is ridiculously new, turned into @enumerate + # roff output (-ms) binutils.ms: $(srcdir)/binutils.texi sed -e '/\\input texinfo/d' \ -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ + -e '/^@ifinfo/,/^@end ifinfo/d' \ + -e '/^@c/d' \ -e 's/{.*,,/{/' \ + -e 's/@ / /g' \ + -e 's/^@alphaenumerate/@enumerate/g' \ + -e 's/^@end alphaenumerate/@end enumerate/g' \ $(srcdir)/binutils.texi | \ - texi2roff -ms >binutils.ms + $(TEXI2ROFF) -ms | \ + sed -e 's/---/\\(em/g' \ + >binutils.ms # roff output (-mm) +# '@noindent's removed due to texi2roff-2 mm bug; if yours is newer, +# try leaving them in binutils.mm: $(srcdir)/binutils.texi sed -e '/\\input texinfo/d' \ -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ + -e '/^@ifinfo/,/^@end ifinfo/d' \ + -e '/^@c/d' \ -e 's/{.*,,/{/' \ -e '/@noindent/d' \ + -e 's/@ / /g' \ + -e 's/^@alphaenumerate/@enumerate/g' \ + -e 's/^@end alphaenumerate/@end enumerate/g' \ $(srcdir)/binutils.texi | \ - texi2roff -mm | \ + $(TEXI2ROFF) -mm | \ sed -e 's/---/\\(em/g' \ >binutils.mm @@ -211,40 +306,87 @@ binutils.mm: $(srcdir)/binutils.texi binutils.me: $(srcdir)/binutils.texi sed -e '/\\input texinfo/d' \ -e '/@c TEXI2ROFF-KILL/,/@c END TEXI2ROFF-KILL/d' \ + -e '/^@ifinfo/,/^@end ifinfo/d' \ + -e '/^@c/d' \ -e 's/{.*,,/{/' \ + -e 's/@ / /g' \ + -e 's/^@alphaenumerate/@enumerate/g' \ + -e 's/^@end alphaenumerate/@end enumerate/g' \ $(srcdir)/binutils.texi | \ - texi2roff -me >binutils.me + $(TEXI2ROFF) -me | \ + sed -e 's/---/\\(em/g' \ + >binutils.me ###################################################################### -clean: - -rm -f *.o *~ \#* core $(STAGESTUFF) TAGS binutils.?? binutils.??? +mostlyclean: + -rm -f *.o *~ \#* core binutils.?? binutils.??? +clean: mostlyclean + -rm -f $(PROGS) +distclean: clean + -rm -f Makefile config.status sysdep.h +realclean: distclean + -rm -f $(DISTSTUFF) TAGS etags tags: TAGS TAGS: force etags $(INCDIR)/*.h $(BFDSRC)/*.[hc] *.[hc] -realclean: clean - -rm -f $(STAGESTUFF) TAGS - -install: $(PROGS) - for i in $(PROGS) ; do \ - cp $$i $(bindir)/$$i.new ; \ - mv -f $(bindir)/$$i.new $(bindir)/$$i ; \ +install: all + -parent=`echo $(bindir)|sed -e 's@/[^/]*$$@@'`; \ + if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi + -if [ -d $(bindir) ] ; then true ; else mkdir $(bindir) ; fi + -for i in $(PROGS) ; do \ + $(INSTALL_PROGRAM) $$i $(bindir)/`t='$(program_transform_name)'; echo $$i | sed -e "" $$t` ; \ + done + -parent=`echo $(man1dir)|sed -e 's@/[^/]*$$@@'`; \ + if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi + -if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; fi + -for i in $(MANPAGES) ; do \ + $(INSTALL_DATA) $(srcdir)/$$i.1 $(man1dir)/`t='$(program_transform_name)'; echo $$i | sed -e "" $$t`.1 ; \ done - for i in $(MANPAGES) ; do \ - cp $(srcdir)/$$i $(mandir)/man1/$$i.new ; \ - mv -f $(mandir)/man1/$$i.new $(mandir)/man1/$$i ; \ + -if [ -d $(tooldir) ]; then \ + if [ -d $(tooldir)/bin ] ; then true ; else mkdir $(tooldir)/bin ; fi; \ + for i in nm strip ; do \ + rm -f $(tooldir)/bin/$$i; \ + ln $(bindir)/`t='$(program_transform_name)'; echo $$i | sed -e "" $$t` $(tooldir)/bin/$$i \ + || $(INSTALL_PROGRAM) $$i $(tooldir)/bin/$$i; \ + done; \ + else true; fi + +install-info: info + -parent=`echo $(infodir)|sed -e 's@/[^/]*$$@@'`; \ + if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi + -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi + for i in *.info* ; do \ + $(INSTALL_DATA) $$i $(infodir)/$$i ; \ done +clean-info: + -rm -rf *.info* + +# Making a dist: +# cvs rtag binutils-x-yy ld+utils +# cvs co -r binutils-x-yy ld+utils +# Sanitize +# cd {HERE}; make dist [-f Makefile.in] + dist: $(DIST_NAME).tar.Z +diststuff: $(DISTSTUFF) + $(DIST_NAME).tar.Z: cd ../..; rm -f $(DIST_NAME); ln -s devo $(DIST_NAME) - make binutils.mm -f Makefile.in - cd ../ld; make ld.mm -f Makefile.in + make diststuff -f Makefile.in + cd ../ld; make diststuff -f Makefile.in + cd ../gprof; make diststuff -f Makefile.in + cd ../texinfo; mv texinfo.tex ..; rm -rf *; mv ../texinfo.tex . + # Take out texinfo from configurable dirs + mv ../configure.in tmp; \ + sed -e '/^host_tools=/s/texinfo //' ../configure.in; rm tmp + cd ..; chmod og=u `find . -print` cd ../..; tar chf - $(DIST_NAME) | compress >$(DIST_NAME).tar.Z rm -rf ../../$(DIST_NAME) @@ -252,24 +394,26 @@ $(DIST_NAME).tar.Z: alloca.o:alloca.c am29k-pinsn.o: am29k-pinsn.c ar.o: ar.c +arsup.o: arsup.c bucomm.o: bucomm.c copy.o: copy.c -cplus-dem.o:cplus-dem.c filemode.o:filemode.c getopt.o:getopt.c getopt1.o:getopt1.c gmalloc.o:gmalloc.c i960-pinsn.o: i960-pinsn.c is-ranlib.o:is-ranlib.c -m68k-pinsn.o: m68k-pinsn.c +is-strip.o:is-strip.c maybe-ranlib.o:maybe-ranlib.c +maybe-strip.o:maybe-strip.c nm.o: nm.c not-ranlib.o:not-ranlib.c +not-strip.o:not-strip.c objdump.o: objdump.c size.o: size.c -sparc-pinsn.o: sparc-pinsn.c strip.o:strip.c -version.o: version.c +version.o: $(srcdir)/version.c + $(CC) $(CFLAGS) $(INCLUDES) $(HDEFINES) $(TDEFINES) -DVERSION='"$(VERSION)"' -c $(srcdir)/version.c #----------------------------------------------------------------------------- # 'STANDARD' GNU/960 TARGETS BELOW THIS POINT