From a6a2ea7ff0f1d0ef47f4797b72c7faae65d0bb54 Mon Sep 17 00:00:00 2001 From: bryan Date: Thu, 27 Aug 2026 10:49:41 +0200 Subject: Add make install for Windows and Linux. Windows copies prtmib.exe to %USERPROFILE%\.local\bin. Linux installs to /usr/local/bin. PREFIX and DESTDIR work as usual. --- Makefile | 21 ++++++++++++++++++++- README | 8 +++++++- config.mk | 12 ++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 0bc4f23..ec05565 100644 --- a/Makefile +++ b/Makefile @@ -13,4 +13,23 @@ prtmib$(EXE): $(SRC) $(HDR) clean: -$(RM) prtmib$(EXE) -.PHONY: all clean +ifeq ($(OS),Windows_NT) +install: all + -mkdir "$(subst /,\,$(DESTDIR)$(BINDIR))" + copy /Y prtmib$(EXE) "$(subst /,\,$(DESTDIR)$(BINDIR)/prtmib$(EXE))" + @echo installed to $(DESTDIR)$(BINDIR)/prtmib$(EXE) + +uninstall: + -$(RM) "$(subst /,\,$(DESTDIR)$(BINDIR)/prtmib$(EXE))" +else +install: all + mkdir -p "$(DESTDIR)$(BINDIR)" + cp -f prtmib$(EXE) "$(DESTDIR)$(BINDIR)/prtmib$(EXE)" + chmod 755 "$(DESTDIR)$(BINDIR)/prtmib$(EXE)" + @echo installed to $(DESTDIR)$(BINDIR)/prtmib$(EXE) + +uninstall: + rm -f "$(DESTDIR)$(BINDIR)/prtmib$(EXE)" +endif + +.PHONY: all clean install uninstall diff --git a/README b/README index a77fcee..cd41fb6 100644 --- a/README +++ b/README @@ -39,12 +39,18 @@ Build Windows (MinGW, default config.mk): make + make install as(1) and ld(1) must be the MinGW ones; config.mk prepends MINGWBIN to PATH so a stock prompt is enough. Linux: edit config.mk (comment the Windows block, uncomment Linux), - then make. `RM = rm -f` on Unix. + then make && make install. `RM = rm -f` on Unix. + + Install path (override with PREFIX=...): + Windows: %USERPROFILE%\.local\bin (add to PATH if it is not) + Linux: /usr/local/bin (often needs sudo) + make uninstall removes the binary. Hosts, community, timeouts, thresholds: config.h. Recompile. diff --git a/config.mk b/config.mk index d701da0..f730759 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,17 @@ # prtmib — site/toolchain knobs. Edit this, not the Makefile. # +# Install: make install +# Windows: %USERPROFILE%\.local\bin +# Linux: /usr/local/bin +# Override: make PREFIX=... install + +ifeq ($(OS),Windows_NT) +PREFIX ?= $(USERPROFILE)/.local +else +PREFIX ?= /usr/local +endif +BINDIR ?= $(PREFIX)/bin + # Windows (this machine): MinGW-w64 gcc. LLVM clang in PATH targets MSVC # and needs the VS developer prompt; MinGW does not. # as/ld live next to gcc; export PATH so the driver finds them. -- cgit v1.2.3