summaryrefslogtreecommitdiffstats
path: root/src/pmdk/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdk/Makefile')
-rw-r--r--src/pmdk/Makefile136
1 files changed, 136 insertions, 0 deletions
diff --git a/src/pmdk/Makefile b/src/pmdk/Makefile
new file mode 100644
index 000000000..a44fe088c
--- /dev/null
+++ b/src/pmdk/Makefile
@@ -0,0 +1,136 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright 2014-2020, Intel Corporation
+
+#
+# Makefile -- top-level Makefile for PMDK
+#
+# Use "make" to build the library.
+#
+# Use "make doc" to build documentation.
+#
+# Use "make test" to build unit tests. Add "SKIP_SYNC_REMOTES=y" to skip
+# or "FORCE_SYNC_REMOTES=y" to force syncing remote nodes if any is defined.
+#
+# Use "make check" to run unit tests.
+#
+# Use "make check-remote" to run only remote unit tests.
+#
+# Use "make clean" to delete all intermediate files (*.o, etc).
+#
+# Use "make clobber" to delete everything re-buildable (binaries, etc.).
+#
+# Use "make cstyle" to run cstyle on all C source files
+#
+# Use "make check-license" to check copyright and license in all source files
+#
+# Use "make rpm" to build rpm packages
+#
+# Use "make dpkg" to build dpkg packages
+#
+# Use "make source DESTDIR=path_to_dir" to copy source files
+# from HEAD to 'path_to_dir/pmdk' directory.
+#
+# As root, use "make install" to install the library in the usual
+# locations (/usr/local/lib, /usr/local/include, and /usr/local/share/man).
+# You can provide custom directory prefix for installation using
+# DESTDIR variable e.g.: "make install DESTDIR=/opt"
+# You can override the prefix within DESTDIR using prefix variable
+# e.g.: "make install prefix=/usr"
+
+include src/common.inc
+
+RPM_BUILDDIR=rpmbuild
+DPKG_BUILDDIR=dpkgbuild
+EXPERIMENTAL ?= n
+BUILD_PACKAGE_CHECK ?= y
+BUILD_RPMEM ?= y
+TEST_CONFIG_FILE ?= "$(CURDIR)"/src/test/testconfig.sh
+DOC ?= y
+
+rpm : override DESTDIR="$(CURDIR)/$(RPM_BUILDDIR)"
+dpkg: override DESTDIR="$(CURDIR)/$(DPKG_BUILDDIR)"
+rpm dpkg: override prefix=/usr
+
+all: doc
+ $(MAKE) -C src $@
+
+doc:
+ifeq ($(DOC),y)
+ test -f .skip-doc || $(MAKE) -C doc all
+endif
+
+clean:
+ $(MAKE) -C src $@
+ifeq ($(DOC),y)
+ test -f .skip-doc || $(MAKE) -C doc $@
+endif
+ $(RM) -r $(RPM_BUILDDIR) $(DPKG_BUILDDIR)
+ $(RM) -f $(GIT_VERSION)
+
+clobber:
+ $(MAKE) -C src $@
+ifeq ($(DOC),y)
+ test -f .skip-doc || $(MAKE) -C doc $@
+endif
+ $(RM) -r $(RPM_BUILDDIR) $(DPKG_BUILDDIR) rpm dpkg
+ $(RM) -f $(GIT_VERSION)
+
+require-rpmem:
+ifneq ($(BUILD_RPMEM),y)
+ $(error ERROR: cannot run remote tests because $(BUILD_RPMEM_INFO))
+endif
+
+check-remote: require-rpmem all
+ $(MAKE) -C src $@
+
+test check pcheck pycheck: all
+ $(MAKE) -C src $@
+
+check pcheck pycheck: check-doc
+
+cstyle:
+ test -d .git && utils/check-commits.sh
+ $(MAKE) -C src $@
+ $(MAKE) -C utils $@
+ @echo Checking files for whitespace issues...
+ @utils/check_whitespace -g
+ @echo Done.
+
+format:
+ $(MAKE) -C src $@
+ @echo Done.
+
+check-license:
+ @utils/check_license/check-headers.sh $(TOP) BSD-3-Clause
+ @echo Done.
+
+check-doc: doc
+ BUILD_RPMEM="$(BUILD_RPMEM)" utils/check-manpages
+
+sparse:
+ $(MAKE) -C src sparse
+
+source: clobber
+ $(if "$(DESTDIR)", , $(error Please provide DESTDIR variable))
+ +utils/copy-source.sh "$(DESTDIR)" $(SRCVERSION)
+
+pkg-clean:
+ $(RM) -r "$(DESTDIR)"
+
+rpm dpkg: pkg-clean
+ $(MAKE) source DESTDIR="$(DESTDIR)"
+ +utils/build-$@.sh -t $(SRCVERSION) -s "$(DESTDIR)"/pmdk -w "$(DESTDIR)" -o $(CURDIR)/$@\
+ -e $(EXPERIMENTAL) -c $(BUILD_PACKAGE_CHECK) -r $(BUILD_RPMEM)\
+ -f $(TEST_CONFIG_FILE) -n $(NDCTL_ENABLE)
+
+install: all
+
+install uninstall:
+ $(MAKE) -C src $@
+ifeq ($(DOC),y)
+ $(MAKE) -C doc $@
+endif
+
+.PHONY: all clean clobber test check cstyle check-license install uninstall\
+ source rpm dpkg pkg-clean pcheck check-remote format doc require-rpmem\
+ $(SUBDIRS)