2
ifeq ($(with_libcxx),yes)
3
$(lib_binaries) += libstdcxx
5
ifeq ($(with_lib64cxx),yes)
6
$(lib_binaries) += lib64stdcxx
8
ifeq ($(with_lib64cxxdev),yes)
9
$(lib_binaries) += lib64stdcxx-dev
11
ifeq ($(with_lib64cxxdbg),yes)
12
$(lib_binaries) += lib64stdcxxdbg
14
ifeq ($(with_lib32cxx),yes)
15
$(lib_binaries) += lib32stdcxx
17
ifeq ($(with_lib32cxxdev),yes)
18
$(lib_binaries) += lib32stdcxx-dev
20
ifeq ($(with_lib32cxxdbg),yes)
21
$(lib_binaries) += lib32stdcxxdbg
23
ifeq ($(with_libn32cxx),yes)
24
$(lib_binaries) += libn32stdcxx
26
ifeq ($(with_libn32cxxdev),yes)
27
$(lib_binaries) += libn32stdcxx-dev
29
ifeq ($(with_libn32cxxdbg),yes)
30
$(lib_binaries) += libn32stdcxxdbg
32
ifeq ($(with_libx32cxx),yes)
33
$(lib_binaries) += libx32stdcxx
35
ifeq ($(with_libx32cxxdev),yes)
36
$(lib_binaries) += libx32stdcxx-dev
38
ifeq ($(with_libx32cxxdbg),yes)
39
$(lib_binaries) += libx32stdcxxdbg
41
ifeq ($(with_libhfcxx),yes)
42
$(lib_binaries) += libhfstdcxx
44
ifeq ($(with_libhfcxxdev),yes)
45
$(lib_binaries) += libhfstdcxx-dev
47
ifeq ($(with_libhfcxxdbg),yes)
48
$(lib_binaries) += libhfstdcxxdbg
50
ifeq ($(with_libsfcxx),yes)
51
$(lib_binaries) += libsfstdcxx
53
ifeq ($(with_libsfcxxdev),yes)
54
$(lib_binaries) += libsfstdcxx-dev
56
ifeq ($(with_libsfcxxdbg),yes)
57
$(lib_binaries) += libsfstdcxxdbg
60
ifeq ($(with_cxxdev),yes)
61
$(lib_binaries) += libstdcxx-dev
62
ifneq ($(DEB_CROSS),yes)
63
indep_binaries := $(indep_binaries) libstdcxx-doc
67
libstdc_ext = -$(BASE_VERSION)
69
p_lib = libstdc++$(CXX_SONAME)$(cross_lib_arch)
70
p_lib64 = lib64stdc++$(CXX_SONAME)$(cross_lib_arch)
71
p_lib32 = lib32stdc++$(CXX_SONAME)$(cross_lib_arch)
72
p_libn32= libn32stdc++$(CXX_SONAME)$(cross_lib_arch)
73
p_libx32= libx32stdc++$(CXX_SONAME)$(cross_lib_arch)
74
p_libhf = libhfstdc++$(CXX_SONAME)$(cross_lib_arch)
75
p_libsf = libsfstdc++$(CXX_SONAME)$(cross_lib_arch)
76
p_dev = libstdc++$(libstdc_ext)-dev$(cross_lib_arch)
77
p_pic = libstdc++$(libstdc_ext)-pic$(cross_lib_arch)
78
p_dbg = libstdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch)
79
p_dbg64 = lib64stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch)
80
p_dbg32 = lib32stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch)
81
p_dbgn32= libn32stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch)
82
p_dbgx32= libx32stdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch)
83
p_dbghf = libhfstdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch)
84
p_dbgsf = libsfstdc++$(CXX_SONAME)$(libstdc_ext)-dbg$(cross_lib_arch)
85
p_libd = libstdc++$(libstdc_ext)-doc
87
d_lib = debian/$(p_lib)
88
d_lib64 = debian/$(p_lib64)
89
d_lib32 = debian/$(p_lib32)
90
d_libn32= debian/$(p_libn32)
91
d_libx32= debian/$(p_libx32)
92
d_libhf = debian/$(p_libhf)
93
d_libsf = debian/$(p_libsf)
94
d_dev = debian/$(p_dev)
95
d_pic = debian/$(p_pic)
96
d_dbg = debian/$(p_dbg)
97
d_dbg64 = debian/$(p_dbg64)
98
d_dbg32 = debian/$(p_dbg32)
99
d_dbghf = debian/$(p_dbghf)
100
d_dbgsf = debian/$(p_dbgsf)
101
d_libd = debian/$(p_libd)
104
$(docdir)/$(p_base)/C++ \
106
$(gcc_lib_dir)/include \
111
$(gcc_lib_dir)/libstdc++.{a,so} \
112
$(gcc_lib_dir)/libsupc++.a
114
ifeq ($(with_multiarch_cxxheaders),yes)
116
$(PF)/include/$(DEB_TARGET_MULTIARCH)/c++/$(BASE_VERSION)
118
$(PF)/include/$(DEB_TARGET_MULTIARCH)/c++/$(BASE_VERSION)/{bits,ext}
123
$(PF)/lib/debug/$(usr_lib) \
127
$(usr_lib)/debug/libstdc++.{a,so*}
129
ifneq ($(DEB_CROSS),yes)
130
dirs_dbg += $(PF)/share/gcc-$(BASE_VERSION)/python
131
files_dbg += $(PF)/share/gcc-$(BASE_VERSION)/python/libstdcxx
138
$(gcc_lib_dir)/libstdc++_pic.a
140
# ----------------------------------------------------------------------
142
gxx_baseline_dir = $(shell \
143
sed -n '/^baseline_dir *=/s,.*= *\(.*\)$$,\1,p' \
144
$(buildlibdir)/libstdc++-v3/testsuite/Makefile)
145
gxx_baseline_file = $(gxx_baseline_dir)/baseline_symbols.txt
147
debian/README.libstdc++-baseline:
148
cat debian/README.libstdc++-baseline.in \
149
> debian/README.libstdc++-baseline
151
baseline_name=`basename $(gxx_baseline_dir)`; \
152
baseline_parentdir=`dirname $(gxx_baseline_dir)`; \
153
compat_baseline_name=""; \
154
if [ -f "$(gxx_baseline_file)" ]; then \
156
echo "A baseline file for $$baseline_name was found."; \
157
echo "Running the check-abi script ..."; \
159
$(MAKE) -C $(buildlibdir)/libstdc++-v3/testsuite \
161
) >> debian/README.libstdc++-baseline; \
164
echo "No baseline file found for $$baseline_name."; \
165
echo "Generating a new baseline file ..."; \
167
) >> debian/README.libstdc++-baseline; \
168
mkdir -p $(gxx_baseline_dir); \
169
$(MAKE) -C $(buildlibdir)/libstdc++-v3/testsuite new-abi-baseline; \
170
if [ -f $(gxx_baseline_file) ]; then \
171
cat $(gxx_baseline_file); \
173
cat $$(find $(buildlibdir)/libstdc++-v3 $(srcdir)/libstdc++-v3 -name '.new') || true; \
174
fi >> debian/README.libstdc++-baseline; \
177
# ----------------------------------------------------------------------
178
define __do_libstdcxx
181
mv $(install_stamp) $(install_stamp)-tmp
185
dh_installdirs -p$(p_l) \
189
cp -a $(d)/$(usr_lib$(2))/libstdc++.so.*[0-9] \
190
$(d_l)/$(usr_lib$(2))/.
192
debian/dh_doclink -p$(p_l) $(p_base)
193
debian/dh_rmemptydirs -p$(p_l)
195
dh_strip -p$(p_l) --dbg-package=$(1)-$(BASE_VERSION)-dbg$(cross_lib_arch)
199
$(cross_makeshlibs) dh_makeshlibs -p$(p_l) || echo 'FIXME: libstdc++ symbols file'
200
$(call cross_mangle_shlibs,$(p_l))
201
$(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \
202
$(call shlibdirs_to_search,$(subst stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l)),$(2))
203
$(call cross_mangle_substvars,$(p_l))
205
$(cross_gencontrol) dh_gencontrol -p$(p_l) -- -v$(DEB_VERSION) $(common_substvars)
206
$(call cross_mangle_control,$(p_l))
207
dh_installdeb -p$(p_l)
211
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
214
define __do_libstdcxx_dbg
217
mv $(install_stamp) $(install_stamp)-tmp
220
dh_installdirs -p$(p_d) \
221
$(PF)/lib/debug/$(usr_lib$(2)) \
224
cp -p $(d)/$(usr_lib$(2))/libstdc++.so.*.py \
225
$(d_d)/$(PF)/lib/debug/$(usr_lib$(2))/.;
226
$(if $(filter yes,$(with_lib$(2)cxx)),
227
cp -a $(d)/$(usr_lib$(2))/libstdc++.so.*[0-9] \
228
$(d_d)/$(usr_lib$(2))/.;
229
dh_strip -p$(p_d) --keep-debug;
230
$(if $(filter yes,$(with_common_libs)),, # if !with_common_libs
231
# remove the debug symbols for libstdc++
232
# built by a newer version of GCC
233
rm -rf $(d_d)/usr/lib/debug/$(PF);
235
rm -f $(d_d)/$(usr_lib$(2))/libstdc++.so.*[0-9]
238
$(if $(filter yes,$(with_debug)),
239
mv $(d)/$(usr_lib$(2))/debug $(d_d)/$(usr_lib$(2))/.;
240
rm -f $(d_d)/$(usr_lib$(2))/debug/libstdc++_pic.a
243
$(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_d) \
244
$(call shlibdirs_to_search,$(subst $(pkg_ver),,$(subst stdc++$(CXX_SONAME),gcc$(GCC_SONAME),$(p_l))),$(2))
245
$(call cross_mangle_substvars,$(p_d))
247
debian/dh_doclink -p$(p_d) $(p_base)
248
debian/dh_rmemptydirs -p$(p_d)
252
$(cross_gencontrol) dh_gencontrol -p$(p_d) -- -v$(DEB_VERSION) $(common_substvars)
253
$(call cross_mangle_control,$(p_d))
255
dh_installdeb -p$(p_d)
259
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
262
define __do_libstdcxx_dev
265
mv $(install_stamp) $(install_stamp)-tmp
267
mv $(d)/$(usr_lib$(2))/libstdc++.a $(d)/$(usr_lib$(2))/libsupc++.a \
268
$(d)/$(gcc_lib_dir$(2))/
271
dh_installdirs -p$(p_l) $(gcc_lib_dir$(2))
273
DH_COMPAT=2 dh_movefiles -p$(p_l) \
274
$(gcc_lib_dir$(2))/libstdc++.a \
275
$(gcc_lib_dir$(2))/libsupc++.a \
276
$(if $(with_multiarch_cxxheaders),$(PF)/include/$(DEB_TARGET_MULTIARCH)/c++/$(BASE_VERSION)/$(2))
277
$(call install_gcc_lib,libstdc++,$(CXX_SONAME),$(2),$(p_l))
279
debian/dh_doclink -p$(p_l) $(p_base)
280
debian/dh_rmemptydirs -p$(p_l)
285
dh_shlibdeps -p$(p_l)
286
dh_gencontrol -p$(p_l) -- -v$(DEB_VERSION) $(common_substvars)
287
dh_installdeb -p$(p_l)
291
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
294
do_libstdcxx = $(call __do_libstdcxx,lib$(1)stdc++$(CXX_SONAME),$(1))
295
do_libstdcxx_dbg = $(call __do_libstdcxx_dbg,lib$(1)stdc++$(CXX_SONAME)$(libstdc_ext),$(1))
296
do_libstdcxx_dev = $(call __do_libstdcxx_dev,lib$(1)stdc++-$(BASE_VERSION)-dev,$(1))
298
# ----------------------------------------------------------------------
299
$(binary_stamp)-libstdcxx: $(install_stamp)
300
$(call do_libstdcxx,)
302
$(binary_stamp)-lib64stdcxx: $(install_stamp)
303
$(call do_libstdcxx,64)
305
$(binary_stamp)-lib32stdcxx: $(install_stamp)
306
$(call do_libstdcxx,32)
308
$(binary_stamp)-libn32stdcxx: $(install_stamp)
309
$(call do_libstdcxx,n32)
311
$(binary_stamp)-libx32stdcxx: $(install_stamp)
312
$(call do_libstdcxx,x32)
314
$(binary_stamp)-libhfstdcxx: $(install_stamp)
315
$(call do_libstdcxx,hf)
317
$(binary_stamp)-libsfstdcxx: $(install_stamp)
318
$(call do_libstdcxx,sf)
320
$(binary_stamp)-lib64stdcxxdbg: $(install_stamp)
321
$(call do_libstdcxx_dbg,64)
323
$(binary_stamp)-lib32stdcxxdbg: $(install_stamp)
324
$(call do_libstdcxx_dbg,32)
326
$(binary_stamp)-libn32stdcxxdbg: $(install_stamp)
327
$(call do_libstdcxx_dbg,n32)
329
$(binary_stamp)-libx32stdcxxdbg: $(install_stamp)
330
$(call do_libstdcxx_dbg,x32)
332
$(binary_stamp)-libhfstdcxxdbg: $(install_stamp)
333
$(call do_libstdcxx_dbg,hf)
335
$(binary_stamp)-libsfstdcxxdbg: $(install_stamp)
336
$(call do_libstdcxx_dbg,sf)
338
$(binary_stamp)-lib64stdcxx-dev: $(install_stamp)
339
$(call do_libstdcxx_dev,64)
341
$(binary_stamp)-lib32stdcxx-dev: $(install_stamp)
342
$(call do_libstdcxx_dev,32)
344
$(binary_stamp)-libn32stdcxx-dev: $(install_stamp)
345
$(call do_libstdcxx_dev,n32)
347
$(binary_stamp)-libx32stdcxx-dev: $(install_stamp)
348
$(call do_libstdcxx_dev,x32)
350
$(binary_stamp)-libhfstdcxx-dev: $(install_stamp)
351
$(call do_libstdcxx_dev,hf)
353
$(binary_stamp)-libsfstdcxx-dev: $(install_stamp)
354
$(call do_libstdcxx_dev,sf)
356
# ----------------------------------------------------------------------
357
libcxxdev_deps = $(install_stamp)
358
ifeq ($(with_libcxx),yes)
359
libcxxdev_deps += $(binary_stamp)-libstdcxx
361
ifeq ($(with_check),yes)
362
libcxxdev_deps += debian/README.libstdc++-baseline
364
$(binary_stamp)-libstdcxx-dev: $(libcxxdev_deps)
367
mv $(install_stamp) $(install_stamp)-tmp
369
rm -rf $(d_dev) $(d_pic)
370
dh_installdirs -p$(p_dev) $(dirs_dev)
371
dh_installdirs -p$(p_pic) $(dirs_pic)
372
dh_installdirs -p$(p_dbg) $(dirs_dbg)
374
: # - correct libstdc++-v3 file locations
375
mv $(d)/$(usr_lib)/libsupc++.a $(d)/$(gcc_lib_dir)/
376
mv $(d)/$(usr_lib)/libstdc++.{a,so} $(d)/$(gcc_lib_dir)/
377
ln -sf ../../../$(DEB_TARGET_GNU_TYPE)/libstdc++.so.$(CXX_SONAME) \
378
$(d)/$(gcc_lib_dir)/libstdc++.so
379
mv $(d)/$(usr_lib)/libstdc++_pic.a $(d)/$(gcc_lib_dir)/
381
rm -f $(d)/$(usr_lib)/debug/libstdc++_pic.a
382
rm -f $(d)/$(usr_lib64)/debug/libstdc++_pic.a
384
: # remove precompiled headers
385
-find $(d) -type d -name '*.gch' | xargs rm -rf
387
for i in $(d)/$(PF)/include/c++/$(GCC_VERSION)/*-linux; do \
388
if [ -d $$i ]; then mv $$i $$i-gnu; fi; \
391
DH_COMPAT=2 dh_movefiles -p$(p_dev) $(files_dev)
392
DH_COMPAT=2 dh_movefiles -p$(p_pic) $(files_pic)
393
ifeq ($(with_debug),yes)
394
DH_COMPAT=2 dh_movefiles -p$(p_dbg) $(files_dbg)
398
/$(usr_lib)/libstdc++.so.$(CXX_SONAME) \
399
/$(gcc_lib_dir)/libstdc++.so \
400
/$(cxx_inc_dir) /$(PFL)/include/c++/$(GCC_VERSION)
402
debian/dh_doclink -p$(p_dev) $(p_base)
403
debian/dh_doclink -p$(p_pic) $(p_base)
404
debian/dh_doclink -p$(p_dbg) $(p_base)
405
cp -p $(srcdir)/libstdc++-v3/ChangeLog \
406
$(d_dev)/$(docdir)/$(p_base)/C++/changelog.libstdc++
407
ifeq ($(with_check),yes)
408
cp -p debian/README.libstdc++-baseline \
409
$(d_dev)/$(docdir)/$(p_base)/C++/README.libstdc++-baseline.$(DEB_TARGET_ARCH)
410
if [ -f $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt ]; \
412
cp -p $(buildlibdir)/libstdc++-v3/testsuite/current_symbols.txt \
413
$(d_dev)/$(docdir)/$(p_base)/C++/libstdc++_symbols.txt.$(DEB_TARGET_ARCH); \
416
cp -p $(buildlibdir)/libstdc++-v3/src/libstdc++-symbols.ver \
417
$(d_pic)/$(gcc_lib_dir)/libstdc++_pic.map
419
cp -p $(d)/$(usr_lib)/libstdc++.so.*.py \
420
$(d_dbg)/$(PF)/lib/debug/$(usr_lib)/
421
ifeq ($(with_libcxx),yes)
422
cp -a $(d)/$(usr_lib)/libstdc++.so.*[0-9] \
424
dh_strip -p$(p_dbg) --keep-debug
425
rm -f $(d_dbg)/$(usr_lib)/libstdc++.so.*[0-9]
428
dh_strip -p$(p_dev) --dbg-package=$(p_dbg)
429
ifneq ($(with_common_libs),yes)
430
: # remove the debug symbols for libstdc++ built by a newer version of GCC
431
rm -rf $(d_dbg)/usr/lib/debug/$(PF)
435
ifeq ($(with_cxxdev),yes)
436
debian/dh_rmemptydirs -p$(p_dev)
437
debian/dh_rmemptydirs -p$(p_pic)
438
debian/dh_rmemptydirs -p$(p_dbg)
441
dh_compress -p$(p_dev) -p$(p_pic) -p$(p_dbg) -X.txt
442
dh_fixperms -p$(p_dev) -p$(p_pic) -p$(p_dbg)
443
# XXX: what about biarchn32?
444
#ifeq ($(biarch64),yes)
445
# $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) -Xlib64
447
# $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) -Xlib32/debug
449
$(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg)
450
$(call cross_mangle_substvars,$(p_dbg))
451
$(cross_gencontrol) dh_gencontrol -p$(p_dev) -p$(p_pic) -p$(p_dbg) \
452
-- -v$(DEB_VERSION) $(common_substvars)
454
dh_installdeb -p$(p_dev) -p$(p_pic) -p$(p_dbg)
455
dh_md5sums -p$(p_dev) -p$(p_pic) -p$(p_dbg)
456
dh_builddeb -p$(p_dev) -p$(p_pic) -p$(p_dbg)
458
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
460
# ----------------------------------------------------------------------
462
doxygen_doc_dir = $(buildlibdir)/libstdc++-v3/doc
464
doxygen-docs: $(build_doxygen_stamp)
465
$(build_doxygen_stamp):
466
$(MAKE) -C $(buildlibdir)/libstdc++-v3/doc SHELL=/bin/bash doc-html-doxygen
467
$(MAKE) -C $(buildlibdir)/libstdc++-v3/doc SHELL=/bin/bash doc-man-doxygen
468
-find $(doxygen_doc_dir)/doxygen/html -name 'struct*' -empty | xargs rm -f
472
$(binary_stamp)-libstdcxx-doc: $(install_stamp) doxygen-docs
475
mv $(install_stamp) $(install_stamp)-tmp
478
dh_installdirs -p$(p_libd) \
479
$(docdir)/$(p_base)/libstdc++ \
482
# debian/dh_doclink -p$(p_libd) $(p_base)
483
dh_link -p$(p_libd) /usr/share/doc/$(p_base) /usr/share/doc/$(p_libd)
484
dh_installdocs -p$(p_libd)
485
rm -f $(d_libd)/$(docdir)/$(p_base)/copyright
487
cp -a $(srcdir)/libstdc++-v3/doc/html \
488
$(d_libd)/$(docdir)/$(p_base)/libstdc++/.
489
cp -a $(doxygen_doc_dir)/doxygen/html \
490
$(d_libd)/$(docdir)/$(p_base)/libstdc++/.
491
find $(d_libd)/$(docdir)/$(p_base)/libstdc++ -name '*.md5' \
494
rm -f $(d_libd)/$(docdir)/$(p_base)/libstdc++/html/jquery.js
495
dh_link -p$(p_libd) \
496
/usr/share/javascript/jquery/jquery.js \
497
/$(docdir)/$(p_base)/libstdc++/html/jquery.js
499
: FIXME: depending on the doxygen version
500
if [ -d $(doxygen_doc_dir)/doxygen/man/man3cxx ]; then \
501
cp -a $(doxygen_doc_dir)/doxygen/man/man3cxx \
502
$(d_libd)/$(PF)/share/man/man3; \
503
if [ -d $(doxygen_doc_dir)/doxygen/man/man3 ]; then \
504
cp -a $(doxygen_doc_dir)/doxygen/man/man3/* \
505
$(d_libd)/$(PF)/share/man/man3/; \
507
elif [ -d $(doxygen_doc_dir)/doxygen/man/man3 ]; then \
508
cp -a $(doxygen_doc_dir)/doxygen/man/man3 \
509
$(d_libd)/$(PF)/share/man/man3; \
512
for i in $(d_libd)/$(PF)/share/man/man3/*.3; do \
513
[ -f $${i} ] || continue; \
516
rm -f $(d_libd)/$(PF)/share/man/man3/todo.3*
518
mkdir -p $(d_libd)/usr/share/lintian/overrides
519
cp -p debian/$(p_libd).overrides \
520
$(d_libd)/usr/share/lintian/overrides/$(p_libd)
522
dh_compress -p$(p_libd) -Xhtml/17_intro -X.txt -X.tag -X.map
523
dh_fixperms -p$(p_libd)
524
dh_gencontrol -p$(p_libd) -- -v$(DEB_VERSION) $(common_substvars)
526
dh_installdeb -p$(p_libd)
527
dh_md5sums -p$(p_libd)
528
dh_builddeb -p$(p_libd)
530
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)