diff options
Diffstat (limited to 'src/pmdk/Makefile')
-rw-r--r-- | src/pmdk/Makefile | 136 |
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) |