# $Header: Makefile,v 1.2 98/06/16 18:25:44 pean Exp $
# Makefile for User Interface for New ROV
# Author:   Bob Herlien
# Project:  New ROV
# Version:  $Revision: 1.2 $
# Created:  05/04/92
#

.SUFFIXES :	.uid .uil

## rules

.s.o :
	@rm -f $@
	$(AS) -o $<

.c.o :
	@rm -f $@
	$(CC) $(CFLAGS) $<

.uil.uid :
	@rm -f $@
	$(UIL) -o $*.uid $<
	

all: rov

## files and directories

PROGRAM		= rov
SYSINC		= /usr/include
WIND_BASE	= /usr/tiburon/tornado_1.0.1
VW		= $(WIND_BASE)
LIBDIR		= /usr/lib
TIBURON		= /usr/tiburon
MBARI_VW	= $(TIBURON)/vw
TARGETDIR	= $(TIBURON)/unix/gui/proto
DM		= $(TIBURON)/dm/all
MAKEFILE	= Makefile
ARCHIVE		= rov.tar
INCLUDES	= rov.h rdmif.h alarm.h ibc.h power.h graph.h relay.h
BXSOURCES	= rovcreate.c vehiclecreate.c powercreate.c accreate.c \
		  regencreate.c gfcreate.c cameracreate.c setupcreate.c \
		  instcreate.c ibccreate.c dmcreate.c
CSOURCES	= rov.c rovcall.c vehiclecall.c power.c powerData.c accall.c \
		  regencall.c gfcall.c cameracall.c setupcall.c instcall.c \
		  ibc.c ibcData.c dmcall.c graphcall.c rdmif.c alarm.c \
		  alarmData.c convert.c
SOURCES		= $(BXSOURCES) $(CSOURCES)
LIB_OBJECTS	= $(BXSOURCES:.c=.o) $(CSOURCES:.c=.o)
UILS		= rov.uil vehicle.uil power.uil ac.uil regen.uil \
		  gf.uil camera.uil setup.uil instrument.uil \
		  ibc.uil dm.uil
RESOURCE	= Rov

ALLFILES	= $(MAKEFILE) $(INCLUDES) $(SOURCES) $(UILS) $(RESOURCE)
RCSFILES	= $(MAKEFILE) $(INCLUDES) $(CSOURCES) $(UILS) $(RESOURCE)

## tools
CC		= cc
LD		= cc
RM		= rm -f
PRINT		= pr
UIL		= uil

## flags

INCLUDEFLAGS	= -I/usr/include -I$(SYSINC)/Motif1.2 -I$(SYSINC)/X11R5 -I/usr/tiburon/unix/gui/widgets -I$(DM) -I$(MBARI_VW)/h -I$(TIBURON)/micro/h -DUNIX
DEBUGFLAG	= -g
DEFINES		= -D_HPUX_SOURCE -DSYSV -DMALLOC_0_RETURNS_NULL
CFLAGS		= -c -Aa $(DEBUGFLAG) $(INCLUDEFLAGS) $(DEFINES) +DAportable
#LDFLAGS 	= -L$(LIBDIR)/Motif1.2 -L$(LIBDIR)/X11R5 -L$(VW)/mbari/X11/lib
LDFLAGS		= -L$(LIBDIR)/Motif1.2 -L$(LIBDIR)/X11R5\
		  -L$(TIBURON)/unix/gui/widgets/proto\
		  -L$(TIBURON)/unix/gui/widgets/Xc\
		  -L$(LIBDIR)/X11R4 $(DEBUGFLAG)
XC_LIBS		= -lXc -lXaw -lXmu -lXext
#XC_LIBS		= -lXc -lXext
ROV_LIB		= -lrov
MOTIF_LIBS	= -lXm
#XLIBS		= -lXt -lX11 -lM -lc -lPW
XLIBS		= -lXt -lX11 -lM 
DMLIBS		= /usr/tiburon/dm/unix/libdm.a
LIBS		= $(MOTIF_LIBS) $(XC_LIBS) $(ROV_LIB) $(XLIBS) $(DMLIBS)

## actions

default : $(PROGRAM)

print	: 
	  $(PRINT) $(ALLFILES) | lp -denglj2 -opr -oduplex

$(ARCHIVE).gz: $(ALLFILES)
	  $(RM) $(ARCHIVE) $(ARCHIVE).gz
	  tar crvf $(ARCHIVE) $(ALLFILES)
	  gzip $(ARCHIVE)

tar	: $(ARCHIVE).gz

backup	: 
	  cp $(ALLFILES) $(PROGRAM) save
	  (cd save; make tar)

copy :
	  (cd $(TARGETDIR); chmod 644 $(ALLFILES) $(PROGRAM))
	  cp $(ALLFILES) $(PROGRAM) $(TARGETDIR)

rel1:
	  ci -q -u$(REV) $(MAKEFILE) $(INCLUDES) $(CSOURCES:rov.c=) \
	  $(UILS) $(RESOURCE)

release :
	  rcs -l $(RCSFILES)
	  ci -f -u$(REV) rov.c
	  @echo "Ignore ci warnings that unchanged file checkins are aborted"
	  make rel1 REV=`rlog rov.c | awk '$$1 == "head:" {print $$2}'`
	  rcs -u $(RCSFILES)
	  chmod -w $(RCSFILES)

librov.a:	$(LIB_OBJECTS)
	ar -rc librov.a $(LIB_OBJECTS)
	ranlib librov.a 
	 
clean	:
	  $(RM) *.o


## dependencies

$(LIB_OBJECTS): rov.h rdmif.h
rov.o: rov.h rdmif.h

convert.o:  convert.c

ibc.o: ibc.c rov.h rdmif.h ibc.h alarm.h

ibcData.o: ibcData.c rov.h rdmif.h ibc.h alarm.h 

power.o:  power.c rov.h rdmif.h power.h ibc.h alarm.h

powerData.o:  powerData.c rov.h rdmif.h power.h ibc.h alarm.h 

accall.o: accall.c rov.h rdmif.h ibc.h power.h alarm.h

regencall.o: regencall.c rov.h rdmif.h ibc.h power.h alarm.h

alarm.o: alarm.c rov.h rdmif.h alarm.h

alarmData.o: alarmData.c rov.h rdmif.h alarm.h

dmcall.o: dmcall.c rov.h graph.h rdmif.h $(MBARI_VW)/h/recorder.h

graphcall.o: graphcall.c rov.h graph.h rdmif.h
	    $(CC) $(CFLAGS) -I/usr/contrib/X11R4 graphcall.c

rdmif.o:     rdmif.c rdmif.h
	$(CC) -I$(SYSINC) $(CFLAGS) -I$(DM) $<

$(PROGRAM) : rov.o librov.a $(DMLIBS)
	     -$(RM) $(PROGRAM)
	     $(LD) -o /tmp/$(PROGRAM) rov.o librov.a $(LDFLAGS) $(LIBS)
	mv /tmp/$(PROGRAM) $(PROGRAM)
