# September 1993
#
# Robot handler functions in C
#

SHELL = /bin/sh
CFLAGS = -O -g
CC = gcc

#############################################################

SRCD = ./
OBJD = ./
INCD = ../include/
MOTIFD = /usr/share/local/motif/usr/
BIND = /homedir/flakey/bin/

OBJECTS = $(OBJD)xdisp.o $(OBJD)mdisp.o $(OBJD)bdisp.o $(OBJD)timer.o \
$(OBJD)angles.o \
$(OBJD)comm-server.o $(OBJD)comm-rw.o $(OBJD)comm-pac.o $(OBJD)loadfile.o \
$(OBJD)robot.o $(OBJD)display.o $(OBJD)sonars.o \
$(OBJD)motor.o $(OBJD)clamp.o $(OBJD)wake.o $(OBJD)points.o \
$(OBJD)sonar-buffers.o $(OBJD)conv.o $(OBJD)surfaces.o $(OBJD)find-walls.o \
$(OBJD)behaviors.o $(OBJD)eval-rules.o $(OBJD)toplevel.o 

#############################################################
all: $(OBJECTS) $(BIND)handler
	touch all

$(OBJD)xdisp.o: xdisp.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h $(INCD)display.h 
	$(CC) $(CFLAGS) -c xdisp.c -I$(INCD) -I$(MOTIFD)include -o $(OBJD)xdisp.o

$(OBJD)mdisp.o: mdisp.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h $(INCD)display.h 
	$(CC) $(CFLAGS) -c mdisp.c -I$(INCD) -I$(MOTIFD)include -o $(OBJD)mdisp.o

$(OBJD)bdisp.o: bdisp.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c bdisp.c -I$(INCD) -I$(MOTIFD)include -o $(OBJD)bdisp.o

$(OBJD)timer.o: timer.c 
	$(CC) $(CFLAGS) -c timer.c -I$(INCD) -o $(OBJD)timer.o

$(OBJD)angles.o: angles.c 
	$(CC) $(CFLAGS) -c angles.c -I$(INCD) -o $(OBJD)angles.o

$(OBJD)loadfile.o: loadfile.c 
	$(CC) $(CFLAGS) -c loadfile.c -I$(INCD) -o $(OBJD)loadfile.o

$(OBJD)comm-server.o: comm-server.c  
	$(CC) $(CFLAGS) -c comm-server.c -I$(INCD) -o $(OBJD)comm-server.o

$(OBJD)comm-rw.o: comm-rw.c  
	$(CC) $(CFLAGS) -c comm-rw.c -I$(INCD) -o $(OBJD)comm-rw.o

$(OBJD)comm-pac.o: comm-pac.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c comm-pac.c -I$(INCD) -o $(OBJD)comm-pac.o

$(OBJD)robot.o: robot.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c robot.c -I$(INCD) -o $(OBJD)robot.o

$(OBJD)sonars.o: sonars.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c sonars.c -I$(INCD) -o $(OBJD)sonars.o

$(OBJD)motor.o: motor.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c motor.c -I$(INCD) -o $(OBJD)motor.o

$(OBJD)clamp.o: clamp.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c clamp.c -I$(INCD) -o $(OBJD)clamp.o

$(OBJD)wake.o: wake.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c wake.c -I$(INCD) -o $(OBJD)wake.o

$(OBJD)points.o: points.c $(INCD)structures.h $(INCD)parameters.h \
  $(INCD)constants.h $(INCD)constructs.h 
	$(CC) $(CFLAGS) -c points.c -I$(INCD) -o $(OBJD)points.o

$(OBJD)display.o: display.c $(INCD)structures.h $(INCD)parameters.h \
  $(INCD)constants.h $(INCD)display.h $(INCD)constructs.h
	$(CC) $(CFLAGS) -c display.c -I$(INCD) -o $(OBJD)display.o

$(OBJD)behaviors.o: behaviors.c $(INCD)structures.h \
  $(INCD)parameters.h $(INCD)constants.h  $(INCD)constructs.h
	$(CC) $(CFLAGS) -c behaviors.c -I$(INCD) -o $(OBJD)behaviors.o

$(OBJD)eval-rules.o: eval-rules.c $(INCD)structures.h \
  $(INCD)parameters.h $(INCD)constants.h $(INCD)constructs.h
	$(CC) $(CFLAGS) -c eval-rules.c -I$(INCD) -o $(OBJD)eval-rules.o

$(OBJD)sonar-buffers.o: percept/sonar-buffers.c $(INCD)structures.h \
  $(INCD)parameters.h $(INCD)constants.h $(INCD)dispall.h $(INCD)constructs.h
	$(CC) $(CFLAGS) -c percept/sonar-buffers.c -I$(INCD) -o $(OBJD)sonar-buffers.o

$(OBJD)surfaces.o: percept/surfaces.c $(INCD)structures.h \
  $(INCD)parameters.h $(INCD)constants.h $(INCD)dispall.h $(INCD)constructs.h
	$(CC) $(CFLAGS) -c percept/surfaces.c -I$(INCD) -o $(OBJD)surfaces.o

$(OBJD)find-walls.o: percept/find-walls.c $(INCD)structures.h \
  $(INCD)parameters.h $(INCD)constants.h $(INCD)dispall.h $(INCD)constructs.h
	$(CC) $(CFLAGS) -c percept/find-walls.c -I$(INCD) -o $(OBJD)find-walls.o

$(OBJD)conv.o: percept/conv.c $(INCD)structures.h $(INCD)parameters.h \
  $(INCD)constants.h $(INCD)dispall.h 
	$(CC) $(CFLAGS) -c percept/conv.c -I$(INCD) -o $(OBJD)conv.o

$(OBJD)toplevel.o: toplevel.c $(INCD)structures.h $(INCD)parameters.h $(INCD)constants.h 
	$(CC) $(CFLAGS) -c toplevel.c -I$(INCD) -o $(OBJD)toplevel.o

$(BIND)handler: $(OBJECTS)
	$(CC) $(OBJECTS) -o $(BIND)handler -L$(MOTIFD)lib -lXm -lXt -lX11 -lc -lm


