%bcond_with emulator
+# Do not provide .so automatically for the extensions.
+# This if statement is for backward compatibility with GBM/Obsolete build systems
+%if "%{?profile}" != "wearable" && "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%global __provides_exclude_from ^.*\\.(wearable|mobile|tv|ivi|common)$
+%endif
+
%define emuld_major_version 0
%define emuld_minor_version 10
%define emuld_release_number 20
%package -n libemuld
Summary: Emulator daemon library
Requires: vconf
+# for multiprofile
+Requires: libemuld-compat = %{version}-%{release}
+Recommends: libemuld-profile_common = %{version}-%{release}
%description -n libemuld
Emulator daemon library for emuld and plugins
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+%package -n libemuld-profile_common
+Summary: Emulator daemon library for common/ivi
+Provides: libemuld-compat = %{version}-%{release}
+Provides: libemuld-profile_ivi = %{version}-%{release}
+Conflicts: libemuld-profile_mobile
+Conflicts: libemuld-profile_wearable
+Conflicts: libemuld-profile_tv
+%description -n libemuld-profile_common
+Emulator daemon library for emuld and plugins for common/ivi
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package -n libemuld-profile_mobile
+Summary: Emulator daemon library for mobile
+Provides: libemuld-compat = %{version}-%{release}
+Conflicts: libemuld-profile_common
+Conflicts: libemuld-profile_wearable
+Conflicts: libemuld-profile_tv
+%description -n libemuld-profile_mobile
+Emulator daemon library for emuld and plugins for mobile
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package -n libemuld-profile_wearable
+Summary: Emulator daemon library for wearable
+Provides: libemuld-compat = %{version}-%{release}
+Conflicts: libemuld-profile_common
+Conflicts: libemuld-profile_mobile
+Conflicts: libemuld-profile_tv
+%description -n libemuld-profile_wearable
+Emulator daemon library for emuld and plugins for wearable
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package -n libemuld-profile_tv
+Summary: Emulator daemon library for tv
+Provides: libemuld-compat = %{version}-%{release}
+Conflicts: libemuld-profile_common
+Conflicts: libemuld-profile_mobile
+Conflicts: libemuld-profile_wearable
+%description -n libemuld-profile_tv
+Emulator daemon library for emuld and plugins for tv
+%endif
+
%package -n libemuld-devel
Summary: Emulator daemon library for (devel)
Requires: libemuld = %{version}-%{release}
%define msgproc_vconf on
%define msgproc_suspend on
-%if "%{?profile}" == "mobile"
-%define msgproc_location on
-%endif
-%if "%{?profile}" == "wearable"
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || wearable || "undefined"
+%if "%{?profile}" != "common" && "%{?profile}" != "tv" && "%{?profile}" != "ivi"
%define msgproc_location on
%endif
-%if "%{?profile}" == "mobile"
-export CFLAGS+=" -DMOBILE"
-%else
-%if "%{?profile}" == "wearable"
-export CFLAGS+=" -DWEARABLE"
-%else
-%if "%{?profile}" == "tv"
-export CFLAGS+=" -DTV"
-%else
-export CFLAGS+=" -DUNKNOWN_PROFILE"
+%build
+
+export CFLAGS_BASE="${CFALGS}"
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+mkdir -p build_mobile
+pushd build_mobile
+export CFLAGS="${CFLAGS_BASE} -DMOBILE"
+cmake .. \
+ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DLIB_INSTALL_DIR=%{_libdir} \
+ -DEMULD_MAJOR_VERSION=%{emuld_major_version} \
+ -DEMULD_MINOR_VERSION=%{emuld_minor_version} \
+ -DEMULD_RELEASE_NUMBER=%{emuld_release_number} \
+ -DMSGPROC_HDS=%{msgproc_hds} \
+ -DMSGPROC_CMD=%{msgproc_cmd} \
+ -DMSGPROC_PACKAGE=%{msgproc_package} \
+ -DMSGPROC_SYSTEM=%{msgproc_system} \
+ -DMSGPROC_VCONF=%{msgproc_vconf} \
+ -DMSGPROC_SUSPEND=%{msgproc_suspend} \
+ -DMSGPROC_LOCATION=%{msgproc_location}
+
+make
+popd
%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+mkdir -p build_wearable
+pushd build_wearable
+export CFLAGS="${CFLAGS_BASE} -DWEARABLE"
+cmake .. \
+ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DLIB_INSTALL_DIR=%{_libdir} \
+ -DEMULD_MAJOR_VERSION=%{emuld_major_version} \
+ -DEMULD_MINOR_VERSION=%{emuld_minor_version} \
+ -DEMULD_RELEASE_NUMBER=%{emuld_release_number} \
+ -DMSGPROC_HDS=%{msgproc_hds} \
+ -DMSGPROC_CMD=%{msgproc_cmd} \
+ -DMSGPROC_PACKAGE=%{msgproc_package} \
+ -DMSGPROC_SYSTEM=%{msgproc_system} \
+ -DMSGPROC_VCONF=%{msgproc_vconf} \
+ -DMSGPROC_SUSPEND=%{msgproc_suspend} \
+ -DMSGPROC_LOCATION=%{msgproc_location}
+
+make
+popd
%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+mkdir -p build_tv
+pushd build_tv
+export CFLAGS="${CFLAGS_BASE} -DTV"
+cmake .. \
+ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DLIB_INSTALL_DIR=%{_libdir} \
+ -DEMULD_MAJOR_VERSION=%{emuld_major_version} \
+ -DEMULD_MINOR_VERSION=%{emuld_minor_version} \
+ -DEMULD_RELEASE_NUMBER=%{emuld_release_number} \
+ -DMSGPROC_HDS=%{msgproc_hds} \
+ -DMSGPROC_CMD=%{msgproc_cmd} \
+ -DMSGPROC_PACKAGE=%{msgproc_package} \
+ -DMSGPROC_SYSTEM=%{msgproc_system} \
+ -DMSGPROC_VCONF=%{msgproc_vconf} \
+ -DMSGPROC_SUSPEND=%{msgproc_suspend} \
+ -DMSGPROC_LOCATION=%{msgproc_location}
+
+make
+popd
%endif
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+export CFLAGS="${CFLAGS_BASE} -DUNKNOWN_PROFILE"
cmake . \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DLIB_INSTALL_DIR=%{_libdir} \
-DMSGPROC_SUSPEND=%{msgproc_suspend} \
-DMSGPROC_LOCATION=%{msgproc_location}
-%build
-
make
+%endif
%install
rm -rf %{buildroot}
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd build_mobile
+%make_install
+popd
+pushd %{buildroot}%{_libdir}
+for FILE in libemuld.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE.mobile"; done
+popd
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd build_wearable
+%make_install
+popd
+pushd %{buildroot}%{_libdir}
+for FILE in libemuld.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE.wearable"; done
+popd
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd build_tv
+%make_install
+popd
+pushd %{buildroot}%{_libdir}
+for FILE in libemuld.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE.tv"; done
+popd
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || wearable || tv || "undefined"
+%if "%{?profile}" != "common" && "%{?profile}" != "ivi"
+pushd %{_builddir}/%{name}-%{version}
+for FILE in libemuld.so*; do mv "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+popd
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+%make_install
+%endif
+
# for systemd
if [ ! -d %{buildroot}/usr/lib/systemd/system/emulator.target.wants ]; then
mkdir -p %{buildroot}/usr/lib/systemd/system/emulator.target.wants
cp LICENSE %{buildroot}/usr/share/license/%{name}
cp LICENSE %{buildroot}/usr/share/license/libemuld
-%make_install
-
%clean
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
make clean
+%endif
rm -rf CMakeCache.txt
rm -rf CMakeFiles
rm -rf cmake_install.cmake
rm -rf Makefile
rm -rf install_manifest.txt
+rm -rf build_mobile
+rm -rf build_wearable
+rm -rf build_tv
+rm -rf libemuld.so*
%post
chmod 770 %{_prefix}/bin/emuld
%post -n libemuld -p /sbin/ldconfig
-%post -n libemuld-devel -p /sbin/ldconfig
%postun -n libemuld -p /sbin/ldconfig
-%postun -n libemuld-devel -p /sbin/ldconfig
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post -n libemuld-profile_mobile
+pushd %{_libdir}
+for FILE in libemuld.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
+popd
+/sbin/ldconfig
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post -n libemuld-profile_wearable
+pushd %{_libdir}
+for FILE in libemuld.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+/sbin/ldconfig
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post -n libemuld-profile_tv
+pushd %{_libdir}
+for FILE in libemuld.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+popd
+/sbin/ldconfig
+%endif
%files -n emuld
%defattr(-,root,root,-)
%manifest libemuld.manifest
/usr/share/license/libemuld
%{_libdir}/libemuld.so*
+%exclude %{_libdir}/libemuld.so*.mobile
+%exclude %{_libdir}/libemuld.so*.wearable
+%exclude %{_libdir}/libemuld.so*.tv
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+%files -n libemuld-profile_common
+# default .so files are housed in the main pkg.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%files -n libemuld-profile_mobile
+%defattr(-,root,root,-)
+%manifest libemuld.manifest
+%{_libdir}/libemuld.so*.mobile
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%files -n libemuld-profile_wearable
+%defattr(-,root,root,-)
+%manifest libemuld.manifest
+%{_libdir}/libemuld.so*.wearable
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%files -n libemuld-profile_tv
+%defattr(-,root,root,-)
+%manifest libemuld.manifest
+%{_libdir}/libemuld.so*.tv
+%endif
%files -n libemuld-devel
%defattr(-,root,root,-)
%{_includedir}/libemuld/*.h
-%{_libdir}/libemuld.so*
%{_libdir}/pkgconfig/libemuld.pc
%changelog