libhexa/makefile

82 lines
2.3 KiB
Makefile

all: build
help:
@echo "usage: make [build|install|doc|serve-doc]"
ZIGOPTS ?=
ZIGOPTIM ?= ReleaseSafe
-include makefile.target
# Build both the application and the library (static & dynamic).
build:
zig build -Doptimize=$(ZIGOPTIM) $(ZIGOPTS) $(TARGET_OPTION)
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
LIBDIR ?= $(PREFIX)/lib
INCLUDEDIR ?= $(PREFIX)/include
PKGCONFIGDIR ?= /usr/share/pkgconfig
$(PKGCONFIGDIR):; install -m 0755 -d $(PKGCONFIGDIR)
$(PKGCONFIGDIR)/hexa.pc: hexa.pc; install -m 0644 hexa.pc $(PKGCONFIGDIR)
install-pkgconfig: $(PKGCONFIGDIR) $(PKGCONFIGDIR)/hexa.pc
$(LIBDIR):; install -m 0755 -d $(LIBDIR)
$(LIBDIR)/libhexa.a: zig-out/lib/libhexa.a; install -m 0644 zig-out/lib/libhexa.a $(LIBDIR)
$(LIBDIR)/libhexa.so: zig-out/lib/libhexa.so; install -m 0644 zig-out/lib/libhexa.so $(LIBDIR)
install-library: $(LIBDIR) $(LIBDIR)/libhexa.a $(LIBDIR)/libhexa.so
$(INCLUDEDIR):; install -m 0755 -d $(INCLUDEDIR)
$(INCLUDEDIR)/libhexa.h: libhexa.h; install -m 0644 libhexa.h $(INCLUDEDIR)
install-header: $(INCLUDEDIR) $(INCLUDEDIR)/libhexa.h
$(BINDIR):; install -m 0755 -d $(BINDIR)
$(BINDIR)/hexa: zig-out/bin/hexa; install -m 0755 zig-out/bin/hexa $(BINDIR)
install-bin: $(BINDIR) $(BINDIR)/hexa
install: install-bin install-pkgconfig install-library install-header
@echo "Now that you have installed the library, you should (probably) run ldconfig."
uninstall-library:
rm $(LIBDIR)/libhexa.a \
$(LIBDIR)/libhexa.so \
$(LIBDIR)/libhexa.so.*
uninstall-header:
rm $(INCLUDEDIR)/libhexa.h
uninstall-bin:
rm $(BINDIR)/hexa
uninstall: uninstall-library uninstall-header uninstall-bin
mrproper:
rm -r docs zig-cache zig-out 2>/dev/null || true
doc:
zig build-lib -femit-docs src/application.zig src/bindings.zig src/libhexa.zig
DOC_HTTPD_ACCESS_LOGS ?= /tmp/access-libhexa.log
DOC_HTTPD_ADDR ?= 127.0.0.1
DOC_HTTPD_PORT ?= 35002
serve-doc:
darkhttpd docs/ --addr $(DOC_HTTPD_ADDR) --port $(DOC_HTTPD_PORT) --log $(DOC_HTTPD_ACCESS_LOGS)
PACKAGE ?= libhexa
VERSION ?= 0.1.0
PKG = $(PACKAGE)-$(VERSION)
$(PKG).tar.gz: dist-dir
tar zcf $@ \
$(PKG)/src \
$(PKG)/build.zig* \
$(PKG)/libhexa.h \
$(PKG)/hexa.pc \
$(PKG)/makefile*
$(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