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)
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
GOOS := darwin
|
||||
LDFLAGS :=
|
||||
ifdef STATIC
|
||||
$(error Static linking not possible on OS X)
|
||||
endif
|
||||
else ifeq ($(UNAME_S),Linux)
|
||||
GOOS := linux
|
||||
ifdef STATIC
|
||||
SUFFIX := -static
|
||||
LDFLAGS := --ldflags '-extldflags "-static -ltinfo -lgpm"'
|
||||
else
|
||||
SUFFIX :=
|
||||
LDFLAGS :=
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(shell uname -m),x86_64)
|
||||
@ -27,11 +16,11 @@ endif
|
||||
SOURCES := $(wildcard *.go */*.go)
|
||||
BINDIR := ../bin
|
||||
|
||||
BINARY32 := fzf-$(GOOS)_386$(SUFFIX)
|
||||
BINARY64 := fzf-$(GOOS)_amd64$(SUFFIX)
|
||||
BINARY32 := fzf-$(GOOS)_386
|
||||
BINARY64 := fzf-$(GOOS)_amd64
|
||||
VERSION = $(shell fzf/$(BINARY64) --version)
|
||||
RELEASE32 = fzf-$(VERSION)-$(GOOS)_386$(SUFFIX)
|
||||
RELEASE64 = fzf-$(VERSION)-$(GOOS)_amd64$(SUFFIX)
|
||||
RELEASE32 = fzf-$(VERSION)-$(GOOS)_386
|
||||
RELEASE64 = fzf-$(VERSION)-$(GOOS)_amd64
|
||||
|
||||
all: release
|
||||
|
||||
@ -40,11 +29,7 @@ release: build
|
||||
cd fzf && cp $(BINARY64) $(RELEASE64) && tar -czf $(RELEASE64).tgz $(RELEASE64) && \
|
||||
rm -f $(RELEASE32) $(RELEASE64)
|
||||
|
||||
ifndef STATIC
|
||||
build: test fzf/$(BINARY32) fzf/$(BINARY64)
|
||||
else
|
||||
build: test fzf/$(BINARY64)
|
||||
endif
|
||||
|
||||
test:
|
||||
go get
|
||||
@ -85,13 +70,9 @@ ubuntu: docker-ubuntu
|
||||
docker run -i -t -v $(GOPATH):/go junegunn/$@-sandbox \
|
||||
sh -c 'cd /go/src/github.com/junegunn/fzf/src; /bin/bash'
|
||||
|
||||
linux: docker-arch
|
||||
docker run -i -t -v $(GOPATH):/go junegunn/arch-sandbox \
|
||||
linux: docker-ubuntu
|
||||
docker run -i -t -v $(GOPATH):/go junegunn/ubuntu-sandbox \
|
||||
/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 \
|
||||
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 <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"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user