blob: ba886faaefe306ed92de01fd542ebc32aff87681 [file] [log] [blame]
Roger Meier08dc7e82010-12-14 21:38:00 +00001#!/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
Roger Meier681e6042016-01-10 16:25:57 +010021export 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
Roger Meier08dc7e82010-12-14 21:38:00 +000026configure: configure-stamp
27configure-stamp:
28 dh_testdir
Roger Meier681e6042016-01-10 16:25:57 +010029
Roger Meier08dc7e82010-12-14 21:38:00 +000030 # Add here commands to configure the package.
31 if [ -f bootstrap.sh ]; then $(CURDIR)/bootstrap.sh; fi
James E. King, III71eba642017-01-25 20:41:06 -050032 $(CURDIR)/configure --prefix=/usr --enable-plugin=no
Roger Meier08dc7e82010-12-14 21:38:00 +000033
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
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +090043$(CURDIR)/compiler/cpp/thrift build-arch-stamp: configure-stamp
Roger Meier08dc7e82010-12-14 21:38:00 +000044
Nobuaki Sukegawa11da87e2016-09-10 14:02:19 +090045 # Compile compiler
46 $(MAKE) -C $(CURDIR)/compiler/cpp
47
James E. King, III71eba642017-01-25 20:41:06 -050048 # Compile C++ library
49 $(MAKE) -C $(CURDIR)/lib/cpp
50
Roger Meierf3a51e62011-04-12 20:36:12 +000051 # Compile C (glib) library
52 $(MAKE) -C $(CURDIR)/lib/c_glib
53
Roger Meier08dc7e82010-12-14 21:38:00 +000054 # 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
Roger Meier08dc7e82010-12-14 21:38:00 +000061 # PHP
62 cd $(CURDIR)/lib/php/src/ext/thrift_protocol && \
63 phpize && \
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +090064 ./configure && $(MAKE)
Roger Meier08dc7e82010-12-14 21:38:00 +000065
66 touch $@
67
68build-indep: build-indep-stamp
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +090069build-indep-stamp: configure-stamp $(CURDIR)/compiler/cpp/thrift
Roger Meier08dc7e82010-12-14 21:38:00 +000070
71 # Add here commands to compile the indep part of the package.
72 #$(MAKE) doc
73
74 # Java
75 cd $(CURDIR)/lib/java && \
Jiayu Liu5d220eb2022-04-19 04:18:58 +020076 gradle --no-daemon -Prelease=true jar
Roger Meier08dc7e82010-12-14 21:38:00 +000077
Roger Meier08dc7e82010-12-14 21:38:00 +000078 # C#
Jens Geyer56700e42020-02-22 16:51:51 +010079 $(MAKE) -C $(CURDIR)/lib/netstd
Roger Meier08dc7e82010-12-14 21:38:00 +000080
Roger Meier38b7d072011-12-09 10:36:05 +000081 # Ruby
82 $(MAKE) -C $(CURDIR)/lib/rb
83
Roger Meier08dc7e82010-12-14 21:38:00 +000084 # 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
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +090094 cd $(CURDIR)/lib/py && python setup.py clean --all
95
Roger Meier08dc7e82010-12-14 21:38:00 +000096 # 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
jfarrell0c273522016-12-19 14:57:54 -0500105 dh_prep -i
Roger Meier08dc7e82010-12-14 21:38:00 +0000106 dh_installdirs -i
107
108 # Add here commands to install the indep part of the package into
109 # debian/<package>-doc.
110 #INSTALLDOC#
111
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900112 # Java
Roger Meier08dc7e82010-12-14 21:38:00 +0000113 mkdir -p $(CURDIR)/debian/libthrift-java/usr/share/java/ && \
Alex Volanis7004a612018-01-24 10:30:13 -0500114 cp $(CURDIR)/lib/java/build/libs/libthrift*.jar \
Roger Meier08dc7e82010-12-14 21:38:00 +0000115 $(CURDIR)/debian/libthrift-java/usr/share/java/
116
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900117 # Ruby
Roger Meier38b7d072011-12-09 10:36:05 +0000118 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
Roger Meier08dc7e82010-12-14 21:38:00 +0000124 # C#
Jens Geyer56700e42020-02-22 16:51:51 +0100125 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
Roger Meier08dc7e82010-12-14 21:38:00 +0000128
129 # Perl
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900130 $(MAKE) -C $(CURDIR)/lib/perl install DESTDIR=$(CURDIR)/debian/libthrift-perl
James E. King, IIIbd257f12017-02-08 13:05:33 -0500131 mkdir -p $(CURDIR)/debian/libthrift-perl/usr/share
132 mv $(CURDIR)/debian/libthrift-perl/usr/local/lib/perl5 $(CURDIR)/debian/libthrift-perl/usr/share
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900133 rmdir $(CURDIR)/debian/libthrift-perl/usr/local/lib
134 rmdir $(CURDIR)/debian/libthrift-perl/usr/local
Roger Meier08dc7e82010-12-14 21:38:00 +0000135
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
Jake Farrellc965dda2011-11-06 20:29:26 +0000148 # Compiler
Roger Meier08dc7e82010-12-14 21:38:00 +0000149 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
Jake Farrellc965dda2011-11-06 20:29:26 +0000154 # Python
Roger Meier08dc7e82010-12-14 21:38:00 +0000155 cd $(CURDIR)/lib/py && \
Nobuaki Sukegawaf43d0ca2016-03-25 09:22:16 +0900156 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
Roger Meier08dc7e82010-12-14 21:38:00 +0000160
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900161 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
Roger Meier08dc7e82010-12-14 21:38:00 +0000165 find $(CURDIR)/debian/python-thrift-dbg -name "*.py" -print0 | xargs -0 rm -f
Roger Meier38b7d072011-12-09 10:36:05 +0000166 find $(CURDIR)/debian/python-thrift-dbg -name "*.egg-info" -print0 | xargs -0 rm -rf
Roger Meier08dc7e82010-12-14 21:38:00 +0000167 find $(CURDIR)/debian/python-thrift-dbg -depth -type d -empty -exec rmdir {} \;
168
Nobuaki Sukegawaf43d0ca2016-03-25 09:22:16 +0900169 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
Roger Meier08dc7e82010-12-14 21:38:00 +0000177 # PHP
178 mkdir -p $(CURDIR)/debian/php5-thrift
179 cd $(CURDIR)/lib/php && \
180 $(MAKE) DESTDIR=$(CURDIR)/debian/php5-thrift install
181
Roger Meierf3a51e62011-04-12 20:36:12 +0000182 # C++ and C (glib)
Roger Meier08dc7e82010-12-14 21:38:00 +0000183 mkdir -p $(CURDIR)/debian/tmp; \
184 cd $(CURDIR)/lib/cpp && \
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900185 $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
Roger Meierf3a51e62011-04-12 20:36:12 +0000186 cd $(CURDIR)/lib/c_glib && \
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900187 $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
Roger Meier08dc7e82010-12-14 21:38:00 +0000188
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
James E. King, III9b1544d2017-03-10 06:14:18 -0500203 dh_strip -plibthrift0 --dbg-package=libthrift0-dbg
Akiraf4577802016-04-16 02:09:49 +0900204 dh_strip -ppython-thrift --dbg-package=python-thrift-dbg
205 dh_strip -ppython3-thrift --dbg-package=python3-thrift-dbg
James E. King, III9b1544d2017-03-10 06:14:18 -0500206 dh_strip -pthrift-compiler
Roger Meier08dc7e82010-12-14 21:38:00 +0000207 dh_compress
208 dh_fixperms
Roger Meier08dc7e82010-12-14 21:38:00 +0000209 dh_makeshlibs
210 dh_installdeb
211 dh_perl
212 dh_shlibdeps
213 dh_gencontrol
214 dh_md5sums
215 dh_builddeb
Konrad Grochowski3b5dacb2014-11-24 10:55:31 +0100216# Build architecture independent packages using the common target.
Roger Meier08dc7e82010-12-14 21:38:00 +0000217binary-indep: build-indep install-indep
218 $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
219
Konrad Grochowski3b5dacb2014-11-24 10:55:31 +0100220# Build architecture dependent packages using the common target.
Roger Meier08dc7e82010-12-14 21:38:00 +0000221binary-arch: build-arch install-arch
Nobuaki Sukegawa93bbdc82016-03-25 08:51:09 +0900222 echo "php:Depends=phpapi-$(shell php-config5 --phpapi)" > $(CURDIR)/debian/substvars
Roger Meier08dc7e82010-12-14 21:38:00 +0000223 $(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