
# This file contains make information for building a library leaf
TOOLS_PREFIX=
ifeq ($(FORCE_CXX_LINK),TRUE)
LINKER := $(TOOLS_PREFIX)g++
else
LINKER := $(TOOLS_PREFIX)gcc
endif

ifeq ($(USE_GETTEXT_I18N),TRUE)

#Create a target to create a POT file in the po folder
GENPOT = $(PODIR)/$(GETTEXT_PACKAGE).pot

#Add POT file to the clean list
CLEAN += $(GENPOT)

#Generate as many .mo files as the number of languages supported
#They all go to ${DEBIAN}/usr/local/share/locale/<lang>/LC_MESSAGES/<PACKAGE>.mo
GENMO = $(foreach LOCALE,$(SUPPORTED_LOCALES), $(install_locale)/$(LOCALE)/LC_MESSAGES/$(GETTEXT_PACKAGE).mo)

#Rule to generate mo file in the debian folder
$(install_locale)/%/LC_MESSAGES/$(GETTEXT_PACKAGE).mo: $(PODIR)/$(GETTEXT_PACKAGE).%.po
	mkdir -p $(dir $@)
	msgfmt $< -o $@
endif

ifeq ($(PKGCONFIG),NO)

ifeq ($(private_lib),YES)

# $(private_lib) = YES
# targets for simple static libraries, not exported

TARGET = lib$(PKG_LIB).a

CLEAN += $(TARGET)

all : $(TARGET)
lib : $(TARGET)

$(TARGET) : $(OBJECTS) $(GENPOT) $(GENMO)
	$(REMOVE) $(TARGET)
	$(AR) $(ARFLAGS) $(TARGET) $(OBJECTS)

clean :
	$(REMOVE) $(CLEAN)

else

# $(private_lib) = NO
# targets for simple libraries, single .so and single .h exported

TARGET = lib$(PKG_LIB).so.$(PKG_VERSION)

CLEAN += $(TARGET) lib$(PKG_LIB).so

all : $(TARGET)
lib : $(TARGET)

$(TARGET) : $(OBJECTS) $(GENPOT) $(GENMO)
	$(REMOVE) $(TARGET)
	$(REMOVE) lib$(PKG_LIB).so
	$(LINKER) $(LDFLAGS) --shared -o $(TARGET) $(OBJECTS) $(STATIC_LIBS) $(SHARED_LIBS)
	$(LINK) $(TARGET) lib$(PKG_LIB).so

clean :
	$(REMOVE) $(CLEAN)

ifeq ($(MAKESUBDIR),YES)

install_lib := $(install_home)/$(LIBSUBDIR)
install_hdr := $(install_home)/$(HDRSUBDIR)

install : $(TARGET)
	$(MKDIR) $(install_lib)
	$(MKDIR) $(install_hdr)
	$(COPY) $(TARGET) $(install_lib)
	$(REMOVE) $(install_lib)/lib$(PKG_LIB).so
	$(LINK) $(TARGET) $(install_lib)/lib$(PKG_LIB).so
	$(COPY) $(top_srcdir)/lib/include/$(PKG_LIB).h $(install_hdr)

else

install : $(TARGET)
	$(COPY) $(TARGET) $(install_lib)
	$(REMOVE) $(install_lib)/lib$(PKG_LIB).so
	$(LINK) $(TARGET) $(install_lib)/lib$(PKG_LIB).so
	$(COPY) $(top_srcdir)/lib/include/$(PKG_LIB).h $(install_hdr)

endif

endif

else

# $(PKGCONFIG) = YES
# pkgconfig shared object library, exported

TARGET = lib$(PKG_LIB).so.$(PKG_VERSION)
PCNAME = $(PKG_LIB).pc

CLEAN += $(TARGET) lib$(PKG_LIB).so $(PCNAME)

all : $(TARGET)
lib : $(TARGET)

$(TARGET) : $(OBJECTS) $(GENPOT) $(GENMO)
	$(REMOVE) $(TARGET)
	$(REMOVE) lib$(PKG_LIB).so
	$(REMOVE) $(PCNAME)
	$(LINKER) $(LDFLAGS) --shared -o $(TARGET) $(OBJECTS) $(STATIC_LIBS)
	$(LINK) $(TARGET) lib$(PKG_LIB).so
#	$(make_home)/gen_pkgconfig $(LIBSUBDIR) $(PCNAME) $(PKG_LIB) "$(PKG_VERSION)" "$(PKG_LIBDESC)" "$(PKG_REQUIRES)"

clean :
	$(REMOVE) $(CLEAN)

install : $(TARGET)
	$(REMOVE) $(install_lib)/lib$(PKG_LIB).so
	$(MKDIR) $(install_hdr)/$(PKG_LIB)
	$(COPY) $(TARGET) $(install_lib)
	$(LINK) $(TARGET) $(install_lib)/lib$(PKG_LIB).so
#	$(COPY) $(PCNAME) $(install_lib)/pkgconfig
	$(COPY) $(PKG_HEADERS) $(install_hdr)/$(PKG_LIB)

endif

