crash-stack: link against libebl conditionally 33/103533/1
authorŁukasz Stelmach <l.stelmach@samsung.com>
Thu, 8 Dec 2016 11:48:21 +0000 (12:48 +0100)
committerŁukasz Stelmach <l.stelmach@samsung.com>
Thu, 8 Dec 2016 12:51:36 +0000 (13:51 +0100)
Link against libebl only if crash-stack is built with support for
core dump files.

Rewrite conditional building of sys_assert to use %bcond_with.

Change-Id: I50edbd417a5426a43da3b9c0e912933a7db95f4b

CMakeLists.txt
packaging/crash-worker.spec
src/crash-stack/CMakeLists.txt

index 4eaaec1..7bd6432 100644 (file)
@@ -6,9 +6,9 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 # Sub modules
 ADD_SUBDIRECTORY(src/crash-manager)
 
-IF("${SYS_ASSERT}" STREQUAL "on")
+IF("${SYS_ASSERT}" STREQUAL "ON")
        ADD_SUBDIRECTORY(src/sys-assert)
-ENDIF("${SYS_ASSERT}" STREQUAL "on")
+ENDIF("${SYS_ASSERT}" STREQUAL "ON")
 
 ADD_SUBDIRECTORY(src/crash-pipe)
 ADD_SUBDIRECTORY(src/crash-stack)
index 131412e..7d058b7 100644 (file)
@@ -1,5 +1,10 @@
-%define sys_assert on
+# "on_off foo" wil turn into "ON" or "OFF"
+%define on_off() %{expand:%%{?with_%{1}:ON}%%{!?with_%{1}:OFF}}
+
+%define _with_sys_assert on
 %bcond_with doc
+%bcond_with core_dump
+%bcond_with sys_assert
 
 Name:      crash-worker
 Summary:    Crash-manager
@@ -16,7 +21,7 @@ BuildRequires:  pkgconfig(iniparser)
 BuildRequires:  pkgconfig(capi-system-info)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  cmake
-%if "%{?sys_assert}" == "on"
+%if %{with sys_assert}
 BuildRequires:  pkgconfig(libunwind)
 %endif
 BuildRequires:  libelf-devel libelf
@@ -99,13 +104,9 @@ export CFLAGS+=" -Werror"
           -DCRASH_TEMP=%{crash_temp} \
           -DCRASH_PIPE_PATH=%{_libexecdir}/crash-pipe \
           -DCRASH_STACK_PATH=%{_libexecdir}/crash-stack \
-%if "%{?sys_assert}" == "on"
-          -DSYS_ASSERT=%{sys_assert} \
-%endif
-          -DUPGRADE_SCRIPT_PATH=%{upgrade_script_path}
-# to add support for core dump files add backslash at the end of above line
-# and uncomment below line:
-#         -DWITH_CORE_DUMP=ON
+          -DSYS_ASSERT=%{on_off sys_assert} \
+          -DUPGRADE_SCRIPT_PATH=%{upgrade_script_path} \
+          -DWITH_CORE_DUMP=%{on_off core_dump}
 
 make %{?jobs:-j%jobs}
 %if %{with doc}
@@ -130,7 +131,7 @@ install -m 644 src/crash-manager/debugmode %{buildroot}%{eng_mode_path}/.debugmo
 %endif
 
 %post
-%if "%{?sys_assert}" == "on"
+%if %{with sys_assert}
 if [ ! -d /.build ]; then
        orig="%{_libdir}/libsys-assert.so"
        pattern=$(echo $orig | sed -e 's|/|\\/|g')
@@ -151,7 +152,7 @@ fi
 /usr/bin/chsmack -a "_"  %{crash_dump_gen}/module.d/*
 
 %postun
-%if "%{?sys_assert}" == "on"
+%if %{with sys_assert}
 orig="%{_libdir}/libsys-assert.so"
 pattern=$(echo $orig | sed -e 's|/|\\/|g')
 sed -i "/${pattern}/D" %{_sysconfdir}/ld.so.preload
@@ -174,7 +175,7 @@ sed -i "/${pattern}/D" %{_sysconfdir}/ld.so.preload
 %{_prefix}/lib/sysctl.d/99-crash-manager.conf
 %{_datadir}/dbus-1/system-services/org.tizen.system.crash.service
 
-%if "%{?sys_assert}" == "on"
+%if %{with sys_assert}
 %{_libdir}/libsys-assert.so
 %{_sysconfdir}/tmpfiles.d/sys-assert.conf
 %endif
index 90ec07e..ebe8121 100644 (file)
@@ -30,10 +30,11 @@ endif()
 # Set compilation options for core dump support
 if (${WITH_CORE_DUMP} STREQUAL "ON")
   set_property(TARGET ${CRASH_STACK_BIN} APPEND_STRING PROPERTY COMPILE_FLAGS " -DWITH_CORE_DUMP")
+  find_library(EBL_LIBRARY NAMES ebl)
 endif()
 
 # Linking
-target_link_libraries(${CRASH_STACK_BIN} dw elf ebl dl stdc++)
+target_link_libraries(${CRASH_STACK_BIN} ${EBL_LIBRARY} dw elf dl stdc++)
 # Installing
 install(TARGETS ${CRASH_STACK_BIN} DESTINATION libexec)