#       This makefile is designed for DJGPP
SRCDIR=.
#    Makefile template for Configure for the opcodes library.
#    Copyright (C) 1990, 91, 92, 93, 94, 95, 1996
#    Free Software Foundation, Inc.
#    Written by Cygnus Support.
# 
# This program 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)

program_transform_name = @program_transform_name@
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@

#SHELL = /bin/sh

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

AR = ar
AR_FLAGS = rc
CC = gcc
CFLAGS = -O
MAKEINFO = makeinfo --no-split
RANLIB = ranlib

ALLLIBS = libopcodes.a

PICFLAG = 
SHLIB = @SHLIB@
SHLIB_CC = @SHLIB_CC@
SHLIB_CFLAGS = @SHLIB_CFLAGS@
COMMON_SHLIB = @COMMON_SHLIB@
SHLIB_DEP = @SHLIB_DEP@
SHLINK = @SHLINK@

SONAME = lib`echo $(SHLIB) | sed -e 's,^\.\./bfd/,,' -e 's/^lib//' | sed '$(program_transform_name)'`

INCDIR = $(srcdir)/../include
BFDDIR = $(srcdir)/../bfd
CSEARCH = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR)
DEP = mkdep

TARGETLIB = libopcodes.a

# To circumvent a Sun make VPATH bug, each file listed here
# should also have a foo.o: foo.c line further along in this file.

ALL_MACHINES = a29k-dis.o alpha-dis.o alpha-opc.o h8300-dis.o h8500-dis.o \
	hppa-dis.o i386-dis.o i960-dis.o m68k-dis.o m68k-opc.o \
	m88k-dis.o mips-dis.o mips-opc.o sh-dis.o sparc-dis.o \
	sparc-opc.o z8k-dis.o ns32k-dis.o ppc-dis.o ppc-opc.o \
	arm-dis.o w65-dis.o

OFILES = i386-dis.o dis-buf.o disassemble.o

FLAGS_TO_PASS = \
	'against=$(against)' \
	'AR=$(AR)' \
	'AR_FLAGS=$(AR_FLAGS)' \
	'CC=$(CC)' \
	'CFLAGS=$(CFLAGS)' \
	'RANLIB=$(RANLIB)' \
	'MAKEINFO=$(MAKEINFO)' \
	'INSTALL=$(INSTALL)' \
	'INSTALL_DATA=$(INSTALL_DATA)' \
	'INSTALL_PROGRAM=$(INSTALL_PROGRAM)'

ALL_CFLAGS = $(CSEARCH)  $(CFLAGS)

.c.o:
	$(CC) -c $(ALL_CFLAGS) $<

# C source files that correspond to .o's.
CFILES = i386-dis.c z8k-dis.c m68k-dis.c mips-dis.c ns32k-dis.c ppc-dis.c

all: $(ALLLIBS)

.NOEXPORT:

installcheck check:

info:
clean-info:
install-info:
dvi:

# HDEPFILES comes from the host config; TDEPFILES from the target config.


$(TARGETLIB): $(OFILES)
	 rm -f $(TARGETLIB)
	 $(AR) $(AR_FLAGS) $(TARGETLIB) $(OFILES)
	 $(RANLIB) $(TARGETLIB)

$(OFILES): config.h

LIBIBERTY_LISTS = ../libiberty/required-list ../libiberty/needed-list
BFD_PICLIST = @BFD_PICLIST@

stamp-piclist: Makefile $(LIBIBERTY_LISTS) $(BFD_PICLIST)
	rm -f tpiclist
	if [ "$(COMMON_SHLIB)" = "yes" ]; then \
	  lobjs=`cat $(LIBIBERTY_LISTS)`; \
	  lobjs=`echo $$lobjs | sed -e 's,\([^ ][^ ]*\),../libiberty/\1,g'`; \
	  echo $$lobjs >> tpiclist; \
	  sed -e 's,\([^ ][^ ]*\),../bfd/\1,g' $(BFD_PICLIST) >> tpiclist; \
	else true; fi
	update tpiclist piclist
	touch stamp-piclist

piclist: stamp-piclist 

$(SHLIB): stamp-picdir $(OFILES) piclist $(SHLIB_DEP)
	rm -f $(SHLIB)
	$(SHLIB_CC) $(SHLIB_CFLAGS) -o $(SHLIB) `cat piclist`

$(SHLINK): $(SHLIB)
	ts=lib`echo $(SHLIB) | sed -e 's,^\.\./bfd/,,' -e 's/^lib//' | sed -e '$(program_transform_name)'`; \
	if [ "$(COMMON_SHLIB)" = "yes" ]; then \
	  ts=../bfd/$$ts; \
	fi; \
	if [ "$$ts" != "$(SHLIB)" ]; then \
	  rm -f $$ts; \
	  ln -sf `echo $(SHLIB) | sed -e 's,^\.\./bfd/,,'` $$ts; \
	else true; fi
	rm -f $(SHLINK)
	ln -sf `echo $(SHLIB) | sed -e 's,^\.\./bfd/,,'` $(SHLINK)

