1#!/usr/bin/make -f 2# -*- makefile -*- 3# Sample debian/rules that uses debhelper. 4# 5# This file was originally written by Joey Hess and Craig Small. 6# As a special exception, when this file is copied by dh-make into a 7# dh-make output file, you may use that output file without restriction. 8# This special exception was added by Craig Small in version 0.37 of dh-make. 9# 10# Modified to make a template file for a multi-binary package with separated 11# build-arch and build-indep targets by Bill Allombert 2001 12 13# Uncomment this to turn on verbose mode. 14#export DH_VERBOSE=1 15 16# This has to be exported to make some magic below work. 17export DH_OPTIONS 18 19PYVERS := $(shell pyversions -r) 20 21export CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) 22export CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) 23export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) 24export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) 25 26configure: configure-stamp 27configure-stamp: 28 dh_testdir 29 30 # Add here commands to configure the package. 31 if [ -f bootstrap.sh ]; then $(CURDIR)/bootstrap.sh; fi 32 $(CURDIR)/configure --prefix=/usr --enable-plugin=no 33 34 touch configure-stamp 35 36 37#Architecture 38build: build-arch build-indep 39 # Tests disabled 40 # $(MAKE) -C test check 41 42build-arch: build-arch-stamp 43$(CURDIR)/compiler/cpp/thrift build-arch-stamp: configure-stamp 44 45 # Compile compiler 46 $(MAKE) -C $(CURDIR)/compiler/cpp 47 48 # Compile C++ library 49 $(MAKE) -C $(CURDIR)/lib/cpp 50 51 # Compile C (glib) library 52 $(MAKE) -C $(CURDIR)/lib/c_glib 53 54 # Python library 55 cd $(CURDIR)/lib/py && \ 56 for py in $(PYVERS); do \ 57 $$py setup.py build; \ 58 $$py-dbg setup.py build; \ 59 done 60 61 # PHP 62 cd $(CURDIR)/lib/php/src/ext/thrift_protocol && \ 63 phpize && \ 64 ./configure && $(MAKE) 65 66 touch $@ 67 68build-indep: build-indep-stamp 69build-indep-stamp: configure-stamp $(CURDIR)/compiler/cpp/thrift 70 71 # Add here commands to compile the indep part of the package. 72 #$(MAKE) doc 73 74 # Java 75 cd $(CURDIR)/lib/java && \ 76 gradle --no-daemon -Prelease=true jar 77 78 # C# 79 $(MAKE) -C $(CURDIR)/lib/netstd 80 81 # Ruby 82 $(MAKE) -C $(CURDIR)/lib/rb 83 84 # Perl 85 $(MAKE) -C $(CURDIR)/lib/perl INSTALLDIRS=vendor 86 87 touch $@ 88 89clean: 90 dh_testdir 91 dh_testroot 92 rm -f build-arch-stamp build-indep-stamp configure-stamp 93 94 cd $(CURDIR)/lib/py && python setup.py clean --all 95 96 # Add here commands to clean up after the build process. 97 -$(MAKE) clean 98 99 dh_clean 100 101install: install-indep install-arch 102install-indep: 103 dh_testdir 104 dh_testroot 105 dh_prep -i 106 dh_installdirs -i 107 108 # Add here commands to install the indep part of the package into 109 # debian/<package>-doc. 110 #INSTALLDOC# 111 112 # Java 113 mkdir -p $(CURDIR)/debian/libthrift-java/usr/share/java/ && \ 114 cp $(CURDIR)/lib/java/build/libs/libthrift*.jar \ 115 $(CURDIR)/debian/libthrift-java/usr/share/java/ 116 117 # Ruby 118 mkdir -p $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 && \ 119 cp $(CURDIR)/lib/rb/lib/thrift.rb \ 120 $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 121 cp -r $(CURDIR)/lib/rb/lib/thrift \ 122 $(CURDIR)/debian/ruby-thrift/usr/lib/ruby/1.9.1 123 124 # C# 125 mkdir -p $(CURDIR)/debian/libthrift-netstd/usr/lib/cli/thrift/ && \ 126 cp $(CURDIR)/lib/netstd/Thrift/bin/Release/netstandard2.0/Thrift.dll \ 127 $(CURDIR)/debian/libthrift-netstd/usr/lib/cli/thrift/Thrift.dll 128 129 # Perl 130 $(MAKE) -C $(CURDIR)/lib/perl install DESTDIR=$(CURDIR)/debian/libthrift-perl 131 mkdir -p $(CURDIR)/debian/libthrift-perl/usr/share 132 mv $(CURDIR)/debian/libthrift-perl/usr/local/lib/perl5 $(CURDIR)/debian/libthrift-perl/usr/share 133 rmdir $(CURDIR)/debian/libthrift-perl/usr/local/lib 134 rmdir $(CURDIR)/debian/libthrift-perl/usr/local 135 136 dh_install -i 137 138install-arch: 139 dh_testdir 140 dh_testroot 141 dh_clean -k -s 142 dh_installdirs -s 143 144 # Add here commands to install the arch part of the package into 145 # debian/tmp. 146 #$(MAKE) DESTDIR=$(CURDIR)/debian/thrift install 147 148 # Compiler 149 mkdir -p $(CURDIR)/debian/thrift-compiler/usr/bin && \ 150 cp $(CURDIR)/compiler/cpp/thrift \ 151 $(CURDIR)/debian/thrift-compiler/usr/bin/thrift && \ 152 rmdir $(CURDIR)/debian/thrift-compiler/usr/sbin 153 154 # Python 155 cd $(CURDIR)/lib/py && \ 156 python2 setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python-thrift && \ 157 python2-dbg setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python-thrift-dbg && \ 158 python3 setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python3-thrift && \ 159 python3-dbg setup.py install --install-layout=deb --no-compile --root=$(CURDIR)/debian/python3-thrift-dbg 160 161 find $(CURDIR)/debian/python-thrift -name "*.py[co]" -print0 | xargs -0 rm -f 162 find $(CURDIR)/debian/python-thrift -name "__pycache__" -print0 | xargs -0 rm -fr 163 find $(CURDIR)/debian/python-thrift-dbg -name "__pycache__" -print0 | xargs -0 rm -fr 164 find $(CURDIR)/debian/python-thrift-dbg -name "*.py[co]" -print0 | xargs -0 rm -f 165 find $(CURDIR)/debian/python-thrift-dbg -name "*.py" -print0 | xargs -0 rm -f 166 find $(CURDIR)/debian/python-thrift-dbg -name "*.egg-info" -print0 | xargs -0 rm -rf 167 find $(CURDIR)/debian/python-thrift-dbg -depth -type d -empty -exec rmdir {} \; 168 169 find $(CURDIR)/debian/python3-thrift -name "*.py[co]" -print0 | xargs -0 rm -f 170 find $(CURDIR)/debian/python3-thrift -name "__pycache__" -print0 | xargs -0 rm -fr 171 find $(CURDIR)/debian/python3-thrift-dbg -name "__pycache__" -print0 | xargs -0 rm -fr 172 find $(CURDIR)/debian/python3-thrift-dbg -name "*.py[co]" -print0 | xargs -0 rm -f 173 find $(CURDIR)/debian/python3-thrift-dbg -name "*.py" -print0 | xargs -0 rm -f 174 find $(CURDIR)/debian/python3-thrift-dbg -name "*.egg-info" -print0 | xargs -0 rm -rf 175 find $(CURDIR)/debian/python3-thrift-dbg -depth -type d -empty -exec rmdir {} \; 176 177 # PHP 178 mkdir -p $(CURDIR)/debian/php5-thrift 179 cd $(CURDIR)/lib/php && \ 180 $(MAKE) DESTDIR=$(CURDIR)/debian/php5-thrift install 181 182 # C++ and C (glib) 183 mkdir -p $(CURDIR)/debian/tmp; \ 184 cd $(CURDIR)/lib/cpp && \ 185 $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install 186 cd $(CURDIR)/lib/c_glib && \ 187 $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install 188 189 dh_install --sourcedir=debian/tmp -s 190 191 192# Must not depend on anything. This is to be called by 193# binary-arch/binary-indep 194# in another 'make' thread. 195binary-common: 196 dh_testdir 197 dh_testroot 198 dh_installchangelogs 199 dh_installdocs 200 dh_installexamples 201 dh_installman 202 dh_link 203 dh_strip -plibthrift0 --dbg-package=libthrift0-dbg 204 dh_strip -ppython-thrift --dbg-package=python-thrift-dbg 205 dh_strip -ppython3-thrift --dbg-package=python3-thrift-dbg 206 dh_strip -pthrift-compiler 207 dh_compress 208 dh_fixperms 209 dh_makeshlibs 210 dh_installdeb 211 dh_perl 212 dh_shlibdeps 213 dh_gencontrol 214 dh_md5sums 215 dh_builddeb 216# Build architecture independent packages using the common target. 217binary-indep: build-indep install-indep 218 $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common 219 220# Build architecture dependent packages using the common target. 221binary-arch: build-arch install-arch 222 echo "php:Depends=phpapi-$(shell php-config5 --phpapi)" > $(CURDIR)/debian/substvars 223 $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common 224 225binary: binary-arch binary-indep 226.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure 227