CPUS := $(shell getconf _NPROCESSORS_ONLN)
INSTALL := $(HOME)
ADA_PROJECT_PATH := $(dir $(shell which gnatls))../include
FILES=$(wildcard client/src/*.ad[sb])
ALI_BASE=log4ada-events.ali log4ada.ali log4ada-filters.ali \
log4ada-appenders.ali log4ada-loggers.ali log4ada-appenders-consoles.ali \
log4ada-socket_utilities.ali log4ada-appenders-files.ali log4ada-types.ali \
log4ada-appenders-tcp_stream.ali options.ali log4ada-appenders-xml.ali \
log4ada-appenders-soap.ali
ALI_FILES=$(addprefix obj-shared/,$(ALI_BASE))
ANNEX_E_FILES=$(wildcard server/src_annex_e/*.ad[sb])
DIRS=client server

all:
	for i in $(DIRS);do ADA_PROJECT_PATH=$(ADA_PROJECT_PATH) make -C $$i; \
	done

clean:
	for i in $(DIRS);do make -C $$i clean;done
	rm -f *~

distclean:
	for i in $(DIRS);do make -C $$i distclean;done
	rm -f *~
	rm -Rf obj-shared obj-static
	rm -f liblog4ada.a liblog4ada.so

.PHONY:shared_library static_library

soap_server:
	ADA_PROJECT_PATH=$(ADA_PROJECT_PATH) make -C server soap_logger

install:shared_library static_library soap_server
	mkdir -p $(INSTALL)/bin
	mkdir -p $(INSTALL)/lib/log4ada
	mkdir -p $(INSTALL)/include/log4ada
	mkdir -p $(INSTALL)/include/log4ada/annex_e
	cp -f server/obj_logger/soap_logger_main $(INSTALL)/bin
	cp -f log4Ada.gpr $(INSTALL)/include/log4Ada.gpr
	cp -f log4Ada_annex_e.gpr $(INSTALL)/include/log4Ada_annex_e.gpr
	cp -f liblog4ada.a liblog4ada.so $(INSTALL)/lib/log4ada
	cd $(INSTALL)/lib;ln -s log4ada/liblog4ada.so;cd -
	cp -f $(ALI_FILES) $(INSTALL)/lib/log4ada
	chmod uog-w $(INSTALL)/lib/log4ada/*.ali
	cp -f $(FILES) $(INSTALL)/include/log4ada
	cp -f $(ANNEX_E_FILES) $(INSTALL)/include/log4ada/annex_e

shared_library:
	LIBRARY_TYPE=relocatable ADA_PROJECT_PATH=$(ADA_PROJECT_PATH) \
	gnatmake -p -j$(CPUS) -Pbuild_log4ada_lib.gpr \
        -XLIBRARY_KIND=dynamic -XSONAME=liblog4ada.so -XOBJ_DIR=obj-shared

static_library:
	LIBRARY_TYPE=static ADA_PROJECT_PATH=$(ADA_PROJECT_PATH) \
	gnatmake -p -j$(CPUS) -Pbuild_log4ada_lib.gpr \
        -XLIBRARY_KIND=static -XOBJ_DIR=obj-static
