gdb-static/Makefile

66 lines
2.1 KiB
Makefile
Raw Normal View History

2024-11-08 13:39:44 +02:00
ARCHS := x86_64 arm aarch64 powerpc mips mipsel
2024-10-02 07:02:06 +03:00
TARGETS := $(addprefix build-, $(ARCHS))
PACK_TARGETS := $(addprefix pack-, $(ARCHS))
SUBMODULE_PACKAGES := $(wildcard src/submodule_packages/*)
BUILD_PACKAGES_DIR := "build/packages"
2024-10-02 07:02:06 +03:00
.PHONY: clean help download_packages build build-docker-image $(TARGETS) $(PACK_TARGETS)
2024-10-02 07:02:06 +03:00
help:
@echo "Usage:"
@echo " make build"
@echo ""
@for target in $(TARGETS); do \
echo " $$target"; \
done
@echo ""
@echo " make clean"
build/build-docker-image.stamp: Dockerfile
mkdir -p build
docker build -t gdb-static .
touch build/build-docker-image.stamp
build-docker-image: build/build-docker-image.stamp
build/download-packages.stamp: build/build-docker-image.stamp src/compilation/download_packages.sh
mkdir -p $(BUILD_PACKAGES_DIR)
2024-10-02 07:02:06 +03:00
docker run --user $(shell id -u):$(shell id -g) \
--rm --volume .:/app/gdb gdb-static env TERM=xterm-256color \
/app/gdb/src/compilation/download_packages.sh /app/gdb/$(BUILD_PACKAGES_DIR)/
2024-10-02 07:02:06 +03:00
touch build/download-packages.stamp
build/symlink-git-packages.stamp: $(SUBMODULE_PACKAGES)
mkdir -p $(BUILD_PACKAGES_DIR)
ln -sf $(addprefix /app/gdb/, $(SUBMODULE_PACKAGES)) $(BUILD_PACKAGES_DIR)/
symlink-git-packages: build/symlink-git-packages.stamp
2024-10-02 07:02:06 +03:00
download-packages: build/download-packages.stamp
build: $(TARGETS)
$(TARGETS): build-%: symlink-git-packages download-packages build-docker-image
2024-10-02 07:02:06 +03:00
mkdir -p build
docker run --user $(shell id -u):$(shell id -g) \
--rm --volume .:/app/gdb gdb-static env TERM=xterm-256color \
/app/gdb/src/compilation/build.sh $* /app/gdb/build/ /app/gdb/src
2024-10-02 07:02:06 +03:00
pack: $(PACK_TARGETS)
$(PACK_TARGETS): pack-%: build-%
if [ ! -f "build/artifacts/gdb-static-$*.tar.gz" ]; then \
tar -czf "build/artifacts/gdb-static-$*.tar.gz" -C "build/artifacts/$*" .; \
fi
clean-git-packages:
git submodule foreach '[[ ! "$$sm_path" == src/submodule_packages/* ]] || git clean -xffd'
clean: clean-git-packages
2024-10-02 07:02:06 +03:00
rm -rf build
# Kill and remove all containers of image gdb-static
docker ps -a | grep -P "^[a-f0-9]+\s+gdb-static\s+" | awk '{print $$1}' | xargs docker rm -f 2>/dev/null || true
docker rmi -f gdb-static 2>/dev/null || true