024c4fe5dab668cda704648bcf2a2e94ff140621
[framework/security/smack.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(smack C)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(LIBDIR "\${prefix}/lib")
7 SET(INCLUDEDIR "\${prefix}/include")
8 SET(VERSION_MAJOR 1)
9 SET(VERSION ${VERSION_MAJOR}.0.0)
10
11 SET(smack_dir "./")
12 SET(libsmack_dir "./libsmack")
13 SET(smackutils_dir "./utils")
14
15 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS}")
16 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
17
18 ###################################################################################################
19 ## for libsmack.so (library)
20 SET(libsmack_LDFLAGS " -version-info 1:0:0 -Wl,--version-script=${libsmack_dir}/libsmack.sym ")
21 SET(libsmack_CFLAGS  " ${CFLAGS} -fPIC -I${libsmack_dir}/sys ")
22 ADD_LIBRARY(smack SHARED ${libsmack_dir}/libsmack.c)
23 SET_TARGET_PROPERTIES(smack PROPERTIES COMPILE_FLAGS ${libsmack_LDFLAGS})
24 SET_TARGET_PROPERTIES(smack PROPERTIES SOVERSION ${VERSION_MAJOR})
25 SET_TARGET_PROPERTIES(smack PROPERTIES VERSION ${VERSION})
26 SET_TARGET_PROPERTIES(smack PROPERTIES COMPILE_FLAGS "${libsmack_CFLAGS}")
27 ###################################################################################################
28
29 ###################################################################################################
30 ## for smack-utils (binary)
31 SET(smackctl_SOURCES ${smackutils_dir}/smackctl.c ${smackutils_dir}/common.c)
32 SET(smackctl_CFLAGS " -I${libsmack_dir} -I${smackutils_dir} -D_GNU_SOURCE ")
33 ADD_EXECUTABLE(smackctl ${smackctl_SOURCES})
34 TARGET_LINK_LIBRARIES(smackctl smack)
35 SET_TARGET_PROPERTIES(smackctl PROPERTIES COMPILE_FLAGS "${smackctl_CFLAGS}")
36
37 SET(smackaccess_SOURCES ${smackutils_dir}/smackaccess.c)
38 SET(smackaccess_CFLAGS " -I${libsmack_dir} ")
39 ADD_EXECUTABLE(smackaccess ${smackaccess_SOURCES})
40 TARGET_LINK_LIBRARIES(smackaccess smack)
41 SET_TARGET_PROPERTIES(smackaccess PROPERTIES COMPILE_FLAGS "${smackaccess_CFLAGS}")
42
43 SET(smackload_SOURCES ${smackutils_dir}/smackload.c ${smackutils_dir}/common.c)
44 SET(smackload_CFLAGS " -I${libsmack_dir} -I${smackutils_dir} -D_GNU_SOURCE")
45 ADD_EXECUTABLE(smackload ${smackload_SOURCES})
46 TARGET_LINK_LIBRARIES(smackload smack)
47 SET_TARGET_PROPERTIES(smackload PROPERTIES COMPILE_FLAGS "${smackload_CFLAGS}")
48
49 SET(smackcipso_SOURCES ${smackutils_dir}/smackcipso.c ${smackutils_dir}/common.c)
50 SET(smackcipso_CFLAGS " -I${libsmack_dir} -I${smackutils_dir} -D_GNU_SOURCE ")
51 ADD_EXECUTABLE(smackcipso ${smackcipso_SOURCES})
52 TARGET_LINK_LIBRARIES(smackcipso smack)
53 SET_TARGET_PROPERTIES(smackcipso PROPERTIES COMPILE_FLAGS "${smackcipso_CFLAGS}")
54
55 SET(smackd_SOURCES ${smackutils_dir}/smackd.c ${smackutils_dir}/common.c)
56 SET(smackd_CFLAGS " -I${libsmack_dir} -I${smackutils_dir} -D_GNU_SOURCE ")
57 ADD_EXECUTABLE(smackd ${smackd_SOURCES})
58 TARGET_LINK_LIBRARIES(smackd smack)
59 SET_TARGET_PROPERTIES(smackd PROPERTIES COMPILE_FLAGS "${smackd_CFLAGS}")
60
61 SET(chsmack_SOURCES ${smackutils_dir}/chsmack.c)
62 SET(chsmack_CFLAGS " -I${libsmack_dir} ")
63 ADD_EXECUTABLE(chsmack ${chsmack_SOURCES})
64 TARGET_LINK_LIBRARIES(chsmack smack)
65 SET_TARGET_PROPERTIES(chsmack PROPERTIES COMPILE_FLAGS "${chsmack_CFLAGS}")
66 ####################################################################################################
67
68 CONFIGURE_FILE(libsmack.pc.in libsmack.pc @ONLY)
69
70 INSTALL(TARGETS smack DESTINATION lib)
71 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/smackctl DESTINATION bin)
72 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/smackaccess DESTINATION bin)
73 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/smackload DESTINATION /sbin)
74 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/smackcipso DESTINATION /sbin)
75 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/smackd DESTINATION bin)
76 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/chsmack DESTINATION /bin)
77 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsmack.pc DESTINATION lib/pkgconfig)
78 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/libsmack/sys/smack.h DESTINATION include/sys/)
79 INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/smack-def DESTINATION /etc/rc.d/init.d)
80 INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/smack-app DESTINATION /etc/rc.d/init.d)