include /env.mak

LIB_NAME  = convertlit
HDR_DIR   = includes
HDRS      = $(wildcard $(HDR_DIR)/*.h)

SRC         = $(wildcard *.cpp)
OBJ         = $(SRC:.cpp=.o)
SRC_C       = $(wildcard *.c)
OBJ_C       = $(SRC_C:.c=.o)

INCS_INNER += -I./lib -I./lib/des -I $(HDR_DIR)
LIBS_INNER += -L./lib

CFLAGS     += -fPIC -DPIC -funsigned-char $(INCS_INNER)
CXXFLAGS   += -fPIC -DPIC -fpermissive $(INCS_INNER)
LDLIBS     +=  $(LIBS_INNER) -lopenclit -ltommath

SHARED          = lib$(LIB_NAME).so.$(DSM_SHLIB_MAJOR)
SHARED_LINK     = $(basename $(SHARED))
LIBRARIES       = $(SHARED) $(SHARED_LINK)

SUBDIR := $(patsubst %/Makefile,%,$(wildcard */Makefile))

.PHONY: $(SUBDIR)

all: $(LIBRARIES)

$(SHARED) all clean install remoteinstall: $(SUBDIR)

$(SUBDIR):
	@echo "===>" $@
	$(MAKE) -C $@ $(MAKECMDGOALS)
	@echo "<===" $@

$(SHARED): $(OBJ) $(OBJ_C)
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $(OBJ) $(OBJ_C) $(LDLIBS)

$(SHARED_LINK): $(SHARED)
	ln -sf $< $@

LIB_DIR = $(DESTDIR)/$(libdir)
INC_DIR = $(DESTDIR)/$(includedir)/$(LIB_NAME)
install: $(LIBRARIES)
	[ -d $(LIB_DIR) ] || mkdir -pm 755 $(LIB_DIR)
	cp -a $(LIBRARIES) $(LIB_DIR)
	[ -d $(INC_DIR) ] || mkdir -pm 755 $(INC_DIR)
	cp -a $(HDRS) $(INC_DIR)

remoteinstall: $(LIBRARIES)
	[ -d $(LIB_DIR) ] || mkdir -pm 755 $(LIB_DIR)
	cp -a $(SHARED) $(SHARED_LINK) $(LIB_DIR)
ifndef NOSTRIP
	$(STRIP) $(LIB_DIR)/$(SHARED)
endif

clean:
	$(RM) $(LIB_NAME).so $(OBJ)

.c.o:
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $^ -o $@

