# $Header: /usr/tiburon/unix/gui/tmacs/RCS/Makefile,v 1.13 1998/03/12 16:22:44 oreilly Exp oreilly $

# NOTE: Tmacs utilizes the commercial ViewKit package.
VIEWKIT = /usr/tiburon/unix/gui/ViewKit1.3/

XRTHOME = /usr/tiburon/unix/gui/XRT10.2/

# NOTE: Tmacs utilizes the commercial XRT Graph library.
# To build tmacs, you must also have environment variable XRTHOME set
# in your shell environment. This variable is checked by the xrt_auth
# program, which "validates" the tmacs executable after it is built.

TOP_DIR = /usr/tiburon

CC = gcc
AR = /bin/ar
RANLIB = /bin/ranlib

DEBUG = -g

CFLAGS =  -ansi $(DEBUG) -DUNIX -c -o $*.o
NO_INLINE_FLAG = +d

# /usr/include/mbari/param.h, which is included by some of the vxworks
# headers, duplicates #define's found in /usr/include/sys/param.h.
# The following avoids preprocessing the stuff in /usr/include/mbari/param.h
INCPARAM = INCparamh

CPPFLAGS = $(DEBUG) -c -DUNIX -D$(INCPARAM) -o $*.o

VW = $(TOP_DIR)/vw
MBARI = mbari_development

DM = /usr/tiburon/dm/all

XPLATFORM = $(TOP_DIR)/xPlatform
SRC_DIR = $(TOP_DIR)/unix/gui/tmacs
MIDWATER = $(XPLATFORM)/midwaterSled
TOOLSLEDS = $(XPLATFORM)/toolsleds

LOCAL_INCS = \
-I. \
-I/usr/include \
-I/usr/include/sys \
-I$(DM) -I$(DM)/unix \
-I$(TOP_DIR)/micro/h \
-I$(TOP_DIR)/vw/h \
-I/usr/local/widgets/ComboBox \
-I/usr/local/widgets/Xc \
-I/usr/local/widgets/Xbae-4.6.2/src \
-I$(TOP_DIR)/unix/gui/Xpm/lib \
-I$/usr/local/widgets/Xg-1.0/include \
-I$(X11_INCLUDE_DIR) -I$(MOTIF_INCLUDE_DIR) \
-I$(XRTHOME)/include \
-I$(VIEWKIT)/usr/include \
-I$(XPLATFORM)/utils \
-I$(XPLATFORM)/utils \
-I$(XPLATFORM)/datamgr \
-I$(XPLATFORM)/iview \
-I$(SRC_DIR) \
-I$(VW)/$(MBARI) \
-I$(VW)/$(MBARI)/h \
-I$(TOOLSLEDS) \
-I/usr/local/editres-1.0/lib

LOCAL_LIBS = \
libRov.a \
$(TOP_DIR)/xPlatform/toolsleds/libToolsleds.a \
$(TOP_DIR)/xPlatform/datamgr/libDm.a \
$(TOP_DIR)/xPlatform/iview/libIview.a \
$(TOP_DIR)/xPlatform/hpux/libUtil.a \
/usr/local/editres-1.0/lib/libEditres.a


DM_LIB = $(TOP_DIR)/dm/unix/libdm.a


GRAPHIC_LIBS = \
$(VIEWKIT)/bld/vk/unshared/libvk.a \
$(VIEWKIT)/usr/lib/libXpm.a \
$(VIEWKIT)/usr/lib/libvkhelp.a \
/usr/local/widgets/Xc/libXc.a \
/usr/local/widgets/ComboBox/ComboBox.o \
/usr/local/widgets/Xbae-4.6.2/src/libXbae.a \
$(TOP_DIR)/unix/lib/libxg.a \
$(TOP_DIR)/unix/lib/libXpm.a \
-L$(XRTHOME)/lib -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 \
-lxrtm -lXm -lXmu -lXt -lX11

.cc.o :
	$(CC) $(CPPFLAGS) $(LOCAL_INCS) -c $<

.c.o :
	gcc $(CFLAGS) $(LOCAL_INCS) -c $<

SHELL = /bin/csh

all:	tmacs dmonitor iviewMonitor simdive thrash alarminfo dmplot nmrGui

OBJ_DIR = $(TOP_DIR)/unix/gui/tmacs


$(OBJ_DIR)/AlarmSpec.tab.cc:	$(OBJ_DIR)/AlarmSpec.y
	chmod +w AlarmSpec.tab.cc
	chmod +w AlarmSpec.tab.cc.h
	bison -d -o $(OBJ_DIR)/AlarmSpec.tab.cc $(OBJ_DIR)/AlarmSpec.y

