
#  to get rid of threads just remove -DUSE_THREADS and -lpthread from below

CFLAGS = -g -O2 -L/usr/X11/lib  -I/usr/local/lib/glib/include -DUSE_THREADS

LFLAGS = -lMesaGL -lMesaGLU -lgdk -lgtk -lglib -lgtkmm -lX11 -lm -lXext -lpthread

CC    =  g++

SMALL_OBJS  =   fractal.o quat.o main.o expr_scanner.o expr_parser.o \
		expr_tree.o hash.o eq_table.o bitvect.o

GUI_OBJS    = 	radial_positioner.o fract_view.o fract_params.o \
	      	Gtk_HEntryScale.o glport.o listwindow.o MenuFactory.o \
		view_window.o fract_rot.o light.o Gtk_CoordBox.o 

STATE_OBJS  =   state.o fractal_state.o light_state.o fract_view_state.o \
		fract_params_state.o view_window_state.o fract_rot_state.o \
		Gtk_HEntryScale_state.o Gtk_CoordBox_state.o statelist.o

MOST_OBJS = ${SMALL_OBJS} ${STATE_OBJS} ${GUI_OBJS}
# best to not recompile this one much..
OBJS  =  neibhors.o ${MOST_OBJS}

FFLAGS =  -d
YFLAGS = -d
LEX = flex
YACC = bison -vdt

all:    fract

%.o: %.cc %.h
	${CC} ${CFLAGS} -c $<

%.o: %.cc
	${CC} ${CFLAGS} -c $<

%.o: %.c
	${CC} ${CFLAGS} -c $<

expr_parser.c: expr_parser.y
	${YACC} ${YFLAGS} -oexpr_parser.c expr_parser.y 

expr_scanner.c: expr_scanner.l
	${LEX} ${FFLAGS}  expr_scanner.l ; mv lex.yy.c expr_scanner.c

fract: ${OBJS}
	-${CC} ${CFLAGS} ${OBJS} ${LFLAGS} -o fract

clean:
	rm -f ${MOST_OBJS} fract expr_scanner.c expr_parser.c

