CC  = ../../bin/gccw
CXX = ../../bin/g++w
MAKE_AR = ../../bin/make_ar
RM = rm
CHDIR = cd

INCLUDES = -I../d2_vector -I../angle -I../math_extention -I../ref_count_ptr

CFLAGS   = -g $(CCXXOPTFLAGS) $(COPTFLAGS) $(INCLUDES) \
	      $(CCXXADDITIONALFLAGS) $(CADDITIONALFLAGS) \
		-DLIB_MEMORY -DNO_IMPLEMENT_WARNING
CXXFLAGS = -g $(CCXXOPTFLAGS) $(CXXOPTFLAGS) $(INCLUDES) \
	      $(CCXXADDITIONALFLAGS) $(CXXADDITIONALFLAGS) \
		-DLIB_MEMORY -DNO_IMPLEMENT_WARNING

LIB_D2_VECTOR = ../d2_vector/libd2_vector.a

LDFLAGS = -lm

OBJS = d2_region.o \
       d2_universal_region.o d2_composite_region.o \
       d2_point.o d2_straight_line.o \
       d2_straight_line_divided_region.o \
       d2_composite_straight_line_divided_region_interface.o

all: libd2_region.a

library: libd2_region.a

library-only: library
	$(RM) -f *.o d2_region-test

libd2_region.a: $(OBJS)
	$(MAKE_AR) libd2_region.a $(OBJS)

d2_region-test: d2_region-test.o libd2_region.a $(LIB_D2_VECTOR)
	$(CXX) -o d2_region-test d2_region-test.o \
		  $(LIB_D2_VECTOR) $(CXXFLAGS) $(LDFLAGS) -L. -ld2_region

$(LIB_D2_VECTOR):
	$(CHDIR) ../d2_vector && $(MAKE) libd2_vector.a

clean:
	$(RM) -f *.o libd2_region.a d2_region-test

##
d2_region.o: d2_region.h d2_region.cc
d2_universal_region.o: d2_universal_region.h d2_universal_region.cc
d2_composite_region.o: d2_composite_region.h d2_composite_region.cc
d2_straight_line.o: d2_straight_line.h d2_straight_line.cc d2_region.h
d2_straight_line_divided_region.o: d2_straight_line_divided_region.h \
				   d2_straight_line_divided_region.cc \
				   d2_straight_line.h
d2_composite_straight_line_divided_region_interface.o: \
	d2_composite_straight_line_divided_region_interface.h \
	d2_composite_straight_line_divided_region_interface.cc \
	d2_straight_line_divided_region.h d2_straight_line.h
