#-------
# M a k e f i l e
#
# DaviD W. Sanderson
#-------

# some versions of make(1) care about this
SHELL	      = /bin/sh

MISC	      = README		\
		Makefile	\
		faces.in

MANUAL	      = smiley.1

GEN	      = other.uu

SOURCES	      = bsearch.c	\
		getopt.c	\
		ltoa.c		\
		smiley.c	\
		mkfaces.c

HEADERS	      =	patchlevel.h	\
		smiley.h

TARGET	      =	smiley

OBJECTS	      =	bsearch.o	\
		faces.o		\
		getopt.o	\
		ltoa.o		\
		smiley.o

CFLAGS	      = -O

LDFLAGS       = -s

all:		$(TARGET)

$(TARGET):	$(OBJECTS)
		$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS)

smiley.o:	smiley.c smiley.h patchlevel.h
		$(CC) $(CFLAGS) -c smiley.c

faces.o:	faces.c smiley.h
		$(CC) $(CFLAGS) -c faces.c

#OLD		./mkfaces < faces.in > faces.c
#		play it safe and make sure the list is sorted,
#		since it is searched by bsearch(3):
faces.c:	mkfaces faces.in
		< faces.in sort | ./mkfaces > faces.c

mkfaces:	mkfaces.c
		$(CC) $(CFLAGS) -o mkfaces mkfaces.c

clean:
		rm -f $(OBJECTS) mkfaces faces.c smiley.shar $(GEN)

clobber:	clean
		rm -f $(TARGET)

other.uu:	other
		uuencode $? < $? > $@

smiley.shar:	$(MISC) $(MANUAL) $(GEN) $(SOURCES) $(HEADERS)
		shar $(MISC) $(MANUAL) $(GEN) $(SOURCES) $(HEADERS) > $@
