aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-05-10 12:14:46 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-05-10 12:14:46 +0200
commit70ff2c82446c8a1d42dae6538defdccd88896e8c (patch)
treeb8f9e735c5eec4bbbfeaa7a53e119b4cdcebec3b /Makefile
parent753816f04b3aaf8c1f17e688a8dd6ffe71fc9d57 (diff)
downloadutils-70ff2c82446c8a1d42dae6538defdccd88896e8c.tar.gz
utils-70ff2c82446c8a1d42dae6538defdccd88896e8c.zip
Ehnance building system
Is the same as liblog.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile76
1 files changed, 31 insertions, 45 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