#ident	"@(#):makefile	1.9"
#	MC68000 C RUNTIME MAKEFILE
#
#	@(#)makefile	2.1	
#
# The variable PROF is null by default, causing both the standard C library
# and a profiled library to be maintained.  If profiled object is not 
# desired, the reassignment PROF=@# should appear in the make command line.
#
# The variable IGN may be set to -i by the assignment IGN=-i in order to
# allow a make to complete even if there are compile errors in individual
# modules.
#
#
INCROOT=
.SUFFIXES: .o .p

M4=m4 ../m4.def
AS=	as
CC=	cc
LINT=	lint
AFLAGS=	r
CFLAGS=	-O
LFLAGS=	-p
LDFLAGS=
PROF=

F_OBJS= addmag.o fladd.o flcmp.o fldiv.o flmul.o flneg.o \
	flsub.o fltst.o ftol.o ghflib.o itof.o ltof.o \
	submag.o uitof.o ultof.o \
	dbadd.o dbcmp.o dbdiv.o dbmul.o dbneg.o dbtofl.o \
	dbtol.o dbtst.o fltodb.o ltodb.o table.o lmul.o ldiv.o \
	mcount.o cerror.o setlib.o chrtab.o

FP_OBJS= addmag.p fladd.p flcmp.p fldiv.p flmul.p flneg.p \
	flsub.p fltst.p ftol.p ghflib.o itof.p ltof.p \
	submag.p uitof.p ultof.p \
	dbadd.p dbcmp.p dbdiv.p dbmul.p dbneg.p dbtofl.p \
	dbtol.p dbtst.p fltodb.p ltodb.p table.p lmul.o ldiv.o \
	mcount.o cerror.o setlib.o chrtab.o



all: nonprof prof

nonprof:	$(F_OBJS)

prof:		$(FP_OBJS)

chrtab.o chrtab.p: chrtab.c $(INCROOT)/usr/include/sys/fp.h
ldiv.o ldiv.p: ldiv.s $(INCROOT)/usr/include/sys/fp.h
lmul.o lmul.p: lmul.s $(INCROOT)/usr/include/sys/fp.h
cerror.o cerror.p: cerror.s $(INCROOT)/usr/include/sys/fp.h
mcount.o mcount.p: mcount.s $(INCROOT)/usr/include/sys/fp.h
setlib.o setlib.p: setlib.c $(INCROOT)/usr/include/sys/fp.h
ghflib.o ghflib.p: ghflib.s $(INCROOT)/usr/include/sys/fp.h

#-------------------------

.c.o .c.p:
# This procedure is overkill, but harmless, for the non-FPP routines
	@echo $*.c:
	$(PROF)if test -f $*.o ; then mv $*.o tmp.o ; fi ; \
		$(CC) -p $(CFLAGS) -S $<
	$(NONPROF)$(CC) $(CFLAGS) -S $<
	sed -f massage.sed <$*.s >temp
	mv temp $*.s
	$(PROF)$(CC) -p $(CFLAGS) -c $*.s && mv $*.o $*.p ; \
		if test -f tmp.o ; then mv tmp.o $*.o ; fi
	$(NONPROF)$(CC) $(CFLAGS) -c $*.s
	rm $*.s

#-------------------------

.s.o .s.p :
	@echo $*.s:
	$(PROF)if test -f $*.o ; then mv $*.o tmp.o ; fi ; \
		$(M4) ../mcount.def  $*.s   > temp.s   && \
		$(CC) $(CFLAGS) -c temp.s  && mv temp.o $*.p ; \
		if test -f tmp.o ; then mv tmp.o $*.o ; fi
	$(NONPROF)$(M4) -DMCOUNT=#  $*.s   > temp.s   && \
	$(NONPROF)$(CC) $(CFLAGS) -c temp.s && mv temp.o $*.o

.s~.o .s~.p :
	$(GET) s.$*.s
	@echo $*.s:
	$(PROF)if test -f $*.o ; then mv $*.o tmp.o ; fi ; \
		$(M4) ../mcount.def  $*.s   > temp.s   && \
		$(CC) $(CFLAGS) -c temp.s  && mv temp.o $*.p ; \
		if test -f tmp.o ; then mv tmp.o $*.o ; fi
	$(NONPROF)$(M4) -DMCOUNT=#  $*.s   > temp.s   && \
	$(NONPROF)$(CC) $(CFLAGS) -c temp.s && mv temp.o $*.o
	rm $*.s

#--------------------------

clean:
	-rm -f $(OFILES) $(PFILES) temp temp.o

#--------------------------

clobber:	clean

#--------------------------

lint:	$(CFILES) $(INCROOT)/usr/include/sys/fp.h
	$(LINT) $(LFLAGS) $(CFILES) >lint.out
