@ -6,51 +6,48 @@ 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
DEPENDS = /bin/cmake
PREFIX ?= /usr/local
#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)
FILE_VER = source/${ PKGNAME } .h
#PKGNAME = ubl-settings-manager
pkgdir =
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//' ) ; \
else \
LATEST_TAG = "Development" ; \
fi ; \
sed -r " s/^(string version_application).*/\1 = \" $$ {LATEST_TAG}\";/ " -i ${ FILE_VER } ; \
version = " $$ (cat VERSION.md) " ; \
version = $$ { version:8} ; \
search = " s/char *version_application.* $& " ; \
replace = " char *version_application = \" $$ {version}\"; " ; \
sed -i -e " $$ search/ $$ replace/gi " source/ubl-settings-manager.h; \
echo " -- Build path: ${ CMAKE_BUILD_DIR } "
depend :
@echo "Check depends ..."
@for FILE_DEPEND in $( DEPENDS) ; do \
if [ ! -f $$ { FILE_DEPEND} ] ; then \
echo " ERROR: Depend ' $$ {FILE_DEPEND}' not found ! " ; \
@echo "Check depends ..." ; \
if [ ! -f /bin/cmake ] ; then \
echo "-- Depend 'cmake' not found !" ; \
exit 1; \
fi ; \
done ; \
$( CMAKE_COMMAND) -S$( CMAKE_SOURCE_DIR) -B${ CMAKE_BUILD_DIR } --check-build-system CMakeFiles/Makefile.cmake 1 || exit 1; \
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= " ${ PREFIX } "; \
cmake -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= " ${ PREFIX } "; \
cmake -S${ CMAKE_SOURCE_DIR } -B${ CMAKE_BUILD_DIR } -DCMAKE_BUILD_TYPE= Release -DCMAKE_INSTALL_PREFIX= " /usr "; \
fi ; \
echo "Prepare: OK"
@ -65,64 +62,75 @@ check:
build : depend prepare
@echo "Build ..." ; \
$( MAKE_COMMAND) --directory= ${ CMAKE_BUILD_DIR } ; \
sed -r "s/^(string version_application).*/\1;/" -i ${ FILE_VER } ; \
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 = " ${ DESTDIR } ${ PREFIX } /share/locale/ $$ {LANG}/LC_MESSAGES/ $$ {FILE_MO} " ; \
$( RM) " $$ {PATH_FILE_MO} " ; \
done
@for SIZE in 16x16 32x32 48x48 scalable; do \
$( RM) " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/$$ {SIZE}/apps/ com.ublinux. ${ PKGNAME } .svg " ; \
$( RM) " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/ $$ {SIZE}/apps/com.ublinux. ${ PKGNAME } .png " ; \
$( RM) " /usr/share/icons/hicolor/ $$ {SIZE}/apps/ ${ PKGNAME } .svg " ; \
$( RM) "/usr/share/" ${ pkgname } " /images/ ${ PKGNAME } .png " ; \
done
@for FILE_SVG in $( wildcard *.svg) ; do \
for SIZE in 16x16 32x32 48x48 scalable; do \
$( RM) " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/$$ {SIZE}/status/ $$ {FILE_SVG%.*} " .{ svg,png,jpg} ; \
$( RM) " /usr /share/icons/hicolor/$$ {SIZE}/status/ $$ {FILE_SVG%.*} " .{ svg,png,jpg} ; \
done ; \
done
@$( RM) " ${ DESTDIR } ${ PREFIX } /bin/ ${ PKGNAME } "
@$( RM) " ${ DESTDIR } /etc/xdg/ ${ PKGNAME } / ${ PKGNAME } .conf "
@$( RM) " ${ DESTDIR } ${ PREFIX } /share/applications/ ${ PKGNAME } .desktop "
@$( RM) " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/scalable/apps/com.ublinux. ${ PKGNAME } .svg "
@$( RM) " ${ DESTDIR } /usr/share/polkit-1/actions/com.ublinux. ${ PKGNAME } .policy "
@if [ -z ${ DESTDIR } ] ; then \
[ -d " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/ " ] && gtk-update-icon-cache -fiq " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/ " & >/dev/null || true; \
update-desktop-database --quiet & >/dev/null || true; \
[ -d " ${ DESTDIR } ${ PREFIX } /share/applications " ] && touch " ${ DESTDIR } ${ PREFIX } /share/applications " & >/dev/null || true; \
fi
@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
@$( RM) " /usr/bin/ ${ PKGNAME } "
@$( RM) " /usr/share/applications/ ${ PKGNAME } .desktop "
@$( RM) " /usr/share/icons/hicolor/scalable/apps/ ${ PKGNAME } .png "
@$( RM) " /usr/share/icons/hicolor/scalable/apps/ ${ PKGNAME } .svg "
@$( RM) "/usr/share/icons/hicolor/scalable/apps/ubl-settings-manager.svg"
@$( RM) " /usr/share/ ${ PKGNAME } /ui/ublinux-logo.svg "
@$( RM) " /usr/share/ ${ PKGNAME } /ui/ ${ PKGNAME } .glade "
@$( RM) " /usr/share/ ${ PKGNAME } /css/ ${ PKGNAME } .css "
@$( RM) " /usr/share/ ${ PKGNAME } /ui/ ${ PKGNAME } -banner.png "
@$( RM) " /usr/share/ ${ PKGNAME } /css/ ${ PKGNAME } .css "
@$( RM) " /usr/share/ ${ PKGNAME } /css/ ${ PKGNAME } .css "
@$( RM) " /usr/share/ ${ PKGNAME } /css/ ${ PKGNAME } .css "
@$( RM) -d " /usr/share/ ${ PKGNAME } /css "
@$( RM) -d " /usr/share/ ${ PKGNAME } /ui "
@$( RM) -d " /usr/share/ ${ PKGNAME } "
@$( RM) "/etc/ubconfig-main.conf"
@gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ & >/dev/null
@update-desktop-database --quiet 2>/dev/null
@touch /usr/share/applications
@echo "Uninstall: OK"
install : check uninstall
@echo "Install ..."
@for FILE_PO in $( wildcard *.po) ; do \
LANG = $$ { FILE_PO##*_} ; LANG = $$ { LANG%.*} ; \
install -dm755 " ${ DESTDIR } ${ PREFIX } /share/locale/ $$ {LANG}/LC_MESSAGES " ; \
install -dm755 /usr/share/locale/$$ { LANG} /LC_MESSAGES ; \
FILE_MO = $$ { FILE_PO##*/} ; FILE_MO = " $$ {FILE_MO%_*.po}.mo " ; \
PATH_FILE_MO = " ${ DESTDIR } ${ PREFIX } /share/locale/ $$ {LANG}/LC_MESSAGES/ $$ {FILE_MO} " ; \
echo " $$ {FILE_PO} " ; \
PATH_FILE_MO = " /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 " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/ $$ {SIZE}x $$ {SIZE}/apps " ; \
rsvg-convert -w $$ { SIZE} -h $$ { SIZE} -f svg --keep-image-data " com.ublinux. ${ PKGNAME } .svg " -o " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/ $$ {SIZE}x $$ {SIZE}/apps/com.ublinux. ${ PKGNAME } .svg " ; \
install -dm755 /usr/share/icons/hicolor/$$ { SIZE} x$$ { SIZE} /apps ; \
rsvg-convert -w $$ { SIZE} -h $$ { SIZE} -f svg --keep-image-data ${ PKGNAME } .svg -o " /usr /share/icons/hicolor/$$ {SIZE}x $$ {SIZE}/apps/ ${ PKGNAME } .svg " ; \
done
@install -Dm644 -t " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/scalable/apps/ " " com.ublinux. ${ PKGNAME } .svg "
@install -Dm644 -t " ${ DESTDIR } /usr/share/polkit-1/actions/ " " com.ublinux. ${ PKGNAME } .policy "
@install -Dm755 -t " ${ DESTDIR } ${ PREFIX } /bin/ " " ${ CMAKE_BUILD_DIR } / ${ PKGNAME } "
@install -Dm744 -t " ${ DESTDIR } /etc/xdg/ ${ PKGNAME } / " " ${ PKGNAME } .conf "
@install -Dm644 -t " ${ DESTDIR } ${ PREFIX } /share/applications/ " " ${ PKGNAME } .desktop "
@sed -e 's+/usr/bin+${PREFIX}/bin+g' -i ${ DESTDIR } /usr/share/polkit-1/actions/com.ublinux.${ PKGNAME } .policy
@if [ -z ${ DESTDIR } ] ; then \
[ -d " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/ " ] && gtk-update-icon-cache -fiq " ${ DESTDIR } ${ PREFIX } /share/icons/hicolor/ " & >/dev/null || true; \
update-desktop-database --quiet & >/dev/null || true; \
[ -d " ${ DESTDIR } ${ PREFIX } /share/applications " ] && touch " ${ DESTDIR } ${ PREFIX } /share/applications " & >/dev/null || true; \
fi
@install -Dm644 -t /usr/share/icons/hicolor/scalable/apps/ ${ PKGNAME } .svg
@install -Dm755 -t /usr/bin/ ${ CMAKE_BUILD_DIR } /${ PKGNAME }
@install -Dm644 -t /usr/share/applications/ ${ PKGNAME } .desktop
@install -Dm755 /usr/share/${ PKGNAME } / -d ui
@install -Dm755 /usr/share/${ PKGNAME } / -d css
@install -Dm644 -t /usr/share/${ PKGNAME } /ui/ ${ PKGNAME } .glade
@install -Dm644 -t /usr/share/${ PKGNAME } /css/ ${ PKGNAME } .css
@install -Dm644 -t /usr/share/${ PKGNAME } /ui/ ublinux-logo.svg
@install -Dm644 -t /etc/ ubconfig-main.conf
@chmod 766 /etc/ubconfig-main.conf
@install -Dm644 -t /usr/share/${ PKGNAME } /ui/ ${ PKGNAME } -banner.png
@gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ & >/dev/null
@update-desktop-database --quiet 2>/dev/null
@touch /usr/share/applications
@echo "Install: OK"
clean :
@ -135,12 +143,12 @@ clean:
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"
@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"