3 # Copyright (C) 1990, 1991 Free Software Foundation, Inc.
5 # This file is part of BFD, the Binary File Diddler.
7 # BFD is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 1, or (at your option)
12 # BFD is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with BFD; see the file COPYING. If not, write to
19 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
25 libdir = $(destdir
)/lib
30 INCDIR
= $(srcdir)/..
/include
33 #### host and target dependent Makefile fragments come in here.
37 CFLAGS
= -g
$(HDEFINES
) $(TDEFINES
) $(CSEARCH
) $(CSWITCHES
) # -DINTEL960VERSION
40 BFD_LIBS
= libbfd.o opncls.o bfd.o archive.o targets.o cache.o \
41 archures.o core.o section.o format.o syms.o reloc.o
43 BFD_BACKENDS
= oasys.o ieee.o srec.o aout64.o aout32.o sunos.o icoff.o \
45 m68kcoff.o i386coff.o m88k-bcs.o ecoff.o newsos3.o
# trad-core.o bout.o
48 SYSDEP_H
=$(INCDIR
)/sysdep.h
50 # C source files that correspond to .o's.
51 CFILES
= libbfd.c opncls.c bfd.c archive.c targets.c cache.c archures.c \
52 i386coff.c aout64.c aout32.c sunos.c demo64.c icoff.c srec.c \
53 oasys.c ieee.c m68kcoff.c amdcoff.c \
54 format.c section.c core.c syms.c reloc.c \
55 m88k-bcs.c ecoff.c trad-core.c newsos3.c
#bout.c
57 STAGESTUFF
= $(TARGETLIB
) $(OFILES
)
61 # XDEPFILES comes from the host config; TDEPFILES from the target config.
62 OFILES
= $(BFD_LIBS
) $(BFD_BACKENDS
) $(XDEPFILES
) $(TDEPFILES
)
64 $(TARGETLIB
): $(OFILES
)
66 $(AR
) $(AR_FLAGS
) $(TARGETLIB
) $(OFILES
)
67 $(RANLIB
) $(TARGETLIB
)
71 - mv
-f
$(STAGESTUFF
) stage1
75 - mv
-f
$(STAGESTUFF
) stage2
79 - mv
-f
$(STAGESTUFF
) stage3
84 for i in
*.o
; do cmp
$$i $(against
)/$$i || exit
1 ; done
87 - (cd stage1
; mv
-f
$(STAGESTUFF
) ..
)
91 - (cd stage2
; mv
-f
$(STAGESTUFF
) ..
)
95 - (cd stage3
; mv
-f
$(STAGESTUFF
) ..
)
101 etags
$(INCDIR
)/*.h
$(srcdir)/*.h
$(srcdir)/*.c
104 rm -f
*.
[oa
] *~ core
*.E
106 clobber realclean: clean
109 $(BFD_LIBS
) $(BFD_BACKENDS
): libbfd.h
$(BFD_H
)
112 #suppress 65 on bfd_map_over_sections
113 #suppress 66 on bfd_map_over_sections
114 #suppress 67 on bfd_map_over_sections
115 #suppress 68 on bfd_map_over_sections
116 #suppress 69 on bfd_map_over_sections
117 #suppress 70 on bfd_map_over_sections
118 #suppress 110 in bfd_map_over_sections
119 #suppress 112 in bfd_map_over_sections
121 #suppress 590 in swap_exec_header
122 #suppress 590 in _bfd_dummy_core_file_matches_executable_p
123 #suppress 590 in bfd_dont_truncate_arname
124 #suppress 590 on ignore
125 #suppress 590 on abfd
126 #setopt load_flags $(CFLAGS)
130 #-----------------------------------------------------------------------------
131 # 'STANDARD' GNU/960 TARGETS BELOW THIS POINT
133 # 'VERSION' file must be present and contain a string of the form "x.y"
134 #-----------------------------------------------------------------------------
138 echo
"char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c
141 # This target should be invoked before building a new release.
142 # 'VERSION' file must be present and contain a string of the form "x.y"
146 MAJ
=`sed 's/\..*//' VERSION` ; \
147 MIN
=`sed 's/.*\.//' VERSION` ; \
148 V
=$$MAJ.
`expr $$MIN + 1` ; \
150 echo
$$V >VERSION
; \
153 # Dummy target to force execution of dependent targets.
158 install -c libbfd.a
$(libdir)
159 $(RANLIB
) $(libdir)/libbfd.a
161 # Target to uncomment host-specific lines in this makefile. Such lines must
162 # have the following string beginning in column 1: #__<hostname>__#
163 # Original Makefile is backed up as 'Makefile.old'.
165 # Invoke with: make make HOST=xxx
168 -@if
test $(HOST
)x
= x
; then \
169 echo
'\aSpecify "make make HOST=???"'; \
172 grep
-s
"^#The next line was generated by 'make make'" Makefile
; \
173 if
test $$?
= 0 ; then \
174 echo
"\aMakefile has already been processed with 'make make'";\
177 mv
-f Makefile Makefile.old
; \
178 echo
"#The next line was generated by 'make make'" >Makefile
; \
179 echo
"HOST=$(HOST)" >>Makefile
; \
181 sed
"s/^#__$(HOST)__#//" < Makefile.old
>>Makefile
183 Makefile
: $(srcdir)/Makefile.in
$(srcdir)/configure
185 .
/configure
+norecurse \
186 +destdir
=$(destdir
) \
187 `if [ "$(srcdir)" != "." ] ; then echo +f; fi` \
188 $(host
) +target
=$(target
);)
194 # Stuff to make the documentation for bfd.
197 # rebuilds the documentation. Has to be done when the source is
198 # modified until I work out how to do this properly
201 # rebuilds the header files from the source
204 # rebuilds the bfd.dvi manual
207 # rebuilts the bfdinfo manual
210 .SUFFIXES
: .doc .o .c .h .proto
213 makedoc
<$< doc
/$*.doc doc
/$*.proto doc
/$*.protointernal doc
/$*.drop
216 makedoc
<$< doc
/$*.doc doc
/$*.proto doc
/$*.protointernal doc
/$*.drop
219 makedoc
<$< doc
/$*.doc doc
/$*.proto doc
/$*.protointernal doc
/$*.drop
224 docs
: syms.doc bfd.doc cache.doc format.doc section.doc archive.doc \
225 core.doc libbfd.doc archures.doc reloc.doc opncls.doc \
226 targets.doc aoutx.doc coffcode.doc
229 PROTOS
= doc
/opncls.proto doc
/archures.proto doc
/libbfd.proto doc
/section.proto doc
/syms.proto doc
/bfd.proto doc
/archive.proto \
230 doc
/reloc.proto doc
/targets.proto doc
/format.proto
235 # Rebuild prototypes in bfd.h
236 sed
<$(BFD_H
) >bfd.h.new
-e
'1,/THE FOLLOWING/!d'
237 cat doc
/opncls.proto doc
/archures.proto \
238 doc
/libbfd.proto doc
/section.proto doc
/syms.proto \
239 doc
/bfd.proto doc
/archive.proto \
241 doc
/reloc.proto doc
/targets.proto doc
/format.proto
>>bfd.h.new
243 echo
"#endif" >> bfd.h.new
245 mv bfd.h.new
$(BFD_H
)
248 sed
< libbfd.h
>libbfd.h.new
-e
'1,/THE FOLLOWING/!d'
249 cat doc
/libbfd.protointernal doc
/cache.protointernal doc
/reloc.protointernal
>> libbfd.h.new
251 mv libbfd.h.new libbfd.h
254 sed
< $(srcdir)/libcoff.h
>libcoff.h.new
-e
'1,/THE FOLLOWING/!d'
255 cat doc
/coffcode.proto
>>libcoff.h.new
256 mv libcoff.h.new
$(srcdir)/libcoff.h
260 makeinfo +no-validate bfd.texinfo
267 quickdoc
: $(DSRC
) docs