aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: ac1a0be1868a4ee8b72cdac36d2899d8d6182641 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# See LICENSE file for copyright and license details.

CC   = cc
SRC != find src -name '*.c'
OBJ  = ${SRC:.c=.o}
NAME = utils

LIBNAME = lib${NAME}
SHARED  = ${LIBNAME}.so
ARCHIVE = ${LIBNAME}.a
DISTNAME = ${LIBNAME}-${VERSION}

VERSION  = 0.0.1

PREFIX   = /usr/local
WARNINGS = -Wall -Werror -pedantic
STANDARD = -std=c99
CFLAGS   = -DVERSION='"${VERSION}"' ${WARNINGS} ${STANDARD} -fPIC
LFLAGS   = -shared

all: ${SHARED} ${ARCHIVE}

.c.o:
	${CC} -c ${CFLAGS} $< -o $@

${SHARED}: ${OBJ}
	${CC} ${LFLAGS} -o $@ ${OBJ}

${ARCHIVE}: ${OBJ}
	ar rcs $@ ${OBJ}

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}/

uninstall:
	rm -rf ${PREFIX}/lib/${NAME}
	rm -rf ${PREFIX}/include/${NAME}

tests: all
	@make -C test