From 5bb18b644178c4075d81eb6b85af2ecc5104d55a Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Mon, 6 Feb 2017 21:15:29 +0900 Subject: [PATCH] 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. --- src/Dockerfile.android | 40 ---------------------------------- src/Dockerfile.arch | 24 --------------------- src/Dockerfile.centos | 32 --------------------------- src/Dockerfile.ubuntu | 22 ------------------- src/Makefile | 49 +++--------------------------------------- 5 files changed, 3 insertions(+), 164 deletions(-) delete mode 100644 src/Dockerfile.android delete mode 100644 src/Dockerfile.arch delete mode 100644 src/Dockerfile.centos delete mode 100644 src/Dockerfile.ubuntu diff --git a/src/Dockerfile.android b/src/Dockerfile.android deleted file mode 100644 index d6a0ba4..0000000 --- a/src/Dockerfile.android +++ /dev/null @@ -1,40 +0,0 @@ -FROM ubuntu:14.04 -MAINTAINER Junegunn Choi - -# 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 diff --git a/src/Dockerfile.arch b/src/Dockerfile.arch deleted file mode 100644 index 77df9e4..0000000 --- a/src/Dockerfile.arch +++ /dev/null @@ -1,24 +0,0 @@ -FROM base/archlinux:2014.07.03 -MAINTAINER Junegunn Choi - -# 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 - diff --git a/src/Dockerfile.centos b/src/Dockerfile.centos deleted file mode 100644 index 4ae27b7..0000000 --- a/src/Dockerfile.centos +++ /dev/null @@ -1,32 +0,0 @@ -FROM centos:centos6 -MAINTAINER Junegunn Choi - -# 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 - diff --git a/src/Dockerfile.ubuntu b/src/Dockerfile.ubuntu deleted file mode 100644 index b0ae875..0000000 --- a/src/Dockerfile.ubuntu +++ /dev/null @@ -1,22 +0,0 @@ -FROM ubuntu:14.04 -MAINTAINER Junegunn Choi - -# 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 - diff --git a/src/Makefile b/src/Makefile index 102229b..b8c3090 100644 --- a/src/Makefile +++ b/src/Makefile @@ -4,6 +4,8 @@ ifeq ($(UNAME_S),Darwin) GOOS := darwin else ifeq ($(UNAME_S),Linux) GOOS := linux +else +$(error "$$GOOS is not defined.") endif endif @@ -12,7 +14,6 @@ ROOTDIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) BINDIR := $(shell dirname $(ROOTDIR))/bin GOPATH := $(shell dirname $(ROOTDIR))/gopath SRCDIR := $(GOPATH)/src/github.com/junegunn/fzf/src -DOCKEROPTS := -i -t -v $(ROOTDIR):/fzf/src BINARY32 := fzf-$(GOOS)_386 BINARY64 := fzf-$(GOOS)_amd64 BINARYARM5 := fzf-$(GOOS)_arm5 @@ -86,12 +87,6 @@ deps: $(SRCDIR) $(SOURCES) cd $(SRCDIR) && go get -tags "$(TAGS)" ./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 SHELL=/bin/sh GOOS= go test -v -tags "$(TAGS)" ./... @@ -129,42 +124,4 @@ $(BINDIR)/fzf: fzf/$(BINARY) | $(BINDIR) $(BINDIR): mkdir -p $@ -docker-arch: - 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 +.PHONY: all deps release release-all test install uninstall clean