#       This makefile is designed for DJGPP
SRCDIR=.
#
# Makefile
#   Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
#

VPATH = $(SRCDIR)
srcdir = $(SRCDIR)

prefix = $(DJDIR)

exec_prefix = $(DJDIR)
bindir = $(prefix)/bin
libdir = $(prefix)/lib

datadir = @datadir@
mandir = @mandir@
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 = @infodir@
includedir = @includedir@

MKDOC=./chew
#SHELL = /bin/sh

INSTALL = install
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL)

MAKEINFO = makeinfo --no-split
TEXI2DVI = texi2dvi
CFLAGS = -g

CC_FOR_BUILD = $(CC)

#### Host, target, and site specific Makefile fragments come in here.
###

.c.o:
	$(CC) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include $(H_CFLAGS) $(CFLAGS) $<

DOCFILES = aoutx.texi  archive.texi archures.texi \
	bfd.texi  cache.texi coffcode.texi \
	core.texi elf.texi elfcode.texi  format.texi  libbfd.texi  \
	opncls.texi  reloc.texi  section.texi  \
	syms.texi  targets.texi init.texi hash.texi linker.texi

PROTOS = archive.p archures.p bfd.p \
	 core.p format.p \
	libbfd.p opncls.p reloc.p \
	section.p syms.p targets.p  \
	format.p  core.p init.p

IPROTOS = cache.ip libbfd.ip reloc.ip init.ip archures.ip coffcode.ip

# SRCDOC, SRCPROT, SRCIPROT only used to sidestep Sun Make bug in interaction 
# between VPATH and suffix rules.  If you use GNU Make, perhaps other Makes,
# you don't need these three:
SRCDOC = $(srcdir)/../aoutx.h  $(srcdir)/../archive.c \
	$(srcdir)/../archures.c $(srcdir)/../bfd.c \
	$(srcdir)/../cache.c $(srcdir)/../coffcode.h \
	$(srcdir)/../corefile.c $(srcdir)/../elf.c \
	$(srcdir)/../elfcode.h  $(srcdir)/../format.c \
	$(srcdir)/../libbfd.c $(srcdir)/../opncls.c \
	$(srcdir)/../reloc.c  $(srcdir)/../section.c \
	$(srcdir)/../syms.c  $(srcdir)/../targets.c \
	$(srcdir)/../hash.c $(srcdir)/../linker.c

SRCPROT = $(srcdir)/../archive.c $(srcdir)/../archures.c \
	$(srcdir)/../bfd.c $(srcdir)/../coffcode.h $(srcdir)/../corefile.c \
	$(srcdir)/../format.c $(srcdir)/../libbfd.c \
	$(srcdir)/../opncls.c $(srcdir)/../reloc.c \
	$(srcdir)/../section.c $(srcdir)/../syms.c \
	$(srcdir)/../targets.c $(srcdir)/../init.c

SRCIPROT = $(srcdir)/../cache.c $(srcdir)/../libbfd.c \
	$(srcdir)/../reloc.c $(srcdir)/../cpu-h8300.c \
	$(srcdir)/../cpu-i960.c $(srcdir)/../archures.c \
	$(srcdir)/../init.c

STAGESTUFF = $(DOCFILES) *.info*

TEXIDIR = $(srcdir)/../../texinfo/fsf

all install:

info: bfd.info

dvi: bfd.dvi

install-info: info
	for i in *.info* ; do \
		$(INSTALL_DATA) $$i $(infodir)/$$i ; \
	done

docs: $(MKDOC) protos bfd.info bfd.dvi bfd.ps

$(MKDOC): chew.o
	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(LOADLIBES) $(LDFLAGS)

chew.o: chew.c
	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c

protos: libbfd.h libcoff.h bfd.h


# We can't replace these rules with an implicit rule, because
# makes without VPATH support couldn't find the .h files in `..'.

aoutx.texi: $(MKDOC) $(srcdir)/../aoutx.h $(srcdir)/doc.str
	redir -i $(srcdir)/../aoutx.h  -o aoutx.texi $(MKDOC) -f $(srcdir)/doc.str 

