1 # Copyright (C) 1990, 1991 Free Software Foundation, Inc.
3 # This file is part of BFD, the Binary File Diddler.
5 # BFD is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 1, or (at your option)
10 # BFD is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with BFD; see the file COPYING. If not, write to
17 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
23 libdir = $(destdir
)/lib
28 INCDIR
= $(srcdir)/..
/include
31 #### host and target dependent Makefile fragments come in here.
35 CFLAGS
= -g
$(HDEFINES
) $(TDEFINES
) $(CSEARCH
) $(CSWITCHES
) # -DINTEL960VERSION
38 BFD_LIBS
= libbfd.o opncls.o bfd.o archive.o targets.o cache.o \
39 archures.o core.o section.o format.o syms.o reloc.o
41 BFD_BACKENDS
= oasys.o ieee.o srec.o aout64.o aout32.o sunos.o icoff.o \
43 m68kcoff.o i386coff.o m88k-bcs.o ecoff.o newsos3.o bout.o
# trad-core.o
46 SYSDEP_H
=$(INCDIR
)/sysdep.h
48 # C source files that correspond to .o's.
49 CFILES
= libbfd.c opncls.c bfd.c archive.c targets.c cache.c archures.c \
50 i386coff.c aout64.c aout32.c sunos.c demo64.c icoff.c srec.c \
51 oasys.c ieee.c m68kcoff.c amdcoff.c \
52 format.c section.c core.c syms.c reloc.c \
53 m88k-bcs.c ecoff.c trad-core.c newsos3.c bout.c
55 STAGESTUFF
= $(TARGETLIB
) $(OFILES
)
59 # XDEPFILES comes from the host config; TDEPFILES from the target config.
60 OFILES
= $(BFD_LIBS
) $(BFD_BACKENDS
) $(XDEPFILES
) $(TDEPFILES
)
62 $(TARGETLIB
): $(OFILES
)
64 $(AR
) $(AR_FLAGS
) $(TARGETLIB
) $(OFILES
)
65 $(RANLIB
) $(TARGETLIB
)
69 - mv
-f
$(STAGESTUFF
) stage1
73 - mv
-f
$(STAGESTUFF
) stage2
77 - mv
-f
$(STAGESTUFF
) stage3
82 for i in
*.o
; do cmp
$$i $(against
)/$$i || exit
1 ; done
85 - (cd stage1
; mv
-f
$(STAGESTUFF
) ..
)
89 - (cd stage2
; mv
-f
$(STAGESTUFF
) ..
)
93 - (cd stage3
; mv
-f
$(STAGESTUFF
) ..
)
99 etags
$(INCDIR
)/*.h
$(srcdir)/*.h
$(srcdir)/*.c
102 rm -f
*.
[oa
] *~ core
*.E
104 clobber realclean: clean
107 $(BFD_LIBS
) $(BFD_BACKENDS
): libbfd.h
$(BFD_H
)
110 #suppress 65 on bfd_map_over_sections
111 #suppress 66 on bfd_map_over_sections
112 #suppress 67 on bfd_map_over_sections
113 #suppress 68 on bfd_map_over_sections
114 #suppress 69 on bfd_map_over_sections
115 #suppress 70 on bfd_map_over_sections
116 #suppress 110 in bfd_map_over_sections
117 #suppress 112 in bfd_map_over_sections
119 #suppress 590 in swap_exec_header
120 #suppress 590 in _bfd_dummy_core_file_matches_executable_p
121 #suppress 590 in bfd_dont_truncate_arname
122 #suppress 590 on ignore
123 #suppress 590 on abfd
124 #setopt load_flags $(CFLAGS)
128 #-----------------------------------------------------------------------------
129 # 'STANDARD' GNU/960 TARGETS BELOW THIS POINT
131 # 'VERSION' file must be present and contain a string of the form "x.y"
132 #-----------------------------------------------------------------------------
136 echo
"char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c
139 # This target should be invoked before building a new release.
140 # 'VERSION' file must be present and contain a string of the form "x.y"
144 MAJ
=`sed 's/\..*//' VERSION` ; \
145 MIN
=`sed 's/.*\.//' VERSION` ; \
146 V
=$$MAJ.
`expr $$MIN + 1` ; \
148 echo
$$V >VERSION
; \
151 # Dummy target to force execution of dependent targets.
156 install -c libbfd.a
$(libdir)
157 $(RANLIB
) $(libdir)/libbfd.a
159 # Target to uncomment host-specific lines in this makefile. Such lines must
160 # have the following string beginning in column 1: #__<hostname>__#
161 # Original Makefile is backed up as 'Makefile.old'.
163 # Invoke with: make make HOST=xxx
166 -@if
test $(HOST
)x
= x
; then \
167 echo
'\aSpecify "make make HOST=???"'; \
170 grep
-s
"^#The next line was generated by 'make make'" Makefile
; \
171 if
test $$?
= 0 ; then \
172 echo
"\aMakefile has already been processed with 'make make'";\
175 mv
-f Makefile Makefile.old
; \
176 echo
"#The next line was generated by 'make make'" >Makefile
; \
177 echo
"HOST=$(HOST)" >>Makefile
; \
179 sed
"s/^#__$(HOST)__#//" < Makefile.old
>>Makefile
181 Makefile
: $(srcdir)/Makefile.in
$(srcdir)/configure
183 .
/configure
+norecurse \
184 +destdir
=$(destdir
) \
185 `if [ "$(srcdir)" != "." ] ; then echo +f; fi` \
186 $(host
) +target
=$(target
);)
192 # Stuff to make the documentation for bfd.
195 # rebuilds the documentation. Has to be done when the source is
196 # modified until I work out how to do this properly
199 # rebuilds the header files from the source
202 # rebuilds the bfd.dvi manual
205 # rebuilts the bfdinfo manual
208 .SUFFIXES
: .doc .o .c .h .proto
211 makedoc
<$< doc
/$*.doc doc
/$*.proto doc
/$*.protointernal doc
/$*.drop
214 makedoc
<$< doc
/$*.doc doc
/$*.proto doc
/$*.protointernal doc
/$*.drop
217 makedoc
<$< doc
/$*.doc doc
/$*.proto doc
/$*.protointernal doc
/$*.drop
222 docs
: syms.doc bfd.doc cache.doc format.doc section.doc archive.doc \
223 core.doc libbfd.doc archures.doc reloc.doc opncls.doc \
224 targets.doc aoutx.doc coffcode.doc
227 PROTOS
= doc
/opncls.proto doc
/archures.proto doc
/libbfd.proto doc
/section.proto doc
/syms.proto doc
/bfd.proto doc
/archive.proto \
228 doc
/reloc.proto doc
/targets.proto doc
/format.proto
233 # Rebuild prototypes in bfd.h
234 sed
<$(BFD_H
) >bfd.h.new
-e
'1,/THE FOLLOWING/!d'
235 cat doc
/opncls.proto doc
/archures.proto \
236 doc
/libbfd.proto doc
/section.proto doc
/syms.proto \
237 doc
/bfd.proto doc
/archive.proto \
239 doc
/reloc.proto doc
/targets.proto doc
/format.proto
>>bfd.h.new
241 echo
"#endif" >> bfd.h.new
243 mv bfd.h.new
$(BFD_H
)
246 sed
< libbfd.h
>libbfd.h.new
-e
'1,/THE FOLLOWING/!d'
247 cat doc
/libbfd.protointernal doc
/cache.protointernal doc
/reloc.protointernal
>> libbfd.h.new
249 mv libbfd.h.new libbfd.h
252 sed
< $(srcdir)/libcoff.h
>libcoff.h.new
-e
'1,/THE FOLLOWING/!d'
253 cat doc
/coffcode.proto
>>libcoff.h.new
254 mv libcoff.h.new
$(srcdir)/libcoff.h
258 makeinfo +no-validate bfd.texinfo
265 quickdoc
: $(DSRC
) docs