Skip to content

Commit 0607b3d

Browse files
committed
Convert to build generation to cmake.
1 parent 87f5f1a commit 0607b3d

4 files changed

Lines changed: 155 additions & 1 deletion

File tree

CMakeLists.txt

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
2+
cmake_minimum_required( VERSION 2.6 )
3+
project( gridftp-hdfs )
4+
5+
set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
6+
7+
find_package( Hdfs REQUIRED )
8+
find_package( Jvm REQUIRED )
9+
10+
include (FindPkgConfig)
11+
pkg_check_modules(OPENSSL REQUIRED libcrypto)
12+
pkg_check_modules(GLOBUS_GRIDFTP_SERVER REQUIRED globus-gridftp-server)
13+
pkg_check_modules(GLOBUS_COMMON REQUIRED globus-common)
14+
15+
if( CMAKE_COMPILER_IS_GNUCXX )
16+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror" )
17+
endif()
18+
19+
if( CMAKE_COMPILER_IS_GNUCC )
20+
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror" )
21+
endif()
22+
23+
SET( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined")
24+
SET( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined")
25+
SET( CMAKE_EXE_LINKER_FLAGS "-Wl,--no-undefined")
26+
27+
include_directories(${HDFS_INCLUDES} ${JVM_INCLUDES} ${JVM_MD_INCLUDES} ${OPENSSL_INCLUDEDIR} ${GLOBUS_GRIDFTP_SERVER_INCLUDE_DIRS} ${GLOBUS_COMMON_INCLUDE_DIRS})
28+
29+
include_directories( ${PROJECT_SOURCE_DIR} )
30+
31+
add_library(globus_gridftp_server_hdfs MODULE
32+
src/gridftp_hdfs_buffers.c
33+
src/gridftp_hdfs.c
34+
src/gridftp_hdfs_cksm.c
35+
src/gridftp_hdfs_recv.c
36+
src/gridftp_hdfs_send.c
37+
src/gridftp_hdfs_stat.c
38+
src/gridftp_hdfs_error.h
39+
src/gridftp_hdfs.h
40+
)
41+
target_link_libraries(globus_gridftp_server_hdfs -lz -lrt -pthread ${HDFS_LIB} ${GLOBUS_GRIDFTP_SERVER_LIBRARIES} ${GLOBUS_COMMON_LIBRARIES} ${OPENSSL_LIBRARIES})
42+
43+
if (NOT DEFINED LIB_INSTALL_DIR)
44+
SET(LIB_INSTALL_DIR "lib")
45+
endif()
46+
47+
if (NOT DEFINED SHARE_INSTALL_PREFIX)
48+
SET(SHARE_INSTALL_PREFIX "share")
49+
endif()
50+
51+
if (NOT DEFINED SYSCONF_INSTALL_DIR)
52+
SET(SYSCONF_INSTALL_DIR "etc")
53+
endif()
54+
55+
install(
56+
TARGETS globus_gridftp_server_hdfs
57+
LIBRARY DESTINATION ${LIB_INSTALL_DIR} )
58+
59+
install(
60+
PROGRAMS scripts/gridftp-hdfs-standalone
61+
DESTINATION bin)
62+
63+
install(
64+
PROGRAMS scripts/xinetd/gridftp-hdfs-inetd
65+
DESTINATION sbin)
66+
67+
set_target_properties(
68+
globus_gridftp_server_hdfs
69+
PROPERTIES
70+
VERSION "0.0.1"
71+
SOVERSION "0"
72+
LINK_INTERFACE_LIBRARIES "" )
73+
74+
install(
75+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp.conf ${CMAKE_SOURCE_DIR}/conf/gridftp-inetd.conf ${CMAKE_SOURCE_DIR}/conf/gridftp-debug.conf ${CMAKE_SOURCE_DIR}/conf/replica-map.conf
76+
DESTINATION ${SYSCONF_INSTALL_DIR}/gridftp-hdfs
77+
)
78+
79+
install(
80+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp-hdfs ${CMAKE_SOURCE_DIR}/conf/gridftp-hdfs-environment-bootstrap
81+
DESTINATION ${SYSCONF_INSTALL_DIR}/sysconfig/gridftp.conf.d
82+
)
83+
84+
install(
85+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp-hdfs-environment
86+
DESTINATION ${SHARE_INSTALL_PREFIX}/gridftp-hdfs
87+
)
88+
89+
install(
90+
FILES ${CMAKE_SOURCE_DIR}/conf/globus-gridftp-server-plugin
91+
DESTINATION ${SHARE_INSTALL_PREFIX}/osg/sysconfig
92+
)
93+
94+
install(
95+
FILES ${CMAKE_SOURCE_DIR}/conf/gridftp.d/gridftp-hdfs.conf ${CMAKE_SOURCE_DIR}/conf/gridftp.d/gridftp-hdfs.osg-extensions.conf
96+
DESTINATION ${SYSCONF_INSTALL_DIR}/gridftp.d
97+
)
98+

cmake/FindHdfs.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
FIND_PATH(HDFS_INCLUDES hdfs.h
3+
HINTS
4+
${HDFS_INCLUDE_DIR}
5+
$ENV{HDFS_INCLUDE_DIR}
6+
/usr
7+
PATH_SUFFIXES include
8+
)
9+
10+
FIND_LIBRARY(HDFS_LIB hdfs
11+
HINTS
12+
${HDFS_LIB_DIR}
13+
$ENV{HDFS_LIB_DIR}
14+
/usr
15+
PATH_SUFFIXES lib
16+
)
17+
18+
GET_FILENAME_COMPONENT(HDFS_LIB_DIR ${HDFS_LIB} PATH)
19+
20+
INCLUDE(FindPackageHandleStandardArgs)
21+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Hdfs DEFAULT_MSG HDFS_LIB HDFS_LIB_DIR HDFS_INCLUDES)
22+

cmake/FindJvm.cmake

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
FIND_PATH(JVM_INCLUDES jni.h
3+
HINTS
4+
${JVM_INCLUDE_DIR}
5+
$ENV{JVM_INCLUDE_DIR}
6+
/usr/lib/jvm/java
7+
/usr/java/default
8+
/usr
9+
PATH_SUFFIXES include
10+
)
11+
12+
GET_FILENAME_COMPONENT(JVM_INCLUDE_PATH ${JVM_INCLUDES} PATH)
13+
14+
FIND_PATH(JVM_MD_INCLUDES jni_md.h
15+
HINTS
16+
${JVM_INCLUDE_PATH}
17+
PATH_SUFFIXES include/linux
18+
)
19+
20+
FIND_LIBRARY(JVM_LIB jvm
21+
HINTS
22+
${JVM_LIB_DIR}
23+
$ENV{JVM_LIB_DIR}
24+
/usr
25+
/usr/java/default/jre
26+
/usr/lib/jvm/java/jre
27+
PATH_SUFFIXES lib lib/amd64/server lib/i386/server
28+
)
29+
30+
GET_FILENAME_COMPONENT(JVM_LIB_DIR ${JVM_LIB} PATH)
31+
32+
INCLUDE(FindPackageHandleStandardArgs)
33+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jvm DEFAULT_MSG JVM_LIB JVM_INCLUDES JVM_MD_INCLUDES)
34+

src/gridftp_hdfs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ setup_hdfs_logging()
219219
pthread_attr_t attr;
220220
if ((err = pthread_attr_init(&attr)))
221221
{
222-
globus_gfs_log_message(GLOBUS_GFS_LOG_ERR, "Unable to initialize pthread attribute: (errno=%d, %s).\n", err, sterror(err));
222+
globus_gfs_log_message(GLOBUS_GFS_LOG_ERR, "Unable to initialize pthread attribute: (errno=%d, %s).\n", err, strerror(err));
223223
globus_mutex_unlock(&g_hdfs_mutex);
224224
return;
225225
}

0 commit comments

Comments
 (0)