ROOT=../..

include $(ROOT)/Makefile.conf
include Makefile.conf

CDT_COORD=-DCDT_COORD_T=double -Dcdt_precision=1000000.0
CFLAGS_TEMP_GRBS = -I..
CFLAGS = $(CFLAGS_RTRND) $(CDT_COORD) $(CFLAGS_TEMP_GRBS)
LOCLIBS = $(LOCLIBS_RTRND)
LDLIBS = -lm
LDFLAGS = $(LDFLAGS_RTRND)
OBJS = route-rnd.o rtree.o compat_misc.o data.o io.o util_grid.o htdi.o \
       util_rat.o netseg.o find.o rtpoly.o route_res.o conf.o
BINDIR=$(install_root)$(DESTDIR)$(PREFIX)/bin

all: libroute-rnd.a route-rnd$(EXE)

include ../plugins/Makefile.inc
include Makefile.dep

route-rnd$(EXE): main.o $(OBJS)  $(BUILDIN_O) $(LOCLIBS)
	$(CC) -o $@ $(LDFLAGS) main.o $(OBJS) $(BUILDIN_O) $(LOCLIBS) $(LDLIBS)

libroute-rnd.a: main.o $(OBJS)  $(BUILDIN_O) $(LOCLIBS)
	ar ru $@ main.o $(OBJS) $(BUILDIN_O) $(LOCLIBS)

$(ROOT)/src_3rd/genvector/libgenvector.a:
	cd $(ROOT)/src_3rd/genvector && make libgenvector.a

$(ROOT)/src_3rd/genht/libgenht.a:
	cd $(ROOT)/src_3rd/genht && make libgenht.a

$(ROOT)/src_3rd/libusteiner/libusteiner.a: $(ROOT)/src_3rd/libusteiner/libusteiner.o $(ROOT)/src_3rd/libusteiner/libusteiner.h
	cd $(ROOT)/src_3rd/libusteiner && make libusteiner.a

$(ROOT)/src_3rd/libcdtr/libcdtr.a:
	cd $(ROOT)/src_3rd/libcdtr && make libcdtr.a CFLAGS_LIBCDTR="$(CDT_COORD)"

$(ROOT)/src_3rd/libualloc/libualloc.a:
	cd $(ROOT)/src_3rd/libualloc && make libualloc.a

$(ROOT)/src_3rd/libusearch/libusearch.a:
	cd $(ROOT)/src_3rd/libusearch && make libusearch.a

$(ROOT)/src_3rd/genprique/genprique.a:
	cd $(ROOT)/src_3rd/genprique && make genprique.a

dep:
	echo $(OBJS) $(BUILDIN_O) | ../../util/dep.sh $(CFLAGS) > Makefile.dep

install:
	mkdir -p $(BINDIR)
	$(CP) route-rnd$(EXE) $(BINDIR)/route-rnd$(EXE)

linstall:
	mkdir -p $(BINDIR)
	$(LN) $(PWD)/route-rnd$(EXE) $(BINDIR)/route-rnd$(EXE)

uninstall:
	$(RM) $(BINDIR)/route-rnd$(EXE)

clean:
	$(RM) $(OBJS) $(BUILDIN_O) route-rnd

distclean: clean
