# include	"../conf/conf.h"

SHELL=	/bin/sh
DBS=	../..
LIB=	../lib
SYSBIN=	$(DBS)/sys/bin

CC=	cc
i_FLAG=
O_FLAG=	-O
# ifndef FP_PROCESSOR
f_FLAG=	-f
# else
f_FLAG=
# endif

LD=	$(CC)
CRT0=
# ifdef ID_SEPERATE
LDFLAGS= -i
# else
# ifdef TEXT_SEPERATE
LDFLAGS= -n
# endif
# endif
LIBC=	-lm

# ifdef A7150
# endif

# ifdef BC
# endif

# ifdef EC1834
# endif

# ifdef ESER_PSU
# ifdef TRACE
i_FLAG=	-d
# endif
LIBC=	-lm -lc
# endif

# ifdef ESER_VMX
# endif

# ifdef HP_UX
# endif

# ifdef P8000
# endif

# ifdef PDP
LDFLAGS=
# endif

# ifdef PDP70
# endif

# ifdef VAX
# endif

# ifdef VENIX
# endif

# ifdef XENIX286
i_FLAG=	-i -M2s
LD=	ld
LDFLAGS= -i -Ms -F 2000
CRT0=	/lib/Sseg.o /lib/Scrt0.o
LIBC=	/lib/Slibm.a /lib/Slibcfp.a /lib/Slibc.a
# endif

# ifdef XENIX386
LD=	ld
CRT0=	/lib/386/Sseg.o /lib/386/Scrt0.o
LIBC=	/lib/386/Slibm.a /lib/386/Slibcfp.a /lib/386/Slibc.a
# endif

CFLAGS=	$(O_FLAG) $(f_FLAG) $(i_FLAG)


AR=	-ar
# ifdef TEST
AR_R	=rv
AR_X	=xv
# else
AR_R	=r
AR_X	=x
# endif
LIBMODE=0644

# ifdef RANLIB
MKLIB=	ranlib
# else
MKLIB=	@echo ranlib
# endif
CHMOD=	chmod
MODE=	6711
SRCMODE=0644
RM=	-rm -f
TOUCH=	touch

DLIB=	$(LIB)/decomp.a
OVQPLIB=$(LIB)/ovqp.a
$(OVQPLIB):

DBULIB=	$(LIB)/dbu.a
$(DBULIB):

ACCESS=	$(LIB)/a.a
$(ACCESS):

IUTIL=	$(LIB)/i.a
$(IUTIL):

GUTIL=	$(LIB)/g.a
$(GUTIL):

# ifdef OD_SEPERATE
X=	34
LIBES=	$(DLIB) $(ACCESS) $(IUTIL) $(GUTIL)
# else
X=	70
LIBES=	$(DLIB) $(OVQPLIB) $(DBULIB) $(ACCESS) $(IUTIL) $(GUTIL)
# endif
LIBS=	$(LIBES) $(LIBC)
DECOMP=	$(SYSBIN)/decomp$(X)

OBJS=	main.o		qryproc.o					\
	readq.o		ret_unique.o	aggregate.o	ageval.o	\
	byeval.o	makenode.o	mapvar.o	decomp.o	\
	pull_sq.o	exec_sq.o	tempvar.o	reformat.o	\
	decision.o	reduction.o	openrs.o	error.o		\
	prlinks.o	rangetable.o	rnum.o		reinit.o	\
	selectv.o	setvar.o	usubr.o		lockit.o	\
	pull_const.o	call_ovqp.o	call_ovqpe.o	mklist.o	\
	call_dbu.o	printree.o	writeback.o	writenod.o

INSTALL:	install

UNLOAD:		unload

# ifdef NO_PIPE
install:

unload:
# else
install:	$(DLIB) $(DECOMP)

unload:
	@-$(AR) $(AR_X) $(DLIB)
	@$(RM) __.SYMDEF
	@-CP call_dbu.o call_dbu$(X).o
	@-CP call_ovqp.o call_ovqp$(X).o
	@-CP call_ovqpe.o call_ovqp$(X)e.o
	@-$(TOUCH) call_dbu.o call_ovqp.o call_ovqpe.o
	@-$(TOUCH) $(DLIB)
# endif

$(DLIB):	$(OBJS)
	$(AR) $(AR_R) $@ $?
	@-$(CHMOD) $(LIBMODE) $@
	$(MKLIB) $@

$(DECOMP):	$(LIBES)
	$(LD) $(LDFLAGS) STRIPFLAG $(CRT0) $(LIBS) -o $@
	@-$(CHMOD) $(MODE) $@

ALLCLEAN:	allclean

allclean:	clean
	$(RM) $(DLIB) $(DECOMP)

CLEAN:		clean

clean:
	$(RM) $(OBJS) call_dbu??.o call_ovqp?*.o

call_dbu.o:	call_dbu$(X).o
	CP call_dbu$(X).o $@

call_ovqp.o:	call_ovqp$(X).o
	CP call_ovqp$(X).o $@

call_ovqpe.o:	call_ovqp$(X)e.o
	CP call_ovqp$(X)e.o $@

ageval.o:	../h/trace.h

aggregate.o:	../h/trace.h

byeval.o:	../h/trace.h

call_dbu34.o:	../h/trace.h

call_dbu70.o:	../h/trace.h

call_ovqp34.o:	../h/trace.h

call_ovqp70.o:	../h/trace.h

decision.o:	../h/trace.h

decomp.o:	../h/trace.h

exec_sq.o:	../h/trace.h

main.o:		../h/trace.h

makenode.o:	../h/trace.h

openrs.o:	../h/trace.h

pull_sq.o:	../h/trace.h

qryproc.o:	../h/trace.h

rangetable.o:	../h/trace.h

readq.o:	../h/trace.h

reduction.o:	../h/trace.h

reformat.o:	../h/trace.h

selectv.o:	../h/trace.h

setvar.o:	../h/trace.h

tempvar.o:	../h/trace.h

usubr.o:	../h/trace.h

writeback.o:	../h/trace.h

# ifdef WENZLAFF
HOME=	/z/dbs/src/decomp
SRC=	ageval.c	aggregate.c	byeval.c	decision.c	\
	decomp.c	decomp.h	error.c		exec_sq.c	\
	gen.h		lockit.c	main.c		makenode.c	\
	mapvar.c	mklist.c	openrs.c	printree.c	\
	prlinks.c	pull_const.c	pull_sq.c	qryproc.c	\
	rangetable.c	readq.c		reduction.c	reformat.c	\
	reinit.c	ret_unique.c	rnum.c		selectv.c	\
	setvar.c	tempvar.c	usubr.c		writeback.c	\
	call_dbu34.c	call_dbu70.c	call_ovqp34.c	call_ovqp34e.c	\
	call_ovqp70.c	call_ovqp70e.c	writenod.c	Makefile

.save:		$(SRC)
	mount DISK /wrk
	CP $? $@ /wrk/decomp
	> $@
	umount DISK

$(HOME)/.save:	$(SRC)
	CP $? $(HOME)
	> $@

.PRECIOUS:	.save
.PRECIOUS:	$(HOME)/.save
# endif