$(OBJ_DIR)/AlarmSpec.yy.cc:	$(OBJ_DIR)/AlarmSpec.l $(OBJ_DIR)/AlarmSpec.tab.cc.h
	chmod +w AlarmSpec.yy.cc
	flex -o$(OBJ_DIR)/AlarmSpec.yy.cc $(OBJ_DIR)/AlarmSpec.l


VehicleConfig.tab.cc:	VehicleConfig.y
	bison -d -o VehicleConfig.tab.cc -p VC_ VehicleConfig.y
	echo "#define yynerrs VC_nerrs  // Added manually" > tmptab
	cat VehicleConfig.tab.cc >> tmptab
	mv tmptab VehicleConfig.tab.cc

VehicleConfig.yy.cc:	VehicleConfig.l VehicleConfig.tab.cc.h
	flex -oVehicleConfig.yy.cc -PVC_ VehicleConfig.l



LIB_OBJECTS = \
	$(OBJ_DIR)/AcPdu.o \
	$(OBJ_DIR)/AdvControl.o \
	$(OBJ_DIR)/AdvLogger.o \
	$(OBJ_DIR)/Alarm.o \
	$(OBJ_DIR)/AlarmDetector.o \
	$(OBJ_DIR)/AlarmedObject.o \
	$(OBJ_DIR)/AlarmedTable.o \
	$(OBJ_DIR)/AlarmedText.o \
	$(OBJ_DIR)/AlarmedMilliVolts.o \
	$(OBJ_DIR)/AlarmActionSetup.o \
	$(OBJ_DIR)/AlarmEditor.o \
	$(OBJ_DIR)/AlarmLight.o \
	$(OBJ_DIR)/AlarmList.o \
	$(OBJ_DIR)/AlarmLogger.o \
	$(OBJ_DIR)/AlarmPage.o \
	$(OBJ_DIR)/AlarmPanel.o \
	$(OBJ_DIR)/AlarmPopup.o \
	$(OBJ_DIR)/AlarmSetup.o \
	$(OBJ_DIR)/AlarmSpec.tab.o \
	$(OBJ_DIR)/AlarmSpec.yy.o \
	$(OBJ_DIR)/AlarmText.o \
	$(OBJ_DIR)/AperiodicHandler.o \
	$(OBJ_DIR)/AttitudeGraph.o \
	$(OBJ_DIR)/BarGuage.o \
	$(OBJ_DIR)/BenthicBioGui.o \
	$(OBJ_DIR)/CameraMicro.o \
	$(OBJ_DIR)/CameraSetupDialog.o \
	$(OBJ_DIR)/Clock.o \
	$(OBJ_DIR)/ComboTextField.o \
	$(OBJ_DIR)/CommRelays.o \
	$(OBJ_DIR)/CommsPage.o \
	$(OBJ_DIR)/CompassFace.o \
	$(OBJ_DIR)/ConfigurationDisplay.o \
	$(OBJ_DIR)/CoreHydraulics.o \
	$(OBJ_DIR)/CtdSetup.o \
	$(OBJ_DIR)/DconDm.o \
	$(OBJ_DIR)/DepthAltitude.o \
	$(OBJ_DIR)/Dimmers.o \
	$(OBJ_DIR)/DiveSetupWindow.o \
	$(OBJ_DIR)/DmBarGraph.o \
	$(OBJ_DIR)/DmBooleanButton.o \
	$(OBJ_DIR)/DmBooleanIndicator.o \
	$(OBJ_DIR)/DmBooleanSwitch.o \
	$(OBJ_DIR)/DmEnumSwitch.o \
	$(OBJ_DIR)/DmGuiApp.o \
	$(OBJ_DIR)/DmGuiObject.o \
	$(OBJ_DIR)/DmInfo.o \
	$(OBJ_DIR)/DmInfoWindow.o \
	$(OBJ_DIR)/DmInputDetector.o \
	$(OBJ_DIR)/DmMonitor.o \
	$(OBJ_DIR)/DmSlider.o \
	$(OBJ_DIR)/DmStripChart.o \
	$(OBJ_DIR)/DmText.o \
	$(OBJ_DIR)/DrillSledGui.o \
	$(OBJ_DIR)/FireControl.o \
	$(OBJ_DIR)/DynamicButton.o \
	$(OBJ_DIR)/DynamicLabel.o \
	$(OBJ_DIR)/ErsGui.o \
	$(OBJ_DIR)/ErsMode.o \
	$(OBJ_DIR)/ExternalApp.o \
	$(OBJ_DIR)/FireControl.o \
	$(OBJ_DIR)/FlashingAlarmText.o \
	$(OBJ_DIR)/FriendlyWindow.o \
	$(OBJ_DIR)/Gf5vSelfTest.o \
	$(OBJ_DIR)/GfSelfTest.o \
	$(OBJ_DIR)/GeologyGui.o \
	$(OBJ_DIR)/HeartBeat.o \
	$(OBJ_DIR)/HydraulicMotor.o \
	$(OBJ_DIR)/HydraulicSelect.o \
	$(OBJ_DIR)/IbcCardInfo.o \
	$(OBJ_DIR)/JoystickRangeIndicator.o \
	$(OBJ_DIR)/JoystickSetup.o \
	$(OBJ_DIR)/LabeledBarGuage.o \
	$(OBJ_DIR)/LabelTest.o \
	$(OBJ_DIR)/LabeledText.o \
	$(OBJ_DIR)/Layout.o \
	$(OBJ_DIR)/LightDialog.o \
	$(OBJ_DIR)/LightSwitch.o \
	$(OBJ_DIR)/MainCamera.o \
	$(OBJ_DIR)/Micro.o \
	$(OBJ_DIR)/MicroEnvironment.o \
	$(OBJ_DIR)/MicroGui.o \
	$(OBJ_DIR)/MicroPage.o \
	$(OBJ_DIR)/MicroSelect.o \
	$(OBJ_DIR)/MidwaterGui.o \
	$(OBJ_DIR)/MomentaryPowerSwitch.o \
	$(OBJ_DIR)/MonitoredValue.o \
	$(OBJ_DIR)/MotorMicro.o \
	$(OBJ_DIR)/Navigation.o \
	$(OBJ_DIR)/PanasonicWVSetup.o \
	$(OBJ_DIR)/PanTiltAttitude.o \
	$(OBJ_DIR)/PanTiltAttitudeGraph.o \
	$(OBJ_DIR)/PanTiltButton.o \
	$(OBJ_DIR)/PanTiltControl.o \
	$(OBJ_DIR)/PanTiltGraph.o \
	$(OBJ_DIR)/PanTiltMicro.o \
	$(OBJ_DIR)/PduGfAlarm.o \
	$(OBJ_DIR)/PduMicro.o \
	$(OBJ_DIR)/PeriodicHandler.o \
	$(OBJ_DIR)/PowerAllocation.o \
	$(OBJ_DIR)/PowerBus.o \
	$(OBJ_DIR)/PowerPage.o \
	$(OBJ_DIR)/PowerSwitchGui.o \
	$(OBJ_DIR)/PowerSwitchStatus.o \
	$(OBJ_DIR)/Predive.o \
	$(OBJ_DIR)/PrediveDialog.o \
	$(OBJ_DIR)/Preference.o \
	$(OBJ_DIR)/ProtoBenthicGui.o \
	$(OBJ_DIR)/PsuAlarmText.o \
	$(OBJ_DIR)/Regen.o \
	$(OBJ_DIR)/RegisteredItem.o \
	$(OBJ_DIR)/ReleaseControl.o \
	$(OBJ_DIR)/RovCompass.o \
	$(OBJ_DIR)/RovDiagram.o \
	$(OBJ_DIR)/RovMainWindow.o \
	$(OBJ_DIR)/RovNav.o \
	$(OBJ_DIR)/SemiMotorMicro.o \
	$(OBJ_DIR)/Sio32Micro.o \
	$(OBJ_DIR)/SonyHDTVSetup.o \
	$(OBJ_DIR)/SubPrograms.o \
	$(OBJ_DIR)/SuctionSampler.o \
	$(OBJ_DIR)/SwitchDm.o \
	$(OBJ_DIR)/SystemAlarms.o \
	$(OBJ_DIR)/TableForm.o \
	$(OBJ_DIR)/TelemMicro.o \
	$(OBJ_DIR)/TetherTurns.o \
	$(OBJ_DIR)/TextField.o \
	$(OBJ_DIR)/TiburonApp.o \
	$(OBJ_DIR)/ToolsledInterface.o \
	$(OBJ_DIR)/ToolsledPage.o \
	$(OBJ_DIR)/Uhs.o \
	$(OBJ_DIR)/ValveControl.o \
	$(OBJ_DIR)/ValveFunctions.o \
	$(OBJ_DIR)/ValveSelector.o \
	$(OBJ_DIR)/ValveSwitchMap.o \
	$(OBJ_DIR)/VbMotorSwitch.o \
	$(OBJ_DIR)/VbMode.o \
	$(OBJ_DIR)/VehicleComponent.o \
	$(OBJ_DIR)/VehicleConfiguration.o \
	$(OBJ_DIR)/VehicleRelease.o \
	$(OBJ_DIR)/VehicleState.o \
	$(OBJ_DIR)/VideoSwitcher.o \
	$(OBJ_DIR)/VideoSetup.o \
	$(OBJ_DIR)/View.o \
	$(OBJ_DIR)/ViewButton.o \
	$(OBJ_DIR)/ViewButtons.o \
	$(OBJ_DIR)/ViewManager.o \
	$(OBJ_DIR)/ViewingMap.o \
	$(OBJ_DIR)/ViewingPage.o \
	$(OBJ_DIR)/VspPage.o

