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.
74 lines
2.1 KiB
Makefile
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
|