Commit a1e31c95 authored by Simon Morlat's avatar Simon Morlat

Merge branch '2_0_x_throttle_linphone' into linphone_v2.2.0

parents 94ac00d5 4a5ea6a6
############################################################################
# CMakeLists.txt
# Copyright (C) 2014 Belledonne Communications, Grenoble France
#
############################################################################
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
############################################################################
cmake_minimum_required(VERSION 3.0)
project(SRTP2 C)
option(ENABLE_STATIC "Build static library (default is shared library)." NO)
option(ENABLE_KERNEL_LINUX "Build library to run in Linux kernel context." NO)
option(ENABLE_GENERIC_AESICM "Compile in changes for ISMAcryp." NO)
option(ENABLE_SYSLOG "Use syslog for error reporting." NO)
option(ENABLE_STDOUT "Use stdout for error reporting." YES)
option(ENABLE_CONSOLE "Use /dev/console for error reporting." NO)
option(ENABLE_GDOI "Enable GDOI key management." NO)
option(ENABLE_TEST_PROGRAMS "Enable compilation of test programs." NO)
if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "i*86|x86_64|AMD64")
set(CPU_CISC 1)
set(HAVE_X86 1)
else()
include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)
if(${WORDS_BIGENDIAN})
set(CPU_RISC 1)
else()
set(CPU_CISC 1)
endif()
endif()
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(ENABLE_DEBUGGING 1)
endif()
if(ENABLE_KERNEL_LINUX)
set(RNG_SOURCE rand_linux_kernel.c)
set(SRTP_KERNEL 1)
set(SRTP_KERNEL_LINUX 1)
else()
set(RNG_SOURCE rand_source.c)
endif()
if(UNIX)
if(NOT CMAKE_CROSS_COMPILING)
if(EXISTS "/dev/urandom")
set(DEV_URANDOM "/dev/urandom")
else()
if(EXISTS "/dev/random")
set(DEV_URANDOM "/dev/random")
endif()
endif()
endif()
endif()
set(PACKAGE_STRING "libsrtp2 2.2.0-pre")
set(PACKAGE_VERSION "2.0.1-pre")
set(GENERIC_AESICM ${ENABLE_GENERIC_AESICM})
set(USE_SYSLOG ${ENABLE_SYSLOG})
set(ERR_REPORTING_STDOUT ${ENABLE_STDOUT})
set(USE_ERR_REPORTING_FILE ${ENABLE_CONSOLE})
if(ENABLE_CONSOLE)
set(ERR_REPORTING_FILE "/dev/console")
endif()
set(SRTP_GDOI ${ENABLE_GDOI})
if(ENABLE_GDOI)
set(GDOI_SOURCE gdoi/srtp+gdoi.c)
endif()
include(CheckIncludeFile)
include(CheckFunctionExists)
include(CheckTypeSize)
if(MSVC)
list(APPEND CMAKE_REQUIRED_INCLUDES ${CMAKE_PREFIX_PATH}/include/MSVC)
endif()
check_include_file(stdlib.h HAVE_STDLIB_H)
check_include_file(unistd.h HAVE_UNISTD_H)
check_include_file(byteswap.h HAVE_BYTESWAP_H)
check_include_file(stdint.h HAVE_STDINT_H)
check_include_file(inttypes.h HAVE_INTTYPES_H)
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
check_include_file(machine/types.h HAVE_MACHINE_TYPES_H)
check_include_file(sys/int_types.h HAVE_SYS_INT_TYPES_H)
check_include_file(sys/socket.h HAVE_SYS_SOCKET_H)
check_include_file(netinet/in.h HAVE_NETINET_IN_H)
check_include_file(arpa/inet.h HAVE_ARPA_INET_H)
check_include_file(windows.h HAVE_WINDOWS_H)
if(HAVE_WINDOWS_H)
check_include_file(winsock2.h HAVE_WINSOCK2_H)
if(HAVE_WINSOCK2_H)
list(APPEND LIBS ws2_32)
endif()
endif()
check_include_file(syslog.h HAVE_SYSLOG_H)
check_function_exists("inet_aton" HAVE_INET_ATON)
check_function_exists("usleep" HAVE_USLEEP)
check_function_exists("sigaction" HAVE_SIGACTION)
set(TYPES_CHECKED uint8_t uint16_t uint32_t uint64_t)
set(CMAKE_EXTRA_INCLUDE_FILES stdint.h)
foreach(TYPE ${TYPES_CHECKED})
string(TOUPPER ${TYPE} TYPE_SIZE_VAR)
check_type_size(${TYPE} ${TYPE_SIZE_VAR})
endforeach()
check_type_size("unsigned long" UNSIGNED_LONG)
check_type_size("unsigned long long" UNSIGNED_LONG_LONG)
set(CMAKE_EXTRA_INCLUDE_FILES)
set(SIZEOF_UNSIGNED_LONG ${UNSIGNED_LONG})
set(SIZEOF_UNSIGNED_LONG_LONG ${UNSIGNED_LONG_LONG})
foreach(KEYWORD "inline" "__inline__" "__inline")
if(NOT DEFINED C_INLINE)
try_compile(C_HAS_${KEYWORD} "${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/test_inline.c"
COMPILE_DEFINITIONS "-Dinline=${KEYWORD}")
if(C_HAS_${KEYWORD})
set(C_INLINE TRUE)
if(NOT "${KEYWORD}" STREQUAL "inline")
set(inline ${KEYWORD})
endif()
endif()
endif()
endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
include_directories(
include
crypto/include
${CMAKE_CURRENT_BINARY_DIR}
)
if(MSVC)
include_directories(${CMAKE_PREFIX_PATH}/include/MSVC)
endif()
add_subdirectory(include)
add_subdirectory(crypto/include)
add_definitions("-DHAVE_CONFIG_H=1")
if(NOT MSVC)
add_definitions("-Wall -fexpensive-optimizations -funroll-loops -fPIC")
endif()
source_group(ciphers FILES
crypto/cipher/cipher.c
crypto/cipher/null_cipher.c
crypto/cipher/aes.c
crypto/cipher/aes_icm.c
)
source_group(hashes FILES
crypto/hash/null_auth.c
crypto/hash/sha1.c
crypto/hash/hmac.c
crypto/hash/auth.c
# crypto/hash/tmmhv2.c
)
source_group(math FILES
crypto/math/datatypes.c
crypto/math/stat.c
)
source_group(kernel FILES
crypto/kernel/crypto_kernel.c
crypto/kernel/alloc.c
crypto/kernel/key.c
crypto/kernel/err.c
#crypto/ust/ust.c
)
source_group(replay FILES
crypto/replay/rdb.c
crypto/replay/rdbx.c
crypto/replay/ut_sim.c
)
source_group(srtpobj FILES
srtp/srtp.c
srtp/ekt.c
)
set(SRTP_SOURCE_FILES
crypto/cipher/cipher.c
crypto/cipher/null_cipher.c
crypto/cipher/aes.c
crypto/cipher/aes_icm.c
crypto/hash/null_auth.c
crypto/hash/sha1.c
crypto/hash/hmac.c
crypto/hash/auth.c
# crypto/hash/tmmhv2.c
crypto/math/datatypes.c
crypto/math/stat.c
crypto/kernel/crypto_kernel.c
crypto/kernel/alloc.c
crypto/kernel/key.c
crypto/kernel/err.c
#crypto/ust/ust.c
crypto/replay/rdb.c
crypto/replay/rdbx.c
crypto/replay/ut_sim.c
srtp/srtp.c
srtp/ekt.c
${GDOI_SOURCE}
${CMAKE_CURRENT_BINARY_DIR}/config.h
)
if(WIN32)
list(APPEND SRTP_SOURCE_FILES srtp.def)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set_source_files_properties(crypto/kernel/crypto_kernel.c PROPERTIES COMPILE_FLAGS "/wd4703")
endif()
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
if(ENABLE_STATIC)
add_library(srtp STATIC ${SRTP_SOURCE_FILES})
target_link_libraries(srtp ${LIBS})
else()
add_library(srtp SHARED ${SRTP_SOURCE_FILES})
set_target_properties(srtp PROPERTIES VERSION 2)
target_link_libraries(srtp ${LIBS})
if(MSVC)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Debug/srtp.pdb
DESTINATION bin
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif()
endif()
endif()
set_target_properties(srtp PROPERTIES OUTPUT_NAME "srtp2")
target_compile_options(srtp PRIVATE "-w")
install(TARGETS srtp
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
DESTINATION include/srtp2
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
if(ENABLE_TEST_PROGRAMS)
add_executable(srtp_driver
test/srtp_driver.c
test/getopt_s.c
)
target_link_libraries(srtp_driver srtp)
add_executable(replay_driver test/replay_driver.c)
target_link_libraries(replay_driver srtp)
add_executable(roc_driver test/roc_driver.c)
target_link_libraries(roc_driver srtp)
add_executable(rdbx_driver
test/rdbx_driver.c
test/getopt_s.c
)
target_link_libraries(rdbx_driver srtp)
add_executable(rtpw
test/rtpw.c
test/rtp.c
test/getopt_s.c
)
target_link_libraries(rtpw srtp)
add_executable(dtls_srtp_driver
test/dtls_srtp_driver.c
test/getopt_s.c
)
target_link_libraries(dtls_srtp_driver srtp)
add_executable(aes_calc crypto/test/aes_calc.c)
target_link_libraries(aes_calc srtp)
add_executable(cipher_driver crypto/test/cipher_driver.c)
target_link_libraries(cipher_driver srtp)
add_executable(datatypes_driver crypto/test/datatypes_driver.c)
target_link_libraries(datatypes_driver srtp)
add_executable(kernel_driver crypto/test/kernel_driver.c)
target_link_libraries(kernel_driver srtp)
add_executable(rand_gen crypto/test/rand_gen.c)
target_link_libraries(rand_gen srtp)
add_executable(sha1_driver crypto/test/sha1_driver.c)
target_link_libraries(sha1_driver srtp)
add_executable(stat_driver crypto/test/stat_driver.c)
target_link_libraries(stat_driver srtp)
endif()
2.0.1-pre
/***************************************************************************
* config.h.cmake
* Copyright (C) 2014 Belledonne Communications, Grenoble France
*
****************************************************************************
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
****************************************************************************/
#cmakedefine ENABLE_DEBUGGING 1
#cmakedefine SRTP_KERNEL 1
#cmakedefine SRTP_KERNEL_LINUX 1
#cmakedefine DEV_URANDOM "@DEV_URANDOM@"
#cmakedefine GENERIC_AESICM 1
#cmakedefine USE_SYSLOG 1
#cmakedefine ERR_REPORTING_STDOUT 1
#cmakedefine USE_ERR_REPORTING_FILE 1
#cmakedefine ERR_REPORTING_FILE "@ERR_REPORTING_FILE@"
#cmakedefine SRTP_GDOI 1
#cmakedefine CPU_CISC 1
#cmakedefine CPU_RISC 1
#cmakedefine HAVE_X86 1
#cmakedefine WORDS_BIGENDIAN 1
#cmakedefine HAVE_STDLIB_H 1
#cmakedefine HAVE_UNISTD_H 1
#cmakedefine HAVE_BYTESWAP_H 1
#cmakedefine HAVE_STDINT_H 1
#cmakedefine HAVE_INTTYPES_H 1
#cmakedefine HAVE_SYS_TYPES_H 1
#cmakedefine HAVE_MACHINE_TYPES_H 1
#cmakedefine HAVE_SYS_INT_TYPES_H 1
#cmakedefine HAVE_SYS_SOCKET_H 1
#cmakedefine HAVE_NETINET_IN_H 1
#cmakedefine HAVE_ARPA_INET_H 1
#cmakedefine HAVE_WINDOWS_H 1
#cmakedefine HAVE_WINSOCK2_H 1
#cmakedefine HAVE_SYSLOG_H 1
#cmakedefine HAVE_INET_ATON 1
#cmakedefine HAVE_USLEEP 1
#cmakedefine HAVE_SIGACTION 1
#cmakedefine HAVE_UINT8_T 1
#cmakedefine HAVE_UINT16_T 1
#cmakedefine HAVE_UINT32_T 1
#cmakedefine HAVE_UINT64_T 1
#cmakedefine SIZEOF_UNSIGNED_LONG @SIZEOF_UNSIGNED_LONG@
#cmakedefine SIZEOF_UNSIGNED_LONG_LONG @SIZEOF_UNSIGNED_LONG_LONG@
#cmakedefine PACKAGE_STRING "libsrtp2 2.2.0-pre"
#cmakedefine PACKAGE_VERSION "2.0.1-pre"
#ifndef __cplusplus
#cmakedefine inline @inline@
#endif
dnl Process this file with autoconf to produce a configure script.
AC_INIT([libsrtp2], [2.0.1-pre], [https://github.com/cisco/libsrtp/issues])
dnl Must come before AC_PROG_CC
if test -z "$CFLAGS"; then
dnl Default value for CFLAGS if not specified.
CFLAGS="-fPIC -Wall -O4 -fexpensive-optimizations -funroll-loops"
fi
dnl Checks for programs.
AM_PROG_AR
AC_PROG_RANLIB
AC_PROG_CC
AC_PROG_INSTALL
dnl Check the byte order
AC_C_BIGENDIAN
AC_CANONICAL_HOST
dnl check host_cpu type, set defines appropriately
case $host_cpu in
i*86 | x86_64 )
AC_DEFINE(CPU_CISC, 1,
[Define if building for a CISC machine (e.g. Intel).])
AC_DEFINE(HAVE_X86, 1,
[Define to use X86 inlined assembly code]);;
* )
AC_DEFINE(CPU_RISC, 1,
[Define if building for a RISC machine (assume slow byte access).])
;;
esac
dnl Check if we are on a Windows platform.
case $host_os in
*cygwin*|*mingw* )
EXE=.exe
HOST_IS_WINDOWS=yes
;;
* )
EXE=""
;;
esac
AC_SUBST(EXE) # define executable suffix; this is needed for `make clean'
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(stdlib.h)
AC_CHECK_HEADERS(unistd.h)
AC_CHECK_HEADERS(byteswap.h)
AC_CHECK_HEADERS(stdint.h)
AC_CHECK_HEADERS(sys/uio.h)
AC_CHECK_HEADERS(inttypes.h)
AC_CHECK_HEADERS(sys/types.h)
AC_CHECK_HEADERS(machine/types.h)
AC_CHECK_HEADERS(sys/int_types.h)
dnl socket() and friends
AC_CHECK_HEADERS(sys/socket.h netinet/in.h arpa/inet.h)
AC_CHECK_HEADERS(windows.h, [AC_CHECK_HEADERS(winsock2.h)])
AC_CHECK_TYPES([int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t,uint64_t])
AC_CHECK_SIZEOF(unsigned long)
AC_CHECK_SIZEOF(unsigned long long)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
dnl Checks for library functions.
AC_CHECK_FUNCS(socket inet_aton usleep sigaction)
dnl Find socket function if not found yet.
if test "x$ac_cv_func_socket" = "xno"; then
AC_CHECK_LIB(socket, socket)
AC_MSG_CHECKING([for socket in -lwsock32])
SAVELIBS="$LIBS"
LIBS="$LIBS -lwsock32"
AC_TRY_LINK([
#include <winsock2.h>
],[
socket(0, 0, 0);
],
ac_cv_func_socket=yes
AC_MSG_RESULT(yes),
LIBS="$SAVELIBS"
AC_MSG_RESULT(no))
fi
AC_MSG_CHECKING(whether to compile in debugging)
AC_ARG_ENABLE(debug,
[AS_HELP_STRING([--disable-debug],
[do not compile in dynamic debugging system])],
[], enable_debug=yes)
if test "$enable_debug" = "yes"; then
AC_DEFINE(ENABLE_DEBUGGING, 1,
[Define to compile in dynamic debugging system.])
fi
AC_MSG_RESULT($enable_debug)
AC_MSG_CHECKING(whether to use ISMAcryp code)
AC_ARG_ENABLE(generic-aesicm,
[AS_HELP_STRING([--enable-generic-aesicm],
[compile in changes for ISMAcryp])],
[], enable_generic_aesicm=no)
if test "$enable_generic_aesicm" = "yes"; then
AC_DEFINE(GENERIC_AESICM, 1, [Define this to use ISMAcryp code.])
fi
AC_MSG_RESULT($enable_generic_aesicm)
AC_MSG_CHECKING(whether to leverage OpenSSL crypto)
AC_ARG_ENABLE(openssl,
[AS_HELP_STRING([--enable-openssl],
[compile in OpenSSL crypto engine])],
[], enable_openssl=no)
AC_MSG_RESULT($enable_openssl)
if test "$enable_openssl" = "yes"; then
AC_MSG_CHECKING(for user specified OpenSSL directory)
AC_ARG_WITH(openssl-dir,
[AS_HELP_STRING([--with-openssl-dir], [Location of OpenSSL installation])],
[openssl_dir="$withval"], openssl_dir="")
LDFLAGS="$LDFLAGS -L$openssl_dir/lib $(pkg-config --libs openssl)";
CFLAGS="$CFLAGS -I$openssl_dir/include $(pkg-config --cflags openssl)";
AC_CHECK_LIB([dl], [dlopen], [],
[AC_MSG_WARN([can't find libdl])])
AC_CHECK_LIB([z], [inflate], [],
[AC_MSG_WARN([can't find libz])])
AC_CHECK_LIB([crypto], [EVP_EncryptInit], [],
[AC_MSG_FAILURE([can't find openssl >1.0.1 crypto lib])])
AC_CHECK_LIB([crypto], [EVP_aes_128_ctr], [],
[AC_MSG_FAILURE([can't find openssl >1.0.1 crypto lib])])
AC_CHECK_LIB([crypto], [EVP_aes_128_gcm], [],
[AC_MSG_FAILURE([can't find openssl >1.0.1 crypto lib])])
AC_DEFINE(OPENSSL, 1, [Define this to use OpenSSL crypto.])
AES_ICM_OBJS="crypto/cipher/aes_icm_ossl.o crypto/cipher/aes_gcm_ossl.o"
HMAC_OBJS=crypto/hash/hmac_ossl.o
USE_OPENSSL=1
AC_SUBST(USE_OPENSSL)
AC_MSG_CHECKING(whether to leverage OpenSSL KDF algorithm)
AC_ARG_ENABLE(openssl-kdf,
[AS_HELP_STRING([--enable-openssl-kdf], [Use OpenSSL KDF algorithm])],
[], enable_openssl_kdf=no)
AC_MSG_RESULT($enable_openssl_kdf)
if test "$enable_openssl_kdf" = "yes"; then
AC_CHECK_LIB([crypto], [kdf_srtp], [],
[AC_MSG_FAILURE([can't find openssl KDF lib])])
AC_DEFINE(OPENSSL_KDF, 1, [Define this to use OpenSSL KDF for SRTP.])
fi
else
AES_ICM_OBJS="crypto/cipher/aes_icm.o crypto/cipher/aes.o"
HMAC_OBJS="crypto/hash/hmac.o crypto/hash/sha1.o"
fi
AC_SUBST(AES_ICM_OBJS)
AC_SUBST(HMAC_OBJS)
dnl Checking for PCAP
AC_CHECK_LIB([pcap],[pcap_create],
[PCAP=1
LIBS="-lpcap $LIBS"
HAVE_PCAP=1
AC_DEFINE(HAVE_PCAP, 1, [Define to 1 if you have the `pcap' library (-lpcap)])
AC_SUBST(HAVE_PCAP)
])
AC_MSG_CHECKING(whether to use stdout for error reporting)
AC_ARG_ENABLE(stdout,
[AS_HELP_STRING([--enable-stdout], [use stdout for debug/error reporting])],
[], enable_stdout=no)
if test "$enable_stdout" = "yes"; then
AC_DEFINE(ERR_REPORTING_STDOUT, 1, [Define to use logging to stdout.])
fi
AC_MSG_RESULT($enable_stdout)
AC_MSG_CHECKING(whether to use /dev/console for error reporting)
AC_ARG_ENABLE(console,
[AS_HELP_STRING([--enable-console], [use /dev/console for error reporting])],
[], enable_console=no)
if test "$enable_console" = "yes"; then
AC_DEFINE(USE_ERR_REPORTING_FILE, 1, [Write errors to this file])
AC_DEFINE(ERR_REPORTING_FILE, "/dev/console", [Report errors to this file.])
fi
AC_MSG_RESULT($enable_console)
AC_CONFIG_HEADER(crypto/include/config.h:config_in.h)
AC_CHECK_PROG(PKG_CONFIG, pkg-config, yes)
if test "x$PKG_CONFIG" != "x"; then
HAVE_PKG_CONFIG=1
AC_CONFIG_FILES([libsrtp2.pc])
else
HAVE_PKG_CONFIG=0
fi
AC_SUBST(HAVE_PKG_CONFIG)
AC_CONFIG_FILES([Makefile crypto/Makefile doc/Makefile])
AC_OUTPUT
# This is needed when building outside the source dir.
AS_MKDIR_P(crypto/cipher)
AS_MKDIR_P(crypto/hash)
AS_MKDIR_P(crypto/kernel)
AS_MKDIR_P(crypto/math)
AS_MKDIR_P(crypto/replay)
AS_MKDIR_P(crypto/test)
AS_MKDIR_P(doc)
AS_MKDIR_P(srtp)
AS_MKDIR_P(test)
############################################################################
# CMakeLists.txt
# Copyright (C) 2014 Belledonne Communications, Grenoble France
#
############################################################################
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
############################################################################
file(GLOB HEADER_FILES "*.h")
install(FILES ${HEADER_FILES}
DESTINATION include/srtp2
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
############################################################################
# CMakeLists.txt
# Copyright (C) 2014 Belledonne Communications, Grenoble France
#
############################################################################
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
############################################################################
file(GLOB HEADER_FILES "*.h")
install(FILES ${HEADER_FILES}
DESTINATION include/srtp2
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
typedef int foo_t;
static inline foo_t static_foo(){return 0;}
foo_t foo(){return 0;}
int main(int argc, char *argv[]){return 0;}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment