summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbryan <bryan@veltar.systems>2026-08-27 10:49:41 +0200
committerbryan <bryan@veltar.systems>2026-08-27 10:49:41 +0200
commita6a2ea7ff0f1d0ef47f4797b72c7faae65d0bb54 (patch)
treecaa636959e49cdf0fec7ebc75997224d59ce296a
parent002742ad5b1fd76d539c2fb8736622e63e757f98 (diff)
downloadprtmib-a6a2ea7ff0f1d0ef47f4797b72c7faae65d0bb54.tar.gz
prtmib-a6a2ea7ff0f1d0ef47f4797b72c7faae65d0bb54.zip
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.
-rw-r--r--Makefile21
-rw-r--r--README8
-rw-r--r--config.mk12
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.