#    Makefile template for Configure for the opcodes library.
#    Copyright (C) 1990, 1991, 1992, 1995 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 = @prefix@

program_transform_name = @program_transform_name@
exec_prefix = @exec_prefix@
bindir = $(exec_prefix)/bin
libdir = $(exec_prefix)/lib

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
oldincludedir =
docdir = $(srcdir)/doc

SHELL = /bin/sh

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@

AR = @AR@
AR_FLAGS = rc
CC = @CC@
CFLAGS = @CFLAGS@
MAKEINFO = makeinfo
RANLIB = @RANLIB@

ALLLIBS = @ALLLIBS@

PICFLAG = @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 h8300-dis.o h8500-dis.o \
	$(start-sanitize-arc) \
	arc-dis.o arc-opc.o \
	$(end-sanitize-arc) \
	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 = @BFD_MACHINES@ 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) @HDEFINES@ $(CFLAGS)

.c.o:
	if [ -n "$(PICFLAG)" ]; then \
	  $(CC) -c $(PICFLAG) $(ALL_CFLAGS) $< -o pic/$@; \
	else true; fi
	$(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)

LIBIBERTY_LISTS = ../libiberty/required-list ../libiberty/needed-list
BFD_LIST = ../bfd/piclist

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

piclist: stamp-piclist ; @true

$(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
	if [ -n "$(PICFLAG)" ]; then \
	  $(CC) -c @archdefs@ $(PICFLAG) $(ALL_CFLAGS) $(srcdir)/disassemble.c -o pic/disassemble.o; \
	else true; fi
	$(CC) -c @archdefs@ $(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 alpha-opc.h $(INCDIR)/dis-asm.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

Makefile: Makefile.in config.status
	CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status

config.h: stamp-h ; @true
stamp-h: config.in config.status
	CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status

config.status: configure $(srcdir)/../bfd/configure.host $(srcdir)/../bfd/config.bfd $(srcdir)/../bfd/VERSION
	$(SHELL) config.status --recheck

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

stamp-picdir:
	if [ -n "$(PICFLAG)" ] && [ ! -d pic ]; then \
	  mkdir pic; \
	else true; fi
	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