# $Source: /hpux/shared/supp//usr/src/cmd/sdf/./makefile,v $
# $Revision: 72.2 $

# Common makefile for sdf utility (all of PROGS listed below)

# Lib sdf.a will be created using LIBOBJS.
LIB	= sdf.a

LIBOBJS	= open.o read.o stat.o ustat.o chown.o link.o mknod.o \
	  addr.o misc.o io.o   error.o

# All executables to be created.
PROGS	= sdfmkdir sdfchmod sdfchgrp sdfchown sdfrm sdfls sdfcp \
	  sdffind sdffsdb sdffsck sdfdf
PROGS_M	= sdfmkdir.M sdfchmod.M sdfchgrp.M sdfchown.M sdfrm.M sdfls.M sdfcp.M \
	  sdffind.M sdffsdb.M sdffsck.M sdfdf.M

default: all

all:	$(LIB) $(PROGS)

metrics: $(PROGS_M)

$(LIB): $(LIBOBJS)
	rm -f $(LIB)
	ar q $(LIB) $(LIBOBJS)

$(LIBOBJS): s500defs.h sdf.h

sdfmkdir.M : sdfmkdir.c
	$(METRICS) $(CFLAGS) sdfmkdir.c -o sdfmkdir.M

sdfchmod.M : sdfchmod.c
	$(METRICS) $(CFLAGS) sdfchmod.c -o sdfchmod.M
sdfchgrp.M : sdfchgrp.c
	$(METRICS) $(CFLAGS) sdfchgrp.c -o sdfchgrp.M
sdfchown.M : sdfchown.c
	$(METRICS) $(CFLAGS) sdfchown.c -o sdfchown.M
sdfrm.M : sdfrm.c
	$(METRICS) $(CFLAGS) sdfrm.c -o sdfrm.M
sdfls.M : sdfls.c
	$(METRICS) $(CFLAGS) sdfls.c -o sdfls.M
sdfcp.M : sdfcp.c
	$(METRICS) $(CFLAGS) sdfcp.c -o sdfcp.M
sdffind.M :  sdffind.c
	$(METRICS) $(CFLAGS) sdffind.c -o sdffind.M
sdffsdb.M : sdffsdb.c
	$(METRICS) $(CFLAGS) sdffsdb.c -o sdffsdb.M
sdffsck.M : sdffsck.c
	$(METRICS) $(CFLAGS) sdffsck.c -o sdffsck.M
sdfdf.M : sdfdf.c
	$(METRICS) $(CFLAGS) sdfdf.c -o sdfdf.M

# Special case, will not look in sdf.a library file.  Creates executable
# from .c file.
sdffsck: sdffsck.c
	$(CC) $(CFLAGS) $(LDFLAGS) $@.c -o $@

addr.o ustat.o:	bit.h

clean:
	rm -f *.o *.a

clobber: clean
	rm -f $(PROGS)

# Redefine how to create .c file.  This is so that can include sdf.a library
# file.  Also creates executable following the creation of the object file.
.c:	$(LIB) $@.o
	$(CC) $(CFLAGS) $(LDFLAGS) -c $@.c
	$(CC) $(CFLAGS) $(LDFLAGS) $@.o $(LIB) -o $@

.c.M:	$@.c
	$(METRICS) $(CFLAGS) $@.c -o $@.M
