commit de29d8401122b1fa37504de6b7f496c99187b2b3 from: Murilo Ijanc date: Fri Apr 10 20:15:21 2026 UTC add license header, version, ci targets to makefile commit - 35eedcc793044f4b76e047be8cd1a1b0879ce771 commit + de29d8401122b1fa37504de6b7f496c99187b2b3 blob - f1706dea36aaafa871d79206e3718aba1bf558a8 blob + 92b5af5553d11537a4510d4a91975d3f8aea11d8 --- Makefile +++ Makefile @@ -1,5 +1,22 @@ +# +# Copyright (c) 2025-2026 Murilo Ijanc' +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + RUSTC ?= $(shell rustup which rustc 2>/dev/null || which rustc) RUSTFLAGS ?= -C opt-level=2 -C strip=symbols +VERSION = 0.1.0 CURL ?= curl PREFIX ?= /usr/local MANDIR ?= $(PREFIX)/share/man @@ -15,8 +32,11 @@ UNICODE_ID = vendor/unicode-id/src/lib.rs MARKDOWN = vendor/markdown/src/lib.rs MAIN = kssg.rs -.PHONY: all clean install vendor +CLIPPY ?= $(shell rustup which clippy-driver 2>/dev/null) +RUSTFMT ?= $(shell rustup which rustfmt 2>/dev/null) +.PHONY: all clean install install ci fmt-check clippy vendor + all: $(BIN) $(BUILD)/libunicode_id.rlib: $(UNICODE_ID) @@ -32,8 +52,8 @@ $(BUILD)/libmarkdown.rlib: $(MARKDOWN) $(BUILD)/libuni -o $@ $< $(BIN): $(MAIN) $(BUILD)/libmarkdown.rlib - TMPDIR=/tmp $(RUSTC) --edition 2024 --crate-type bin \ - --crate-name kssg $(RUSTFLAGS) \ + KSSG_VERSION=$(VERSION) TMPDIR=/tmp $(RUSTC) --edition 2024 \ + --crate-type bin --crate-name kssg $(RUSTFLAGS) \ -L $(BUILD) --extern markdown=$(BUILD)/libmarkdown.rlib \ -o $@ $< @@ -58,3 +78,16 @@ $(MARKDOWN): $(CURL) -sL $(CRATES_IO)/markdown/$(MARKDOWN_VER)/download \ | tar xz -C vendor mv vendor/markdown-$(MARKDOWN_VER) vendor/markdown + +fmt-check: + $(RUSTFMT) --edition 2024 --check $(MAIN) + +clippy: + KSSG_VERSION=$(VERSION) TMPDIR=/tmp $(CLIPPY) --edition 2024 \ + --crate-type bin --crate-name kssg \ + -L $(BUILD) --extern markdown=$(BUILD)/libmarkdown.rlib \ + -W clippy::all -o /tmp/kssg.clippy $(MAIN) + @rm -f /tmp/kssg.clippy + +ci: fmt-check clippy $(BIN) +