summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile64
1 files changed, 64 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..7f44364
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# This file is part of nvme.
+# Copyright (c) 2021 Dell Inc.
+#
+# Authors: Martin Belanger <Martin.Belanger@dell.com>
+#
+NAME := nvme
+.DEFAULT_GOAL := ${NAME}
+BUILD-DIR := .build
+
+${BUILD-DIR}:
+ meson $@
+ @echo "Configuration located in: $@"
+ @echo "-------------------------------------------------------"
+
+.PHONY: ${NAME}
+${NAME}: ${BUILD-DIR}
+ ninja -C ${BUILD-DIR}
+
+.PHONY: clean
+clean:
+ifneq ("$(wildcard ${BUILD-DIR})","")
+ ninja -C ${BUILD-DIR} -t $@
+endif
+
+.PHONY: purge
+purge:
+ifneq ("$(wildcard ${BUILD-DIR})","")
+ rm -rf ${BUILD-DIR}
+endif
+
+.PHONY: install dist
+install dist: ${BUILD-DIR}
+ cd ${BUILD-DIR} && meson $@
+
+.PHONY: uninstall
+uninstall:
+ cd ${BUILD-DIR} && meson --internal uninstall
+
+.PHONY: test
+test: ${BUILD-DIR}
+ ninja -C ${BUILD-DIR} $@
+
+.PHONY: rpm
+rpm:
+ meson ${BUILD-DIR} \
+ -Dudevrulesdir=$(shell rpm --eval '%{_udevrulesdir}') \
+ -Dsystemddir=$(shell rpm --eval '%{_unitdir}') \
+ -Ddocs=man -Ddocs-build=true
+ rpmbuild -ba ${BUILD-DIR}/nvme.spec --define "_builddir ${BUILD-DIR}" -v
+
+.PHONY: debug
+debug:
+ meson ${BUILD-DIR} --buildtype=debug
+ ninja -C ${BUILD-DIR}
+
+.PHONY: static
+static:
+ meson ${BUILD-DIR} --buildtype=release \
+ --default-library=static -Dc_link_args="-static" \
+ --wrap-mode=forcefallback \
+ -Dlibnvme:tests=false -Dlibnvme:keyutils=disabled
+ ninja -C ${BUILD-DIR}