You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libublsettings/Makefile

127 lines
4.0 KiB

#!/usr/bin/make -f
#SHELL := /bin/bash
MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH))))
MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
CMAKE_UTILS_COMMAND = cmake
CMAKE_UTILS_SOURCE_DIR = $(MAKEFILE_PATH)source
CMAKE_UTILS_BUILD_DIR = $(MAKEFILE_PATH)compile
DEPENDS = /bin/cmake
PREFIX ?= /usr/local
PKGNAME = $(MAKEFILE_DIR)
PRJNAME = $(subst lib,,${PKGNAME})
FILE_VER = source/CMakeLists.txt
PKGIDENT=$(subst /,-,${PREFIX})
default_target: all
.PHONY: all init depend debug prepare check build uninstall install clean help
all: init build
init:
@echo "Initialize ..."; \
if [ -d ".git" ]; then \
LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \
if [ -z "$${LATEST_TAG}" ]; \
then \
LATEST_TAG=$$"0.0"; \
echo "$${LATEST_TAG} is empty"; \
fi; \
else \
LATEST_TAG="Development"; \
fi; \
sed -r "s/^(project\(${PKGNAME} VERSION ).*/\1$${LATEST_TAG}\)/" -i ${FILE_VER}; \
echo "-- Build path: ${CMAKE_UTILS_BUILD_DIR}"
depend:
@echo "Check depends ..."
@for FILE_DEPEND in $(DEPENDS); do \
if [ ! -f $${FILE_DEPEND} ]; then \
echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
exit 1; \
fi; \
done; \
$(CMAKE_UTILS_COMMAND) -DCMAKE_INSTALL_PREFIX=/usr -S$(CMAKE_UTILS_SOURCE_DIR) -B${CMAKE_UTILS_BUILD_DIR} --check-build-system CMakeFiles/Makefile.cmake 1 || exit 1; \
echo "Check depends: OK"
debug:
@echo "Debug ..."
if [ ! -d ${CMAKE_UTILS_BUILD_DIR} ]; then \
$(CMAKE_UTILS_COMMAND) -S${CMAKE_UTILS_SOURCE_DIR} -B${CMAKE_UTILS_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
fi; \
echo "Debug: OK"
prepare:
@echo "Prepare ..."; \
if [ ! -d ${CMAKE_UTILS_BUILD_DIR} ]; then \
$(CMAKE_UTILS_COMMAND) -DCMAKE_INSTALL_PREFIX=/usr -S${CMAKE_UTILS_SOURCE_DIR} -B${CMAKE_UTILS_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
fi; \
echo "Prepare: OK"
check:
@echo "Check ..."; \
if [ -f ${CMAKE_UTILS_BUILD_DIR}/${PKGNAME}.so ]; then \
echo "Check: OK"; \
else \
echo "Check: ${CMAKE_UTILS_BUILD_DIR}/${PKGNAME}.so not found !"; \
exit 1; \
fi
build: depend prepare
@echo "Build ..."; \
cd ./source; \
$(MAKE_COMMAND) --directory=${CMAKE_UTILS_BUILD_DIR}; \
cd ../
echo "Build: OK"
uninstall:
@echo "Uninstall ..."
@$(RM) "${DESTDIR}${PREFIX}/lib/${PKGNAME}".so*
@$(RM) "${DESTDIR}${PREFIX}/include/${PKGNAME}".h*
@$(RM) "${DESTDIR}/lib/${PKGNAME}".so*
@$(RM) "${DESTDIR}/include/${PKGNAME}".h*
@if [ -z ${DESTDIR} ]; then \
ldconfig -n ${DESTDIR}${PREFIX}/lib; \
fi
@echo "Uninstall: OK"
install: check
@echo "Install ..."
@$(MAKE_COMMAND) install --directory=${CMAKE_UTILS_BUILD_DIR}
@if [ -z ${DESTDIR} ]; then \
ldconfig -n ${DESTDIR}${PREFIX}/lib; \
fi
@for LANG in $$(find ./locale -iname "*.po" -print | sed -En "s/.+_([[:alpha:]]+)\.po/\1/p" | sort -u); do \
install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
# PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
PATH_FILE_MO="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/${PKGNAME}.mo"; \
PKGNAME_PO="./locale/${PKGNAME}_$${LANG}.po"; [[ -f "$${PKGNAME_PO}" ]] || PKGNAME_PO= ; \
msgfmt --verbose --use-fuzzy --output-file "$${PATH_FILE_MO}" - < <(msgcat --use-first --no-wrap $${PKGNAME_PO} ./locale/*_$${LANG}.po); \
done
@echo "Install: OK"
clean:
@echo "Clean ..."
@sed -r "s/^(project\(${PKGNAME} VERSION ).*/\10\)/" -i ${FILE_VER}
@$(RM) -rd ${CMAKE_UTILS_BUILD_DIR}
@$(RM) -rd ${CMAKE_UTILS_BUILD_DIR}
@if [ -d ${CMAKE_UTILS_BUILD_DIR} ]; then \
echo "Clean: error, compile directory exist ${CMAKE_UTILS_BUILD_DIR}"; \
else \
echo "Clean: OK"; \
fi
help:
@echo "The following are some of the valid targets for this Makefile:"; \
echo "... all (the default if no target is provided)"; \
echo "... init"; \
echo "... debug"; \
echo "... prepare"; \
echo "... compile"; \
echo "... install"; \
echo "... uninstall"; \
echo "... clean"