#
#	Makefile    Makefile for ldopt
#
#	@(#)Makefile	2.3	10/9/87
#
#	Copyright (C) 1987,1988 Motorola Inc.
#

ARFORMAT =	PORTAR
CC=$(PFX)cc
LINT =		lint
SGS =m88k
#
#  Directories referenced.
#
BASE= ../..
BINDIR= $(BASE)/xenv/m88k/bin
M88KINC= $(BASE)/inc/m88k
COMLD= $(BASE)/ldopt/common
COMINC= $(BASE)/inc/common

INCLIST =	-I$(COMINC) -I$(M88KINC)

#  Uncomment the following lines as desired.
#OFLAG	= -O
GFLAG	=
#PFLAG	= -p

#  Uncomment exactly one of the following lines.
DBUG =		-DNO_DBUG
#DBUG=

#  Uncomment exactly one of the following lines.
LIBDBUG =
#LIBDBUG =	-ldbug

#  Uncomment exactly on of the following lines.
#  If libmalloc is available use it.  In some cases the standard malloc has
#  been known to dump core. 
#LIBMALLOC = 
LIBMALLOC = -lmalloc

OCSFLAG =	OCS_BCS
CFLAGS =	-c
DEFLIST =	-D$(ARFORMAT) $(DBUG) -D$(OCSFLAG)
LDFLAGS =	$(GFLAG) $(PFLAG)
CC_CMD  =	$(CC) $(CFLAGS) $(DEFLIST) $(INCLIST)

CSRC =		\
		$(COMLD)/archive.c \
		$(COMLD)/bind.c \
		$(COMLD)/coalesce.c \
		$(COMLD)/comm.c \
		$(COMLD)/debug.c \
		$(COMLD)/errors.c \
		$(COMLD)/globals.c \
		$(COMLD)/info.c \
		$(COMLD)/listmgr.c \
		$(COMLD)/main.c \
		$(COMLD)/memmgr.c \
		$(COMLD)/readinput.c \
		$(COMLD)/slot.c \
		$(COMLD)/regmap.c \
		$(COMLD)/sgsroot.c \
		$(COMLD)/symtab.c \
		$(COMLD)/synthesis.c \
		$(COMLD)/utils.c \
		$(COMLD)/writeoutput.c

OBJ =		\
		archive.o \
		bind.o \
		coalesce.o \
		comm.o \
		debug.o \
		errors.o \
		globals.o \
		info.o \
		listmgr.o \
		main.o \
		memmgr.o \
		readinput.o \
		slot.o \
		regmap.o \
		sgsroot.o \
		symtab.o \
		synthesis.o \
		utils.o \
		writeoutput.o

LIBS =		$(LIBDBUG) $(LIBMALLOC)
LINTLIBS =	$(LIBS)

all :		$(SGS)ldopt

$(SGS)ldopt :	$(OBJ)
		$(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)

archive.o :	$(COMLD)/archive.c $(COMLD)/symtab.h $(COMLD)/dbug.h \
		$(COMLD)/listmgr.h $(COMLD)/archive.h \
		$(COMLD)/errors.h $(COMLD)/memmgr.h $(COMLD)/flags.h
		$(CC_CMD) $(COMLD)/archive.c

bind.o :	$(COMLD)/bind.c $(COMLD)/dbug.h $(COMLD)/listmgr.h \
		$(COMLD)/memmgr.h $(COMLD)/module.h $(COMLD)/section.h \
		$(COMLD)/errors.h $(COMLD)/flags.h $(COMLD)/linkinfo.h \
		$(COMLD)/writecoff.h
		$(CC_CMD) $(COMLD)/bind.c

coalesce.o :	$(COMLD)/coalesce.c $(COMLD)/dbug.h $(COMLD)/listmgr.h \
		$(COMLD)/memmgr.h $(COMLD)/module.h $(COMLD)/section.h \
		$(COMLD)/errors.h
		$(CC_CMD) $(COMLD)/coalesce.c

comm.o :	$(COMLD)/comm.c $(COMLD)/errors.h $(COMLD)/memmgr.h \
		$(COMLD)/listmgr.h $(COMLD)/symtab.h $(COMLD)/dbug.h \
		$(COMLD)/section.h $(COMLD)/module.h
		$(CC_CMD) $(COMLD)/comm.c

debug.o :	$(COMLD)/debug.c $(COMLD)/regmap.h
		$(CC_CMD) $(COMLD)/debug.c


errors.o :	$(COMLD)/errors.c $(COMLD)/errors.h $(COMLD)/dbug.h
		$(CC_CMD) $(COMLD)/errors.c

