summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Štetiar2019-10-04 14:06:01 +0000
committerPetr Štetiar2019-10-29 21:14:03 +0000
commit050bb5c4431b70e91a869039c8930d81970e047f (patch)
tree0fb1e402898f8398f8c3edb60a195f060087a947
parent5b350e42d1fdf62908bfc099dd942ea8e21c64a5 (diff)
downloadlibnl-tiny-050bb5c4431b70e91a869039c8930d81970e047f.tar.gz
convert into CMake project
Aligning it with other C based projects. Signed-off-by: Petr Štetiar <ynezz@true.cz>
-rw-r--r--CMakeLists.txt39
-rw-r--r--Makefile17
-rw-r--r--libnl-tiny.pc10
-rw-r--r--libnl-tiny.pc.in10
4 files changed, 49 insertions, 27 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..a81727d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,39 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
+
+PROJECT(libnl-tiny C)
+INCLUDE(GNUInstallDirs)
+
+INCLUDE_DIRECTORIES(include)
+
+ADD_DEFINITIONS(-Wall -Werror)
+STRING(REPLACE "-DNDEBUG" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+
+ADD_LIBRARY(nl-tiny SHARED
+ attr.c
+ cache.c
+ cache_mngt.c
+ error.c
+ genl.c
+ genl_ctrl.c
+ genl_family.c
+ genl_mngt.c
+ handlers.c
+ msg.c
+ nl.c
+ object.c
+ socket.c
+ unl.c
+)
+
+CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/libnl-tiny.pc.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/libnl-tiny.pc"
+ @ONLY
+)
+
+INSTALL(TARGETS nl-tiny LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+INSTALL(
+ DIRECTORY ${CMAKE_SOURCE_DIR}/include/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libnl-tiny
+ FILES_MATCHING PATTERN "*.h"
+)
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 6f37160..0000000
--- a/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-CC=gcc
-WFLAGS=-Wall
-CFLAGS=-O2
-INCLUDES=-Iinclude
-
-LIBNAME=libnl-tiny.so
-
-all: $(LIBNAME)
-
-%.o: %.c
- $(CC) $(WFLAGS) -c -o $@ $(INCLUDES) $(CFLAGS) $<
-
-LIBNL_OBJ=nl.o handlers.o msg.o attr.o cache.o cache_mngt.o object.o socket.o error.o
-GENL_OBJ=genl.o genl_family.o genl_ctrl.o genl_mngt.o unl.o
-
-$(LIBNAME): $(LIBNL_OBJ) $(GENL_OBJ)
- $(CC) $(CFLAGS) -Wl,-Bsymbolic-functions -shared -o $@ $^
diff --git a/libnl-tiny.pc b/libnl-tiny.pc
deleted file mode 100644
index af79cd3..0000000
--- a/libnl-tiny.pc
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=/usr
-exec_prefix=/usr
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include/libnl-tiny
-
-Name: libnl-tiny
-Description: Convenience library for netlink sockets
-Version: 2.0
-Libs: -L${libdir} -lnl-tiny
-Cflags: -I${includedir}
diff --git a/libnl-tiny.pc.in b/libnl-tiny.pc.in
new file mode 100644
index 0000000..691ba82
--- /dev/null
+++ b/libnl-tiny.pc.in
@@ -0,0 +1,10 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/libnl-tiny
+
+Name: libnl-tiny
+Description: Convenience library for netlink sockets
+Version: 2.0
+Libs: -L${libdir} -lnl-tiny
+Cflags: -I${includedir}