summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml21
-rw-r--r--Makefile19
2 files changed, 28 insertions, 12 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 63c199b..d1483dc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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"
diff --git a/Makefile b/Makefile
index 446ffe9..a8db336 100644
--- a/Makefile
+++ b/Makefile
@@ -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