libRov.a:	$(LIB_OBJECTS)
	$(AR) -rc libRov.a $(LIB_OBJECTS)
	$(RANLIB) libRov.a


tmacs:	$(OBJ_DIR)/tmacs.o libRov.a dmonitor $(DM_LIB) 
	$(CC) $(DEBUG) -o /tmp/$@ $(OBJ_DIR)/tmacs.o \
	$(MISC_LIBS) \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(GRAPHIC_LIBS) \
	-L/opt/hppd/lib/gcc -lg++ -lstdc++ -lfl -lm -lc -lm -ldld

	mv /tmp/$@ $@
	xrt_auth tmacs


dmonitor:	dmonitor.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o $@ dmonitor.o \
	libRov.a \
	$(LOCAL_LIBS) \
	$(DM_LIB) \
	-lm -lc -ldld


iviewMonitor:	iviewMonitor.o Compass.o
	$(CC) $(DEBUG) -o /tmp/iviewMonitor iviewMonitor.o \
	Compass.o \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(GRAPHIC_LIBS) \
	-lC -lfl -lm -lc -ldld
	mv /tmp/iviewMonitor iviewMonitor

alarminfo:	alarminfo.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o $@ alarminfo.o libRov.a \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(MISC_LIBS) \
	-lm -lc -ldld

