#!smake
#include $(ROOT)/usr/include/make/commondefs

CC  = gcc

CPP  = g++

#CFLAGS  =  -g -c -DGL_DEBUG -D_VAR_DEBUG_ -D_fp_offset_

CFLAGS  =  -c -O -g #-DDEBUG

TARGETS = 3dview 

OBJECTS	= 3dview.o accept.o object.o event.o trackball.o ui.o vect.o \
      sphere.o node.o box.o color_obj.o cylinder.o data.o group.o \
      text.o symbol.o instance.o main.o gorth.o lexical.o lyyerror.o \
	message.o function.o initial.o reduce.o primitive.o hash.o location.o \
	panel.o light.o nvect.o header.o ver.o \
	make_name.o parse.tab.o

#parse.tab.o parser.o

SRCS =  3dview.c accept.c object.c event.c trackball.c ui.c vect.c \
      sphere.c node.c box.c color_obj.c cylinder.c data.c group.c \
       text.c instance.c main.c gorth.c lexical.c lyyerror.c \
	message.c function.c initial.c reduce.c primitive.c hash.c location.c \
	panel.c light.c nvect.c symbol.c header.c ver.c make_name.c \
	 parse.tab.c

# parse.tab.c parser.c

#
LDFLAGS =  -lsun -lsphere -lm -lmld -lfm_s -lgl_s -s -lc_s -lX11_s 

LCDEFS	=  -O 

# If you want prototypes turned off, un-comment the following line:
# PROTOTYPES=

#include $(COMMONRULES)

all : $(TARGETS)

depend :
	@makedepend  -I. -I/usr/local/lib/g++-include ${SRCS}

clean : 
	rm -f  *~ *.~* $(OBJECTS) $(TARGETS) parse.tab.h parse.tab.c 

ver.c : makever
	makever > ver.c

event.o : event.c event.h
	$(CC)  $(CFLAGS) event.c 

trackball.o:	trackball.c trackball.h
	$(CC) $(CFLAGS) trackball.c

ui.o : ui.c ui.h
	$(CC) $(CFLAGS) ui.c 

vect.o : vect.h vect.c
	$(CC) $(CFLAGS) vect.c 

make_name.o : make_name.c 
	$(CPP) $(CFLAGS) make_name.c 

accept.o : accept.c 
	$(CPP) $(CFLAGS) accept.c 

reduce.o : reduce.c 
	$(CPP) $(CFLAGS) reduce.c 

object.o : object.c object.h 
	$(CPP) $(CFLAGS) object.c 

ver.o : ver.c 
	$(CPP) $(CFLAGS) ver.c

panel.o: node.h hash.h group.h panel.h panel.c
	$(CPP) $(CFLAGS) panel.c

parser.o : parser.h parser.c
	$(CPP) $(CFLAGS) parser.c 

3dview.o : 3dview.c object.h
	$(CPP) $(CFLAGS) 3dview.c 

nvect.o : nvect.c 
	$(CPP) $(CFLAGS) nvect.c 

sphere.o : sphere.c sphere.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) sphere.c 

node.o : node.c node.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) node.c 

box.o : box.c box.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) box.c 

text.o : text.c text.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) text.c 

color_obj.o : color_obj.c color_obj.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) color_obj.c 

light.o : light.c light.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) light.c 

cylinder.o : cylinder.c cylinder.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) cylinder.c 

symbol.o : symbol.c symbol.h parse.tab.h
	$(CPP) $(CFLAGS) symbol.c 

function.o : function.c function.h
	$(CPP) $(CFLAGS) function.c

primitive.o : primitive.c primitive.h
	$(CPP) $(CFLAGS) primitive.c

initial.o : initial.c
	$(CPP) $(CFLAGS) initial.c

location.o : location.c  location.h 
	$(CPP) $(CFLAGS) location.c

lyyerror.o : lyyerror.c 
	$(CPP) $(CFLAGS) lyyerror.c

data.o : data.c data.h node.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) data.c 

message.o : message.c message.h
	$(CPP) $(CFLAGS) message.c 

lexical.o : lexical.c parse.tab.h
	$(CPP) $(CFLAGS) lexical.c 

hash.o : hash.c hash.h
	$(CPP) $(CFLAGS) hash.c

instance.o : instance.c node.h object.h header.h objecttag.h symbol.h
	$(CPP) $(CFLAGS) instance.c 

gorth.o : gorth.c gorth.h node.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) gorth.c 

group.o : group.c group.h node.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) group.c 

main.o : main.c node.h object.h header.h objecttag.h
	$(CPP) $(CFLAGS) main.c 

header.o: header.c
	$(CPP) $(CFLAGS) header.c

parse.tab.c : parse.tab.h

parse.tab.h : parse.y
	yacc -dl parse.y ;mv y.tab.h parse.tab.h;mv y.tab.c parse.tab.c;

parse.tab.o : parse.tab.c
	$(CPP) $(CFLAGS) parse.tab.c 

$(TARGETS): $(OBJECTS)
	$(CPP) $(OBJECTS) $(LDFLAGS) -o $@ ;\
	rm ver.c ver.o

# DO NOT DELETE


