.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 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) tmux: ## Build static tmux archive $(MAKE) $(TMUX) #### #### 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 $@