diff --git a/.gitignore b/.gitignore index 7fe62d4..ec7d606 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,10 @@ target/ a.out* +include/sysconfig.h +CMakeFiles +Makefile +cmake_install.cmake +CMakeCache.txt +core +src/fyrehose +.*.sw? diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..2728b9c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 2.8) + +project(fyrehose) + +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + +include(FindPkgConfig) +include(CheckIncludeFiles) +include(CheckFunctionExists) +include(CheckVariableExists) +include(CheckTypeSize) +include(CheckLibraryExists) +include(CheckCSourceCompiles) +include(CMakeDetermineCCompiler) + +# we need the following definitions in order to get some special +# OS-level features like posix_fadvise() or readahead(). +add_definitions(-DXOPEN_SOURCE=600) +add_definitions(-DGNU_SOURCE) + +# enforce 64bit i/o operations, even on 32bit platforms +add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES) + +CHECK_INCLUDE_FILES(gtest/gtest.h HAVE_GTEST_GTEST_H) +CHECK_INCLUDE_FILES(sys/sendfile.h HAVE_SYS_SENDFILE_H) +CHECK_FUNCTION_EXISTS(sendfile HAVE_SENDFILE) +CHECK_FUNCTION_EXISTS(readahead HAVE_READAHEAD) +CHECK_FUNCTION_EXISTS(posix_fadvise HAVE_POSIX_FADVISE) +CHECK_INCLUDE_FILES(sys/epoll.h HAVE_SYS_EPOLL_H) +CHECK_FUNCTION_EXISTS(accept4 HAVE_ACCEPT4) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) + +add_definitions(-DHAVE_SYSCONFIG_H) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/include/sysconfig.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/include/sysconfig.h) + +add_custom_target(ctags + COMMAND ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/include + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) + +add_subdirectory(src) diff --git a/include/sysconfig.h.cmake b/include/sysconfig.h.cmake new file mode 100644 index 0000000..3c0c915 --- /dev/null +++ b/include/sysconfig.h.cmake @@ -0,0 +1,3 @@ +#pragma once + +#cmakedefine HAVE_SYS_EPOLL_H diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..2e4ea9a --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,5 @@ +add_definitions(-pthread) + +add_executable(fyrehose fyrehose.c conn.c http.c worker.c) +target_link_libraries(fyrehose pthread) +install(TARGETS fyrehose RUNTIME DESTINATION sbin) diff --git a/src/fyrehose.c b/src/fyrehose.c index 9325963..63726d7 100644 --- a/src/fyrehose.c +++ b/src/fyrehose.c @@ -22,7 +22,7 @@ int ssock; int running = 1; worker_t** worker; -int num_workers; +int num_workers = 1; void quit(int fnord) { int n;