thrash:	thrash.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o $@ thrash.o libRov.a \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(MISC_LIBS) \
	-lm -lc -ldld

simdive:	simdive.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o $@ simdive.o libRov.a \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(MISC_LIBS) \
	-lm -lc -ldld

icontest:	icontest.o
	$(CC) $(DEBUG) -o $@ icontest.o \
	$(MISC_LIBS) \
	$(LOCAL_LIBS) \
	$(GRAPHIC_LIBS) \
	-lC -lfl -lm -lc -ldld

motorTest:	motorTest.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o /tmp/$@ motorTest.o \
	$(MISC_LIBS) \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(GRAPHIC_LIBS) \
	-L/opt/hppd/lib/gcc -lg++ -lstdc++ -lfl -lm -lc -lm -ldld

	mv /tmp/$@ $@


dmplot:	dmplot.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o /tmp/$@ dmplot.o \
	$(MISC_LIBS) \
	$(LOCAL_LIBS) \
	$(GRAPHIC_LIBS) \
	$(DM_LIB) \
	-lC -lfl -lm -lc -ldld
	mv /tmp/$@ $@

	xrt_auth dmplot


nmrGui:	nmrGui.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o /tmp/$@ nmrGui.o \
	$(MISC_LIBS) \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(GRAPHIC_LIBS) \
	-L/opt/hppd/lib/gcc -lg++ -lstdc++ -lfl -lm -lc -lm -ldld

	mv /tmp/$@ $@


drillPage:	drillPage.o libRov.a $(DM_LIB)
	$(CC) $(DEBUG) -o /tmp/$@ drillPage.o \
	$(MISC_LIBS) \
	$(LOCAL_LIBS) $(DM_LIB) \
	$(GRAPHIC_LIBS) \
	-L/opt/hppd/lib/gcc -lg++ -lstdc++ -lfl -lm -lc -lm -ldld

	mv /tmp/$@ $@

xpmFtoD:	xpmFtoD.o
	$(CC) $(DEBUG) -o $@ xpmFtoD.o \
	$(MISC_LIBS) \
	$(LOCAL_LIBS) \
	$(GRAPHIC_LIBS) \
	-lC -lfl -lm -lc -ldld

clean:
	rm -f *.o core

# DO NOT DELETE THIS LINE -- make depend depends on it.
