Skip to content

Instantly share code, notes, and snippets.

@ingenthr
Created January 21, 2012 00:17
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ingenthr/1650394 to your computer and use it in GitHub Desktop.
Save ingenthr/1650394 to your computer and use it in GitHub Desktop.
Updating toolchain on CentOS
#
# 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
#
# 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 \
${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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment