# Header para Makefile de modulos ligados dinamicamente ao Geolab
#
# Por:
#      Welson R. Jacometti
#

DLIB = $(GEOLAB_HOME)/lib/
DOBJ = obj/
CFLAGS = -I$(GUIDEHOME)/include -I$(OPENWINHOME)/include -PIC
LDFLAGS =
CC = CC-3.0.1


OBJS=  \
		$(DOBJ)Array.o \
		$(DOBJ)Arrow2D.o \
		$(DOBJ)ConvexHull.o \
		$(DOBJ)Coords3D.o \
		$(DOBJ)Diameter.o \
		$(DOBJ)GapsCovers.o \
		$(DOBJ)Misc.o \
		$(DOBJ)Pslg.o \
		$(DOBJ)Pslg_geotools.o \
		$(DOBJ)Pslg_tools.o \
		$(DOBJ)QuadEdge.o \
		$(DOBJ)Real.o \
		$(DOBJ)half_edge.o \
		$(DOBJ)voronoi.o

$(DLIB)GapsCovers.so: $(OBJS)
	ld $(LDFLAGS) -assert pure-text -o $(DLIB)GapsCovers.so $(OBJS)

$(DOBJ)Array.o: 	Array.C \
			Array.h \
			basic.h \
			global.h
	$(CC) $(CFLAGS) -c Array.C -o $(DOBJ)Array.o

$(DOBJ)Arrow2D.o: 	Arrow2D.C \
			Arrow2D.h \
			Coords2D.h \
			ExternalObj_id.h \
			List.h \
			Obj.h \
			Point2D.h \
			Segment2D.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			handle.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c Arrow2D.C -o $(DOBJ)Arrow2D.o

$(DOBJ)ConvexHull.o: 	ConvexHull.C \
			Algorithm.h \
			Circle.h \
			ConvexHull.h \
			Coords2D.h \
			External.h \
			ExternalObj_id.h \
			Line2D.h \
			List.h \
			Misc.h \
			Obj.h \
			Point2D.h \
			Polygon.h \
			Ray2D.h \
			Rectangle.h \
			Segment2D.h \
			Square.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			handle.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c ConvexHull.C -o $(DOBJ)ConvexHull.o

$(DOBJ)Coords3D.o: 	Coords3D.C \
			Coords3D.h \
			global.h \
			tools.h
	$(CC) $(CFLAGS) -c Coords3D.C -o $(DOBJ)Coords3D.o

$(DOBJ)Diameter.o: 	Diameter.C \
			Algorithm.h \
			Circle.h \
			ConvexHull.h \
			Coords2D.h \
			Diameter.h \
			External.h \
			ExternalObj_id.h \
			List.h \
			Misc.h \
			Obj.h \
			Point2D.h \
			Polygon.h \
			Real.h \
			Rectangle.h \
			Segment2D.h \
			Square.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			handle.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c Diameter.C -o $(DOBJ)Diameter.o

$(DOBJ)GapsCovers.o: 	GapsCovers.C \
			Algorithm.h \
			Array.h \
			Circle.h \
			ConvexHull.h \
			Coords2D.h \
			Coords3D.h \
			Diameter.h \
			External.h \
			ExternalObj_id.h \
			GapsCovers.h \
			List.h \
			Obj.h \
			Point2D.h \
			Polygon.h \
			Pslg.h \
			QuadEdge.h \
			Rectangle.h \
			Segment2D.h \
			Square.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			half_edge.h \
			handle.h \
			tools.h \
			utilities.h \
			voronoi.h
	$(CC) $(CFLAGS) -c GapsCovers.C -o $(DOBJ)GapsCovers.o

$(DOBJ)Misc.o: 	Misc.C \
			Algorithm.h \
			Circle.h \
			Coords2D.h \
			External.h \
			ExternalObj_id.h \
			Line2D.h \
			List.h \
			Misc.h \
			Obj.h \
			Point2D.h \
			Ray2D.h \
			Rectangle.h \
			Segment2D.h \
			Square.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			handle.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c Misc.C -o $(DOBJ)Misc.o

$(DOBJ)Pslg.o: 	Pslg.C \
			Coords2D.h \
			Coords3D.h \
			External.h \
			ExternalObj_id.h \
			Line2D.h \
			List.h \
			Obj.h \
			Point2D.h \
			Pslg.h \
			Pslg_geotools.h \
			Pslg_tools.h \
			Segment2D.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			half_edge.h \
			handle.h \
			line_settings.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c Pslg.C -o $(DOBJ)Pslg.o

$(DOBJ)Pslg_geotools.o: 	Pslg_geotools.C \
			Pslg_geotools.h \
			global.h \
			tools.h
	$(CC) $(CFLAGS) -c Pslg_geotools.C -o $(DOBJ)Pslg_geotools.o

$(DOBJ)Pslg_tools.o: 	Pslg_tools.C \
			Coords2D.h \
			Coords3D.h \
			External.h \
			ExternalObj_id.h \
			Line2D.h \
			List.h \
			Obj.h \
			Point2D.h \
			Pslg.h \
			Pslg_geotools.h \
			Pslg_tools.h \
			Segment2D.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			half_edge.h \
			handle.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c Pslg_tools.C -o $(DOBJ)Pslg_tools.o

$(DOBJ)QuadEdge.o: 	QuadEdge.C \
			Coords2D.h \
			Coords3D.h \
			ExternalObj_id.h \
			List.h \
			Obj.h \
			Point2D.h \
			Pslg.h \
			Pslg_geotools.h \
			Pslg_tools.h \
			QuadEdge.h \
			Segment2D.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			half_edge.h \
			handle.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c QuadEdge.C -o $(DOBJ)QuadEdge.o

$(DOBJ)Real.o: 	Real.C \
			ExternalObj_id.h \
			List.h \
			Obj.h \
			Real.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			tools.h \
			utilities.h
	$(CC) $(CFLAGS) -c Real.C -o $(DOBJ)Real.o

$(DOBJ)half_edge.o: 	half_edge.C \
			Coords3D.h \
			List.h \
			basic.h \
			global.h \
			half_edge.h \
			tools.h
	$(CC) $(CFLAGS) -c half_edge.C -o $(DOBJ)half_edge.o

$(DOBJ)voronoi.o: 	voronoi.C \
			Algorithm.h \
			Array.h \
			Arrow2D.h \
			Circle.h \
			Coords2D.h \
			Coords3D.h \
			External.h \
			ExternalObj_id.h \
			Line2D.h \
			List.h \
			Obj.h \
			Point2D.h \
			Pslg.h \
			QuadEdge.h \
			Rectangle.h \
			Segment2D.h \
			Square.h \
			String.h \
			World.h \
			attributes.h \
			basic.h \
			global.h \
			half_edge.h \
			handle.h \
			tools.h \
			utilities.h \
			voronoi.h
	$(CC) $(CFLAGS) -c voronoi.C -o $(DOBJ)voronoi.o

clean: 
	$(RM) $(DOBJ)* core *~