globals.o :	$(COMLD)/globals.c $(COMLD)/listmgr.h $(COMLD)/symtab.h \
		$(COMLD)/flags.h $(COMLD)/section.h $(COMLD)/module.h \
		$(COMLD)/linkinfo.h $(COMLD)/writecoff.h $(COMLD)/info.h
		$(CC_CMD) $(COMLD)/globals.c

info.o :	$(COMLD)/info.c $(COMLD)/dbug.h $(COMLD)/info.h
		$(CC_CMD) $(COMLD)/info.c

listmgr.o :	$(COMLD)/listmgr.c $(COMLD)/dbug.h $(COMLD)/listmgr.h \
		$(COMLD)/memmgr.h $(COMLD)/errors.h
		$(CC_CMD) $(COMLD)/listmgr.c

main.o :	$(COMLD)/main.c $(COMLD)/errors.h $(COMLD)/dbug.h \
		$(COMLD)/flags.h $(COMLD)/listmgr.h $(COMLD)/memmgr.h \
		$(COMLD)/symtab.h $(COMLD)/linkinfo.h $(COMLD)/regmap.h
		$(CC_CMD) $(COMLD)/main.c

memmgr.o :	$(COMLD)/memmgr.c $(COMLD)/dbug.h $(COMLD)/memmgr.h \
		$(COMLD)/errors.h $(COMLD)/info.h
		$(CC_CMD) $(COMLD)/memmgr.c

readinput.o :	$(COMLD)/readinput.c $(COMLD)/errors.h $(COMLD)/memmgr.h \
		$(COMLD)/listmgr.h $(COMLD)/symtab.h $(COMLD)/dbug.h \
		$(COMLD)/section.h $(COMLD)/module.h $(COMLD)/archive.h \
		$(COMLD)/flags.h $(COMLD)/info.h
		$(CC_CMD) $(COMLD)/readinput.c

slot.o :	$(COMLD)/slot.c $(COMLD)/dbug.h $(COMLD)/listmgr.h \
		$(COMLD)/module.h $(COMLD)/section.h $(COMLD)/regmap.h \
		$(COMLD)/errors.h $(COMLD)/flags.h $(COMLD)/linkinfo.h
		$(CC_CMD) $(COMLD)/slot.c

regmap.o :	$(COMLD)/regmap.c $(COMLD)/dbug.h $(COMLD)/listmgr.h \
		$(COMLD)/errors.h $(COMLD)/flags.h $(COMLD)/linkinfo.h \
		$(COMLD)/module.h $(COMLD)/section.h \
		$(COMLD)/regmap.h
		$(CC_CMD) $(COMLD)/regmap.c

sgsroot.o :	$(COMLD)/sgsroot.c $(COMLD)/dbug.h $(COMLD)/errors.h \
		$(COMLD)/memmgr.h $(COMLD)/listmgr.h $(COMLD)/linkinfo.h
		$(CC_CMD) $(COMLD)/sgsroot.c

symtab.o :	$(COMLD)/symtab.c $(COMLD)/dbug.h $(COMLD)/symtab.h \
		$(COMLD)/memmgr.h $(COMLD)/errors.h
		$(CC_CMD) $(COMLD)/symtab.c

synthesis.o :	$(COMLD)/synthesis.c $(COMLD)/dbug.h $(COMLD)/memmgr.h \
		$(COMLD)/listmgr.h $(COMLD)/section.h $(COMLD)/module.h \
		$(COMLD)/errors.h $(COMLD)/linkinfo.h $(COMLD)/regmap.h
		$(CC_CMD) $(COMLD)/synthesis.c

utils.o :	$(COMLD)/utils.c $(COMLD)/dbug.h
		$(CC_CMD) $(COMLD)/utils.c

writeoutput.o :	$(COMLD)/writeoutput.c $(COMLD)/dbug.h $(COMLD)/listmgr.h \
		$(COMLD)/memmgr.h $(COMLD)/module.h $(COMLD)/section.h \
		$(COMLD)/errors.h $(COMLD)/flags.h $(COMLD)/linkinfo.h \
		$(COMLD)/writecoff.h $(COMLD)/regmap.h
		$(CC_CMD) $(COMLD)/writeoutput.c

lint :
		$(LINT) $(CFLAGS) $(CSRC) $(LINTLIBS)

install :	$(BINDIR)/$(SGS)ldopt

$(BINDIR)/$(SGS)ldopt:	$(SGS)ldopt
			sh $(BASE)/sgs.install 755 $(OWN) $(GRP) $@ $?

clean :
		rm -f *.o 

clobber :	clean
		rm -f $(SGS)ldopt
