Skip to content

Instantly share code, notes, and snippets.

@ingenthr
Created January 21, 2012 00:17

Revisions

  1. ingenthr revised this gist Jan 21, 2012. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions Makefile
    Original file line number Diff line number Diff line change
    @@ -9,6 +9,11 @@
    #
    # Set your path to /opt/local/bin:$PATH, then run make build-compile-env
    #
    # To update CA certs:
    # mkdir -p /root/backup && cp /etc/pki/tls/certs/ca-bundle.crt \
    # /root/backup/ && curl http://curl.haxx.se/ca/cacert.pem -o \
    # /etc/pki/tls/certs/ca-bundle.crt
    #
    PREFIX=/opt/local

    dirs: ${HOME}/rpmbuild/BUILD \
  2. ingenthr created this gist Jan 21, 2012.
    127 changes: 127 additions & 0 deletions Makefile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,127 @@
    #
    # This makefile set up all of the build dependencies we need for building
    # the membase server on RedHat Linux
    #
    # For questions please contact trond@membase.com
    #
    # Copyright (c) 2010, Membase, Inc.
    # All rights reserved.
    #
    # Set your path to /opt/local/bin:$PATH, then run make build-compile-env
    #
    PREFIX=/opt/local

    dirs: ${HOME}/rpmbuild/BUILD \
    ${HOME}/rpmbuild/RPMS/i386 \
    ${HOME}/rpmbuild/RPMS/x86_64 \
    ${HOME}/rpmbuild/SOURCES \

    build-compile-env: ${PREFIX} \
    ${HOME}/.rpmmacros \
    /usr/bin/wget \
    .deps \
    ${PREFIX}/bin/autoconf \
    ${PREFIX}/bin/automake \
    ${PREFIX}/bin/libtool \
    ${PREFIX}/bin/git \
    # ${PREFIX}/bin/erl \
    # ${PREFIX}/bin/ruby \
    # ${PREFIX}/bin/gem \
    # ${PREFIX}/bin/rake \
    # ${PREFIX}/bin/sprocketize \
    ${HOME}/rpmbuild/BUILD \
    ${HOME}/rpmbuild/RPMS/i386 \
    ${HOME}/rpmbuild/RPMS/x86_64 \
    ${HOME}/rpmbuild/SOURCES \
    .deps/autoconf-2.65.tar.gz:
    (cd .deps; wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.65.tar.gz)
    .deps/automake-1.11.tar.gz:
    (cd .deps; wget http://ftp.gnu.org/gnu/automake/automake-1.11.tar.gz)
    .deps/libtool-2.2.6b.tar.gz:
    (cd .deps; wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz)
    .deps/git-1.7.8.3.tar.gz:
    (cd .deps; wget http://git-core.googlecode.com/files/git-1.7.8.3.tar.gz)
    .deps/libevent-1.4.13-stable.tar.gz:
    (cd .deps; wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz)
    .deps/otp_src_R13B03.tar.gz:
    (cd .deps; wget http://ftp.sunet.se/pub/lang/erlang/download/otp_src_R13B03.tar.gz)

    ${PREFIX}:; -@sudo mkdir ${PREFIX} && sudo chown `whoami` ${PREFIX}
    .deps:; -@mkdir $@
    ${HOME}/rpmbuild/BUILD:; -@mkdir -p $@
    ${HOME}/rpmbuild/RPMS/i386:; -@mkdir -p $@
    ${HOME}/rpmbuild/RPMS/x86_64:; -@mkdir -p $@
    ${HOME}/rpmbuild/SOURCES:; -@mkdir -p $@
    ${HOME}/rpmbuild/SRPMS:; -@mkdir -p $@

    ${HOME}/.rpmmacros:
    touch ${HOME}/.rpmmacros
    grep -v '%_topdir %(echo $$HOME)/rpmbuild' ${HOME}/.rpmmacros > /tmp/rpmmacros.tmp || /bin/true
    echo '%_topdir %(echo $$HOME)/rpmbuild' >> /tmp/rpmmacros.tmp
    mv /tmp/rpmmacros.tmp ${HOME}/.rpmmacros

    ${HOME}/rpmbuild/SOURCES/otp_src_R13B03.tar.gz: .deps/otp_src_R13B03.tar.gz
    cp .deps/otp_src_R13B03.tar.gz ${HOME}/rpmbuild/SOURCES

    erlang.rpm ${HOME}/rpmbuild/RPMS/x86_64/erlang-13.3-1.x86_64.rpm ${HOME}/rpmbuild/RPMS/i386/erlang-13.3-1.i386.rpm: ${HOME}/rpmbuild/SOURCES/otp_src_R13B03.tar.gz
    rpmbuild -bb RedHat/erlang.spec

    /usr/bin/wget:
    sudo yum install wget

    ${PREFIX}/bin/erl: .deps/otp_src_R13B03.tar.gz
    gtar xfz .deps/otp_src_R13B03.tar.gz
    @(cd otp_src_R13B03; ./configure --prefix=${PREFIX}/erlang && ${MAKE} all install)
    ln -s ../erlang/bin/erl ${PREFIX}/bin/erl
    ln -s ../erlang/bin/erlc ${PREFIX}/bin/erlc
    ln -s ../erlang/bin/epmd ${PREFIX}/bin/epmd
    ln -s ../erlang/bin/run_erl ${PREFIX}/bin/run_erl
    ln -s ../erlang/bin/to_erl ${PREFIX}/bin/to_erl
    ln -s ../erlang/bin/dialyzer ${PREFIX}/bin/dialyzer
    ln -s ../erlang/bin/typer ${PREFIX}/bin/typer
    ln -s ../erlang/bin/escript ${PREFIX}/bin/escript
    rm -rf otp_src_R13B03

    ${PREFIX}/bin/automake: .deps/automake-1.11.tar.gz
    gtar xfz .deps/automake-1.11.tar.gz
    @(cd automake-1.11; ./configure --prefix=${PREFIX} && ${MAKE} all install)
    rm -rf automake-1.11

    ${PREFIX}/bin/autoconf: .deps/autoconf-2.65.tar.gz
    gtar xfz .deps/autoconf-2.65.tar.gz
    @(cd autoconf-2.65; ./configure --prefix=${PREFIX} && ${MAKE} all install)
    rm -rf autoconf-2.65

    ${PREFIX}/bin/libtool: .deps/libtool-2.2.6b.tar.gz
    gtar xfz .deps/libtool-2.2.6b.tar.gz
    @(cd libtool-2.2.6b; ./configure --prefix=${PREFIX} && ${MAKE} all install)
    rm -rf libtool-2.2.6b

    /usr/include/zlib.h:
    sudo yum install zlib-devel

    ${PREFIX}/bin/git: .deps/git-1.7.8.3.tar.gz /usr/include/zlib.h
    gtar xfz .deps/git-1.7.8.3.tar.gz
    @(cd git-1.7.8.3; ./configure --prefix=${PREFIX} && ${MAKE} all install)
    rm -rf git-1.7.8.3

    .deps/ruby-1.8.7.tar.gz: .deps
    (cd .deps && wget http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz)

    .deps/rubygems-1.3.7.tgz: .deps
    (cd .deps && wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz)

    ${PREFIX}/bin/ruby: .deps/ruby-1.8.7.tar.gz
    gtar xfz .deps/ruby-1.8.7.tar.gz
    (cd ruby-1.8.7; ./configure --prefix=${PREFIX} && ${MAKE} all install)

    ${PREFIX}/bin/gem: .deps/rubygems-1.3.7.tgz ${PREFIX}/bin/ruby
    gtar xfz .deps/rubygems-1.3.7.tgz
    (cd rubygems-1.3.7; ${PREFIX}/bin/ruby setup.rb)

    ${PREFIX}/bin/rake: ${PREFIX}/bin/gem
    ${PREFIX}/bin/gem install rake

    ${PREFIX}/bin/sprocketize: ${PREFIX}/bin/gem
    ${PREFIX}/bin/gem install sprockets