diff options
-rw-r--r-- | Cargo.toml | 21 | ||||
-rw-r--r-- | Makefile | 19 |
2 files changed, 28 insertions, 12 deletions
@@ -13,17 +13,22 @@ readme = "README.rst" license = "GPL-3.0" edition = "2021" +[dependencies] +libc = "0.2" +clap = { version = "2.33", optional = true } +anyhow = { version = "1.0", optional = true } + +[features] +vtcol-bin = [ "anyhow", "clap" ] + [[bin]] -name = "vtcol" -path = "src/vtcol.rs" -test = false -doc = false +name = "vtcol" +path = "src/vtcol.rs" +test = false +doc = false +required-features = [ "vtcol-bin" ] [lib] # doctests suck doctest = false -[dependencies] -clap = "2.33" -libc = "0.2" -anyhow = "1.0" @@ -1,11 +1,19 @@ manpage = doc/vtcol.1.gz cargo-target = ./target bin = $(cargo-target)/release/vtcol -src = src/vtcol.rs +lib = $(cargo-target)/release/libvtcol.rlib +bin-src = src/vtcol.rs +lib-src = src/lib.rs +src = $(bin-src) $(lib-src) meta = Cargo.toml rustdoc-entry = target/doc/vtcol/index.html -all: bin doc +all: bin lib doc + +check: $(src) + cargo test + +lib: $(lib) bin: $(bin) @@ -15,8 +23,11 @@ man: $(manpage) rustdoc: $(rustdoc-entry) +$(lib): $(lib-src) $(meta) + cargo build --release + $(bin): $(src) $(meta) - cargo build --release + cargo build --bin=vtcol --features=vtcol-bin --release $(manpage): doc/vtcol.rst rst2man $< |gzip > $@ @@ -28,4 +39,4 @@ clean: rm -f -- $(manpage) rm -rf -- $(cargo-target) -.PHONY: clean +.PHONY: clean check |