###############################################################################
#   Instructions to Make, for compilation of ROS-based miscellaneous services
###############################################################################

###############################################################################
#
# $Header: /xtel/isode/isode/imisc/RCS/Makefile,v 9.0 1992/06/16 12:23:43 isode Rel $
#
#
# $Log: Makefile,v $
# Revision 9.0  1992/06/16  12:23:43  isode
# Release 8.0
#
# 
###############################################################################

###############################################################################
#
#				 NOTICE
#
#    Acquisition, use, and distribution of this module and related
#    materials are subject to the restrictions of a license agreement.
#    Consult the Preface in the User's Manual for the full terms of
#    this agreement.
#
###############################################################################


LIBES   =	../libmisode$(LPP).a
CFILES	=	imiscd.c imisc.c IMISC-ops.c ryinitiator.c ryresponder.c
RYFILES	=	imisc.ry

ROS	=	ros.


##################################################################
# Here it is...
##################################################################

all:		ximiscd$(LPP) ximisc$(LPP)
inst-all:	inst-imiscd inst-imisc manuals
install:	inst-all clean
lint:		l-imiscd l-imisc

all-lpp:;	$(MAKE) LPP=-lpp all
inst-lpp:;	$(MAKE) LPP=-lpp ROS=lpp. inst-all
install-lpp:;	$(MAKE) LPP=-lpp ROS=lpp. install
lint-lpp:;	$(MAKE) LPP=-lpp lint


##################################################################
# imiscd
##################################################################

inst-imiscd:	$(SBINDIR)$(ROS)imisc

$(SBINDIR)$(ROS)imisc:	ximiscd$(LPP)
		-cp $@ z$(ROS)imisc
		-rm -f $@
		cp ximiscd$(LPP) $@
		-@ls -gls $@
		-@echo ""

mimiscd:	ximiscd$(LPP)

ximiscd$(LPP):	imiscd.o IMISC-Rops.o ryresponder.o IMISC_tables.o $(LIBES)
		$(CC) $(LDFLAGS) -o $@ imiscd.o IMISC-Rops.o ryresponder.o \
			IMISC_tables.o $(LIBES) $(LSOCKET) -lm

l-imiscd:	IMISC-ops.c IMISC_tables.c true
		$(LINT) $(LFLAGS) -DPERFORMER imiscd.c IMISC-ops.c \
			ryresponder.c IMISC_tables.c $(LLIBS) \
			| grep -v "warning: possible pointer alignment problem"

imiscd.o:	ryresponder.h IMISC-ops.h IMISC-types.h

IMISC-Rops.o:	IMISC-ops.c IMISC-ops.h
		$(CC) $(CCFLAGS) -DPERFORMER -c IMISC-ops.c
		mv IMISC-ops.o $@

ryresponder.o:	ryresponder.h


##################################################################
# imisc
##################################################################

inst-imisc:	$(BINDIR)imisc$(LPP)

$(BINDIR)imisc$(LPP):	ximisc$(LPP)
		-cp $@ zximisc$(LPP)
		-rm -f $@
		cp ximisc$(LPP) $@
		-@ls -gls $@
		-@echo ""

mimisc:		ximisc$(LPP)

ximisc$(LPP):	imisc.o IMISC-Iops.o ryinitiator.o IMISC_tables.o $(LIBES)
		$(CC) $(LDFLAGS) -o $@ imisc.o IMISC-Iops.o ryinitiator.o \
			IMISC_tables.o $(LIBES) $(LSOCKET) -lm

l-imisc:	IMISC-ops.c IMISC_tables.c true
		$(LINT) $(LFLAGS) -DINVOKER imisc.c IMISC-ops.c \
			ryinitiator.c IMISC_tables.c IMISC-stubs.c $(LLIBS) \
			| grep -v "warning: possible pointer alignment problem"

imisc.o:	ryinitiator.h IMISC-ops.h IMISC-types.h

IMISC-Iops.o:	IMISC-ops.c IMISC-ops.h
		$(CC) $(CCFLAGS) -DINVOKER -c IMISC-ops.c
		mv IMISC-ops.o $@

ryinitiator.o:	ryinitiator.h


################################################################
# libimisc
################################################################

IMISC_tables.o:	IMISC_tables.c IMISC-types.h

#IMISC_tables.c IMISC-types.h: IMISC-asn.py
#		pepsy -A -f -h -m IMISC-asn.py

IMISC-asn.py:	imisc.ry
		rosy -m -pepsy -o $@ imisc.ry
IMISC-ops.c:	imisc.ry
IMISC-ops.h:	imisc.ry
IMISC-stubs.c:	imisc.ry


################################################################
# manual pages
################################################################

MANUALS	=	mimiscd.8c mimisc.1c

manuals:;	@$(UTILDIR)inst-man.sh $(MANOPTS) $(MANUALS)
		-@echo ""


################################################################
# clean
################################################################

clean:;		rm -f *.ph *.o z* _* core ximisc ximiscd

grind:;		iprint Makefile
		tgrind -lc ryinitiator.h ryresponder.h $(CFILES)
		tgrind -lpepy -d $(TOPDIR)pepy/grindefs $(RYFILES)
		@echo $(MANUALS) | \
			tr " " "\012" | \
			sed -e "s%.*%itroff -man &%" | \
			sh -ve

true:;

################################################################
# link
################################################################

link:;		-ln -s ximiscd mimiscd
		-ln -s ximisc mimisc
