CPUS := $(shell getconf _NPROCESSORS_ONLN)

default:
	@echo "available targets :"
	@echo "    - actor"
	@echo "    - library"

.PHONY:actor
actor:
	po_gnatdist -aP$(NARVAL_ADA_PROJECT_PATH) -p -j$(CPUS) \
	misc_producers.cfg -Pproducers

library:c_lib cpp_lib c_test_lib

cpp_lib:libexample_cpp.o base_code.o my_class.o
	gcc -shared -o libexample_cpp.so libexample_cpp.o base_code.o \
	my_class.o

c_test_lib:c_test_lib.o
	gcc -shared -o libc_test_lib.so c_test_lib.o

c_lib:libexample_c.o
	gcc -shared -o libexample_c.so libexample_c.o

libexample_cpp.o:libexample_cpp.cc
	g++ -c -fPIC -Wall -I. -I../include libexample_cpp.cc

c_test_lib.o:c_test_lib.c
	gcc -c -fPIC -Wall c_test_lib.c

libexample_c.o:libexample_c.c
	gcc -c -fPIC -Wall -I. -I../include libexample_c.c

base_code.o:../common_c_code/base_code.cc ../include/base_class.h
	g++ -c -fPIC -Wall -I../include ../common_c_code/base_code.cc

my_class.o:my_class.cc ../include/base_class.h my_class.h
	g++ -c -fPIC -Wall -I../include -I. my_class.cc

clean:
	rm -f *.o *.so *~ generic_producer narval_naming_service
	rm -Rf dsa *.ali
