Imported Upstream version 1.1.11
[platform/upstream/cdrkit.git] / include / CMakeLists.txt
1 PROJECT (INCLUDES C)
2
3 FILE(READ "${CMAKE_SOURCE_DIR}/VERSION" CDRKIT_VERSION)
4 STRING(REPLACE "\n" "" CDRKIT_VERSION "${CDRKIT_VERSION}")
5 MESSAGE("Configuring Cdrkit, version ${CDRKIT_VERSION}")
6
7 # auto-generated header with sizeof magic
8 INCLUDE(CheckTypeSize)
9 CHECK_TYPE_SIZE(short SIZE_SHORT)
10 MATH(EXPR SHORTLESS ${SIZE_SHORT}-1)
11 CHECK_TYPE_SIZE(int SIZE_INT)
12 MATH(EXPR INTLESS ${SIZE_INT}-1)
13 CHECK_TYPE_SIZE(long SIZE_LONG)
14 MATH(EXPR LONGLESS ${SIZE_LONG}-1)
15 CHECK_TYPE_SIZE("long long" SIZE_LLONG)
16 MATH(EXPR LLONGLESS ${SIZE_LLONG}-1)
17 CHECK_TYPE_SIZE(float SIZE_FLOAT)
18 MATH(EXPR FLOATLESS ${SIZE_FLOAT}-1)
19 CHECK_TYPE_SIZE(double SIZE_DOUBLE)
20 MATH(EXPR DOUBLELESS ${SIZE_DOUBLE}-1)
21 CHECK_TYPE_SIZE("char*" SIZE_PTR)
22 MATH(EXPR PTRLESS ${SIZE_PTR}-1)
23 CONFIGURE_FILE( align.h.in align.h)
24 #SET_SOURCE_FILES_PROPERTIES(align.h PROPERTIES GENERATED 1)
25
26 TRY_COMPILE(VA_LIST_IS_ARRAY ${CMAKE_BINARY_DIR}  ${CMAKE_CURRENT_SOURCE_DIR}/test_VA_LIST_IS_ARRAY.c)
27 # invert the result, has the condition IFF compiler fails. There must be a simple way to say a=!b... but how?
28 IF(VA_LIST_IS_ARRAY) 
29    SET(VA_LIST_IS_ARRAY FALSE)
30 else(VA_LIST_IS_ARRAY) 
31    SET(VA_LIST_IS_ARRAY TRUE)
32 endif(VA_LIST_IS_ARRAY)
33
34
35 INCLUDE(TestBigEndian)
36 TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
37
38 TRY_RUN(BITFIELDS_HTOL TEST_DUMMY ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/test_BITFIELDS_HTOL.c)
39
40 INCLUDE(CheckIncludeFiles)
41
42 #SET(CMAKE_REQUIRED_INCLUDES "/usr/include;/usr/local/include")
43 CHECK_INCLUDE_FILES("stdarg.h" HAVE_STDARG_H)
44 CHECK_INCLUDE_FILES("stdlib.h" HAVE_STDLIB_H)
45 CHECK_INCLUDE_FILES("string.h" HAVE_STRING_H)
46 CHECK_INCLUDE_FILES("strings.h" HAVE_STRINGS_H)
47 CHECK_INCLUDE_FILES("unistd.h" HAVE_UNISTD_H)
48 CHECK_INCLUDE_FILES("getopt.h" HAVE_GETOPT_H)
49 CHECK_INCLUDE_FILES("limits.h" HAVE_LIMITS_H)
50 CHECK_INCLUDE_FILES("fcntl.h" HAVE_FCNTL_H)
51 CHECK_INCLUDE_FILES("sys/file.h" HAVE_SYS_FILE_H)
52 CHECK_INCLUDE_FILES("inttypes.h" HAVE_INTTYPES_H)
53 CHECK_INCLUDE_FILES("dirent.h" HAVE_DIRENT_H)
54 CHECK_INCLUDE_FILES("alloca.h" HAVE_ALLOCA_H)
55 CHECK_INCLUDE_FILES("termios.h" HAVE_TERMIOS_H)
56 CHECK_INCLUDE_FILES("termio.h" HAVE_TERMIO_H)
57 CHECK_INCLUDE_FILES("pwd.h" HAVE_PWD_H)
58 CHECK_INCLUDE_FILES("sys/time.h" HAVE_SYS_TIME_H)
59 CHECK_INCLUDE_FILES("utime.h" HAVE_UTIME_H)
60 CHECK_INCLUDE_FILES("sys/ioctl.h" HAVE_SYS_IOCTL_H)
61 CHECK_INCLUDE_FILES("sys/param.h" HAVE_SYS_PARAM_H)
62 CHECK_INCLUDE_FILES("wait.h" HAVE_WAIT_H)
63 CHECK_INCLUDE_FILES("sys/wait.h" HAVE_SYS_WAIT_H)
64 CHECK_INCLUDE_FILES("sys/resource.h" HAVE_SYS_RESOURCE_H)
65 CHECK_INCLUDE_FILES("sys/utsname.h" HAVE_SYS_UTSNAME_H)
66 CHECK_INCLUDE_FILES("poll.h" HAVE_POLL_H)
67 CHECK_INCLUDE_FILES("sys/poll.h" HAVE_SYS_POLL_H)
68 CHECK_INCLUDE_FILES("netdb.h" HAVE_NETDB_H)
69 CHECK_INCLUDE_FILES("sys/socket.h" HAVE_SYS_SOCKET_H)
70 CHECK_INCLUDE_FILES("linux/pg.h" HAVE_LINUX_PG_H)
71 CHECK_INCLUDE_FILES("arpa/inet.h" HAVE_ARPA_INET_H)
72 CHECK_INCLUDE_FILES("sys/ipc.h" HAVE_SYS_IPC_H)
73 CHECK_INCLUDE_FILES("sys/types.h;sys/mman.h" HAVE_SYS_MMAN_H)
74 CHECK_INCLUDE_FILES("sys/types.h;sys/dkio.h" HAVE_SYS_DKIO_H)
75 CHECK_INCLUDE_FILES("sys/types.h;sun/dkio.h" HAVE_SUN_DKIO_H)
76 CHECK_INCLUDE_FILES("iconv.h" HAVE_ICONV_H)
77
78
79 INCLUDE(CheckCSourceCompiles)
80 INCLUDE(CheckFunctionExists)
81
82 #SET(CMAKE_REQUIRED_LIBRARIES iconv)
83 SET(TESTSRC " 
84 #include <iconv.h>
85 int main(int a, char **b) { iconv_t foo = iconv_open(b[0], b[0]); return(0); }
86 ")
87
88 CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBC_ICONV)
89 IF(NOT USE_LIBC_ICONV)
90 SET(CMAKE_REQUIRED_LIBRARIES iconv)
91 CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBICONV)
92 IF(NOT USE_LIBICONV)
93    message("ERROR: no library providing iconv found")
94 ENDIF(NOT USE_LIBICONV)
95 ENDIF(NOT USE_LIBC_ICONV)
96 SET(CMAKE_REQUIRED_INCLUDES )
97
98
99
100 #CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBICONV)
101 #IF(NOT USE_LIBICONV)
102 #   FIND_FILE(ICONV_H_LOCATION "iconv.h")
103 #   IF(NOT "${ICONV_H_LOCATION}" EQUAL "/usr/include/iconv.h")
104 #      MESSAGE("WARNING: iconv.h found in non-standard location (${ICONV_H_LOCATION}) but")
105 #      MESSAGE("GNU libiconv is not available. See INSTALL for details. Sleeping 10 seconds.")
106 #      EXECUTE_PROCESS(COMMAND "sleep" "10")
107 #   ENDIF(NOT "${ICONV_H_LOCATION}" EQUAL "/usr/include/iconv.h")
108 #ENDIF(NOT USE_LIBICONV)
109
110 SET(CMAKE_REQUIRED_LIBRARIES )
111 SET(TESTSRC " 
112 #include <stdlib.h>
113 int main() { return ( (int) drand48()  )  ; }
114 ")
115 CHECK_C_SOURCE_COMPILES("${TESTSRC}" HAVE_DRAND48)
116 SET(TESTSRC " 
117 #include <stdlib.h>
118 int main() { return ( (int) drand()  )  ; }
119 ")
120 CHECK_C_SOURCE_COMPILES("${TESTSRC}" HAVE_DRAND)
121 SET(TESTSRC " 
122 #include <sys/socket.h>
123 #include <netdb.h>
124 int main(int argc, char **argv) {
125 struct sockaddr sa;
126 return getnameinfo(&sa, 1, argv[0], 1, argv[1], 1, 0);
127 }
128 ")
129 CHECK_C_SOURCE_COMPILES("${TESTSRC}" HAVE_GETNAMEINFO)
130 SET(TESTSRC " 
131 #include <sys/socket.h>
132 #include <netinet/in.h>
133 #include <arpa/inet.h>
134 int main(int a, char **b) {
135 struct in_addr in;
136 inet_ntoa(in);
137 return 0;
138 }
139 ")
140 CHECK_C_SOURCE_COMPILES("${TESTSRC}" HAVE_INET_NTOA)
141
142 SET(TESTSRC "
143 #include <sys/types.h>
144 #include <wait.h>
145 int main() {
146 union wait w;
147 return 0; 
148 }
149 ")
150 # FIXME: try the same with #include <sys/wait.h>... may work, if yes, integrate properly
151 CHECK_C_SOURCE_COMPILES("${TESTSRC}" HAVE_UNION_WAIT)
152 SET(TESTSRC "
153 #include <sys/types.h>
154 #include <sys/mman.h>
155 int main() {
156 if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0)  
157    return(0);
158    }
159 ")
160 CHECK_C_SOURCE_COMPILES("${TESTSRC}" HAVE_MLOCKALL)
161 SET(TESTSRC "
162 int main(int argc, char **argv) {
163    int a[argc];
164    return 0;
165 }
166 ")
167 CHECK_C_SOURCE_COMPILES("${TESTSRC}" HAVE_DYN_ARRAYS)
168
169 CONFIGURE_FILE( xconfig.h.in xconfig.h)
170