Makefile: add debug options (valgrind).
parent
6601eb61b0
commit
3695a8ec82
|
@ -9,6 +9,21 @@ ZIGUSROPTS ?=
|
|||
ZIGC ?= zig
|
||||
ZIGOPTS ?= $(ZIGBUSEOPTS) $(ZIGUSROPTS)
|
||||
|
||||
# Debug with valgrind.
|
||||
ifdef VG_SUPPRESS_WARNINGS
|
||||
VALGRIND_SUPPRESS_WARNINGS ?= --suppressions=./valgrind.suppr
|
||||
endif
|
||||
ifdef VG_GENERATE_SUPPRESSION
|
||||
VALGRIND_GEN_SUPPRESSION ?= --gen-suppressions=all
|
||||
endif
|
||||
ifdef USE_VALGRIND
|
||||
VALGRIND ?= valgrind $(VALGRIND_SUPPRESS_WARNINGS) $(VALGRIND_GEN_SUPPRESSION) -v --leak-check=full
|
||||
endif
|
||||
# Optional parameters (copied here to help with autocompletion).
|
||||
VG_SUPPRESS_WARNINGS ?=
|
||||
VG_GENERATE_SUPPRESSION ?=
|
||||
USE_VALGRIND ?=
|
||||
|
||||
ipcd: src/ipcd.zig
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
|
||||
|
|
|
@ -0,0 +1,128 @@
|
|||
SRC ?= snd-rcv
|
||||
FULLNAME ?= misc/$(SRC).zig
|
||||
|
||||
CC=gcc
|
||||
CFLAGS=-Wall -Wextra #-Wno-implicit-function-declaration
|
||||
LDFLAGS=-I build/ -L build/ -lipc
|
||||
|
||||
m: $(FULLNAME)
|
||||
@-rm /tmp/.TEST_USOCK > /dev/null
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
./$(SRC)
|
||||
|
||||
run: $(FULLNAME)
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
./$(SRC)
|
||||
|
||||
t: $(FULLNAME)
|
||||
$(ZIGC) test $(ZIGOPTS) $^
|
||||
|
||||
pongd: src/pongd.zig
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
|
||||
pong: src/pong.zig
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
|
||||
c: misc/send-msg.zig
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
|
||||
s: misc/receive-msg.zig
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
|
||||
sr: misc/snd-rcv.zig
|
||||
$(ZIGC) build-exe $(ZIGOPTS) $^
|
||||
|
||||
lib:
|
||||
$(ZIGC) build
|
||||
|
||||
stop-ipcd:
|
||||
-pkill -1 ipcd
|
||||
|
||||
stop-tcpd:
|
||||
-pkill -1 tcpd
|
||||
|
||||
buildrun-ipcd: ipcd
|
||||
-rm /tmp/libipc-run/ipc 2>/dev/null || true
|
||||
$(VALGRIND) ./ipcd
|
||||
|
||||
buildrun-pongd: pongd
|
||||
-rm /tmp/libipc-run/pong 2>/dev/null || true
|
||||
$(VALGRIND) ./pongd
|
||||
|
||||
buildrun-tcpd: tcpd
|
||||
@-rm /tmp/libipc-run/tcp 2>/dev/null || true
|
||||
$(VALGRIND) ./tcpd
|
||||
|
||||
TCP_SERVICE_ALT ?= 127.0.0.1:9898
|
||||
buildrun-tcpd-alternative: tcpd
|
||||
-rm /tmp/libipc-run/tcpdup 2>/dev/null || true
|
||||
IPC_SERVICE_NAME=tcpdup ADDRESS=$(TCP_SERVICE_ALT) $(VALGRIND) ./tcpd
|
||||
|
||||
SERVICE_NAME ?= p
|
||||
IPC_NETWORK ?= p pong
|
||||
buildrun-pong: pong
|
||||
@#Force pong to contact IPCd.
|
||||
@#SERVICE is the service to contact and IPC_NETWORK is the IPCd
|
||||
@#configuration to translate "p" into "pong" (still using UNIX
|
||||
@#sockets on the same computer).
|
||||
SERVICE="$(SERVICE_NAME)" IPC_NETWORK="$(IPC_NETWORK)" $(VALGRIND) ./pong
|
||||
|
||||
buildrun-pong-test-tcpd: pong
|
||||
SERVICE="pong" IPC_NETWORK="pong tcp://$(TCP_SERVICE_ALT)/pong" $(VALGRIND) ./pong
|
||||
|
||||
ifeq ($(SRC),)
|
||||
test-src:
|
||||
@echo SRC must be set via command line.
|
||||
@exit 1
|
||||
else
|
||||
test-src:
|
||||
endif
|
||||
|
||||
comp: zigcompilation test-bindings-pong test-bindings-pongd
|
||||
|
||||
list-obj-files: test-src
|
||||
@# List all .o included in a .a archive.
|
||||
ar t $(SRC)
|
||||
list-symbols: test-src
|
||||
@# List all symbols in a .so.
|
||||
nm -D $(SRC)
|
||||
list-symbols-alt: test-src
|
||||
@# Alternative: grep .text section in an objdump output.
|
||||
objdump -T $(SRC) | grep text
|
||||
|
||||
zigcompilation: build.zig src/*.zig
|
||||
$(ZIGC) build
|
||||
|
||||
bindings-compile-pong: test-bindings/pong.c
|
||||
@-mkdir bin-bindings 2>/dev/null || true
|
||||
$(CC) -o bin-bindings/pong build/libipc.so $(CFLAGS) $^ $(LDFLAGS)
|
||||
|
||||
bindings-compile-pongd: test-bindings/pongd.c
|
||||
@-mkdir bin-bindings 2>/dev/null || true
|
||||
$(CC) -o bin-bindings/pongd build/libipc.so $(CFLAGS) $^ $(LDFLAGS)
|
||||
|
||||
bindings-test-pong:
|
||||
LD_LIBRARY_PATH=build/ $(VALGRIND) ./bin-bindings/pong
|
||||
|
||||
bindings-test-pongd:
|
||||
-rm /tmp/libipc-run/pong 2>/dev/null || true
|
||||
LD_LIBRARY_PATH=build/ $(VALGRIND) ./bin-bindings/pongd
|
||||
|
||||
WS_SERVICE ?= 127.0.0.1:8080
|
||||
TCP_SERVICE ?= 127.0.0.1:9000
|
||||
init-websocket-tcpd:
|
||||
@# '-b' binary, '-E' quit on end-of-file, 'ws-l' websocket URI to listen
|
||||
@# each connection is redirected to last parameter
|
||||
websocat -b -E ws-l:$(WS_SERVICE) tcp:$(TCP_SERVICE)
|
||||
|
||||
init-websocket-client:
|
||||
websocat -b -E ws://$(WS_SERVICE)
|
||||
#websocat -b -E tcp-l:127.0.0.1:9000 ws://127.0.0.1:9999
|
||||
|
||||
build-all:
|
||||
$(ZIGC) build-exe src/write-tcpd-pong-messages.zig -lc
|
||||
$(ZIGC) build-exe $(ZIGOPTS) src/tcpd.zig
|
||||
$(ZIGC) build-exe $(ZIGOPTS) src/pong.zig
|
||||
|
||||
serve:
|
||||
find . | entr make build-all
|
Reference in New Issue