mirror of
https://github.com/pumpitupdev/pumptools.git
synced 2024-11-15 02:47:35 +01:00
67 lines
2.0 KiB
Makefile
67 lines
2.0 KiB
Makefile
|
V ?= @
|
||
|
BUILDDIR ?= build
|
||
|
|
||
|
gitrev := $(shell git rev-parse HEAD)
|
||
|
libcver := $(shell ldd --version | head -n 1)
|
||
|
|
||
|
all: \
|
||
|
usage
|
||
|
|
||
|
.PHONY: \
|
||
|
build \
|
||
|
clean \
|
||
|
test \
|
||
|
build-docker \
|
||
|
git-version \
|
||
|
libc-version \
|
||
|
clang-format \
|
||
|
package
|
||
|
|
||
|
usage:
|
||
|
$(V)echo "Pumptools project build makefile"
|
||
|
$(V)echo " build: Build the pumptools project"
|
||
|
$(V)echo " clean: Clean up all build output"
|
||
|
$(V)echo " test: Run pumptools's unit tests"
|
||
|
$(V)echo " build-docker: Build the pumptools project in a docker container"
|
||
|
$(V)echo " git-version: Generate a text file with the current git revision"
|
||
|
$(V)echo " libc-version: Generate a text file with the libc version available"
|
||
|
$(V)echo " clang-format: Apply code style defined in .clang-format style to all code in src/"
|
||
|
$(V)echo " package: Package the build output into distribution zip files"
|
||
|
|
||
|
# Standard build target to build pumptools
|
||
|
build: git-version libc-version
|
||
|
$(V)mkdir -p $(BUILDDIR)
|
||
|
$(V)cd $(BUILDDIR) && cmake .. && make -j $(grep -c ^processor /proc/cpuinfo)
|
||
|
|
||
|
clean:
|
||
|
$(V)rm -rf $(BUILDDIR)
|
||
|
|
||
|
test: build
|
||
|
$(V)scripts/run-tests.sh $(BUILDDIR)
|
||
|
|
||
|
# Build pumptools in a docker image and extract the build output
|
||
|
build-docker:
|
||
|
$(V)rm -rf $(BUILDDIR)/docker
|
||
|
$(V)mkdir -p $(BUILDDIR)/docker
|
||
|
$(V)docker build -t pumptools:build .
|
||
|
$(V)docker create --name pumptools-build pumptools:build
|
||
|
$(V)docker cp pumptools-build:/pumptools/build $(BUILDDIR)/docker
|
||
|
$(V)mv $(BUILDDIR)/docker/build/* $(BUILDDIR)/docker
|
||
|
$(V)rm -r $(BUILDDIR)/docker/build
|
||
|
$(V)docker rm -f pumptools-build
|
||
|
$(V)echo "Build output of docker build can be found in build/docker subfolder."
|
||
|
|
||
|
# Generate a version file to identify the build
|
||
|
git-version:
|
||
|
$(V)mkdir -p $(BUILDDIR)
|
||
|
$(V)echo "$(gitrev)" > $(BUILDDIR)/git-version
|
||
|
|
||
|
# Generate a version file to identify the libc runtime used to build
|
||
|
libc-version:
|
||
|
$(V)mkdir -p $(BUILDDIR)
|
||
|
$(V)echo "$(libcver)" > $(BUILDDIR)/libc-version
|
||
|
|
||
|
clang-format:
|
||
|
$(V)find src/ -iname *.h -o -iname *.c | xargs clang-format -i -style=file
|
||
|
|
||
|
include Package.mk
|