# Unix makefile for lzcomp, lzdcmp
#
# The redefinition of strchr() and strrchr() are needed for
# Ultrix-32, Unix 4.2 bsd (and maybe some other Unices).
#
BSDDEFINE = -Dstrchr=index -Dstrrchr=rindex
#
# On certain systems, such as Unix System III, you may need to define
# $(LINTFLAGS) in the make command line to set system-specific lint flags.
#

CFLAGS = -O $(BSDDEFINES)

all	: lzcomp lzdcmp

#
# ** compile lzcomp
#
LZCOMP_SRCS = lzcmp1.c lzcmp2.c lzcmp3.c lzio.c
LZCOMP_OBJS = lzcmp1.o lzcmp2.o lzcmp3.o lzio.o
lzcomp: $(LZCOMP_OBJS)
	$(CC) $(CFLAGS) $(LZCOMP_OBJS) -o lzcomp

#
# ** compile lzdcmp
#
LZDCMP_SRCS = lzdcm1.c lzdcm2.c lzdcm3.c lzio.c
LZDCMP_OBJS = lzdcm1.o lzdcm2.o lzdcm3.o lzio.o
lzdcmp: $(LZDCMP_OBJS)
	$(CC) $(CFLAGS) $(LZDCMP_OBJS) -o lzdcmp

#
# ** Lint the code
#
lint:	$(LZCOMP_SRCS) $(LZDCMP_SRCS)
	lint $(LINTFLAGS) $(DEFINES) $(LZCOMP_SRCS)
	lint $(LINTFLAGS) $(DEFINES) $(LZDCMP_SRCS)

#
# ** Remove unneeded files
#
clean:
	rm -f $(OBJS) lzcomp lzdcmp

#
# ** Rebuild the archive files
# ** Uses the Decus C archive utility.
#
archive:
lzarch_arc	= 1streadme.txt archx.c archc.c
lz1a_arc	= readme.txt descrip.mms makefile.txt lz.com fixmms.com
lz1b_arc	= lzcomp.mem lzdcmp.mem
lz2_arc		= lzcmp1.c lzcmp2.c lzcmp3.c
lz3_arc		= lzdcm1.c lzdcm2.c lzdcm3.c lz.hlp
lz4_arc		= lz.h lzcomp.cld lzdcmp.cld lzdcl.c lzio.c lzvio.c

makefile.txt	: Makefile
	cp Makefile makefile.txt

lzarch.arc	: $(lzarch_arc) archc
	archc $(lzarch_arc) >lzarch.arc

lz1.arc		: $(lz1a_arc) $(lz1b_arc) archc
	archc $(lz1a_arc) >lz1.arc
	archc $(lz1b_arc) >>lz1.arc

lz2.arc		: $(lz2_arc) archc
	archc $(lz2_arc) >lz2.arc

lz3.arc		: $(lz3_arc) archc
	archc $(lz3_arc) >lz3.arc

lz4.arc		: $(lz4_arc) archc
	archc $(lz4_arc) >lz4.arc

archc		: archc.c
	cc archc.c
	mv a.out archc

#
# Object module dependencies
#

lzcmp1.o	:	lzcmp1.c lz.h

lzcmp2.o	:	lzcmp2.c lz.h

lzcmp3.o	:	lzcmp3.c lz.h

lzio.o		:	lzio.c lz.h

lzdcm1.o	:	lzdcm1.c lz.h

lzdcm2.o	:	lzdcm2.c lz.h

lzdcm3.o	:	lzdcm3.c lz.h