
# KDE4

%_K4prefix %prefix
%_K4sysconfdir %_sysconfdir
%_K4bindir %_bindir
%_K4sbindir %_K4prefix/sbin
%_K4libdir %_libdir
%_K4datadir %_datadir/kde4
%_K4iconsdir %_iconsdir
%_K4includedir %_includedir/kde4
%__kde4_prefix %_K4datadir
%__kde4_bindir %_libexecdir/kde4bin
%__kde4_sbindir %_libexecdir/kde4sbin
%__kde4_libdir_link %_libdir/kde4link
%__kde4_iconsdir %_K4datadir/icons

%_K4lib %_K4libdir/kde4
%_K4exec %_K4lib/libexec
%_K4plug %_K4lib/plugins

%_K4start %_K4datadir/autostart
%_K4xdg_menu %_sysconfdir/xdg/menus
%_K4xdg_apps %_desktopdir/kde4
%_K4xdg_dirs %_datadir/desktop-directories
%_K4xdg_mime %_datadir/mime/packages
%_K4applnk %_datadir/applnk
%__kde4_xdg_menu %_sysconfdir/kde4/xdg/menus
%__kde4_xdg_apps %_K4datadir/applications/kde4
%__kde4_xdg_dirs %_K4datadir/desktop-directories

%_K4conf %_K4datadir/config
%_K4cfg %_K4datadir/config.kcfg

%_K4apps %_K4datadir/apps
%_K4conf_update %_K4apps/kconf_update
%_K4conf_bin %_K4libdir/kconf4_update_bin

%_K4emo %_K4prefix/share/emoticons
%_K4mimelnk %_K4datadir/mimelnk
%_K4snd %_K4datadir/sounds
%_K4tmpl %_K4datadir/templates
%_K4wall %_datadir/wallpapers
%_K4doc %_docdir/HTML
%__kde4_doc %_K4datadir/doc/HTML

%_K4i18n %_K4datadir/locale
%_K4srv %_K4datadir/services
%_K4srvtyp %_K4datadir/servicetypes

%_K4dbus_interfaces %_datadir/dbus-1/interfaces
%_K4dbus_services %_datadir/dbus-1/services

# utils

%_K_if_ver_gt() %if "%(rpmvercmp '%1' '%2')" > "0"
%_K_if_ver_gteq() %if "%(rpmvercmp '%1' '%2')" >= "0"
%_K_if_ver_lt() %if "%(rpmvercmp '%2' '%1')" > "0"
%_K_if_ver_lteq() %if "%(rpmvercmp '%2' '%1')" >= "0"

# build
%__kde4_buildtype %{!?_K4buildtype:MinSizeRel}%{?_K4buildtype:%?_K4buildtype}

