mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-24 22:59:59 +00:00
81 lines
2.1 KiB
Makefile
81 lines
2.1 KiB
Makefile
# Seccomp BPF is only available for Linux
|
|
UNAME_S := $(shell uname -s)
|
|
ifeq ($(UNAME_S),Linux)
|
|
SECCOMP = --with-libseccomp
|
|
else
|
|
SECCOMP =
|
|
endif
|
|
|
|
#
|
|
# Top level Makefile to build Zenith and PostgreSQL
|
|
#
|
|
all: zenith postgres
|
|
|
|
# We don't want to run 'cargo build' in parallel with the postgres build,
|
|
# because interleaving cargo build output with postgres build output looks
|
|
# confusing. Also, 'cargo build' is parallel on its own, so it would be too
|
|
# much parallelism. (Recursive invocation of postgres target still gets any
|
|
# '-j' flag from the command line, so 'make -j' is still useful.)
|
|
.NOTPARALLEL:
|
|
|
|
### Zenith Rust bits
|
|
#
|
|
# The 'postgres_ffi' depends on the Postgres headers.
|
|
.PHONY: zenith
|
|
zenith: postgres-headers
|
|
cargo build
|
|
|
|
### PostgreSQL parts
|
|
tmp_install/build/config.status:
|
|
+@echo "Configuring postgres build"
|
|
mkdir -p tmp_install/build
|
|
(cd tmp_install/build && \
|
|
../../vendor/postgres/configure CFLAGS='-O0 -g3 $(CFLAGS)' \
|
|
--enable-cassert \
|
|
--enable-debug \
|
|
--enable-depend \
|
|
$(SECCOMP) \
|
|
--prefix=$(abspath tmp_install) > configure.log)
|
|
|
|
# nicer alias for running 'configure'
|
|
.PHONY: postgres-configure
|
|
postgres-configure: tmp_install/build/config.status
|
|
|
|
# Install the PostgreSQL header files into tmp_install/include
|
|
.PHONY: postgres-headers
|
|
postgres-headers: postgres-configure
|
|
+@echo "Installing PostgreSQL headers"
|
|
$(MAKE) -C tmp_install/build/src/include MAKELEVEL=0 install
|
|
|
|
|
|
# Compile and install PostgreSQL and contrib/zenith
|
|
.PHONY: postgres
|
|
postgres: postgres-configure
|
|
+@echo "Compiling PostgreSQL"
|
|
$(MAKE) -C tmp_install/build MAKELEVEL=0 install
|
|
+@echo "Compiling contrib/zenith"
|
|
$(MAKE) -C tmp_install/build/contrib/zenith install
|
|
+@echo "Compiling contrib/zenith_test_utils"
|
|
$(MAKE) -C tmp_install/build/contrib/zenith_test_utils install
|
|
|
|
postgres-clean:
|
|
$(MAKE) -C tmp_install/build MAKELEVEL=0 clean
|
|
|
|
# This doesn't remove the effects of 'configure'.
|
|
clean:
|
|
cd tmp_install/build && ${MAKE} clean
|
|
cargo clean
|
|
|
|
# This removes everything
|
|
distclean:
|
|
rm -rf tmp_install
|
|
cargo clean
|
|
|
|
.PHONY: fmt
|
|
fmt:
|
|
./pre-commit.py --fix-inplace
|
|
|
|
.PHONY: setup-pre-commit-hook
|
|
setup-pre-commit-hook:
|
|
ln -s -f ../../pre-commit.py .git/hooks/pre-commit
|