aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile76
-rw-r--r--config.mk14
-rw-r--r--src/version.c2
-rw-r--r--utils.pc10
4 files changed, 56 insertions, 46 deletions
diff --git a/Makefile b/Makefile
index ac1a0be..ff92501 100644
--- a/Makefile
+++ b/Makefile
@@ -1,58 +1,44 @@
# See LICENSE file for copyright and license details.
-CC = cc
-SRC != find src -name '*.c'
-OBJ = ${SRC:.c=.o}
-NAME = utils
+include config.mk
-LIBNAME = lib${NAME}
-SHARED = ${LIBNAME}.so
-ARCHIVE = ${LIBNAME}.a
-DISTNAME = ${LIBNAME}-${VERSION}
+dist: static shared
-VERSION = 0.0.1
+static:
+ @make OPT='-O2 -pipe -Werror' ${LIBNAME:=.a}
+ rm -f ${OBJ}
-PREFIX = /usr/local
-WARNINGS = -Wall -Werror -pedantic
-STANDARD = -std=c99
-CFLAGS = -DVERSION='"${VERSION}"' ${WARNINGS} ${STANDARD} -fPIC
-LFLAGS = -shared
+shared:
+ @make OPT='-O2 -pipe -Werror -fPIC' ${LIBNAME:=.so}
+ rm -f ${OBJ}
-all: ${SHARED} ${ARCHIVE}
+debug:
+ @make OPT=-g all
-.c.o:
- ${CC} -c ${CFLAGS} $< -o $@
+${LIBNAME:=.so}: ${OBJ}
+ ${CC} ${LDFLAGS} -shared ${OBJ} -o $@
-${SHARED}: ${OBJ}
- ${CC} ${LFLAGS} -o $@ ${OBJ}
-
-${ARCHIVE}: ${OBJ}
+${LIBNAME:=.a}: ${OBJ}
ar rcs $@ ${OBJ}
+.c.o:
+ ${CC} ${CFLAGS} -c $< -o $@
+
clean:
- rm -f ${SHARED} ${ARCHIVE}
- rm -f ${OBJ}
- rm -f ${DISTNAME}.tar.gz
- @make -C test $@
-
-dist: clean
- mkdir -p ${DISTNAME}
- cp -R LICENSE Makefile DOSmakefile README.md src test ${DISTNAME}
- tar -cf ${DISTNAME}.tar ${DISTNAME}
- gzip ${DISTNAME}.tar
- rm -rf ${DISTNAME}
-
-install: all
- mkdir -p ${PREFIX}/lib/${NAME}
- cp ${SHARED} ${PREFIX}/lib/${NAME}/
- cp ${ARCHIVE} ${PREFIX}/lib/${NAME}/
- mkdir -p ${PREFIX}/include/${NAME}
- cp src/list.h ${PREFIX}/include/${NAME}/
- cp src/map.h ${PREFIX}/include/${NAME}/
+ rm -f ${OBJ} ${LIBNAME}.* *.core
+ cd test && make clean
-uninstall:
- rm -rf ${PREFIX}/lib/${NAME}
- rm -rf ${PREFIX}/include/${NAME}
+tests: dist
+ cd test && make clean tests
-tests: all
- @make -C test
+install: dist
+ cp src/utils.h ${PREFIX}/include/utils.h
+ cp ${LIBNAME:=.so} ${PREFIX}/lib/${LIBNAME:=.so}
+ cp ${LIBNAME:=.a} ${PREFIX}/lib/${LIBNAME:=.a}
+ cp utils.pc ${PKG_CONFIG_PATH}/utils.pc
+
+uninstall:
+ rm -f ${PREFIX}/include/utils.h
+ rm -f ${PREFIX}/lib/${LIBNAME:=.so}
+ rm -f ${PREFIX}/lib/${LIBNAME:=.a}
+ rm -f ${PKG_CONFIG_PATH}/utils.pc
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000..4614858
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,14 @@
+# See LICENSE file for copyright and license details.
+
+PREFIX = /usr/local
+
+CC = cc
+SRC != find src -name "*.c"
+OBJ = ${SRC:.c=.o}
+
+LIBNAME = libutils
+LIBVER = 0.0.1
+
+CFLAGS = -Wall --std=c99 -pedantic ${OPT} -DLIBVER=\"${LIBVER}\"
+
+PKG_CONFIG_PATH != pkg-config --variable pc_path pkg-config | sed -E "s|.*(${PREFIX}[^:]*)[:].*|\1|g"
diff --git a/src/version.c b/src/version.c
index 504feb8..8e39311 100644
--- a/src/version.c
+++ b/src/version.c
@@ -3,5 +3,5 @@
char *
cutils_version()
{
- return VERSION;
+ return LIBVER;
}
diff --git a/utils.pc b/utils.pc
new file mode 100644
index 0000000..e8efc53
--- /dev/null
+++ b/utils.pc
@@ -0,0 +1,10 @@
+prefix=/usr/local
+exec_prefix=${prefix}
+includedir=${prefix}/include
+libdir=${exec_prefix}/lib
+
+Name: utils
+Description: libutils - An utility library
+Version: 0.0.1
+Cflags: -I${includedir}
+Libs: -L${libdir} -lutils