aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2021-04-18 03:54:42 +0200
committerTeddy Wing2021-04-18 03:54:42 +0200
commitede1d34693f2119d6d2d3fff421e591783dd5b93 (patch)
tree91b737aeadf0750b059b4f201c7d27547c382e14
parent5d015f4c05474c6e9e8e58e6b0cc64d69d0e70bd (diff)
downloadformurapid-ede1d34693f2119d6d2d3fff421e591783dd5b93.tar.bz2
Makefile: Add packaging and distribution
-rw-r--r--.gitignore1
-rw-r--r--Makefile41
2 files changed, 42 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index ea8c4bf..48681a4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
+/dist/
/target
diff --git a/Makefile b/Makefile
index 6b86dcf..d26334e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,48 @@
+VERSION := $(shell egrep '^version = ' Cargo.toml | awk -F '"' '{ print $$2 }')
+TOOLCHAIN := $(shell fgrep default_host_triple $(HOME)/.rustup/settings.toml | awk -F '"' '{ print $$2 }')
+
+SOURCES := $(shell find src -name '*.rs')
+RELEASE_PRODUCT := target/release/formurapid
+
MAN_PAGE := doc/formurapid.1
+DIST := $(abspath dist)
+DIST_PRODUCT := $(DIST)/bin/formurapid
+DIST_MAN_PAGE := $(DIST)/share/man/man1/formurapid.1
+
+
+$(RELEASE_PRODUCT): $(SOURCES)
+ cargo build --release
+
+
.PHONY: doc
doc: $(MAN_PAGE)
$(MAN_PAGE): $(MAN_PAGE).txt
a2x --no-xmllint --format manpage $<
+
+
+.PHONY: dist
+dist: $(DIST_PRODUCT) $(DIST_MAN_PAGE)
+
+$(DIST):
+ mkdir -p $@
+
+$(DIST)/bin: | $(DIST)
+ mkdir -p $@
+
+$(DIST)/share/man/man1: | $(DIST)
+ mkdir -p $@
+
+$(DIST_PRODUCT): $(RELEASE_PRODUCT) | $(DIST)/bin
+ cp $< $@
+
+$(DIST_MAN_PAGE): $(MAN_PAGE) | $(DIST)/share/man/man1
+ cp $< $@
+
+
+.PHONY: pkg
+pkg: formurapid_$(VERSION)_$(TOOLCHAIN).tar.bz2
+
+formurapid_$(VERSION)_$(TOOLCHAIN).tar.bz2: dist
+ tar cjv -s /dist/formurapid_$(VERSION)_$(TOOLCHAIN)/ -f $@ dist