%K4cmake \
    __kde4_cmake() \
    { \
	export PATH=%__kde4_bindir:$PATH \
	pushd BUILD-%_target_platform \
	cmake .. \\\
	    -DCMAKE_SKIP_RPATH:BOOL=yes \\\
	    -DCMAKE_BUILD_TYPE=%__kde4_buildtype \\\
	    -DCMAKE_C_FLAGS:STRING='%optflags' \\\
	    -DCMAKE_CXX_FLAGS:STRING='%optflags' \\\
	    -DCMAKE_EXE_LINKER_FLAGS:STRING='-L%__kde4_libdir_link' \\\
	    -DCMAKE_MODULE_LINKER_FLAGS:STRING='-L%__kde4_libdir_link' \\\
	    -DCMAKE_SHARED_LINKER_FLAGS:STRING='-L%__kde4_libdir_link' \\\
	    -DCMAKE_LIBRARY_PATH:LIST='%__kde4_libdir_link;%_libdir;/%_lib' \\\
	    -DLIB_DESTINATION=%_lib \\\
	    %if "%_lib" == "lib64" \
	    -DLIB_SUFFIX="64" \\\
	    %else \
	    -DLIB_SUFFIX="" \\\
	    %endif \
	    \\\
	    -DCMAKE_INSTALL_PREFIX=%{!?__kde4_alternate_placement:%_K4prefix}%{?__kde4_alternate_placement:%__kde4_prefix} \\\
	    -DBIN_INSTALL_DIR=%{!?__kde4_alternate_placement:%_K4bindir}%{?__kde4_alternate_placement:%__kde4_bindir} \\\
	    -DSBIN_INSTALL_DIR=%{!?__kde4_alternate_placement:%_K4sbindir}%{?__kde4_alternate_placement:%__kde4_sbindir} \\\
	    -DLIB_INSTALL_DIR=%_K4libdir \\\
	    -DLIBEXEC_INSTALL_DIR=%_K4exec \\\
	    -DINCLUDE_INSTALL_DIR=%_K4includedir \\\
	    -DSYSCONF_INSTALL_DIR=%_sysconfdir  \\\
	    -DDATA_INSTALL_DIR=%_K4apps \\\
	    -DCONFIG_INSTALL_DIR=%_K4conf \\\
	    -DKCFG_INSTALL_DIR=%_K4cfg \\\
	    -DICON_INSTALL_DIR=%{!?__kde4_alternate_placement:%_K4iconsdir}%{?__kde4_alternate_placement:%__kde4_iconsdir} \\\
	    -DHTML_INSTALL_DIR=%{!?__kde4_alternate_placement:%_K4doc}%{?__kde4_alternate_placement:%__kde4_doc} \\\
	    -DAPPLNK_INSTALL_DIR=%_K4applnk \\\
	    -DLOCALE_INSTALL_DIR=%_K4i18n \\\
	    -DSERVICES_INSTALL_DIR=%_K4srv \\\
	    -DSERVICETYPES_INSTALL_DIR=%_K4srvtyp \\\
	    -DKCONF_UPDATE_INSTALL_DIR=%_K4conf_update \\\
	    -DXDG_MIME_INSTALL_DIR=%_K4xdg_mime \\\
	    -DXDG_APPS_INSTALL_DIR=%{!?__kde4_alternate_placement:%_K4xdg_apps}%{?__kde4_alternate_placement:%__kde4_xdg_apps} \\\
	    -DXDG_DIRECTORY_INSTALL_DIR=%{!?__kde4_alternate_placement:%_K4xdg_dirs}%{?__kde4_alternate_placement:%__kde4_xdg_dirs} \\\
	    -DAUTOSTART_INSTALL_DIR=%_K4start \\\
	    -DSOUND_INSTALL_DIR=%_K4snd \\\
	    -DTEMPLATES_INSTALL_DIR=%_K4tmpl \\\
	    -DWALLPAPER_INSTALL_DIR=%_K4wall \\\
	    -DDBUS_INTERFACES_INSTALL_DIR=%_K4dbus_interfaces \\\
	    -DDBUS_SERVICES_INSTALL_DIR=%_K4dbus_services \\\
	    -DMAN_INSTALL_DIR=%_mandir \\\
	    -DINFO_INSTALL_DIR=%_infodir \\\
	    "$@" \
	popd \
    } \
    mkdir -p BUILD-%_target_platform; \
    __kde4_cmake

%K4configure %K4cmake

%K4make \
    __kde4_make() \
    { \
	pushd BUILD-%_target_platform \
	%make_build VERBOSE=1 "$@" \
	popd \
    } \
    __kde4_make

%K4build \
    %K4cmake \
    %K4make

