Add install instructions to the makefile + hexa.pc.

This commit is contained in:
Philippe PITTOLI 2024-06-21 19:00:34 +02:00
parent 83d25e0822
commit c38f210854
2 changed files with 86 additions and 1 deletions

8
hexa.pc Normal file
View File

@ -0,0 +1,8 @@
includedir=/usr/local/include
libdir=/usr/local/lib
Name: LibHEXA
Description: Hexadecimal dump library.
Version: 0.1.0
Libs: -L${libdir} -lhexa
Cflags: -I${includedir}

View File

@ -1,4 +1,81 @@
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
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)
dist-dir:
[ -d $(PKG) ] || ln -s . $(PKG)
$(PKG).tar.gz: dist-dir
tar zcf $@ \
$(PKG)/src \
$(PKG)/build.zig \
$(PKG)/libhexa.h \
$(PKG)/makefile* \
$(PKG)/README*
dist-rm-dir:
rm $(PKG)
dist-gz: $(PACKAGE)-$(VERSION).tar.gz
dist: dist-gz dist-rm-dir
# You can add your specific instructions there.
-include makefile.user