145 lines
3.7 KiB
Makefile
145 lines
3.7 KiB
Makefile
.PHONY: help
|
|
|
|
TMUX_VERSION := 3.1b
|
|
NCURSES_VERSION := 6.2
|
|
LIBEVENT_VERSION := 2.1.10-stable
|
|
UTF8PROC_VERSION := 2.4.0
|
|
|
|
BUILD_DIR = $(CURDIR)
|
|
BUILD_PREBUILT_DEP = $(BUILD_DIR)/prebuilt/dep
|
|
BUILD_PREBUILT_TMUX = $(BUILD_DIR)/prebuilt/tmux
|
|
|
|
LIBEVENT = libevent-$(LIBEVENT_VERSION)
|
|
LIBEVENT_TGZ = $(LIBEVENT).tar.gz
|
|
LIBEVENT_URL = https://github.com/libevent/libevent/releases/download/release-$(LIBEVENT_VERSION)/$(LIBEVENT_TGZ)
|
|
LIBEVENT_LIB = $(BUILD_PREBUILT_DEP)/lib/libevent.a
|
|
LIBEVENT_MAK = $(LIBEVENT)/Makefile
|
|
LIBEVENT_A = $(LIBEVENT)/.libs/libevent.a
|
|
|
|
NCURSES = ncurses-$(NCURSES_VERSION)
|
|
NCURSES_TGZ = $(NCURSES).tar.gz
|
|
NCURSES_URL = https://invisible-mirror.net/archives/ncurses/$(NCURSES_TGZ)
|
|
NCURSES_LIB = $(BUILD_PREBUILT_DEP)/lib/libncurses.a
|
|
NCURSES_MAK = $(NCURSES)/Makefile
|
|
NCURSES_A = $(NCURSES)/lib/libncurses.a
|
|
|
|
UTF8PROC = utf8proc-$(UTF8PROC_VERSION)
|
|
UTF8PROC_TGZ = $(UTF8PROC).tar.gz
|
|
UTF8PROC_URL = https://github.com/JuliaLang/utf8proc/archive/v$(UTF8PROC_VERSION).tar.gz
|
|
UTF8PROC_LIB = $(BUILD_PREBUILT_DEP)/lib/utf8proc.a
|
|
UTF8PROC_MAK = $(UTF8PROC)/build/Makefile
|
|
UTF8PROC_A = $(UTF8PROC)/build/libutf8proc.a
|
|
UTF8PROC_H = $(UTF8PROC)/utf8proc.h
|
|
|
|
TMUX := tmux-$(TMUX_VERSION).musl-bin.tar.gz
|
|
|
|
help: ## Display this help message
|
|
@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" \
|
|
$(lastword $(MAKEFILE_LIST))
|
|
|
|
clean: ## Remove all build and dist directories
|
|
-rm -rf prebuilt $(LIBEVENT) $(NCURSES) $(UTF8PROC)
|
|
|
|
tmux: ## Build static tmux archive
|
|
$(MAKE) $(TMUX)
|
|
|
|
####
|
|
#### UTF8Proc
|
|
####
|
|
utf8proc: ## Download and build the UTF8Proc library
|
|
$(MAKE) $(UTF8PROC_LIB)
|
|
|
|
$(UTF8PROC_LIB): $(UTF8PROC_A) $(BUILD_PREBUILT_DEP)
|
|
cp -v $(UTF8PROC_A) $(BUILD_PREBUILT_DEP)/lib
|
|
cp -v $(UTF8PROC_H) $(BUILD_PREBUILT_DEP)/include
|
|
|
|
$(UTF8PROC_A): $(UTF8PROC_MAK)
|
|
cd $(UTF8PROC)/build \
|
|
&& cmake --build .
|
|
|
|
$(UTF8PROC_MAK): $(UTF8PROC)
|
|
mkdir -p $(UTF8PROC)/build
|
|
cd $(UTF8PROC)/build \
|
|
&& cmake .. \
|
|
-DCMAKE_INSTALL_PREFIX="$(BUILD_PREBUILT_DEP)" \
|
|
-DBUILD_SHARED_LIBS=OFF
|
|
|
|
$(UTF8PROC): $(UTF8PROC_TGZ)
|
|
tar xzf $(UTF8PROC_TGZ)
|
|
|
|
$(UTF8PROC_TGZ):
|
|
curl -Lk $(UTF8PROC_URL) -o $@
|
|
|
|
####
|
|
#### Ncurses
|
|
####
|
|
ncurses: ## Download and build the ncurses libraru
|
|
$(MAKE) $(NCURSES_LIB)
|
|
|
|
$(NCURSES_LIB): $(NCURSES_A)
|
|
$(MAKE) -C $(NCURSES) install
|
|
|
|
$(NCURSES_A): $(NCURSES_MAK)
|
|
$(MAKE) -C $(NCURSES) -j4 all
|
|
|
|
$(NCURSES_MAK): $(NCURSES)
|
|
cd $(NCURSES) \
|
|
&& ./configure \
|
|
--prefix="$(BUILD_PREBUILT_DEP)" \
|
|
--without-cxx \
|
|
--without-cxx-binding \
|
|
--with-termlib \
|
|
--enable-termcap \
|
|
--enable-ext-colors \
|
|
--enable-ext-mouse \
|
|
--enable-bsdpad \
|
|
--enable-opaque-curses \
|
|
--with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo:/lib/terminfo \
|
|
--with-termpath=/etc/termcap:/usr/share/misc/termcap \
|
|
--with-fallbacks="linux,xterm,xterm-color,xterm-256color,vt100"
|
|
|
|
$(NCURSES): $(NCURSES_TGZ)
|
|
tar xzf $(NCURSES_TGZ)
|
|
|
|
$(NCURSES_TGZ):
|
|
curl -Lk $(NCURSES_URL) -o $(NCURSES_TGZ)
|
|
|
|
####
|
|
#### Libevent
|
|
####
|
|
libevent: ## Download and build libevent library
|
|
$(MAKE) $(LIBEVENT_LIB)
|
|
|
|
$(LIBEVENT_LIB): $(LIBEVENT_A)
|
|
$(MAKE) -C $(LIBEVENT) install
|
|
|
|
$(LIBEVENT_A): $(LIBEVENT_MAK)
|
|
$(MAKE) -C $(LIBEVENT) -j4 all
|
|
|
|
$(LIBEVENT_MAK): $(LIBEVENT)
|
|
cd $(LIBEVENT) \
|
|
&& ./configure \
|
|
--prefix="$(BUILD_PREBUILT_DEP)" \
|
|
--disable-openssl \
|
|
--enable-shared=no \
|
|
--enable-static=yes \
|
|
--with-pic
|
|
|
|
$(LIBEVENT): $(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 $@
|