#
# Makefile - to build libreflex
#
# by R.K. Owen, Ph.D.
#
# do:	"make help"	for more info
#
# edit this for your own environment
#
OWN	= rk
GRP	= owen
ROOT	= $(HOME)
LIBDIR	= $(ROOT)/lib
INCDIR	= $(ROOT)/include
MANDIR	= $(ROOT)/man
BINDIR	= $(ROOT)/bin
PERM	= 644
XPERM	= 755
RANLIB	= ranlib
SHELL	= /bin/sh
AR	= ar
ARFLAGS	= r
CC	= gcc
CFLAGS	= -g -Wall -I.
LDFLAGS	= -L. -lreflex
NROFF	= nroff
MAN	= -man
RM	= rm
CP	= cp
BSNM	= basename
INSTALL	= install

LIB	=libreflex.a
LIBOBJS	=$(LIB)(readhead.o) $(LIB)(getsecadr.o) $(LIB)(secname.o) \
	 $(LIB)(pastemsg.o) $(LIB)(bldbuf.o) $(LIB)(bldrh.o) \
	 $(LIB)(quitbuf.o) $(LIB)(bldfnvec.o) $(LIB)(getfntbl.o) \
	 $(LIB)(readfdd.o) $(LIB)(bldmr.o) $(LIB)(blddrvec.o) \
	 $(LIB)(outdaty.o) $(LIB)(quitrh.o) $(LIB)(quitfnvec.o) \
	 $(LIB)(quitdrvec.o) \
	 $(LIB)(bldreflex.o) $(LIB)(quitreflex.o)

DOCS	=libreflex.3 reflex.1
EXES	=refldump rfldnms rdata

.SUFFIXES:
.SUFFIXES: .c .o .a .man .3 .1

.c.a:
	$(CC) -c $(CFLAGS) $<
	$(AR) $(ARFLAGS) $@ $*.o
	-$(RM) -f $*.o

.o.a:
	$(AR) $(ARFLAGS) $@ $*.o
	-$(RM) -f $*.o

#.c.o :
#	$(CC) $(CFLAGS) -c $<

.man.3 :
	$(NROFF) $(MAN) $< > $@

.man.1 :
	$(NROFF) $(MAN) $< > $@

all : $(LIB) $(DOCS) $(EXES)

$(LIB): $(LIBOBJS)
	$(RANLIB) $(LIB)
	@echo lib is now up-to-date

refldump: refldump.o libreflex.a
	$(CC) -o refldump refldump.o $(LDFLAGS)

rfldnms: rfldnms.o $(LIB)
	$(CC) -o rfldnms rfldnms.o $(LDFLAGS)

rdata: rdata.o $(LIB)
	$(CC) -o rdata rdata.o -L. $(LDFLAGS)

install : installexes installlib installdoc

installexes : $(EXES)
	$(INSTALL) -m $(XPERM) -o $(OWN) -g $(GRP) $(EXES) $(BINDIR)

installlib : $(LIB)
	$(INSTALL) -m $(PERM) -o $(OWN) -g $(GRP) $(LIB) $(LIBDIR)
	$(INSTALL) -m $(PERM) -o $(OWN) -g $(GRP) reflex.h $(INCDIR)

installdoc : $(DOCS)
	$(INSTALL) -m $(PERM) -o $(OWN) -g $(GRP) libreflex.man $(MANDIR)/man3/libreflex.3
	$(INSTALL) -m $(PERM) -o $(OWN) -g $(GRP) reflex.man $(MANDIR)/man1/reflex.1
	$(INSTALL) -m $(PERM) -o $(OWN) -g $(GRP) libreflex.3 $(MANDIR)/cat3
	$(INSTALL) -m $(PERM) -o $(OWN) -g $(GRP) reflex.1 $(MANDIR)/cat1

uninstall : uninstallexes uninstalllib uninstalldoc

uninstallexes :
	-$(CD) $(BINDIR) ; $(RM) $(EXES)

uninstalllib :
	-$(RM) $(LIBDIR)/$(LIB)
	-$(RM) $(INCDIR)/reflex.h

uninstalldoc :
	-$(RM) $(MANDIR)/man3/libreflex.3
	-$(RM) $(MANDIR)/man1/reflex.1
	-$(RM) $(MANDIR)/cat3/libreflex.3
	-$(RM) $(MANDIR)/cat1/reflex.1

clean :
	-$(RM) -f a.out core *.o

wipe : clean
	-$(RM) *.3 *.1

clobber : wipe
	-$(RM) $(LIB) $(EXES)

dist : clobber
	cd ..; tar -czvf libreflex.tgz \
		`find libreflex -type f ! -path "*CVS*" -print`

help :
	@echo ""
	@echo "make		- create all 'made' files"
	@echo "make install	- install 'made' files (edit Makefile for destination)"
	@echo "make uninstall	- remove installed files"
	@echo "make clean	- remove .o files"
	@echo "make clobber	- do clean and remove all made files"
	@echo "make help	- this helpful info"
	@echo ""

