#
ifndef ESP_ROOT
$(error ESP_ROOT must be set -- Please fix the environment...)
endif
ifndef ESP_ARCH
$(error ESP_ARCH must be set -- Please fix the environment...)
endif
#
IDIR  = $(ESP_ROOT)/include
include $(IDIR)/$(ESP_ARCH)
LDIR  = $(ESP_ROOT)/lib
ifdef ESP_BLOC
ODIR  = $(ESP_BLOC)/obj
TDIR  = $(ESP_BLOC)/test
else
ODIR  = .
TDIR  = $(ESP_ROOT)/bin
endif

default: $(LDIR)/missileDatcomAIM.so $(LDIR)/misdathex.so

$(LDIR)/missileDatcomAIM.so:	$(ODIR)/missileDatcomAIM.o $(LDIR)/libaimUtil.a $(LDIR)/libutils.a
	touch $(LDIR)/missileDatcomAIM.so
	rm $(LDIR)/missileDatcomAIM.so
	$(CC) $(SOFLGS) -o $(LDIR)/missileDatcomAIM.so $(ODIR)/missileDatcomAIM.o \
		-L$(LDIR) -laimUtil -lutils -locsm -legads -ludunits2 $(CPPSLB) $(RPATH) -lm

$(ODIR)/missileDatcomAIM.o:	missileDatcomAIM.c $(IDIR)/aimUtil.h $(IDIR)/capsTypes.h
	$(CC) -c $(COPTS) $(DEFINE) -I$(IDIR) -I$(IDIR)/aim/utils missileDatcomAIM.c -o $(ODIR)/missileDatcomAIM.o


$(LDIR)/misdathex.so:	$(ODIR)/udpMisDatHex.o
	$(CXX) $(SOFLGS) -o $(LDIR)/misdathex.so $(ODIR)/udpMisDatHex.o \
		-L$(LDIR) -legads -lm $(RPATH)

$(ODIR)/udpMisDatHex.o:	udpMisDatHex.cpp \
		$(IDIR)/udpUtilities.c $(IDIR)/udpUtilities.h \
		$(IDIR)/egads.h $(IDIR)/egadsTypes.h $(IDIR)/egadsErrors.h
	$(CXX) -c $(CPPOPT) $(DEFINE) -I$(IDIR) udpMisDatHex.cpp -o $@

clean:
	-rm $(ODIR)/missileDatcomAIM.o $(ODIR)/udpMisDatHex.o

cleanall:	clean
	-rm $(LDIR)/missileDatcomAIM.so $(LDIR)/misdathex.so

lint:
	$(LINT) -I../../include -I$(IDIR) -I../utils $(wildcard *.c) -exportlocal -nestcomment -evalorder -retvalother

dox: doc/html/index.html
doc/html/index.html: \
				$(wildcard *.c) $(wildcard ../utils/*.c) $(wildcard doc/*.cfg) $(wildcard doc/*.tex) $(wildcard doc/*.xml) $(wildcard doc/*.dox)
	(cd doc; doxygen missileDatcomAIM_dox.cfg; cd latex; make; mv refman.pdf missileDatcomAIM.pdf)

doxclean:
	(cd doc; rm -f INPUT; rm -rf html latex; rm -f missileDatcomAIM.tag)
