Builds libevent
This commit is contained in:
83
Makefile
83
Makefile
@@ -1,28 +1,71 @@
|
||||
.PHONY: help build extract
|
||||
.PHONY: help
|
||||
|
||||
TMUX := https://github.com/tmux/tmux.git
|
||||
LATEST = $(shell git ls-remote --tags $(TMUX) \
|
||||
| egrep 'refs/tags/[0-9]+(\.[0-9]+)+[a-z]*$$' \
|
||||
| tail -1 | cut -d/ -f3)
|
||||
TMUX_VERSION := 3.1b
|
||||
NCURSES_VERSION := 6.2
|
||||
LIBEVENT_VERSION := 2.1.10-stable
|
||||
UTF8PROC_VERSION := 2.4.0
|
||||
|
||||
IMAGE = tmux:$(LATEST)
|
||||
BUILD_DIR = $(CURDIR)
|
||||
BUILD_PREBUILT_DEP = $(BUILD_DIR)/prebuilt/dep
|
||||
BUILD_PREBUILT_TMUX = $(BUILD_DIR)/prebuilt/tmux
|
||||
|
||||
|
||||
LIBEVENT_URL = https://github.com/libevent/libevent/releases/download/release-$(LIBEVENT_VERSION)/libevent-$(LIBEVENT_VERSION).tar.gz
|
||||
LIBEVENT_TGZ = libevent-$(LIBEVENT_VERSION).tar.gz
|
||||
LIBEVENT_D = libevent-$(LIBEVENT_VERSION)
|
||||
|
||||
|
||||
TMUX := tmux-$(TMUX_VERSION).musl-bin.tar.gz
|
||||
|
||||
help: ## Display this help message
|
||||
@echo "Latest: $(LATEST)"
|
||||
@echo "Tmux: v$(TMUX_VERSION)"
|
||||
@echo "NCurses: v$(NCURSES_VERSION)"
|
||||
@echo "LibEvent: v$(LIBEVENT_VERSION)"
|
||||
@echo "UTF8Proc: v$(UTF8PROC_VERSION)"
|
||||
@echo ""
|
||||
@echo "Usage:"
|
||||
@sed -nE "s/^([^:]+):\s+##\s+(.+)$$/\tmake \\1\t- \\2/p" \
|
||||
@sed -nE "s/^([^:]+):\\s+##\\s+(.+)$$/\tmake \\1\t- \\2/p" \
|
||||
$(lastword $(MAKEFILE_LIST))
|
||||
|
||||
build: ## Build tmux in a docker image
|
||||
docker build \
|
||||
--build-arg VERSION=$(LATEST) \
|
||||
--tag $(IMAGE) \
|
||||
--rm .
|
||||
clean: ## Remove all build and dist directories
|
||||
-rm -rf prebuilt $(LIBEVENT_D)
|
||||
|
||||
extract: ## Extract the binaries from the docker image
|
||||
docker run \
|
||||
-ti --rm \
|
||||
-u $(shell id -u):$(shell id -g) \
|
||||
-v $(CURDIR):/mnt/cwd \
|
||||
-w /usr/local/lib \
|
||||
$(IMAGE) tar czf /mnt/cwd/tmux_v$(LATEST).tar.gz tmux_v$(LATEST)
|
||||
tmux: ## Build static tmux archive
|
||||
$(MAKE) $(TMUX)
|
||||
|
||||
####
|
||||
#### Libevent
|
||||
####
|
||||
|
||||
####
|
||||
#### Libevent
|
||||
####
|
||||
libevent: ## Download and build libevent library
|
||||
$(MAKE) $(BUILD_PREBUILT_DEP)/lib/libevent.a
|
||||
|
||||
$(BUILD_PREBUILT_DEP)/lib/libevent.a: $(LIBEVENT_D)/.libs/libevent.a
|
||||
$(MAKE) -C $(LIBEVENT_D) install
|
||||
|
||||
$(LIBEVENT_D)/.libs/libevent.a: $(LIBEVENT_D)/Makefile
|
||||
$(MAKE) -C $(LIBEVENT_D) -j4 all
|
||||
|
||||
$(LIBEVENT_D)/Makefile: $(LIBEVENT_D)
|
||||
cd $(LIBEVENT_D) \
|
||||
&& ./configure \
|
||||
--prefix="$(BUILD_PREBUILT_DEP)" \
|
||||
--disable-openssl \
|
||||
--enable-shared=no \
|
||||
--enable-static=yes \
|
||||
--with-pic
|
||||
|
||||
$(LIBEVENT_D): $(LIBEVENT_TGZ)
|
||||
tar xzf $<
|
||||
|
||||
$(LIBEVENT_TGZ):
|
||||
curl -Lk $(LIBEVENT_URL) -o $@
|
||||
|
||||
$(BUILD_PREBUILT_DEP): $(BUILD_DIR)
|
||||
mkdir -pv $@
|
||||
|
||||
$(BUILD_PREBUILT_TMUX): $(BUILD_DIR)
|
||||
mkdir -pv $@
|
||||
|
||||
Reference in New Issue
Block a user