ROOT_PATH = .

include Makefile.incl

SUBDIRS = dslib tools thread data xml 

HEADERS = $(ALL_HEADERS)
OBJECTS = $(OBJECTS_MAIN)


.PHONY: all install clean $(SUBDIRS)

all: .obj $(LIBRARY) .libds.headers

install: $(LIBRARY)

$(LIBRARY): $(SUBDIRS) $(OBJECTS) $(OBJECTS_3PARTY) $(HEADERS)
	( cd .obj; \
	$(CC) -shared -o ../$(LIBRARY).so $(ALL_OBJECTS) $(LIBS); \
	$(AR) -r ../$(LIBRARY).a $(ALL_OBJECTS) )

.obj:
	mkdir -p .obj

tools:
	${MAKE} -C tools/ $(MAKE_FLAGS)

thread:
	${MAKE} -C thread/ $(MAKE_FLAGS)

data:
	${MAKE} -C data/ $(MAKE_FLAGS)

xml:
	${MAKE} -C xml/ $(MAKE_FLAGS)

dslib:
	$(MAKE) -C dslib/ $(MAKE_FLAGS)

.libds.headers: $(HEADERS)
	@touch .libds.headers;\
	echo "Headers Updated!"

include $(ROOT_PATH)/Makefile.compile


clean:
	-rm -f *.o .obj/* *.so; \
	make -C examples clean
