Archived
3
0
This repository has been archived on 2024-06-18. You can view files and clone it, but cannot push or open issues or pull requests.
libipc-old/zig-impl/makefile.user

131 lines
3.2 KiB
Plaintext
Raw Normal View History

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 unix://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/ipcd.zig
$(ZIGC) build-exe $(ZIGOPTS) src/tcpd.zig
$(ZIGC) build-exe $(ZIGOPTS) src/pong.zig
$(ZIGC) build-exe $(ZIGOPTS) src/pongd.zig
serve:
find src/ | entr make build-all