archive.texi: $(MKDOC) $(srcdir)/../archive.c $(srcdir)/doc.str
	redir -i $(srcdir)/../archive.c  -o archive.texi  $(MKDOC) -f $(srcdir)/doc.str 

archures.texi: $(MKDOC) $(srcdir)/../archures.c $(srcdir)/doc.str
	redir -i  $(srcdir)/../archures.c  -o archures.texi  $(MKDOC) -f $(srcdir)/doc.str 

bfd.texi: $(MKDOC) $(srcdir)/../bfd.c $(srcdir)/doc.str
	redir -i  $(srcdir)/../bfd.c  -o bfd.texi $(MKDOC) -f $(srcdir)/doc.str 

cache.texi: $(MKDOC) $(srcdir)/../cache.c $(srcdir)/doc.str
	redir -i  $(srcdir)/../cache.c  -o cache.texi $(MKDOC) -f $(srcdir)/doc.str 

coffcode.texi:	$(MKDOC) $(srcdir)/../coffcode.h $(srcdir)/doc.str
	redir -i $(srcdir)/../coffcode.h  -o coffcode.texi $(MKDOC) -f $(srcdir)/doc.str 

core.texi: $(MKDOC) $(srcdir)/../corefile.c $(srcdir)/doc.str
	redir -i $(srcdir)/../corefile.c  -o core.texi $(MKDOC) -f $(srcdir)/doc.str 

elf.texi: $(MKDOC) $(srcdir)/../elf.c $(srcdir)/doc.str
	redir -i $(srcdir)/../elf.c  -o elf.texi $(MKDOC) -f $(srcdir)/doc.str 

elfcode.texi: $(MKDOC) $(srcdir)/../elfcode.h $(srcdir)/doc.str
	redir -i $(srcdir)/../elfcode.h  -o elfcode.texi $(MKDOC) -f $(srcdir)/doc.str 

format.texi: $(MKDOC) $(srcdir)/../format.c $(srcdir)/doc.str
	redir -i $(srcdir)/../format.c  -o format.texi $(MKDOC) -f $(srcdir)/doc.str 

libbfd.texi: $(MKDOC) $(srcdir)/../libbfd.c $(srcdir)/doc.str
	redir -i  $(srcdir)/../libbfd.c  -o libbfd.texi  $(MKDOC) -f $(srcdir)/doc.str 

opncls.texi: $(MKDOC) $(srcdir)/../opncls.c $(srcdir)/doc.str
	redir -i $(srcdir)/../opncls.c  -o opncls.texi $(MKDOC) -f $(srcdir)/doc.str  

reloc.texi : $(MKDOC) $(srcdir)/../reloc.c
	redir -i $(srcdir)/../reloc.c  -o reloc.texi  $(MKDOC) -f $(srcdir)/doc.str 

section.texi: $(MKDOC) $(srcdir)/../section.c $(srcdir)/doc.str
	redir -i $(srcdir)/../section.c  -o section.texi  $(MKDOC) -f $(srcdir)/doc.str 

syms.texi : $(MKDOC) $(srcdir)/../syms.c
	redir -i $(srcdir)/../syms.c  -o syms.texi $(MKDOC) -f $(srcdir)/doc.str 

targets.texi: $(MKDOC) $(srcdir)/../targets.c $(srcdir)/doc.str
	redir -i $(srcdir)/../targets.c  -o targets.texi $(MKDOC) -f $(srcdir)/doc.str 

init.texi: $(MKDOC) $(srcdir)/../init.c $(srcdir)/doc.str
	redir -i $(srcdir)/../init.c  -o init.texi $(MKDOC) -f $(srcdir)/doc.str 

hash.texi: $(MKDOC) $(srcdir)/../hash.c $(srcdir)/doc.str
	redir -i $(srcdir)/../hash.c  -o hash.texi $(MKDOC) -f $(srcdir)/doc.str 

linker.texi: $(MKDOC) $(srcdir)/../linker.c $(srcdir)/doc.str
	redir -i $(srcdir)/../linker.c  -o linker.texi $(MKDOC) -f $(srcdir)/doc.str 

