thrift/contrib/debian/rules
Roger Meier 38b7d07072 THRIFT-1421 Debian Packages can not be built
Patch: Brandon Arp
Fix: ruby build

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1212324 13f79535-47bb-0310-9956-ffa450edef68
2011-12-09 10:36:05 +00:00

208 lines
5.4 KiB
Makefile
Executable File

#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
#
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
#
# Modified to make a template file for a multi-binary package with separated
# build-arch and build-indep targets by Bill Allombert 2001
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This has to be exported to make some magic below work.
export DH_OPTIONS
PYVERS := $(shell pyversions -r)
configure: configure-stamp
configure-stamp:
dh_testdir
# Add here commands to configure the package.
if [ -f bootstrap.sh ]; then $(CURDIR)/bootstrap.sh; fi
$(CURDIR)/configure --prefix=/usr --with-c_glib --without-erlang
touch configure-stamp
#Architecture
build: build-arch build-indep
# Tests disabled
# $(MAKE) -C test check
build-arch: build-arch-stamp
build-arch-stamp: configure-stamp
# Compile compiler
$(MAKE) -C $(CURDIR)/compiler/cpp
# Compile C++ library
$(MAKE) -C $(CURDIR)/lib/cpp
# Compile C (glib) library
$(MAKE) -C $(CURDIR)/lib/c_glib
# Python library
cd $(CURDIR)/lib/py && \
for py in $(PYVERS); do \
$$py setup.py build; \
$$py-dbg setup.py build; \
done
# PHP
cd $(CURDIR)/lib/php/src/ext/thrift_protocol && \
phpize && \
./configure && make
touch $@
build-indep: build-indep-stamp
build-indep-stamp: configure-stamp
# Add here commands to compile the indep part of the package.
#$(MAKE) doc
# Java
cd $(CURDIR)/lib/java && \
ant
# C#
$(MAKE) -C $(CURDIR)/lib/csharp
# Ruby
$(MAKE) -C $(CURDIR)/lib/rb
# Perl
$(MAKE) -C $(CURDIR)/lib/perl INSTALLDIRS=vendor
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-arch-stamp build-indep-stamp configure-stamp
# Add here commands to clean up after the build process.
-$(MAKE) clean
dh_clean
install: install-indep install-arch
install-indep:
dh_testdir
dh_testroot
dh_clean -k -i
dh_installdirs -i
# Add here commands to install the indep part of the package into
# debian/<package>-doc.
#INSTALLDOC#
# Java
mkdir -p $(CURDIR)/debian/libthrift-java/usr/share/java/ && \
cp $(CURDIR)/lib/java/build/libthrift*.jar \
$(CURDIR)/debian/libthrift-java/usr/share/java/
# Ruby
mkdir -p $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.8 && \
cp $(CURDIR)/lib/rb/lib/thrift.rb \
$(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.8
cp -r $(CURDIR)/lib/rb/lib/thrift \
$(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.8
mkdir -p $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 && \
cp $(CURDIR)/lib/rb/lib/thrift.rb \
$(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1
cp -r $(CURDIR)/lib/rb/lib/thrift \
$(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1
# C#
mkdir -p $(CURDIR)/debian/libthrift-cil/usr/lib/cli/thrift/ && \
cp $(CURDIR)/lib/csharp/Thrift.dll \
$(CURDIR)/debian/libthrift-cil/usr/lib/cli/thrift/Thrift.dll
# Perl
$(MAKE) -C $(CURDIR)/lib/perl install DESTDIR=$(CURDIR)/debian/libthrift-perl/usr
dh_install -i
install-arch:
dh_testdir
dh_testroot
dh_clean -k -s
dh_installdirs -s
# Add here commands to install the arch part of the package into
# debian/tmp.
#$(MAKE) DESTDIR=$(CURDIR)/debian/thrift install
# Compiler
mkdir -p $(CURDIR)/debian/thrift-compiler/usr/bin && \
cp $(CURDIR)/compiler/cpp/thrift \
$(CURDIR)/debian/thrift-compiler/usr/bin/thrift && \
rmdir $(CURDIR)/debian/thrift-compiler/usr/sbin
# Python
cd $(CURDIR)/lib/py && \
for py in $(PYVERS); do \
$$py setup.py install --no-compile --root=$(CURDIR)/debian/python-thrift; \
$$py-dbg setup.py install --no-compile --root=$(CURDIR)/debian/python-thrift-dbg; \
done
find $(CURDIR)/debian/python-thrift-dbg -name "*.pyc" -print0 | xargs -0 rm -f
find $(CURDIR)/debian/python-thrift-dbg -name "*.py" -print0 | xargs -0 rm -f
find $(CURDIR)/debian/python-thrift-dbg -name "*.egg-info" -print0 | xargs -0 rm -rf
find $(CURDIR)/debian/python-thrift-dbg -depth -type d -empty -exec rmdir {} \;
# PHP
mkdir -p $(CURDIR)/debian/php5-thrift
cd $(CURDIR)/lib/php && \
$(MAKE) DESTDIR=$(CURDIR)/debian/php5-thrift install
# C++ and C (glib)
mkdir -p $(CURDIR)/debian/tmp; \
cd $(CURDIR)/lib/cpp && \
make DESTDIR=$(CURDIR)/debian/tmp install
cd $(CURDIR)/lib/c_glib && \
make DESTDIR=$(CURDIR)/debian/tmp install
dh_install --sourcedir=debian/tmp -s
# Must not depend on anything. This is to be called by
# binary-arch/binary-indep
# in another 'make' thread.
binary-common:
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_strip -Npython-thrift-dbg -Nthrift-compiler -Nlibthrift0 --dbg=python-thrift-dbg
dh_strip -Npython-thrift-dbg
dh_compress
dh_fixperms
dh_pysupport
dh_makeshlibs
dh_installdeb
dh_perl
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture independant packages using the common target.
binary-indep: build-indep install-indep
$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
echo "php:Depends=phpapi-$(php-config5 --phpapi)" > debian/substvars
$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
binary: binary-arch binary-indep
.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure