-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
129 lines (107 loc) · 3.02 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2014-2023, 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.
#
# Use "make check" to run unit tests.
#
# Use "make clean" to delete all intermediate files (*.o, etc).
#
# Use "make clobber" to delete everything re-buildable (binaries, etc.).
#
# Use "make gitclean" for a complete tree clean, save for test configs.
#
# 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
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)
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
./utils/check-manpages
sparse:
$(MAKE) -C src sparse
gitclean:
git clean -dfx -etestconfig.sh -etestconfig.py
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)\
-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 format doc\
$(SUBDIRS)