mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2024-11-26 06:46:35 +00:00
Build partially-static binary for linux (#350)
Instead of building a separate statically-linked binary, build partially-static binary that only contains ncurses to avoid compatibility issues in libc.
This commit is contained in:
parent
9398878048
commit
6bc3fe6e67
33
src/Makefile
33
src/Makefile
@ -5,19 +5,8 @@ endif
|
|||||||
UNAME_S := $(shell uname -s)
|
UNAME_S := $(shell uname -s)
|
||||||
ifeq ($(UNAME_S),Darwin)
|
ifeq ($(UNAME_S),Darwin)
|
||||||
GOOS := darwin
|
GOOS := darwin
|
||||||
LDFLAGS :=
|
|
||||||
ifdef STATIC
|
|
||||||
$(error Static linking not possible on OS X)
|
|
||||||
endif
|
|
||||||
else ifeq ($(UNAME_S),Linux)
|
else ifeq ($(UNAME_S),Linux)
|
||||||
GOOS := linux
|
GOOS := linux
|
||||||
ifdef STATIC
|
|
||||||
SUFFIX := -static
|
|
||||||
LDFLAGS := --ldflags '-extldflags "-static -ltinfo -lgpm"'
|
|
||||||
else
|
|
||||||
SUFFIX :=
|
|
||||||
LDFLAGS :=
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(shell uname -m),x86_64)
|
ifneq ($(shell uname -m),x86_64)
|
||||||
@ -27,11 +16,11 @@ endif
|
|||||||
SOURCES := $(wildcard *.go */*.go)
|
SOURCES := $(wildcard *.go */*.go)
|
||||||
BINDIR := ../bin
|
BINDIR := ../bin
|
||||||
|
|
||||||
BINARY32 := fzf-$(GOOS)_386$(SUFFIX)
|
BINARY32 := fzf-$(GOOS)_386
|
||||||
BINARY64 := fzf-$(GOOS)_amd64$(SUFFIX)
|
BINARY64 := fzf-$(GOOS)_amd64
|
||||||
VERSION = $(shell fzf/$(BINARY64) --version)
|
VERSION = $(shell fzf/$(BINARY64) --version)
|
||||||
RELEASE32 = fzf-$(VERSION)-$(GOOS)_386$(SUFFIX)
|
RELEASE32 = fzf-$(VERSION)-$(GOOS)_386
|
||||||
RELEASE64 = fzf-$(VERSION)-$(GOOS)_amd64$(SUFFIX)
|
RELEASE64 = fzf-$(VERSION)-$(GOOS)_amd64
|
||||||
|
|
||||||
all: release
|
all: release
|
||||||
|
|
||||||
@ -40,11 +29,7 @@ release: build
|
|||||||
cd fzf && cp $(BINARY64) $(RELEASE64) && tar -czf $(RELEASE64).tgz $(RELEASE64) && \
|
cd fzf && cp $(BINARY64) $(RELEASE64) && tar -czf $(RELEASE64).tgz $(RELEASE64) && \
|
||||||
rm -f $(RELEASE32) $(RELEASE64)
|
rm -f $(RELEASE32) $(RELEASE64)
|
||||||
|
|
||||||
ifndef STATIC
|
|
||||||
build: test fzf/$(BINARY32) fzf/$(BINARY64)
|
build: test fzf/$(BINARY32) fzf/$(BINARY64)
|
||||||
else
|
|
||||||
build: test fzf/$(BINARY64)
|
|
||||||
endif
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
go get
|
go get
|
||||||
@ -85,13 +70,9 @@ ubuntu: docker-ubuntu
|
|||||||
docker run -i -t -v $(GOPATH):/go junegunn/$@-sandbox \
|
docker run -i -t -v $(GOPATH):/go junegunn/$@-sandbox \
|
||||||
sh -c 'cd /go/src/github.com/junegunn/fzf/src; /bin/bash'
|
sh -c 'cd /go/src/github.com/junegunn/fzf/src; /bin/bash'
|
||||||
|
|
||||||
linux: docker-arch
|
linux: docker-ubuntu
|
||||||
docker run -i -t -v $(GOPATH):/go junegunn/arch-sandbox \
|
docker run -i -t -v $(GOPATH):/go junegunn/ubuntu-sandbox \
|
||||||
/bin/bash -ci 'cd /go/src/github.com/junegunn/fzf/src; make'
|
/bin/bash -ci 'cd /go/src/github.com/junegunn/fzf/src; make'
|
||||||
|
|
||||||
linux-static: docker-ubuntu
|
|
||||||
docker run -i -t -v $(GOPATH):/go junegunn/ubuntu-sandbox \
|
|
||||||
/bin/bash -ci 'cd /go/src/github.com/junegunn/fzf/src; make STATIC=1'
|
|
||||||
|
|
||||||
.PHONY: all build release test install uninstall clean docker \
|
.PHONY: all build release test install uninstall clean docker \
|
||||||
linux linux-static arch ubuntu docker-arch docker-ubuntu
|
linux arch ubuntu docker-arch docker-ubuntu
|
||||||
|
@ -3,7 +3,9 @@ package curses
|
|||||||
/*
|
/*
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#cgo LDFLAGS: -lncurses
|
#cgo darwin LDFLAGS: -lncurses
|
||||||
|
#cgo linux,386 LDFLAGS: -lncurses
|
||||||
|
#cgo linux,amd64 LDFLAGS: -l:libncurses.a -l:libtinfo.a -l:libgpm.a
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user