libipc/makefile
Philippe Pittoli 76e3144436 Ready for Zig v0.15.2. Details in commit message.
The library jumped to Zig v0.15.2 which implies a new build system.
`build.zig` now compiles libipc as both static and dynamic libraries,
and provides an entry point to use `libipc` as-is for Zig applications.

Some examples have been added to help new users play with the library.

Thanks to these fairly complete examples, two (very small) leaks related
to sentinel values (in arrays containing paths) were fixed.
2025-10-25 16:35:02 +02:00

74 lines
2.1 KiB
Makefile

all: build
help:
@echo "usage: make [build|install|doc|serve-doc]"
ZIGOPTS ?=
ZIGRELEASE ?= small
-include makefile.target
build:
zig build --release=$(ZIGRELEASE) $(ZIGOPTS) $(TARGET_OPTION)
clean:
-rm -r zig-out/
PREFIX ?= /usr/local
LIBDIR ?= $(PREFIX)/lib
INCLUDEDIR ?= $(PREFIX)/include
PKGCONFIGDIR ?= /usr/share/pkgconfig
$(PKGCONFIGDIR):; install -m 0755 -d $(PKGCONFIGDIR)
$(PKGCONFIGDIR)/ipc.pc: ipc.pc; install -m 0644 ipc.pc $(PKGCONFIGDIR)
install-pkgconfig: $(PKGCONFIGDIR) $(PKGCONFIGDIR)/ipc.pc
$(LIBDIR):; install -m 0755 -d $(LIBDIR)
$(LIBDIR)/libipc.a: zig-out/lib/libipc.a; install -m 0644 zig-out/lib/libipc.a $(LIBDIR)
$(LIBDIR)/libipc.so: zig-out/lib/libipc.so; install -m 0644 zig-out/lib/libipc.so $(LIBDIR)
install-library: $(LIBDIR) $(LIBDIR)/libipc.a $(LIBDIR)/libipc.so
$(INCLUDEDIR):; install -m 0755 -d $(INCLUDEDIR)
$(INCLUDEDIR)/libipc.h: libipc.h; install -m 0644 libipc.h $(INCLUDEDIR)
install-header: $(INCLUDEDIR) $(INCLUDEDIR)/libipc.h
install: install-pkgconfig install-library install-header
@echo "Now that you have installed the library, you should (probably) run ldconfig."
uninstall-library:; rm $(LIBDIR)/libipc.a $(LIBDIR)/libipc.so*
uninstall-header:; rm $(INCLUDEDIR)/libipc.h
uninstall-pkgconfig:; rm $(PKGCONFIGDIR)/ipc.pc
uninstall: uninstall-pkgconfig uninstall-library uninstall-header
mrproper:
rm -r docs zig-cache zig-out 2>/dev/null || true
doc:
zig build-lib -femit-docs src/main.zig
DOC_HTTPD_ACCESS_LOGS ?= /tmp/access.log
DOC_HTTPD_ADDR ?= 127.0.0.1
DOC_HTTPD_PORT ?= 35000
serve-doc:
darkhttpd docs/ --addr $(DOC_HTTPD_ADDR) --port $(DOC_HTTPD_PORT) --log $(DOC_HTTPD_ACCESS_LOGS)
PACKAGE ?= libipc
VERSION ?= 0.2.0
PKG = $(PACKAGE)-$(VERSION)
$(PKG).tar.gz: dist-dir
tar zcf $@ \
$(PKG)/src \
$(PKG)/build.zig* \
$(PKG)/libipc.h \
$(PKG)/ipc.pc \
$(PKG)/makefile* \
$(PKG)/README* \
$(PKG)/TODO*
$(PKG):; ln -s . $(PKG)
dist-dir: $(PKG)
dist-rm-dir:; rm $(PKG)
dist-gz: $(PKG).tar.gz
dist: dist-gz dist-rm-dir
# You can add your specific instructions there.
-include makefile.user