%__kde4_install_move_files_to_alternate_placement \
    mkdir -p %buildroot/%__kde4_libdir_link \
    pushd %buildroot/%_K4libdir \
    for l in lib*.so \
    do \
	[ -L "$l" ] || continue \
	f=`readlink "$l"` \
	ln -sf `relative "%buildroot/%_K4libdir/$f" "%buildroot/%__kde4_libdir_link/$f"` "%buildroot/%__kde4_libdir_link/$l" \
	rm -f "$l" \
	done \
    popd \
    \
    if [ -d %buildroot/%_K4libdir/kconf_update_bin ]; then \
	mkdir -p %buildroot/%_K4libdir/kconf4_update_bin/ \
	find %buildroot/%_K4libdir/kconf_update_bin/ -type f | \\\
	while read f \
	do \
	    mv $f %buildroot/%_K4libdir/kconf4_update_bin/ \
	done \
    fi \
    if [ -d %buildroot/%__kde4_iconsdir/oxygen ]; then \
	mkdir -p %buildroot/%_K4iconsdir/ \
	rm -rf %buildroot/%_K4iconsdir/oxygen \
	mv %buildroot/%__kde4_iconsdir/oxygen %buildroot/%_K4iconsdir/ \
    fi \
    if [ -d %buildroot/%_K4xdg_menu ]; then \
	mkdir -p %buildroot/%__kde4_xdg_menu \
	rm -rf %buildroot/%__kde4_xdg_menu \
	mv %buildroot/%_K4xdg_menu %buildroot/%_sysconfdir/kde4/xdg/ \
    fi \
    if [ -d %buildroot/%__kde4_prefix/share ]; then \
	mkdir -p %buildroot/%_K4prefix/share \
	mv %buildroot/%__kde4_prefix/share/* %buildroot/%_K4prefix/share/ ||: \
	rm -rf %buildroot/%__kde4_prefix/share \
    fi \
    if [ -d %buildroot/%_K4apps/cmake/modules/ ]; then \
	find %buildroot/%_K4apps/cmake/modules/ -type f | while read f ; do \
	    sed -ni -e 'H;${x;s|[[:space:]][[:space:]]*PATHS[[:space:]]*\\n| PATHS |g;p}' $f \
	    sed -ni -e 'H;${x;s|\\n[[:space:]]*HINTS[[:space:]][[:space:]]*| HINTS |g;p}' $f \
	    sed -i -e 's|PATHS[[:space:]][[:space:]]*${KDE4_LIB_INSTALL_DIR}|PATHS %__kde4_libdir_link ${KDE4_LIB_INSTALL_DIR}|' $f \
	    sed -i -e 's|PATHS[[:space:]][[:space:]]*${LIB_INSTALL_DIR}|PATHS %__kde4_libdir_link ${LIB_INSTALL_DIR}|' $f \
	    sed -i -e 's|PATHS[[:space:]][[:space:]]*${KDE4_LIB_DIR}|PATHS %__kde4_libdir_link ${KDE4_LIB_DIR}|' $f \
	    sed -i -e 's|\\([Ff][Ii][Nn][Dd]_[Ll][Ii][Bb][Rr][Aa][Rr][Yy].*[[:space:]]HINTS[[:space:]]\\)\\(.*\\)|\\1%__kde4_libdir_link \\2|g' $f \
	done \
    fi

%K4install \
    __kde4_install() \
    { \
	%make -C BUILD-%_target_platform DESTDIR=%buildroot install "$@" \
	%ifdef __kde4_alternate_placement \
	%__kde4_install_move_files_to_alternate_placement \
	%endif \
    } \
    __kde4_install

%K4find_lang %_bindir/kde-devel-find-lang

# KDE3

%_kdedir %prefix
%_bK_menudir %buildroot/%_menudir
%_libkde %_libdir/kde3
%_kdeconfdir %_sysconfdir/kde
%_Kconfig %_kdeconfdir/share/config
%_bKconfig %buildroot/%_kdeconfdir/share/config
%_Kcfg %_datadir/config.kcfg
%_bKcfg %buildroot/%_datadir/config.kcfg
%_Klibdir %_libkde
%_bKlibdir %buildroot/%_libkde
%_Kautostart %_datadir/autostart
%_bKautostart %buildroot/%_datadir/autostart
%_Kmenudir %_datadir/applications/kde
%_bKmenudir %buildroot/%_datadir/applications/kde
%_Kservices %_datadir/services
%_bKservices %buildroot/%_datadir/services
%_Kapps %_datadir/apps
%_bKapps %buildroot/%_datadir/apps
%_Kapplnk %_datadir/applnk
%_bKapplnk %buildroot/%_datadir/applnk
%_Kmimelnk %_datadir/mimelnk
%_bKmimelnk %buildroot/%_datadir/mimelnk
%_Kservices %_datadir/services
%_bKservices %buildroot/%_datadir/services
%_Kservicetypes %_datadir/servicetypes
%_bKservicetypes %buildroot/%_datadir/servicetypes
%_Ksounds %_datadir/sounds
%_bKsounds %buildroot/%_datadir/sounds
%_Kwallpapers %_datadir/wallpapers
%_bKwallpapers %buildroot/%_datadir/wallpapers

%__kde_deprecated_macros %(/bin/sh -c "echo 'Warning!!! Deprecated macros. Look to /etc/rpm/macros.d/kde' >&2")

# deprecated
%Kd2m %{__kde_deprecated_macros}freedesktop2menu.pl
%Kmenudir %{__kde_deprecated_macros}%_Kmenudir
%Kbmenudir %{__kde_deprecated_macros}%_bKmenudir
%Kapplnk %{__kde_deprecated_macros}%_Kapplnk
%Kbapplnk %{__kde_deprecated_macros}%_bKapplnk
%Kb_menudir %{__kde_deprecated_macros}%_bK_menudir
%_Kd2m %{__kde_deprecated_macros}/bin/true
