diff options
author | 2023-05-10 12:14:46 +0200 | |
---|---|---|
committer | 2023-05-10 12:14:46 +0200 | |
commit | 70ff2c82446c8a1d42dae6538defdccd88896e8c (patch) | |
tree | b8f9e735c5eec4bbbfeaa7a53e119b4cdcebec3b | |
parent | 753816f04b3aaf8c1f17e688a8dd6ffe71fc9d57 (diff) | |
download | utils-70ff2c82446c8a1d42dae6538defdccd88896e8c.tar.gz utils-70ff2c82446c8a1d42dae6538defdccd88896e8c.zip |
Ehnance building system
Is the same as liblog.
-rw-r--r-- | Makefile | 76 | ||||
-rw-r--r-- | config.mk | 14 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | utils.pc | 10 |
4 files changed, 56 insertions, 46 deletions
@@ -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 |