#
# UNIX Makefile for NuLib v3.25
#
# $Id: Makefile,v 1.6 1996/11/28 07:48:28 gdr Exp $
#

# Where should nulib be installed?  The man page will go into 
# $(MANDIR)/man1

BINDIR	= /usr/local/bin
MANDIR	= /usr/local/man

# This is Soenke Behrens' udl utility for converting between Apple,
# Unix, and MS-DOS newline formats.  You only need it if you are
# creating a *.taz or *.shk archive of these sources.

UDL	= /usr/local/bin/udl

# To make a smaller executable, you can exclude the Binary II routines
# by setting DEFINES= -DNO_BLU
# To exclude the UNIX compression routines, add -DNO_UCOMP

# Under UTS 2.1, use -eft to make the linker use the EFT library.
#EFT=-eft

#
# Besides the various vendors' compilers, nulib has also successfully
# compiled with gcc and lcc.
#
# 'gcc' should work for all platforms.  In addition, the following
# compilers have been tested:
#	AIX 3.2.5, 4.1:		cc, xlc (v2)
#	SunOS 4.x:		/bin/cc, /usr/5bin/cc (v2 ?)
#	Solaris 2.5.1		SunPro cc (v4.0)
#	HAL Sparc-64		hcc (v1.0)
#	HPUX			cc (v10.10)
#

CC	= cc

# Select appropriate flag... -g for debugging, -O for optimized.
#OPTIMIZE	= -g
#OPTIMIZE	= -p
OPTIMIZE	= -O
GCC_PARANOIA	= -Wall -Wtraditional \
		  -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith 
DEFINES		=
CFLAGS		= $(DEFINES) $(OPTIMIZE) $(EFT) # $(GCC_PARANOIA)

LDFLAGS	=
LIBS	=
#LIBS	= -lx		# For XENIX/386 users

HDRS	= nudefs.h nuread.h nuview.h nuadd.h nuext.h nupdel.h nupak.h nuetc.h \
	  nublu.h nucomp.h nucompfn.h
SRCS	= numain.c nuread.c nuview.c nuadd.c nuext.c nupdel.c nupak.c nuetc.c \
	  nublu.c nucomp.c nushk.c nusq.c
OBJS	= numain.o nuread.o nuview.o nuadd.o nuext.o nupdel.o nupak.o nuetc.o \
	  nublu.o nucomp.o nushk.o nusq.o
ARCFILES= README NOTES Makefile make.apw linker.scr linked.scr \
	  mkshk nulib.mak nulib.lnk *.h *.c

build all:	nulib

nulib: ${OBJS}
	${CC} ${CFLAGS} ${OBJS} -o nulib ${LIBS} 

nulib.man: nulib.1
	nroff -man $< > $@

install: nulib nulib.1
	[ -d $(BINDIR) ] || mkdir -p $(BINDIR)
	[ -d $(MANDIR)/man1 ] || mkdir -p $(MANDIR)/man1
	cp -p nulib $(BINDIR)
	cp -p nulib.1 $(MANDIR)/man1

#
# .o targets
#

nuadd.o:	nuadd.c nudefs.h nuread.h nuadd.h nupak.h nuetc.h
nublu.o:	nublu.c nudefs.h nuview.h nuread.h nuadd.h nupak.h nuetc.h \
                nuext.h nublu.h
nucomp.o:	nucomp.c nudefs.h nuread.h nupak.h nuetc.h nucomp.h nucompfn.h
nuetc.o:	nuetc.c nudefs.h nuetc.h
nuext.o:	nuext.c nudefs.h nuread.h nuext.h nupak.h nuetc.h
numain.o:	numain.c nudefs.h nuread.h nuview.h nuadd.h nuext.h nupdel.h \
                nublu.h nupak.h nuetc.h
nupak.o:	nupak.c nudefs.h nuread.h nucomp.h nucompfn.h nupak.h nuetc.h
nupdel.o:	nupdel.c nudefs.h nuread.h nuadd.h nupak.h nupdel.h nuetc.h
nuread.o:	nuread.c nudefs.h crc.h nuread.h nupak.h nuetc.h
nushk.o:	nushk.c nudefs.h nuread.h nupak.h nuetc.h
nusq.o:		nusq.c nudefs.h nuetc.h nuread.h nupak.h
nuview.o:	nuview.c nudefs.h nuview.h nuread.h nuetc.h

#
# other targets
#

saber:
	#load $(CFLAGS) $(SRCS) $(LIBS)

# shar version 3.49
#	-c : add "cut here" line at top
#	-o : base name for output files
#	-l48 : max size is 48KB, but don't split files
#	-v : (not used) turn off verbose msgs
shar:
	shar349 -c -osh.files/nulib -l48 $(ARCFILES)

tar:	clobber
	@fulldir=`pwd`; \
	dir=`basename $$fulldir`; \
	tarfile="$$dir"325.tar.Z; \
	echo "creating ../$$tarfile"; \
	cd ..; \
	xfile=exclude.$$$$; \
	find $$dir -print | grep /CVS > $$xfile; \
	tar -X $$xfile -cf - $$dir | compress > $$tarfile; \
	rm $$xfile;

zip:	clobber
	@fulldir=`pwd`; \
	dir=`basename $$fulldir`; \
	zipfile="$$fulldir"325.zip; \
	/bin/rm -f $$zipfile; \
	echo "creating $$zipfile"; \
	cd ..; \
	tdir=/tmp/nulib.$$$$; \
	mkdir -p $$tdir; \
	tar -cf - $$dir | (cd $$tdir; tar -xf -); \
	cd $$tdir; \
	(cd $$dir; make clobber; /bin/rm -rf CVS); \
	zip -lr $$zipfile $$dir; \
	cd $$fulldir; \
	/bin/rm -rf $$tdir;

shk:	nulib
	@fulldir=`pwd`; \
	dir=`basename $$fulldir`; \
	shkfile="$$fulldir"325.shk; \
	/bin/rm -f $$shkfile; \
	tdir=/tmp/nulib.$$$$; \
	echo creating $$shkfile; \
	cd ..; \
	mkdir -p $$tdir; \
	tar -cf - $$dir | (cd $$tdir; tar -xf -); \
	cd $$tdir; \
	(cd $$dir; make clobber; /bin/rm -rf CVS nulib); \
	$(UDL) -gR $$dir; \
	$$fulldir/nulib cf $$shkfile $$dir; \
	cd $$fulldir; \
	/bin/rm -rf $$tdir;

clean:
	@rm -f $(OBJS) *~

clobber: clean
	@rm -f nulib

