#
# Makeinclude file for the VRModules, version 2.0
# April 19 1996, w.bethel, Lawrence Berkeley Laboratory
#

MODULES= \
	$(SPACEBALL_DEVICE) \
	$(DIVISION_IPU_DEVICE) \
	button_gate \
	button_gate_acc \
	dummy_device \
	event_thresh \
	event_scale \
	vr_xform_cam \
	vr_2float \
	vr_2acc_float \
	vr_xform_obj \
	vr_print_field \
	vr_stereo_cam \
	vr_cam_ui

HELPFILES = \
	$(HELPFILESDIR)/button_gate.txt \
	$(HELPFILESDIR)/button_gate_acc.txt \
	$(HELPFILESDIR)/division_ipu.txt \
	$(HELPFILESDIR)/event_scale.txt \
	$(HELPFILESDIR)/event_thresh.txt \
	$(HELPFILESDIR)/spaceball.txt \
	$(HELPFILESDIR)/vr_cam_ui.txt \
	$(HELPFILESDIR)/vr_dummy_device.txt \
	$(HELPFILESDIR)/vr_print_fld.txt \
	$(HELPFILESDIR)/vr_stereo_cam.txt \
	$(HELPFILESDIR)/vr_to_accflt.txt \
	$(HELPFILESDIR)/vr_to_flt.txt \
	$(HELPFILESDIR)/vr_xf_cam.txt \
	$(HELPFILESDIR)/vr_xf_obj.txt 

MATH_OBJS = matrix.o linpack.o

modules:	$(MODULES)

# Input devices
#
# NOTE: the only devices currently supported are the Spaceball and the
# Division IPU (fastrak trackers).  from the calling Makefile, the
# symbols $(SPACEBALL_DEVICE) and $(DIVISION_IPU_DEVICE) must be set to
# spaceball & division_ipu, respectively.  these values match the targets
# which follow.  
#
##

spaceball:	$(SRCDIR)/spaceball.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) $(SBINCDIR) -o spaceball $(SRCDIR)/spaceball.c $(SPACEBALL_LIBS) $(CSIMLIBS)

division_ipu:	$(SRCDIR)/division_ipu.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) $(IPUINCDIR) -o division_ipu $(SRCDIR)/division_ipu.c $(IPU_LIBS) $(MATH_OBJS) $(CSIMLIBS)

dummy_device:	$(SRCDIR)/dummy_device.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o dummy_device $(SRCDIR)/dummy_device.c $(CFLOWLIBS)



##
##
# misc stuff
##

vr_xform_cam:	$(SRCDIR)/vr_xform_cam.c $(MATH_OBJS) $(SRCDIR)/vr_util.h $(SRCDIR)/matrix.h
	$(CC) $(CFLAGS) -o vr_xform_cam $(SRCDIR)/vr_xform_cam.c $(MATH_OBJS) $(CFLOWLIBS)

vr_xform_obj:	$(SRCDIR)/vr_xform_obj.c $(MATH_OBJS) $(SRCDIR)/vr_util.h $(SRCDIR)/matrix.h
	$(CC) $(CFLAGS) -o vr_xform_obj $(SRCDIR)/vr_xform_obj.c $(MATH_OBJS) $(CFLOWLIBS)

vr_print_field:	$(SRCDIR)/vr_print_field.c $(SRCDIR)/vr_util.h 
	$(CC) $(CFLAGS) -o vr_print_field $(SRCDIR)/vr_print_field.c $(MATH_OBJS) $(CFLOWLIBS)

vr_2float:	$(SRCDIR)/vr_2float.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o vr_2float $(SRCDIR)/vr_2float.c $(CFLOWLIBS)

vr_2acc_float:	$(SRCDIR)/vr_2acc_float.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o vr_2acc_float $(SRCDIR)/vr_2acc_float.c $(CFLOWLIBS)

button_gate:	$(SRCDIR)/button_gate.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o button_gate $(SRCDIR)/button_gate.c $(CFLOWLIBS)

vr_cam_ui:	$(SRCDIR)/vr_cam_ui.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o vr_cam_ui $(SRCDIR)/vr_cam_ui.c $(CFLOWLIBS)

button_gate_acc:	$(SRCDIR)/button_gate_acc.c $(SRCDIR)/vr_util.h $(MATH_OBJS)
	$(CC) $(CFLAGS) -o button_gate_acc $(SRCDIR)/button_gate_acc.c $(MATH_OBJS) $(CFLOWLIBS)

event_thresh:	$(SRCDIR)/event_thresh.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o event_thresh $(SRCDIR)/event_thresh.c $(CFLOWLIBS)

event_scale:	$(SRCDIR)/event_scale.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o event_scale $(SRCDIR)/event_scale.c $(CFLOWLIBS)

vr_stereo_cam:	$(SRCDIR)/vr_stereo_cam.c $(SRCDIR)/vr_util.h
	$(CC) $(CFLAGS) -o vr_stereo_cam $(SRCDIR)/vr_stereo_cam.c $(MATH_OBJS) $(CFLOWLIBS)

matrix.o:	$(SRCDIR)/matrix.c $(SRCDIR)/matrix.h
	$(CC) -c $(SRCDIR)/matrix.c

linpack.o:	$(SRCDIR)/linpack.f
	$(F77) -c $(SRCDIR)/linpack.f

AVS_EXE = $(AVS_ROOT)/bin/avs

CLEAN:
	if (rm $(MODULES)) then :; fi
	if (rm *.o)  then :;  fi
	if (rm VRModules) then :; fi
	if (rm local.avs.lib) then :; fi

LIBRARY:
	if (rm local.avs.lib) then :; fi 
	echo '# AVS Module Library ' > local.avs.lib
	echo 'name "VRModules"' >> local.avs.lib
	for f in $(MODULES); do \
	    echo 'file '$$f >> local.avs.lib ; echo $$f ; \
	done
	$(AVS_EXE) -compile_library local.avs.lib VRModules
	cp VRModules $(AVS_LOCAL_DIR)

CLEAN_INSTALL:
	echo "cleaning the install directory " $(AVS_LOCAL_DIR)
	if (rm $(AVS_LOCAL_DIR)/* ) then :; fi	
	echo done

INSTALL:
	for f in $(MODULES); do \
	    cp $$f $(AVS_LOCAL_DIR)/$$f; echo $$f ; \
	done

HELPFILES:
	if (rm $(AVS_LOCAL_DIR)/helpfiles/*) then :; fi
	for f in $(HELPFILES); do \
		cp $$f $(AVS_LOCAL_DIR)/helpfiles/$$f; echo $$f ; \
	done
	$(AVS_EXE) -reindex $(AVS_LOCAL_DIR)/helpfiles

