Needs tweaking

This commit is contained in:
2020-08-27 13:13:43 -07:00
parent 3f3223934c
commit bf3336ce3e
3 changed files with 100 additions and 59 deletions

2
.gitignore vendored
View File

@@ -2,3 +2,5 @@
/libevent-* /libevent-*
/ncurses-* /ncurses-*
/utf8proc-* /utf8proc-*
/musl-*
/tmux-*

157
Makefile
View File

@@ -4,6 +4,7 @@ TMUX_VERSION := 3.1b
NCURSES_VERSION := 6.2 NCURSES_VERSION := 6.2
LIBEVENT_VERSION := 2.1.10-stable LIBEVENT_VERSION := 2.1.10-stable
UTF8PROC_VERSION := 2.4.0 UTF8PROC_VERSION := 2.4.0
MUSL_VERSION := 1.2.1
BUILD_DIR = $(CURDIR) BUILD_DIR = $(CURDIR)
BUILD_PREBUILT_DEP = $(BUILD_DIR)/prebuilt/dep BUILD_PREBUILT_DEP = $(BUILD_DIR)/prebuilt/dep
@@ -13,25 +14,26 @@ LIBEVENT = libevent-$(LIBEVENT_VERSION)
LIBEVENT_TGZ = $(LIBEVENT).tar.gz LIBEVENT_TGZ = $(LIBEVENT).tar.gz
LIBEVENT_URL = https://github.com/libevent/libevent/releases/download/release-$(LIBEVENT_VERSION)/$(LIBEVENT_TGZ) LIBEVENT_URL = https://github.com/libevent/libevent/releases/download/release-$(LIBEVENT_VERSION)/$(LIBEVENT_TGZ)
LIBEVENT_LIB = $(BUILD_PREBUILT_DEP)/lib/libevent.a LIBEVENT_LIB = $(BUILD_PREBUILT_DEP)/lib/libevent.a
LIBEVENT_MAK = $(LIBEVENT)/Makefile
LIBEVENT_A = $(LIBEVENT)/.libs/libevent.a
NCURSES = ncurses-$(NCURSES_VERSION) NCURSES = ncurses-$(NCURSES_VERSION)
NCURSES_TGZ = $(NCURSES).tar.gz NCURSES_TGZ = $(NCURSES).tar.gz
NCURSES_URL = https://invisible-mirror.net/archives/ncurses/$(NCURSES_TGZ) NCURSES_URL = https://invisible-mirror.net/archives/ncurses/$(NCURSES_TGZ)
NCURSES_LIB = $(BUILD_PREBUILT_DEP)/lib/libncurses.a NCURSES_LIB = $(BUILD_PREBUILT_DEP)/lib/libncurses.a
NCURSES_MAK = $(NCURSES)/Makefile
NCURSES_A = $(NCURSES)/lib/libncurses.a
UTF8PROC = utf8proc-$(UTF8PROC_VERSION) UTF8PROC = utf8proc-$(UTF8PROC_VERSION)
UTF8PROC_TGZ = $(UTF8PROC).tar.gz UTF8PROC_TGZ = $(UTF8PROC).tar.gz
UTF8PROC_URL = https://github.com/JuliaLang/utf8proc/archive/v$(UTF8PROC_VERSION).tar.gz UTF8PROC_URL = https://github.com/JuliaLang/utf8proc/archive/v$(UTF8PROC_VERSION).tar.gz
UTF8PROC_LIB = $(BUILD_PREBUILT_DEP)/lib/utf8proc.a 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 MUSL = musl-$(MUSL_VERSION)
MUSL_TGZ = $(MUSL).tar.gz
MUSL_URL = https://musl.libc.org/releases/$(MUSL_TGZ)
MUSL_GCC = $(BUILD_PREBUILT_DEP)/bin/musl-gcc
TMUX = tmux-$(TMUX_VERSION)
TMUX_TGZ = $(TMUX).tar.gz
TMUX_DIST := $(TMUX).musl-bin.tar.gz
TMUX_URL = https://github.com/tmux/tmux/releases/download/$(TMUX_VERSION)/$(TMUX_TGZ)
help: ## Display this help message help: ## Display this help message
@echo "Tmux: v$(TMUX_VERSION)" @echo "Tmux: v$(TMUX_VERSION)"
@@ -44,31 +46,95 @@ help: ## Display this help message
$(lastword $(MAKEFILE_LIST)) $(lastword $(MAKEFILE_LIST))
clean: ## Remove all build and dist directories clean: ## Remove all build and dist directories
-rm -rf prebuilt $(LIBEVENT) $(NCURSES) $(UTF8PROC) -rm -rf prebuilt $(LIBEVENT) $(NCURSES) $(UTF8PROC) $(MUSL) $(TMUX)
####
#### musl-libc
####
musl: ## Build musl static library
$(MAKE) $(BUILD_PREBUILT_DEP) $(MUSL_GCC)
$(MUSL_GCC): $(MUSL)
cd $(MUSL) \
&& ./configure \
--prefix="$(BUILD_PREBUILT_DEP)" \
--enable-wrapper \
--enable-static \
--disable-shared \
--enable-optimize \
&& make -j4 \
&& make install
$(MUSL): $(MUSL_TGZ)
tar xzf $<
$(MUSL_TGZ):
curl -Lk $(MUSL_URL) -o $@
####
#### Libevent
####
libevent: ## Download and build libevent library
$(MAKE) $(MUSL_GCC) $(LIBEVENT_LIB)
$(LIBEVENT_LIB): $(LIBEVENT)
cd $(LIBEVENT) \
&& ./configure \
--prefix="$(BUILD_PREBUILT_DEP)" \
--disable-openssl \
--enable-shared=no \
--enable-static=yes \
--with-pic
$(MAKE) -C $(LIBEVENT) -j4
$(MAKE) -C $(LIBEVENT) install
$(LIBEVENT): $(LIBEVENT_TGZ)
tar xzf $<
$(LIBEVENT_TGZ):
curl -Lk $(LIBEVENT_URL) -o $@
####
#### tmux
####
tmux: ## Build static tmux archive tmux: ## Build static tmux archive
$(MAKE) $(TMUX) $(MAKE) $(TMUX_DIST)
$(TMUX_DIST): $(TMUX)
cd $(TMUX) && \
PKG_CONFIG_PATH="$(BUILD_PREBUILT_DEP)/lib/pkgconfig" \
LIBNCURSES_CFLAGS="-I$(BUILD_PREBUILT_DEP)/include/ncurses" \
LIBNCURSES_LIBS="-L$(BUILD_PREBUILT_DEP)/lib" \
LIBEVENT_CFLAGS="-I$(BUILD_PREBUILT_DEP)/include" \
LIBEVENT_LIBS="-L$(BUILD_PREBUILT_DEP)/lib -levent" \
./configure \
--prefix="$(BUILD_PREBUILT_TMUX)" \
--enable-static \
--enable-utf8proc
$(MAKE) -C $(TMUX) -j4
$(TMUX): $(TMUX_TGZ)
tar xzf $<
$(TMUX_TGZ):
curl -Lk $(TMUX_URL) -o $@
#### ####
#### UTF8Proc #### UTF8Proc
#### ####
utf8proc: ## Download and build the UTF8Proc library utf8proc: ## Download and build the UTF8Proc library
$(MAKE) $(UTF8PROC_LIB) $(MAKE) $(BUILD_PREBUILT_DEP) $(UTF8PROC_LIB)
$(UTF8PROC_LIB): $(UTF8PROC_A) $(BUILD_PREBUILT_DEP) $(UTF8PROC_LIB): $(UTF8PROC)
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 mkdir -p $(UTF8PROC)/build
cd $(UTF8PROC)/build \ cd $(UTF8PROC)/build \
&& cmake .. \ && cmake .. \
-DCMAKE_INSTALL_PREFIX="$(BUILD_PREBUILT_DEP)" \ -DCMAKE_INSTALL_PREFIX="$(BUILD_PREBUILT_DEP)" \
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
cd $(UTF8PROC)/build \
&& cmake --build .
cp -v $(UTF8PROC)/build/*.a $(BUILD_PREBUILT_DEP)/lib
cp -v $(UTF8PROC)/*.h $(BUILD_PREBUILT_DEP)/include
$(UTF8PROC): $(UTF8PROC_TGZ) $(UTF8PROC): $(UTF8PROC_TGZ)
tar xzf $(UTF8PROC_TGZ) tar xzf $(UTF8PROC_TGZ)
@@ -80,15 +146,9 @@ $(UTF8PROC_TGZ):
#### Ncurses #### Ncurses
#### ####
ncurses: ## Download and build the ncurses libraru ncurses: ## Download and build the ncurses libraru
$(MAKE) $(NCURSES_LIB) $(MAKE) $(BUILD_PREBUILT_DEP) $(NCURSES_LIB)
$(NCURSES_LIB): $(NCURSES_A) $(NCURSES_LIB): $(NCURSES)
$(MAKE) -C $(NCURSES) install
$(NCURSES_A): $(NCURSES_MAK)
$(MAKE) -C $(NCURSES) -j4 all
$(NCURSES_MAK): $(NCURSES)
cd $(NCURSES) \ cd $(NCURSES) \
&& ./configure \ && ./configure \
--prefix="$(BUILD_PREBUILT_DEP)" \ --prefix="$(BUILD_PREBUILT_DEP)" \
@@ -103,42 +163,21 @@ $(NCURSES_MAK): $(NCURSES)
--with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo:/lib/terminfo \ --with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo:/lib/terminfo \
--with-termpath=/etc/termcap:/usr/share/misc/termcap \ --with-termpath=/etc/termcap:/usr/share/misc/termcap \
--with-fallbacks="linux,xterm,xterm-color,xterm-256color,vt100" --with-fallbacks="linux,xterm,xterm-color,xterm-256color,vt100"
$(MAKE) -C $(NCURSES) -j4
$(MAKE) -C $(NCURSES) install
$(NCURSES): $(NCURSES_TGZ) $(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 $< tar xzf $<
$(LIBEVENT_TGZ): $(NCURSES_TGZ):
curl -Lk $(LIBEVENT_URL) -o $@ curl -Lk $(NCURSES_URL) -o $@
$(BUILD_PREBUILT_DEP): $(BUILD_DIR) ####
#### prebuilt dirs
####
$(BUILD_PREBUILT_DEP):
mkdir -pv $@ mkdir -pv $@
$(BUILD_PREBUILT_TMUX): $(BUILD_DIR) $(BUILD_PREBUILT_TMUX):
mkdir -pv $@ mkdir -pv $@

0
build-tmux.sh Normal file → Executable file
View File