File: Makefile

package info (click to toggle)
libedlib 1.2.7-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,532 kB
  • sloc: cpp: 2,002; sh: 304; python: 131; makefile: 89; ansic: 7
file content (45 lines) | stat: -rw-r--r-- 1,215 bytes parent folder | download | duplicates (3)
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
BUILD_DIR ?= meson-build
# Can be 'static' or 'shared'.
LIBRARY_TYPE ?= static
TEST_DATA_DIR ?= apps/aligner/test_data

YELLOW = \033[33m
GREEN  = \033[32m
BOLD   = \033[1m
RESET  = \033[0m

all:
	@printf "${YELLOW}${BOLD}Configuring build setup via Meson...${RESET}\n"
	${MAKE} configure
	@printf "\n${YELLOW}${BOLD}Building ${LIBRARY_TYPE} library and binaries...${RESET}\n"
	${MAKE} build
	@printf "\n${YELLOW}${BOLD}Running tests...${RESET}\n"
	${MAKE} test
	@printf "\n${GREEN}${BOLD}Edlib successfully built! You can find built binaries and libraries in ${BUILD_DIR}/ directory.${RESET}\n"

configure:
	rm -rf ${BUILD_DIR}
	meson setup ${BUILD_DIR} . \
		--backend=ninja \
    -Ddefault_library=${LIBRARY_TYPE}

build:
	meson compile -v -C ${BUILD_DIR}

test:
	meson test -v -C ${BUILD_DIR}

# Valgrind Returns 2 if there was a memory leak/error,
# otherwise returns runTests exit code, which is 0 if
# all went fine or 1 if some of the tests failed.
check-memory-leaks:
	valgrind ${BUILD_DIR}/runTests 2 \
    --quiet --error-exitcode=2 --tool=memcheck --leak-check=full

install:
	meson install -C ${BUILD_DIR}

clean:
	rm -rf ${BUILD_DIR}

.PHONY: all build configure test install clean check-memory-leaks