File: Makefile.in

package info (click to toggle)
lcagent 0.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 1,188 kB
  • sloc: ansic: 11,202; sh: 1,721; makefile: 318; yacc: 151; lex: 55
file content (151 lines) | stat: -rw-r--r-- 2,741 bytes parent folder | download
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
# Copyright (c) 2024 Brett Sheffield <bacs@librecast.net>

PREFIX ?= @prefix@
export PREFIX
PROGRAM := @PACKAGE_NAME@
VERSION := @PACKAGE_VERSION@
COVERITY_DIR := cov-int
COVERITY_TGZ := $(PROGRAM)-coverity-$(VERSION).tgz
COVERITY_PATH=$(PATH):../../coverity/bin/
OSNAME := $(shell uname -s)
export OSNAME

export SOURCEDIR=$(shell pwd)

ifeq ($(origin CC),default)
CC = @CC@
endif
export CC

CFLAGS ?= @CFLAGS@
ifdef DEBUG
CFLAGS += -Og -g -Wall -Wextra -pedantic
endif
export CFLAGS

CPPFLAGS += @CPPFLAGS@
export CPPFLAGS

LDFLAGS ?= @LDFLAGS@
export LDFLAGS

all: src

install: all
	$(MAKE) -C src $@
	$(MAKE) -C man $@

uninstall:
	$(MAKE) -C src $@
	$(MAKE) -C man $@

.PHONY: clean realclean src test testloop sparse doc netcheck net-teardown testshell update newtest

src:
	$(MAKE) -C $@

doc:
	$(MAKE) -C doc $@

fixme:
	grep -n FIXME src/*.{c,h} test/*.{c,h}

todo:
	grep -n TODO src/*.{c,h} test/*.{c,h}

clean:
	$(MAKE) -C src $@
	$(MAKE) -C test $@
	$(MAKE) -C man $@

realclean: clean
	$(MAKE) -C src $@
	$(MAKE) -C test $@
	$(MAKE) -C man $@
	$(RM) -r ./$(COVERITY_DIR)
	$(RM) $(COVERITY_TGZ)
	$(RM) Makefile
	$(RM) config.{log,status}
	$(RM) include/librecast/crypto.h


sparse: clean
	CC=cgcc $(MAKE) src

clang: clean
	CC=clang $(MAKE) src

clangtest: clean
	CC=clang $(MAKE) test

gcc: clean all

netcheck:
	$(MAKE) -C test $@

test memcheck: src netcheck
	$(MAKE) -C test $@/all

newtest:
	$(MAKE) -C test $@

LOOPBANNER ?= echo

testloop:
	num_ok=0; \
	while $(MAKE) $(subst testloop,test,$@); do \
	num_ok=$$(( $$num_ok + 1 )); \
	make -C test logclean; \
	echo; \
	echo; \
	$(LOOPBANNER) "OK $$num_ok"; \
	echo; \
	sleep 1; \
	done; \
	$(LOOPBANNER) "OK $$num_ok"

testloop/%:
	num_ok=0; \
	while $(MAKE) $(subst testloop,test,$@); do \
	num_ok=$$(( $$num_ok + 1 )); \
	make -C test logclean; \
	echo; \
	echo; \
	$(LOOPBANNER) "OK $$num_ok"; \
	echo; \
	done; \
	$(LOOPBANNER) "OK $$num_ok"

test/% memcheck/%: .FORCE src
	$(MAKE) -C test $@

.FORCE: # always recompile

coverity: clean
	PATH=$(COVERITY_PATH) cov-build --dir cov-int $(MAKE) src
	tar czvf $(COVERITY_TGZ) $(COVERITY_DIR)

net-setup:
	ip link add veth0 type veth peer name veth1
	ip netns add vnet0
	ip netns add vnet1
	ip link set veth0 netns vnet0
	ip link set veth1 netns vnet1
	ip -n vnet0 link set veth0 up
	ip -n vnet1 link set veth1 up
	ip netns show
	touch net-setup

net-teardown:
	ip -n vnet0 link set veth0 down
	ip -n vnet1 link set veth1 down
	ip -n vnet1 link set veth1 netns vnet0
	ip -n vnet0 link del veth0 type veth peer name veth1
	ip netns del vnet0
	ip netns del vnet1
	ip netns show
	rm -f net-setup

testshell:
	@echo "sudo ip netns exec vnet0 sudo -u `id -un` /bin/bash"