TOPDIR          =$(PWD)
SUBDIRS         =$(TOPDIR)/src/
OBJDIR          =$(TOPDIR)/objects
INCLUDES        =-I$(TOPDIR)/include/

LDFLAGS         =




BINDIR          =$(TOPDIR)/bin/
LIBDIR          =$(TOPDIR)/lib/
TESTDIRS        =$(TOPDIR)/tests
CPP             =g++
CPPFLAGS        =-Wall -Wno-unused -g $(INCLUDES) 


OBJ_EXT         = .o
EXE_EXT         =
OBJ_OPT         = -c

.EXPORT_ALL_VARIABLES:
all: subdirs 

lib: $(LIBDIR)/libMyMath.so

subdirs:        $(SUBDIRS)
$(SUBDIRS):
	$(MAKE) -C $@
.PHONY:         subdirs $(SUBDIRS)
	

$(LIBDIR)/libMyMath.so:  subdirs
	$(CPP) -shared $(OBJDIR)/*.o $(LDFLAGS) -o  $@ 

tests: subdirs testdir

testdir:        $(TESTDIRS)
$(TESTDIRS):
	$(MAKE) -C $@
.PHONY:         testdir $(TESTDIRS)




clean:
	rm -f *~ core;rm -f lib/*
	@for T in $(SUBDIRS); do make -C $$T $@; done
	@for T in $(TESTDIRS); do make -C $$T $@; done
	rm -f $(TOPDIR)/objects/*.o
	rm -f $(TOPDIR)/include/*~
	rm -f $(LIBDIR)/libMyMath.so

