Implementation of fork-exec
[sdk/target/sdbd.git] / CMakeLists.txt
index 5d376e1..bac4df9 100755 (executable)
@@ -58,7 +58,44 @@ SET(SDBD_SRCS
         src/plugin.c
         src/plugin_encrypt.c
         src/descs_strings.c
+        src/sdbd.c
 )
+
+SET(SDBD_SERVICE_SRCS
+        src/sdb.c
+        src/fdevent.c
+        src/transport.c
+        src/transport_local.c
+        src/transport_usb.c
+        src/sockets.c
+        src/file_sync_service.c
+        src/usb_linux_client.c
+        src/utils.c
+        src/socket_inaddr_any_server.c
+        src/socket_local_client.c
+        src/socket_local_server.c
+        src/socket_loopback_client.c
+        src/socket_loopback_server.c
+        src/socket_network_client.c
+        src/sdktools.c
+        src/strutils.c
+        src/commandline_sdbd.c
+        src/usb_linux_client.c
+        src/usb_funcfs_client.c
+        src/default_plugin_auth.c
+        src/default_plugin_basic.c
+        src/default_plugin_main.c
+        src/default_plugin_event.c
+        src/default_plugin_appcmd.c
+        src/default_plugin_shellcmd.c
+        src/hashtable.c
+        src/plugin.c
+        src/plugin_encrypt.c
+        src/descs_strings.c
+        src/services.c
+        src/sdbd_service.c
+)
+
 SET(SDBD_SUBS
         src/subprocess.c
 )
@@ -111,7 +148,9 @@ find_package(Threads REQUIRED)
 
 ADD_EXECUTABLE(sdbd ${SDBD_SRCS})
 ADD_EXECUTABLE(sdbd-user ${SDBD_SUBS})
+ADD_EXECUTABLE(sdbd-service ${SDBD_SERVICE_SRCS})
 TARGET_LINK_LIBRARIES(sdbd -pie -lsmack -lresolv -ldl ${CMAKE_THREAD_LIBS_INIT} ${pkgs_LDFLAGS} ${SYSTEMD_LDFLAGS})
+TARGET_LINK_LIBRARIES(sdbd-service -pie -lsmack -lresolv -ldl ${CMAKE_THREAD_LIBS_INIT} ${pkgs_LDFLAGS} ${SYSTEMD_LDFLAGS})
 TARGET_LINK_LIBRARIES(sdbd-user -pie ${CMAKE_THREAD_LIBS_INIT} ${pkgs_LDFLAGS})
 
 set_property(
@@ -130,6 +169,23 @@ set_property(
         HAVE_FORKEXEC
 )
 
+set_property(
+        TARGET sdbd-service
+        PROPERTY COMPILE_DEFINITIONS
+        SDB_HOST=0
+        _DROP_PRIVILEGE
+        _FILE_OFFSET_BITS=64
+)
+
+set_property(
+        TARGET sdbd-service
+        APPEND PROPERTY COMPILE_DEFINITIONS
+        _XOPEN_SOURCE
+        _GNU_SOURCE
+        HAVE_FORKEXEC
+)
+
+
 if(USE_FUNCTION_FS)
         set_property(
                 TARGET sdbd
@@ -138,7 +194,7 @@ if(USE_FUNCTION_FS)
         )
 endif()
 
-install(TARGETS sdbd sdbd-user DESTINATION /usr/sbin)
+install(TARGETS sdbd sdbd-user sdbd-service DESTINATION /usr/sbin)
 install(FILES script/sdbd DESTINATION /etc/init.d)
 
 # Extract descriptors and strings for systemd socket activation