libbfd.h: $(srcdir)/../libbfd-in.h	\
	$(srcdir)/../init.c		\
	$(srcdir)/../libbfd.c		\
	$(srcdir)/../cache.c		\
	$(srcdir)/../reloc.c		\
	$(srcdir)/../cpu-h8300.c	\
	$(srcdir)/../cpu-i960.c		\
	$(srcdir)/../archures.c		\
	$(srcdir)/../elfcode.h		\
	$(srcdir)/proto.str		\
	$(MKDOC)
	cat $(srcdir)/../libbfd-in.h >libbfd.h 
	redir -i  $(srcdir)/../init.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../libbfd.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../cache.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../reloc.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../cpu-h8300.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../cpu-i960.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../archures.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../elf.c  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  
	redir -i  $(srcdir)/../elfcode.h  -oa libbfd.h $(MKDOC) -i -f $(srcdir)/proto.str  

libcoff.h: $(srcdir)/../libcoff-in.h	\
	$(srcdir)/../coffcode.h		\
	$(srcdir)/proto.str		\
	$(MKDOC)
	cat $(srcdir)/../libcoff-in.h >libcoff.h
	redir -i  $(srcdir)/../coffcode.h  -oa libcoff.h $(MKDOC) -i -f $(srcdir)/proto.str  

bfd.h: $(srcdir)/../bfd-in.h 		\
	$(srcdir)/../init.c 		\
	$(srcdir)/../opncls.c 		\
	$(srcdir)/../libbfd.c 		\
	$(srcdir)/../section.c 		\
	$(srcdir)/../archures.c		\
	$(srcdir)/../reloc.c		\
	$(srcdir)/../syms.c		\
	$(srcdir)/../bfd.c		\
	$(srcdir)/../archive.c		\
	$(srcdir)/../corefile.c		\
	$(srcdir)/../targets.c		\
	$(srcdir)/../format.c		\
	$(srcdir)/proto.str		\
	$(MKDOC)
	cat $(srcdir)/../bfd-in.h >bfd.h
	redir -i $(srcdir)/../init.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../opncls.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../libbfd.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../section.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../archures.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../reloc.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../syms.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../bfd.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../archive.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../corefile.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../targets.c  -oa bfd.h $(MKDOC) -f $(srcdir)/proto.str
	redir -i $(srcdir)/../format.c  -oa bfd.h	 $(MKDOC) -f $(srcdir)/proto.str
	echo "#ifdef __cplusplus" >>bfd.h
	echo "}" >>bfd.h
	echo "#endif" >>bfd.h
	echo "#endif" >>bfd.h


clean-info: clean

mostlyclean:
	rm -rf *.log *.ps *~* *.dvi *# $(MKDOC) *.o

clean: mostlyclean
	rm -rf $(STAGESTUFF)
	rm -f *.p *.ip  bfd.?? bfd.??? bfd.h libbfd.h libcoff.h texput.log 

distclean: clean
	rm -f Makefile config.status

maintainer-clean realclean: clean
	rm -f Makefile config.status

bfd.info: $(DOCFILES) bfdsumm.texi bfd.texinfo
	$(MAKEINFO) -I$(srcdir) -o bfd.info $(srcdir)/bfd.texinfo

bfd.dvi: $(DOCFILES) bfdsumm.texi bfd.texinfo
	$(TEXI2DVI) $(srcdir)/bfd.texinfo

bfd.ps: bfd.dvi
	dvips bfd -o

quickdoc: $(DOCFILES) bfdsumm.texi bfd.texinfo
	TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex bfd.texinfo

stage1: force
	- mkdir stage1
	- mv -f $(STAGESTUFF) stage1

stage2: force
	- mkdir stage2
	- mv -f $(STAGESTUFF) stage2

stage3: force
	- mkdir stage3
	- mv -f $(STAGESTUFF) stage3

against=stage2

comparison: force
	for i in $(STAGESTUFF) ; do cmp $$i $(against)/$$i || exit 1 ; done

de-stage1: force
	- (cd stage1 ; mv -f $(STAGESTUFF) ..)
	- rmdir stage1

de-stage2: force
	- (cd stage2 ; mv -f $(STAGESTUFF) ..)
	- rmdir stage2

de-stage3: force
	- (cd stage3 ; mv -f $(STAGESTUFF) ..)
	- rmdir stage3

force:


