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.
136 lines
4.9 KiB
136 lines
4.9 KiB
#!/usr/bin/make -f
|
|
#!/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_COMMAND = cmake
|
|
#CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source
|
|
#CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
|
|
CMAKE_SOURCE_DIR = ./source
|
|
CMAKE_BUILD_DIR = ./compile
|
|
DEPENDS = cmake
|
|
pkgname = $(MAKEFILE_DIR)
|
|
#pkgname = ublexec
|
|
pkgdir = ${DESTDIR}
|
|
|
|
default_target: all
|
|
all: init build
|
|
|
|
init:
|
|
@echo "Initialize ..."; \
|
|
sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' VERSION.md | cut -d" " -f2)\";/" -i source/ublexec.h; \
|
|
echo "-- Build path: ${CMAKE_BUILD_DIR}"
|
|
|
|
depend:
|
|
@echo "Check depends ..."; \
|
|
if [ ! -f /bin/${DEPENDS} ]; then \
|
|
echo "-- Depend '${DEPENDS}' not fount !"; \
|
|
exit 1; \
|
|
fi; \
|
|
echo "Check depends: OK"
|
|
# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
|
|
|
|
debug:
|
|
@echo "Debug ..."
|
|
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
|
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="/usr"; \
|
|
fi; \
|
|
echo "Debug: OK"
|
|
|
|
prepare:
|
|
@echo "Prepare ..."; \
|
|
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
|
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr"; \
|
|
fi; \
|
|
echo "Prepare: OK"
|
|
|
|
check:
|
|
@echo "Check ..."; \
|
|
if [ -f ${CMAKE_BUILD_DIR}/${pkgname} ]; then \
|
|
echo "Check: OK"; \
|
|
else \
|
|
echo "Check: ${CMAKE_BUILD_DIR}/${pkgname} not fount !"; \
|
|
exit 1; \
|
|
fi
|
|
|
|
build: depend prepare
|
|
@echo "Build ..."; \
|
|
make --directory=${CMAKE_BUILD_DIR}; \
|
|
echo "Build: OK"
|
|
|
|
uninstall:
|
|
@echo "Uninstall ..."
|
|
@for FILE_PO in $(wildcard *.po); do \
|
|
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
|
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
|
PATH_FILE_MO="/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
|
$(RM) "/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
|
done
|
|
@for SIZE in 16x16 32x32 48x48 scalable; do \
|
|
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/ru.ublinux.${pkgname}.svg"; \
|
|
$(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/ru.ublinux.${pkgname}.png"; \
|
|
done
|
|
@for FILE_SVG in $(wildcard *.svg); do \
|
|
for SIZE in 16x16 32x32 48x48 scalable; do \
|
|
$(RM) "/usr/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
|
|
done; \
|
|
done
|
|
@$(RM) "/usr/bin/${pkgname}"
|
|
@$(RM) "/usr/share/applications/${pkgname}.desktop"
|
|
@$(RM) "/usr/share/polkit-1/actions/ru.ublinux.pkexec.${pkgname}.exec.policy"
|
|
@$(RM) -rd "/usr/share/${pkgname}"
|
|
@gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null || true
|
|
@update-desktop-database --quiet &>/dev/null || true
|
|
@touch /usr/share/applications &>/dev/null || true
|
|
@echo "Uninstall: OK"
|
|
|
|
install: check uninstall
|
|
@echo "Install ..."
|
|
@for FILE_PO in $(wildcard *.po); do \
|
|
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
|
install -dm755 "${pkgdir}/usr/share/locale/$${LANG}/LC_MESSAGES"; \
|
|
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
|
PATH_FILE_MO="${pkgdir}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
|
echo $${FILE_PO}; \
|
|
msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \
|
|
done
|
|
@for SIZE in 16 32 48; do \
|
|
install -dm755 "${pkgdir}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
|
|
rsvg-convert -w $${SIZE} -h $${SIZE} -f png --keep-image-data "ru.ublinux.${pkgname}.svg" -o "${pkgdir}/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/ru.ublinux.${pkgname}.png"; \
|
|
done
|
|
@install -dm755 "${pkgdir}/usr/share/icons/hicolor/scalable/apps"
|
|
@install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/apps/" "ru.ublinux.${pkgname}.svg"
|
|
@install -Dm755 -t "${pkgdir}/usr/bin/" "${CMAKE_BUILD_DIR}/${pkgname}"
|
|
@install -Dm644 -t "${pkgdir}/usr/share/applications/" "${pkgname}.desktop"
|
|
@install -Dm644 -t "${pkgdir}/usr/share/polkit-1/actions/" "com.ublinux.pkexec.${pkgname}.exec.policy"
|
|
@install -dm755 "${pkgdir}/usr/share/${pkgname}"/{ui,css,images}
|
|
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/ui/" "${pkgname}.glade"
|
|
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/css/" style.css
|
|
@install -Dm644 -t "${pkgdir}/usr/share/${pkgname}/images/" "logo-background.png"
|
|
@gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null || true
|
|
@update-desktop-database --quiet &>/dev/null || true
|
|
@touch /usr/share/applications &>/dev/null || true
|
|
@echo "Install: OK"
|
|
|
|
clean:
|
|
@echo "Clean ..."
|
|
@$(RM) -rd ${CMAKE_BUILD_DIR}
|
|
@if [ -d ${CMAKE_BUILD_DIR} ]; then \
|
|
echo "Clean: error, compile directory exist ${CMAKE_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"
|