# This target creates libTARGET-opcodes.so.VERSION as a symlink to
# libopcodes.so.VERSION.  It is used on SunOS, which does not have SONAME.
stamp-tshlink: $(SHLIB)
	tf=lib`echo $(SHLIB) | sed -e 's,\.\./bfd/,,' -e 's/^lib//' | sed '$(program_transform_name)'`; \
	if [ "$(COMMON_SHLIB)" = "yes" ]; then \
	  tf=../bfd/$$tf; \
	fi; \
	if [ "$$tf" != "$(SHLIB)" ]; then \
	  rm -f $$tf; \
	  ln -sf $(SHLIB) $$tf; \
	else true; fi
	if [ "$(COMMON_SHLIB)" = "yes" ]; then \
	  tf=lib`echo $(TARGETLIB) | sed -e 's/^lib//' | sed '$(program_transform_name)'`; \
	  if [ "$$tf" != "$(TARGETLIB)" ]; then \
	    rm -f $$tf; \
	    ln -sf $(TARGETLIB) $$tf; \
	  else true; fi; \
	else true; fi
	touch stamp-tshlink

$(OFILES): stamp-picdir

disassemble.o: disassemble.c $(INCDIR)/dis-asm.h
	$(CC) -c -DARCH_i386 $(ALL_CFLAGS) $(srcdir)/disassemble.c

a29k-dis.o: a29k-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/a29k.h
dis-buf.o: dis-buf.c $(INCDIR)/dis-asm.h
h8500-dis.o: h8500-dis.c h8500-opc.h $(INCDIR)/dis-asm.h
h8300-dis.o: h8300-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/h8300.h
i386-dis.o: i386-dis.c $(INCDIR)/dis-asm.h
i960-dis.o: i960-dis.c $(INCDIR)/dis-asm.h
w65-dis.o: w65-dis.c
m68k-dis.o: m68k-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/floatformat.h \
	$(INCDIR)/opcode/m68k.h
m68k-opc.o: m68k-opc.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/m68k.h
mips-dis.o: mips-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/mips.h
mips-opc.o: mips-opc.c $(INCDIR)/opcode/mips.h
ppc-dis.o: ppc-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/ppc.h
ppc-opc.o: ppc-opc.c $(INCDIR)/opcode/ppc.h
sparc-dis.o: sparc-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/sparc.h
sparc-opc.o: sparc-opc.c $(INCDIR)/opcode/sparc.h
z8k-dis.o: z8k-dis.c z8k-opc.h $(INCDIR)/dis-asm.h
ns32k-dis.o: ns32k-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/ns32k.h
sh-dis.o: sh-dis.c sh-opc.h $(INCDIR)/dis-asm.h
alpha-dis.o: alpha-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/alpha.h
alpha-opc.o: alpha-opc.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/alpha.h
hppa-dis.o: hppa-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/hppa.h
m88k-dis.o: m88k-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/m88k.h
arm-dis.o: arm-dis.c arm-opc.h $(INCDIR)/dis-asm.h

tags etags: TAGS

TAGS: force
	etags $(INCDIR)/*.h $(srcdir)/*.h $(srcdir)/*.c

MOSTLYCLEAN = *.o core *.E *.p *.ip config.log pic/*.o
mostlyclean:
	rm -rf $(MOSTLYCLEAN)
clean:
	rm -f *.a $(MOSTLYCLEAN) $(SHLIB) $(SHLINK) piclist stamp-piclist
distclean: clean
	rm -rf Makefile config.status TAGS config.cache config.h stamp-h \
	       pic stamp-picdir
clobber realclean maintainer-clean: distclean

# Mark everything as depending on config.status, since the timestamp on
# sysdep.h might actually move backwards if we reconfig and relink it
# to a different hosts/h-xxx.h file.  This will force a recompile anyway.
RECONFIG = config.status



# This target should be invoked before building a new release.
# 'VERSION' file must be present and contain a string of the form "x.y"
#
roll:
	@V=`cat VERSION`		; \
	MAJ=`sed 's/\..*//' VERSION`	; \
	MIN=`sed 's/.*\.//' VERSION`	; \
	V=$$MAJ.`expr $$MIN + 1`	; \
	rm -f VERSION			; \
	echo $$V >VERSION		; \
	echo Version $$V

# Dummy target to force execution of dependent targets.
#
force:

install: $(ALLLIBS)
	for f in $(ALLLIBS); do \
	  if [ "$$f" = "stamp-tshlink" ]; then \
	    continue; \
	  fi; \
	  tf=lib`echo $$f | sed -e 's,^\.\./bfd/,,' -e 's/^lib//' | sed '$(program_transform_name)'`; \
	  rm -f $(libdir)/$$tf; \
	  if [ "$$f" = "$(SHLINK)" ]; then \
	    ts=lib`echo $(SHLIB) | sed -e 's,^\.\./bfd/,,' -e 's/^lib//' | sed '$(program_transform_name)'`; \
	    ln -sf $$ts $(libdir)/$$tf; \
	  elif [ "$$f" = "$(SHLIB)" ]; then \
	    $(INSTALL_PROGRAM) $$f $(libdir)/$$tf; \
	  else \
	    $(INSTALL_DATA) $$f $(libdir)/$$tf; \
	    $(RANLIB) $(libdir)/$$tf; \
	    chmod a-x $(libdir)/$$tf; \
	  fi; \
	done


config.h: stamp-h 
stamp-h: config.in config.status config.sed config.sed
	redir -o config.h-new sed -f config.sed $(srcdir)/config.in
	update config.h-new config.h
	touch stamp-h
	redir -o config.h-new sed -f config.sed $(srcdir)/config.in
	update config.h-new config.h
	touch stamp-h

config.status:
	touch $@

dep: $(CFILES)
	mkdep $(CFLAGS) $?

stamp-picdir:
	touch stamp-picdir

# What appears below is generated by a hacked mkdep using gcc -MM.

# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.


# IF YOU PUT ANYTHING HERE IT WILL GO AWAY

