Commit d7fc807f authored by Bernd Lietzow's avatar Bernd Lietzow 🐨

updated to release 7.0

parent e6dfd502

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

export BEEGFS_DEBUG
export USER_CXXFLAGS
export USER_LDFLAGS
export KDIR
export KSRCDIR
PREFIX ?= /opt/beegfs
DESTDIR ?=
DAEMONS := mgmtd meta storage helperd admon mon
UTILS := fsck ctl
# ctl has no runnable tests, exclude it from `test' and do not provide `ctl-test'.
# same for thirdparty and opentk.
DO_NOT_TEST := ctl thirdparty opentk_lib
ALL_COMPONENTS := thirdparty opentk_lib common $(DAEMONS) $(UTILS)
all: daemons utils client
.PHONY: daemons
daemons: $(patsubst %,%-all,$(DAEMONS))
@
.PHONY: utils
utils: $(patsubst %,%-all,$(UTILS))
@
.PHONY: $(patsubst %,%-all,$(DAEMONS) $(UTILS))
$(patsubst %,%-all,$(DAEMONS) $(UTILS)): common-all opentk_lib-all
$(MAKE) -C beegfs_$(subst -all,,$@)/build all
.PHONY: opentk_lib-all
opentk_lib-all:
$(MAKE) -C beegfs_opentk_lib/build all
.PHONY: common-all common
common-all: thirdparty opentk_lib-all
$(MAKE) -C beegfs_common/build all
.PHONY: thirdparty
thirdparty:
$(MAKE) -C beegfs_thirdparty/build all cppunit sqlite
.PHONY: client
client:
$(MAKE) -C beegfs_client_module/build
_tested_components := $(filter-out $(DO_NOT_TEST),$(ALL_COMPONENTS))
.PHONY: test
test: $(patsubst %,%-test,$(_tested_components))
@
define test_component
.PHONY: $1-test
$1-test: $1-all
cd beegfs_$1/build && ./test-runner --compiler
endef
$(foreach C,$(_tested_components),$(eval $(call test_component,$(C))))
.PHONY: install
install: daemons-install utils-install opentk_lib-install client-install
@
define install_component
.PHONY: $1-install
$1-install: $1-all
install -t $(DESTDIR)/$(PREFIX)/$2 -D \
beegfs_$1/build/beegfs-$1
endef
$(foreach D,$(DAEMONS),$(eval $(call install_component,$D,sbin)))
$(foreach U,$(UTILS),$(eval $(call install_component,$U,sbin)))
.PHONY: daemons-install
daemons-install: $(patsubst %,%-install,$(DAEMONS))
@
.PHONY: utils-install
utils-install: $(patsubst %,%-install,$(UTILS))
@
.PHONY: opentk_lib-install
opentk_lib-install: opentk_lib-all
install -t $(DESTDIR)/$(PREFIX)/lib -D \
beegfs_opentk_lib/build/libbeegfs-opentk.so
.PHONY: client-install
client-install: client
install -t $(DESTDIR)/$(PREFIX)/lib/modules/$(KVER)/kernel/beegfs -D \
beegfs_client_module/build/beegfs.ko
.PHONY: clean
clean: $(patsubst %,%-clean,$(ALL_COMPONENTS)) client-clean
@
.PHONY: $(patsubst %,%-clean,$(ALL_COMPONENTS))
$(patsubst %,%-clean,$(ALL_COMPONENTS)):
$(MAKE) -C beegfs_$(subst -clean,,$@)/build clean
.PHONY: client-clean
client-clean:
$(MAKE) -C beegfs_client_module/build clean
......@@ -11,19 +11,47 @@ Homepage: https://www.beegfs.io
## Prerequisites
Before building BeeGFS, install the following dependency packages:
### Red Hat
### Red Hat / CentOS
```
$ yum install libuuid-devel libibverbs-devel librdmacm-devel libattr-devel redhat-rpm-config \
rpm-build xfsprogs-devel cppunit cppunit-devel zlib-devel openssl-devel sqlite \
sqlite-devel ant gcc-c++ gcc redhat-lsb-core java-devel unzip libcurl-devel
rpm-build xfsprogs-devel zlib-devel openssl-devel sqlite sqlite-devel ant gcc-c++ gcc \
redhat-lsb-core java-devel unzip libcurl-devel elfutils-libelf-devel kernel-devel
```
The `elfutils-libelf-devel` and `kernel-devel` packages can be omitted if you don't intend to
build the client module.
The additional `devtoolset-7` package is also required,
which provides a newer compiler version. The installation steps are outlined here.
Please consult the documentation of your distribution for details.
1. Install a package with repository for your system:
- On CentOS, install package centos-release-scl available in CentOS repository:
```
$ sudo yum install centos-release-scl
```
- On RHEL, enable RHSCL repository for you system:
```
$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
```
2. Install the collection:
```
$ sudo yum install devtoolset-7
```
3. Start using software collections:
```
$ scl enable devtoolset-7 bash
```
4. Follow the instructions below to build BeeGFS.
### Debian
On Debian or Ubuntu based systems run this command to install the required packages:
```
$ sudo apt install build-essential autoconf automake pkg-config devscripts debhelper \
libtool libattr1-dev xfslibs-dev lsb-release kmod librdmacm-dev libibverbs-dev \
default-jdk ant dh-systemd libcppunit-dev zlib1g-dev libssl-dev sqlite3 \
libsqlite3-dev libcurl4-openssl-dev
default-jdk ant dh-systemd zlib1g-dev libssl-dev sqlite3 libsqlite3-dev \
libcurl4-openssl-dev
```
Note: If you have an older Debian system you might have to install the
`module-init-tools` package instead of `kmod`.
......@@ -35,9 +63,9 @@ BeeGFS comes with a shell script that can build all BeeGFS packages for the
system on which it is executed.
The packages include all services, the client module and utilities.
Go to the `beegfs_auto_package` subdirectory:
Go to the `auto_package` subdirectory:
```
$ cd beegfs_auto_package
$ cd auto_package
```
To build RPM packages, run
......@@ -64,7 +92,7 @@ to prepare common parts required by the services and tools.
The packages can then be built by running the `make-deb` or `make-rpm` script
in the corresponding sub-project folders. For example:
```
$ cd beegfs_storage/build
$ cd storage/build
$ ./make-deb
```
......
CAN_PACKAGE := yes
include $(or $(root-dir),../..)/build/Makefile
main := ../source/program/Main.cpp
sources := $(filter-out $(main), $(shell find ../source -iname '*.cpp'))
$(call build-static-library,\
Admon,\
$(sources),\
common opentk dl sqlite openssl ticpp mongoose,\
../source)
$(call define-dep-lib,\
Admon,\
-I ../source,\
$(build_dir)/libAdmon.a)
$(call build-executable,\
beegfs-admon,\
$(main),\
Admon common opentk dl sqlite openssl ticpp mongoose)
$(call build-test,\
test-runner,\
$(shell find ../tests -name '*.cpp'),\
Admon common opentk dl sqlite openssl ticpp mongoose,\
../tests)
# JAVA_HOME will be honoured automatically by 'ant'
CXXFLAGS += -DTIXML_USE_TICPP
ANT_FINDBUGS_LIB ?= $(shell cd $(BEEGFS_THIRDPARTY_PATH) && pwd)/source/findbugs/lib/findbugs-ant.jar
ANT_INVOCATION := ant -lib $(ANT_FINDBUGS_LIB) -DBEEGFS_VERSION=$(BEEGFS_VERSION)
admon_gui:
cd $(ADMON_GUI_PATH) && $(ANT_INVOCATION) clean || true
cd $(ADMON_GUI_PATH) && $(ANT_INVOCATION)
define HELP_ARGS_SPECIFIC
@echo ' JAVA_HOME=<path> Path to Java JDK installation (optional)'
@echo ' ADMON_GUI_PATH=<path> Path to the admon_gui directory'
endef