mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2024-11-16 10:15:09 +00:00
Remove Dockerfiles and clean up Makefile
Due to the recent removal of ncurses dependency, we can cross-compile binaries for different platforms without virtual machines.
This commit is contained in:
parent
876c233a26
commit
5bb18b6441
@ -1,40 +0,0 @@
|
|||||||
FROM ubuntu:14.04
|
|
||||||
MAINTAINER Junegunn Choi <junegunn.c@gmail.com>
|
|
||||||
|
|
||||||
# apt-get
|
|
||||||
RUN apt-get update && apt-get -y upgrade && \
|
|
||||||
apt-get install -y --force-yes git curl build-essential
|
|
||||||
|
|
||||||
# Install Go 1.4
|
|
||||||
RUN cd / && curl \
|
|
||||||
https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | \
|
|
||||||
tar -xz && mv go go1.4 && \
|
|
||||||
sed -i 's@#define PTHREAD_KEYS_MAX 128@@' /go1.4/src/runtime/cgo/gcc_android_arm.c
|
|
||||||
|
|
||||||
ENV GOROOT /go1.4
|
|
||||||
ENV PATH /go1.4/bin:$PATH
|
|
||||||
|
|
||||||
RUN cd / && \
|
|
||||||
curl -O http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin && \
|
|
||||||
chmod 755 /android-ndk* && /android-ndk-r10e-linux-x86_64.bin && \
|
|
||||||
mv android-ndk-r10e /android-ndk
|
|
||||||
|
|
||||||
RUN cd /android-ndk && bash ./build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=/ndk --arch=arm
|
|
||||||
|
|
||||||
ENV NDK_CC /ndk/bin/arm-linux-androideabi-gcc
|
|
||||||
|
|
||||||
RUN cd $GOROOT/src && \
|
|
||||||
CC_FOR_TARGET=$NDK_CC GOOS=android GOARCH=arm GOARM=7 ./make.bash
|
|
||||||
|
|
||||||
RUN cd / && curl \
|
|
||||||
http://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz | \
|
|
||||||
tar -xz && cd /ncurses-5.9 && \
|
|
||||||
./configure CC=$NDK_CC CFLAGS="-fPIE -march=armv7-a -mfpu=neon -mhard-float -Wl,--no-warn-mismatch" LDFLAGS="-march=armv7-a -Wl,--no-warn-mismatch" --host=arm-linux --enable-overwrite --enable-const --without-cxx-binding --without-shared --without-debug --enable-widec --enable-ext-colors --enable-ext-mouse --enable-pc-files --with-pkg-config-libdir=$PKG_CONFIG_LIBDIR --without-manpages --without-ada --disable-shared --without-tests --prefix=/ndk/sysroot/usr --with-default-terminfo-dirs=/usr/share/terminfo --with-terminfo-dirs=/usr/share/terminfo ac_cv_header_locale_h=n ac_cv_func_getpwent=no ac_cv_func_getpwnam=no ac_cv_func_getpwuid=no && \
|
|
||||||
sed -i 's@#define HAVE_LOCALE_H 1@/* #undef HAVE_LOCALE_H */@' include/ncurses_cfg.h && \
|
|
||||||
make && \
|
|
||||||
sed -i '0,/echo.*/{s/echo.*/exit 0/}' misc/run_tic.sh && \
|
|
||||||
make install && \
|
|
||||||
mv /ndk/sysroot/usr/lib/libncursesw.a /ndk/sysroot/usr/lib/libncurses.a
|
|
||||||
|
|
||||||
# Default CMD
|
|
||||||
CMD cd /fzf/src && /bin/bash
|
|
@ -1,24 +0,0 @@
|
|||||||
FROM base/archlinux:2014.07.03
|
|
||||||
MAINTAINER Junegunn Choi <junegunn.c@gmail.com>
|
|
||||||
|
|
||||||
# apt-get
|
|
||||||
RUN pacman-key --populate archlinux && pacman-key --refresh-keys
|
|
||||||
RUN pacman-db-upgrade && pacman -Syu --noconfirm base-devel git
|
|
||||||
|
|
||||||
# Install Go 1.4
|
|
||||||
RUN cd / && curl \
|
|
||||||
https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | \
|
|
||||||
tar -xz && mv go go1.4
|
|
||||||
|
|
||||||
ENV GOROOT /go1.4
|
|
||||||
ENV PATH /go1.4/bin:$PATH
|
|
||||||
|
|
||||||
# For i386 build
|
|
||||||
RUN echo '[multilib]' >> /etc/pacman.conf && \
|
|
||||||
echo 'Include = /etc/pacman.d/mirrorlist' >> /etc/pacman.conf && \
|
|
||||||
pacman-db-upgrade && yes | pacman -Sy gcc-multilib lib32-ncurses && \
|
|
||||||
cd $GOROOT/src && GOARCH=386 ./make.bash
|
|
||||||
|
|
||||||
# Default CMD
|
|
||||||
CMD cd /fzf/src && /bin/bash
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
FROM centos:centos6
|
|
||||||
MAINTAINER Junegunn Choi <junegunn.c@gmail.com>
|
|
||||||
|
|
||||||
# yum
|
|
||||||
RUN yum install -y git gcc make tar glibc-devel glibc-devel.i686 \
|
|
||||||
ncurses-devel ncurses-static ncurses-devel.i686 \
|
|
||||||
gpm-devel gpm-static libgcc.i686
|
|
||||||
|
|
||||||
# Install Go 1.4
|
|
||||||
RUN cd / && curl \
|
|
||||||
https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | \
|
|
||||||
tar -xz && mv go go1.4
|
|
||||||
|
|
||||||
# Install Go 1.7
|
|
||||||
RUN cd / && curl \
|
|
||||||
https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz | \
|
|
||||||
tar -xz && mv go go1.7
|
|
||||||
|
|
||||||
# Install RPMs for building static 32-bit binary
|
|
||||||
RUN curl ftp://ftp.pbone.net/mirror/ftp.centos.org/6.8/os/i386/Packages/ncurses-static-5.7-4.20090207.el6.i686.rpm -o rpm && rpm -i rpm && \
|
|
||||||
curl ftp://ftp.pbone.net/mirror/ftp.centos.org/6.8/os/i386/Packages/gpm-static-1.20.6-12.el6.i686.rpm -o rpm && rpm -i rpm
|
|
||||||
|
|
||||||
ENV GOROOT_BOOTSTRAP /go1.4
|
|
||||||
ENV GOROOT /go1.7
|
|
||||||
ENV PATH /go1.7/bin:$PATH
|
|
||||||
|
|
||||||
# For i386 build
|
|
||||||
RUN cd $GOROOT/src && GOARCH=386 ./make.bash
|
|
||||||
|
|
||||||
# Default CMD
|
|
||||||
CMD cd /fzf/src && /bin/bash
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
|||||||
FROM ubuntu:14.04
|
|
||||||
MAINTAINER Junegunn Choi <junegunn.c@gmail.com>
|
|
||||||
|
|
||||||
# apt-get
|
|
||||||
RUN apt-get update && apt-get -y upgrade && \
|
|
||||||
apt-get install -y --force-yes git curl build-essential libncurses-dev libgpm-dev
|
|
||||||
|
|
||||||
# Install Go 1.4
|
|
||||||
RUN cd / && curl \
|
|
||||||
https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | \
|
|
||||||
tar -xz && mv go go1.4
|
|
||||||
|
|
||||||
ENV GOROOT /go1.4
|
|
||||||
ENV PATH /go1.4/bin:$PATH
|
|
||||||
|
|
||||||
# For i386 build
|
|
||||||
RUN apt-get install -y lib32ncurses5-dev && \
|
|
||||||
cd $GOROOT/src && GOARCH=386 ./make.bash
|
|
||||||
|
|
||||||
# Default CMD
|
|
||||||
CMD cd /fzf/src && /bin/bash
|
|
||||||
|
|
49
src/Makefile
49
src/Makefile
@ -4,6 +4,8 @@ ifeq ($(UNAME_S),Darwin)
|
|||||||
GOOS := darwin
|
GOOS := darwin
|
||||||
else ifeq ($(UNAME_S),Linux)
|
else ifeq ($(UNAME_S),Linux)
|
||||||
GOOS := linux
|
GOOS := linux
|
||||||
|
else
|
||||||
|
$(error "$$GOOS is not defined.")
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -12,7 +14,6 @@ ROOTDIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
|||||||
BINDIR := $(shell dirname $(ROOTDIR))/bin
|
BINDIR := $(shell dirname $(ROOTDIR))/bin
|
||||||
GOPATH := $(shell dirname $(ROOTDIR))/gopath
|
GOPATH := $(shell dirname $(ROOTDIR))/gopath
|
||||||
SRCDIR := $(GOPATH)/src/github.com/junegunn/fzf/src
|
SRCDIR := $(GOPATH)/src/github.com/junegunn/fzf/src
|
||||||
DOCKEROPTS := -i -t -v $(ROOTDIR):/fzf/src
|
|
||||||
BINARY32 := fzf-$(GOOS)_386
|
BINARY32 := fzf-$(GOOS)_386
|
||||||
BINARY64 := fzf-$(GOOS)_amd64
|
BINARY64 := fzf-$(GOOS)_amd64
|
||||||
BINARYARM5 := fzf-$(GOOS)_arm5
|
BINARYARM5 := fzf-$(GOOS)_arm5
|
||||||
@ -86,12 +87,6 @@ deps: $(SRCDIR) $(SOURCES)
|
|||||||
cd $(SRCDIR) && go get -tags "$(TAGS)"
|
cd $(SRCDIR) && go get -tags "$(TAGS)"
|
||||||
./deps
|
./deps
|
||||||
|
|
||||||
android-build: $(SRCDIR)
|
|
||||||
cd $(SRCDIR) && GOARCH=arm GOARM=7 CGO_ENABLED=1 go get
|
|
||||||
cd $(SRCDIR)/fzf && GOARCH=arm GOARM=7 CGO_ENABLED=1 go build -a -ldflags="-w -extldflags=-pie" -o $(BINARYARM7)
|
|
||||||
cd $(SRCDIR)/fzf && cp $(BINARYARM7) $(RELEASEARM7) && tar -czf $(RELEASEARM7).tgz $(RELEASEARM7) && \
|
|
||||||
rm -f $(RELEASEARM7)
|
|
||||||
|
|
||||||
test: deps
|
test: deps
|
||||||
SHELL=/bin/sh GOOS= go test -v -tags "$(TAGS)" ./...
|
SHELL=/bin/sh GOOS= go test -v -tags "$(TAGS)" ./...
|
||||||
|
|
||||||
@ -129,42 +124,4 @@ $(BINDIR)/fzf: fzf/$(BINARY) | $(BINDIR)
|
|||||||
$(BINDIR):
|
$(BINDIR):
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
||||||
docker-arch:
|
.PHONY: all deps release release-all test install uninstall clean
|
||||||
docker build -t junegunn/arch-sandbox - < Dockerfile.arch
|
|
||||||
|
|
||||||
docker-ubuntu:
|
|
||||||
docker build -t junegunn/ubuntu-sandbox - < Dockerfile.ubuntu
|
|
||||||
|
|
||||||
docker-centos:
|
|
||||||
docker build -t junegunn/centos-sandbox - < Dockerfile.centos
|
|
||||||
|
|
||||||
docker-android:
|
|
||||||
docker build -t junegunn/android-sandbox - < Dockerfile.android
|
|
||||||
|
|
||||||
arch: docker-arch
|
|
||||||
docker run $(DOCKEROPTS) junegunn/$@-sandbox \
|
|
||||||
sh -c 'cd /fzf/src; /bin/bash'
|
|
||||||
|
|
||||||
ubuntu: docker-ubuntu
|
|
||||||
docker run $(DOCKEROPTS) junegunn/$@-sandbox \
|
|
||||||
sh -c 'cd /fzf/src; /bin/bash'
|
|
||||||
|
|
||||||
centos: docker-centos
|
|
||||||
docker run $(DOCKEROPTS) junegunn/$@-sandbox \
|
|
||||||
sh -c 'cd /fzf/src; /bin/bash'
|
|
||||||
|
|
||||||
linux: docker-centos
|
|
||||||
docker run $(DOCKEROPTS) junegunn/centos-sandbox \
|
|
||||||
/bin/bash -ci 'cd /fzf/src; make TAGS=static release'
|
|
||||||
|
|
||||||
ubuntu-android: docker-android
|
|
||||||
docker run $(DOCKEROPTS) junegunn/android-sandbox \
|
|
||||||
sh -c 'cd /fzf/src; /bin/bash'
|
|
||||||
|
|
||||||
android: docker-android
|
|
||||||
docker run $(DOCKEROPTS) junegunn/android-sandbox \
|
|
||||||
/bin/bash -ci 'cd /fzf/src; GOOS=android make android-build'
|
|
||||||
|
|
||||||
.PHONY: all deps release test install uninstall clean \
|
|
||||||
linux arch ubuntu centos docker-arch docker-ubuntu docker-centos \
|
|
||||||
android-build docker-android ubuntu-android android
|
|
||||||
|
Loading…
Reference in New Issue
Block a user