head	1.72;
access;
symbols
	RELENG_8_4:1.72.0.2
	RELENG_9_1_0_RELEASE:1.67.2.2.2.2
	RELENG_9_1:1.67.2.2.0.2
	RELENG_9_1_BP:1.67.2.2
	RELENG_8_3_0_RELEASE:1.63.2.2.4.1
	RELENG_8_3:1.63.2.2.0.4
	RELENG_8_3_BP:1.63.2.2
	RELENG_9_0_0_RELEASE:1.67.2.1.2.1
	RELENG_9_0:1.67.2.1.0.2
	RELENG_9_0_BP:1.67.2.1
	RELENG_9:1.67.0.2
	RELENG_9_BP:1.67
	RELENG_7_4_0_RELEASE:1.61.2.2.2.1
	RELENG_8_2_0_RELEASE:1.63.2.2.2.1
	RELENG_7_4:1.61.2.2.0.2
	RELENG_7_4_BP:1.61.2.2
	RELENG_8_2:1.63.2.2.0.2
	RELENG_8_2_BP:1.63.2.2
	RELENG_8_1_0_RELEASE:1.63.2.1.4.1
	RELENG_8_1:1.63.2.1.0.4
	RELENG_8_1_BP:1.63.2.1
	RELENG_7_3_0_RELEASE:1.61.2.1.6.1
	RELENG_7_3:1.61.2.1.0.6
	RELENG_7_3_BP:1.61.2.1
	RELENG_8_0_0_RELEASE:1.63.2.1.2.1
	RELENG_8_0:1.63.2.1.0.2
	RELENG_8_0_BP:1.63.2.1
	RELENG_8:1.63.0.2
	RELENG_8_BP:1.63
	RELENG_7_2_0_RELEASE:1.61.2.1.4.1
	RELENG_7_2:1.61.2.1.0.4
	RELENG_7_2_BP:1.61.2.1
	RELENG_7_1_0_RELEASE:1.61.2.1.2.1
	RELENG_6_4_0_RELEASE:1.55.2.3.6.1
	RELENG_7_1:1.61.2.1.0.2
	RELENG_7_1_BP:1.61.2.1
	RELENG_6_4:1.55.2.3.0.6
	RELENG_6_4_BP:1.55.2.3
	RELENG_7_0_0_RELEASE:1.61
	RELENG_6_3_0_RELEASE:1.55.2.3
	RELENG_7_0:1.61.0.4
	RELENG_7_0_BP:1.61
	RELENG_6_3:1.55.2.3.0.4
	RELENG_6_3_BP:1.55.2.3
	RELENG_7:1.61.0.2
	RELENG_7_BP:1.61
	RELENG_6_2_0_RELEASE:1.55.2.3
	RELENG_6_2:1.55.2.3.0.2
	RELENG_6_2_BP:1.55.2.3
	RELENG_5_5_0_RELEASE:1.51.2.3
	RELENG_5_5:1.51.2.3.0.4
	RELENG_5_5_BP:1.51.2.3
	RELENG_6_1_0_RELEASE:1.55.2.1
	RELENG_6_1:1.55.2.1.0.4
	RELENG_6_1_BP:1.55.2.1
	RELENG_6_0_0_RELEASE:1.55.2.1
	RELENG_6_0:1.55.2.1.0.2
	RELENG_6_0_BP:1.55.2.1
	RELENG_6:1.55.0.2
	RELENG_6_BP:1.55
	RELENG_5_4_0_RELEASE:1.51.2.3
	RELENG_5_4:1.51.2.3.0.2
	RELENG_5_4_BP:1.51.2.3
	RELENG_4_11_0_RELEASE:1.24.2.2
	RELENG_4_11:1.24.2.2.0.6
	RELENG_4_11_BP:1.24.2.2
	RELENG_5_3_0_RELEASE:1.51
	RELENG_5_3:1.51.0.4
	RELENG_5_3_BP:1.51
	RELENG_5:1.51.0.2
	RELENG_5_BP:1.51
	RELENG_4_10_0_RELEASE:1.24.2.2
	RELENG_4_10:1.24.2.2.0.4
	RELENG_4_10_BP:1.24.2.2
	RELENG_5_2_1_RELEASE:1.47
	RELENG_5_2_0_RELEASE:1.47
	RELENG_5_2:1.47.0.2
	RELENG_5_2_BP:1.47
	RELENG_4_9_0_RELEASE:1.24.2.2
	RELENG_4_9:1.24.2.2.0.2
	RELENG_4_9_BP:1.24.2.2
	RELENG_5_1_0_RELEASE:1.43
	RELENG_5_1:1.43.0.2
	RELENG_5_1_BP:1.43
	RELENG_4_8_0_RELEASE:1.24.2.1
	RELENG_4_8:1.24.2.1.0.8
	RELENG_4_8_BP:1.24.2.1
	RELENG_5_0_0_RELEASE:1.41
	RELENG_5_0:1.41.0.2
	RELENG_5_0_BP:1.41
	RELENG_4_7_0_RELEASE:1.24.2.1
	RELENG_4_7:1.24.2.1.0.6
	RELENG_4_7_BP:1.24.2.1
	RELENG_4_6_2_RELEASE:1.24.2.1
	RELENG_4_6_1_RELEASE:1.24.2.1
	RELENG_4_6_0_RELEASE:1.24.2.1
	RELENG_4_6:1.24.2.1.0.4
	RELENG_4_6_BP:1.24.2.1
	RELENG_4_5_0_RELEASE:1.24.2.1
	RELENG_4_5:1.24.2.1.0.2
	RELENG_4_5_BP:1.24.2.1
	WIP_GCC31:1.27.0.2
	WIP_GCC31_BP:1.27
	RELENG_4_4_0_RELEASE:1.24
	RELENG_4_4:1.24.0.6
	RELENG_4_4_BP:1.24
	RELENG_4_3_0_RELEASE:1.24
	RELENG_4_3:1.24.0.4
	RELENG_4_3_BP:1.24
	BEFORE_GCC_2_95_3:1.24
	BEFORE_GCC_2_95_3_TEST3:1.25
	RELENG_4_2_0_RELEASE:1.24
	RELENG_4_1_1_RELEASE:1.24
	PRE_SMPNG:1.25
	RELENG_4_1_0_RELEASE:1.24
	RELENG_3_5_0_RELEASE:1.12.2.1
	RELENG_4_0_0_RELEASE:1.24
	RELENG_4:1.24.0.2
	RELENG_4_BP:1.24
	EGCS_11x:1.23.0.2
	RELENG_3_4_0_RELEASE:1.12.2.1
	BEFORE_GCC_2_95_1:1.23
	RELENG_3_3_0_RELEASE:1.12.2.1
	RELENG_3_2_PAO:1.12.0.4
	RELENG_3_2_PAO_BP:1.12
	RELENG_3_2_0_RELEASE:1.12
	RELENG_3_1_0_RELEASE:1.12
	RELENG_3:1.12.0.2
	RELENG_3_BP:1.12
	RELENG_2_2_8_RELEASE:1.1.2.4
	RELENG_3_0_0_RELEASE:1.10
	RELENG_2_2_7_RELEASE:1.1.2.4
	RELENG_2_2_6_RELEASE:1.1.2.4
	RELENG_2_2_5_RELEASE:1.1.2.4
	RELENG_2_2_2_RELEASE:1.1.2.1
	RELENG_2_2_1_RELEASE:1.1.2.1
	RELENG_2_2_0_RELEASE:1.1.2.1
	RELENG_2_2:1.1.0.2
	RELENG_2_2_BP:1.1;
locks; strict;
comment	@# @;


1.72
date	2013.01.18.00.34.55;	author svnexp;	state Exp;
branches
	1.72.2.1;
next	1.71;

1.71
date	2012.11.17.01.49.08;	author svnexp;	state Exp;
branches;
next	1.70;

1.70
date	2012.10.23.18.57.20;	author dim;	state Exp;
branches;
next	1.69;

1.69
date	2012.08.25.23.08.24;	author dim;	state Exp;
branches;
next	1.68;

1.68
date	2012.03.31.14.25.12;	author theraven;	state Exp;
branches;
next	1.67;

1.67
date	2010.09.07.08.33.17;	author tijl;	state Exp;
branches
	1.67.2.1;
next	1.66;

1.66
date	2010.08.23.22.24.11;	author imp;	state Exp;
branches;
next	1.65;

1.65
date	2010.05.12.19.59.32;	author obrien;	state Exp;
branches;
next	1.64;

1.64
date	2010.01.22.14.09.15;	author sepotvin;	state Exp;
branches;
next	1.63;

1.63
date	2008.12.31.07.39.23;	author imp;	state Exp;
branches
	1.63.2.1;
next	1.62;

1.62
date	2008.06.16.22.49.30;	author kan;	state Exp;
branches;
next	1.61;

1.61
date	2007.08.16.23.02.00;	author kan;	state Exp;
branches
	1.61.2.1;
next	1.60;

1.60
date	2007.05.19.15.41.01;	author kan;	state Exp;
branches;
next	1.59;

1.59
date	2007.05.19.04.25.56;	author kan;	state Exp;
branches;
next	1.58;

1.58
date	2006.10.05.20.55.37;	author obrien;	state Exp;
branches;
next	1.57;

1.57
date	2006.09.30.12.52.15;	author ru;	state Exp;
branches;
next	1.56;

1.56
date	2005.07.22.17.18.58;	author kensmith;	state Exp;
branches;
next	1.55;

1.55
date	2005.04.22.18.57.32;	author trhodes;	state Exp;
branches
	1.55.2.1;
next	1.54;

1.54
date	2005.01.26.13.56.27;	author kan;	state Exp;
branches;
next	1.53;

1.53
date	2005.01.17.08.38.31;	author cperciva;	state Exp;
branches;
next	1.52;

1.52
date	2004.09.01.08.17.20;	author ru;	state Exp;
branches;
next	1.51;

1.51
date	2004.07.28.05.27.18;	author kan;	state Exp;
branches
	1.51.2.1;
next	1.50;

1.50
date	2004.02.05.22.44.20;	author ru;	state Exp;
branches;
next	1.49;

1.49
date	2004.01.06.19.20.30;	author kan;	state Exp;
branches;
next	1.48;

1.48
date	2004.01.05.20.59.05;	author kan;	state Exp;
branches;
next	1.47;

1.47
date	2003.07.11.05.37.22;	author kan;	state Exp;
branches;
next	1.46;

1.46
date	2003.06.26.01.30.44;	author peter;	state Exp;
branches;
next	1.45;

1.45
date	2003.06.14.13.30.32;	author des;	state Exp;
branches;
next	1.44;

1.44
date	2003.06.02.06.12.14;	author obrien;	state Exp;
branches;
next	1.43;

1.43
date	2003.05.24.19.38.18;	author peter;	state Exp;
branches;
next	1.42;

1.42
date	2003.02.10.06.09.55;	author kan;	state Exp;
branches;
next	1.41;

1.41
date	2002.12.05.17.04.03;	author kan;	state Exp;
branches;
next	1.40;

1.40
date	2002.11.27.18.51.59;	author obrien;	state Exp;
branches;
next	1.39;

1.39
date	2002.09.28.00.25.27;	author peter;	state Exp;
branches;
next	1.38;

1.38
date	2002.09.17.04.23.29;	author kan;	state Exp;
branches;
next	1.37;

1.37
date	2002.09.01.21.21.56;	author kan;	state Exp;
branches;
next	1.36;

1.36
date	2002.07.08.10.53.35;	author peter;	state Exp;
branches;
next	1.35;

1.35
date	2002.06.19.05.38.45;	author obrien;	state Exp;
branches;
next	1.34;

1.34
date	2002.06.02.17.49.08;	author obrien;	state Exp;
branches;
next	1.33;

1.33
date	2002.05.31.11.45.34;	author ru;	state Exp;
branches;
next	1.32;

1.32
date	2002.05.30.17.23.26;	author obrien;	state Exp;
branches;
next	1.31;

1.31
date	2002.05.29.22.26.05;	author obrien;	state Exp;
branches;
next	1.30;

1.30
date	2002.05.29.00.45.51;	author peter;	state Exp;
branches;
next	1.29;

1.29
date	2002.05.12.16.00.47;	author ru;	state Exp;
branches;
next	1.28;

1.28
date	2002.05.10.08.54.42;	author obrien;	state Exp;
branches;
next	1.27;

1.27
date	2001.03.24.09.01.31;	author obrien;	state Exp;
branches
	1.27.2.1;
next	1.26;

1.26
date	2001.03.24.08.19.31;	author obrien;	state Exp;
branches;
next	1.25;

1.25
date	2000.06.04.06.56.22;	author obrien;	state Exp;
branches;
next	1.24;

1.24
date	99.11.15.04.16.19;	author obrien;	state Exp;
branches
	1.24.2.1;
next	1.23;

1.23
date	99.08.27.23.32.59;	author peter;	state Exp;
branches
	1.23.2.1;
next	1.22;

1.22
date	99.08.16.04.58.09;	author obrien;	state Exp;
branches;
next	1.21;

1.21
date	99.08.16.04.27.28;	author obrien;	state Exp;
branches;
next	1.20;

1.20
date	99.04.25.16.59.54;	author obrien;	state Exp;
branches;
next	1.19;

1.19
date	99.04.15.08.08.56;	author obrien;	state Exp;
branches;
next	1.18;

1.18
date	99.04.08.09.13.39;	author obrien;	state Exp;
branches;
next	1.17;

1.17
date	99.04.08.07.20.33;	author obrien;	state Exp;
branches;
next	1.16;

1.16
date	99.04.07.07.48.23;	author obrien;	state Exp;
branches;
next	1.15;

1.15
date	99.04.05.09.01.45;	author obrien;	state Exp;
branches;
next	1.14;

1.14
date	99.04.05.08.07.40;	author obrien;	state Exp;
branches;
next	1.13;

1.13
date	99.04.04.16.36.30;	author obrien;	state Exp;
branches;
next	1.12;

1.12
date	99.01.09.21.50.48;	author jdp;	state Exp;
branches
	1.12.2.1;
next	1.11;

1.11
date	98.12.27.17.25.27;	author bde;	state Exp;
branches;
next	1.10;

1.10
date	98.10.11.04.56.03;	author peter;	state Exp;
branches;
next	1.9;

1.9
date	98.03.20.15.10.59;	author bde;	state Exp;
branches;
next	1.8;

1.8
date	98.02.25.01.23.28;	author bde;	state Exp;
branches;
next	1.7;

1.7
date	97.05.23.08.33.59;	author asami;	state Exp;
branches;
next	1.6;

1.6
date	97.05.06.00.49.35;	author jdp;	state Exp;
branches;
next	1.5;

1.5
date	97.04.09.16.00.07;	author peter;	state Exp;
branches;
next	1.4;

1.4
date	97.02.22.15.43.10;	author peter;	state Exp;
branches;
next	1.3;

1.3
date	97.01.14.05.47.42;	author jkh;	state Exp;
branches;
next	1.2;

1.2
date	96.11.15.18.09.09;	author jkh;	state Exp;
branches;
next	1.1;

1.1
date	96.10.03.22.52.22;	author peter;	state Exp;
branches
	1.1.2.1;
next	;

1.72.2.1
date	2013.01.18.00.34.55;	author svnexp;	state dead;
branches;
next	1.72.2.2;

1.72.2.2
date	2013.03.28.13.02.47;	author svnexp;	state Exp;
branches;
next	;

1.67.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.67.2.1.2.1;
next	1.67.2.2;

1.67.2.2
date	2012.05.23.09.10.46;	author theraven;	state Exp;
branches
	1.67.2.2.2.1;
next	1.67.2.3;

1.67.2.3
date	2012.09.08.11.34.22;	author dim;	state Exp;
branches;
next	1.67.2.4;

1.67.2.4
date	2012.10.30.07.51.18;	author dim;	state Exp;
branches;
next	1.67.2.5;

1.67.2.5
date	2012.11.17.11.36.12;	author svnexp;	state Exp;
branches;
next	;

1.67.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.67.2.1.2.2;

1.67.2.1.2.2
date	2012.11.17.08.36.12;	author svnexp;	state Exp;
branches;
next	;

1.67.2.2.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.67.2.2.2.2;

1.67.2.2.2.2
date	2012.11.17.08.47.02;	author svnexp;	state Exp;
branches;
next	;

1.63.2.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.63.2.1.2.1
	1.63.2.1.4.1;
next	1.63.2.2;

1.63.2.2
date	2010.09.21.12.55.20;	author tijl;	state Exp;
branches
	1.63.2.2.2.1
	1.63.2.2.4.1;
next	1.63.2.3;

1.63.2.3
date	2012.11.17.10.35.58;	author svnexp;	state Exp;
branches;
next	;

1.63.2.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.63.2.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.63.2.2.2.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.63.2.2.4.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.63.2.2.4.2;

1.63.2.2.4.2
date	2012.11.17.08.24.39;	author svnexp;	state Exp;
branches;
next	;

1.61.2.1
date	2008.06.20.00.13.37;	author kan;	state Exp;
branches
	1.61.2.1.2.1
	1.61.2.1.4.1
	1.61.2.1.6.1;
next	1.61.2.2;

1.61.2.2
date	2010.09.21.12.57.43;	author tijl;	state Exp;
branches
	1.61.2.2.2.1;
next	1.61.2.3;

1.61.2.3
date	2012.11.17.08.01.28;	author svnexp;	state Exp;
branches;
next	;

1.61.2.1.2.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.61.2.1.4.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.61.2.1.6.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.61.2.2.2.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.61.2.2.2.2;

1.61.2.2.2.2
date	2012.11.17.08.16.38;	author svnexp;	state Exp;
branches;
next	;

1.55.2.1
date	2005.07.22.17.29.02;	author kensmith;	state Exp;
branches;
next	1.55.2.2;

1.55.2.2
date	2006.09.05.20.40.49;	author obrien;	state Exp;
branches;
next	1.55.2.3;

1.55.2.3
date	2006.10.05.20.57.06;	author obrien;	state Exp;
branches
	1.55.2.3.6.1;
next	1.55.2.4;

1.55.2.4
date	2012.11.17.07.39.14;	author svnexp;	state Exp;
branches;
next	;

1.55.2.3.6.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.51.2.1
date	2005.01.24.15.49.52;	author cperciva;	state Exp;
branches;
next	1.51.2.2;

1.51.2.2
date	2005.03.02.04.07.34;	author obrien;	state Exp;
branches;
next	1.51.2.3;

1.51.2.3
date	2005.03.02.04.09.38;	author obrien;	state Exp;
branches;
next	;

1.27.2.1
date	2002.05.07.01.16.04;	author obrien;	state Exp;
branches;
next	;

1.24.2.1
date	2001.11.21.18.55.27;	author obrien;	state Exp;
branches;
next	1.24.2.2;

1.24.2.2
date	2003.09.09.20.17.28;	author ru;	state Exp;
branches;
next	1.24.2.3;

1.24.2.3
date	2012.11.17.07.22.53;	author svnexp;	state Exp;
branches;
next	;

1.23.2.1
date	2000.01.13.08.50.04;	author obrien;	state Exp;
branches;
next	;

1.12.2.1
date	99.08.29.14.29.06;	author peter;	state Exp;
branches;
next	;

1.1.2.1
date	96.11.15.18.15.45;	author jkh;	state Exp;
branches;
next	1.1.2.2;

1.1.2.2
date	97.05.23.08.35.10;	author asami;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	97.06.14.17.53.24;	author jdp;	state Exp;
branches;
next	1.1.2.4;

1.1.2.4
date	97.08.07.12.52.32;	author bde;	state Exp;
branches;
next	1.1.2.5;

1.1.2.5
date	99.09.05.11.05.23;	author peter;	state Exp;
branches;
next	;


desc
@@


1.72
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/245539
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@# $FreeBSD: head/gnu/lib/libstdc++/Makefile 245539 2013-01-17 05:56:28Z andrew $

.include <bsd.own.mk>

GCCVER=	4.2
GCCDIR=	${.CURDIR}/../../../contrib/gcc
GCCLIB=	${.CURDIR}/../../../contrib/gcclibs
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++
SUPDIR=	${SRCDIR}/libsupc++

.PATH: ${SRCDIR}/src ${SRCDIR}/libmath ${SRCDIR}/config/io \
       ${SRCDIR}/config/locale/darwin ${SRCDIR}/config/locale/generic \
       ${SRCDIR}/include ${SUPDIR} ${GCCDIR} ${GCCLIB}/libiberty

LIB=		stdc++
SHLIB_MAJOR=	6

CFLAGS+=	-DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} == "no"
CFLAGS+=	-D_GLIBCXX_SJLJ_EXCEPTIONS=1
.endif
CFLAGS+=	-I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include
CFLAGS+=	-I${GCCLIB}/include -I${SRCDIR}/include -I.
CFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
CXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections \
		-Wno-deprecated
PO_CXXFLAGS=	${CXXFLAGS:N-ffunction-sections}

DPADD=		${LIBM}
LDADD=		-lm  -Wl,-f,libsupc++.so.1

# libstdc++ sources
SRCS+=	bitmap_allocator.cc pool_allocator.cc \
	mt_allocator.cc codecvt.cc compatibility.cc complex_io.cc \
	ctype.cc debug.cc debug_list.cc functexcept.cc globals_io.cc \
	ios.cc ios_failure.cc ios_init.cc ios_locale.cc limits.cc \
	list.cc locale.cc locale_init.cc locale_facets.cc \
	localename.cc stdexcept.cc strstream.cc tree.cc \
	allocator-inst.cc concept-inst.cc fstream-inst.cc ext-inst.cc \
	ios-inst.cc iostream-inst.cc istream-inst.cc istream.cc \
	locale-inst.cc misc-inst.cc ostream-inst.cc sstream-inst.cc \
	streambuf-inst.cc streambuf.cc string-inst.cc valarray-inst.cc \
	wlocale-inst.cc wstring-inst.cc atomicity.cc \
	codecvt_members.cc collate_members.cc ctype_members.cc \
	messages_members.cc monetary_members.cc numeric_members.cc \
	time_members.cc basic_file_stdio.cc c_locale.cc \
#	compatibility-ldbl.cc

# target sources
SRCS+=  atomicity.cc codecvt_members.cc collate_members.cc ctype_members.cc \
	messages_members.cc monetary_members.cc numeric_members.cc \
	time_members.cc

# target sources extra
SRCS+=  basic_file_stdio.cc c_locale.cc

# C parts of math
SRCS+=	stubs.c

# Embedded copy of libsupc++
SRCS+=	del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \
	eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc eh_globals.cc \
	eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \
	eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc new_op.cc \
	new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc \
	vec.cc vterminate.cc

# from libiberty:
SRCS+=	cp-demangle.c

# MD headers location
.if ${MACHINE_CPUARCH} == "sparc64"
MARCHDIR=	sparc
.elif ${MACHINE_CPUARCH} == "i386" && ${MACHINE_CPU} != 'i386'
MARCHDIR=	i486
.elif ${MACHINE_CPUARCH} == "amd64"
MARCHDIR=	i486
.else
MARCHDIR=	${MACHINE_CPUARCH}
.endif

.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/atomicity.h)
ATOMICITY_H=	${SRCDIR}/config/cpu/${MARCHDIR}/atomicity.h
.else
ATOMICITY_H=	${SRCDIR}/config/cpu/generic/atomicity_mutex/atomicity.h
.endif

.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
.if exists(${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h)
ATOMICITY_H=	${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h
.endif
.endif

atomicity.cc:	${ATOMICITY_H}
	ln -sf ${.ALLSRC} ${.TARGET}
CLEANFILES+=	atomicity.cc

INCSGROUPS=	BITSHDRS BKWHDRS EXTHDRS BASEHDRS BASEXHDRS STDHDRS \
		TARGETHDRS THRHDRS DEBUGHDRS TR1HDRS PBHDRS0 PBHDRS1
CXXINCLUDEDIR=	${INCLUDEDIR}/c++/${GCCVER}

STDHDRS=	std_algorithm.h std_bitset.h std_complex.h std_deque.h \
		std_fstream.h std_functional.h std_iomanip.h std_ios.h \
		std_iosfwd.h std_iostream.h std_istream.h std_iterator.h \
		std_limits.h std_list.h std_locale.h std_map.h std_memory.h \
		std_numeric.h std_ostream.h std_queue.h std_set.h \
		std_sstream.h std_stack.h std_stdexcept.h std_streambuf.h \
		std_string.h std_utility.h std_valarray.h std_vector.h
.for h in ${STDHDRS}
STDHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
STDHDRS:=	${STDHDRS:S;^;${SRCDIR}/include/std/;}
STDHDRSDIR=	${CXXINCLUDEDIR}

BITSHDRS=	allocator.h basic_ios.h basic_ios.tcc basic_string.h \
		basic_string.tcc boost_concept_check.h char_traits.h codecvt.h \
		concept_check.h cpp_type_traits.h deque.tcc fstream.tcc \
		functexcept.h gslice.h gslice_array.h indirect_array.h \
		ios_base.h istream.tcc list.tcc locale_classes.h \
		locale_facets.h locale_facets.tcc localefwd.h mask_array.h \
		ostream.tcc ostream_insert.h postypes.h stream_iterator.h \
		streambuf_iterator.h slice_array.h sstream.tcc stl_algo.h \
		stl_algobase.h stl_bvector.h stl_construct.h stl_deque.h \
		stl_function.h stl_heap.h stl_iterator.h \
		stl_iterator_base_funcs.h stl_iterator_base_types.h stl_list.h \
		stl_map.h stl_multimap.h stl_multiset.h stl_numeric.h \
		stl_pair.h stl_queue.h stl_raw_storage_iter.h stl_relops.h \
		stl_set.h stl_stack.h stl_tempbuf.h stl_tree.h \
		stl_uninitialized.h stl_vector.h streambuf.tcc stringfwd.h \
		valarray_array.h valarray_array.tcc valarray_before.h \
		valarray_after.h vector.tcc
BITSHDRS:=	${BITSHDRS:S;^;${SRCDIR}/include/bits/;}
BITSHDRSDIR=	${CXXINCLUDEDIR}/bits

BKWHDRS=	complex.h iomanip.h istream.h ostream.h stream.h streambuf.h \
		algo.h algobase.h alloc.h bvector.h defalloc.h deque.h \
		function.h hash_map.h hash_set.h hashtable.h heap.h iostream.h \
		iterator.h list.h map.h multimap.h new.h multiset.h pair.h \
		queue.h rope.h set.h slist.h stack.h tempbuf.h tree.h \
		vector.h fstream.h strstream backward_warning.h
BKWHDRS:=	${BKWHDRS:S;^;${SRCDIR}/include/backward/;}
BKWHDRSDIR=	${CXXINCLUDEDIR}/backward

EXTHDRS=	algorithm atomicity.h array_allocator.h bitmap_allocator.h \
		codecvt_specializations.h concurrence.h debug_allocator.h \
		stdio_filebuf.h stdio_sync_filebuf.h functional \
		hash_map hash_set hash_fun.h hashtable.h iterator \
		malloc_allocator.h memory mt_allocator.h new_allocator.h \
		numeric numeric_traits.h pod_char_traits.h pool_allocator.h \
		rb_tree rope ropeimpl.h slist throw_allocator.h typelist.h \
		type_traits.h rc_string_base.h sso_string_base.h vstring.h \
		vstring.tcc vstring_fwd.h vstring_util.h

EXTHDRS:=	${EXTHDRS:S;^;${SRCDIR}/include/ext/;}
EXTHDRSDIR=	${CXXINCLUDEDIR}/ext

TR1HDRS=	array bind_repeat.h bind_iterate.h boost_shared_ptr.h cctype \
		cfenv cfloat cinttypes climits cmath common.h complex cstdarg \
		cstdbool cstdint cstdio cstdlib ctgmath ctime ctype.h cwchar \
		cwctype fenv.h float.h functional functional_hash.h \
		functional_iterate.h hashtable hashtable_policy.h inttypes.h \
		limits.h math.h memory mu_iterate.h random random.tcc \
		ref_fwd.h ref_wrap_iterate.h repeat.h stdarg.h stdbool.h \
		stdint.h stdio.h stdlib.h tgmath.h tuple tuple_defs.h \
		tuple_iterate.h type_traits type_traits_fwd.h unordered_set \
		unordered_map utility wchar.h wctype.h

TR1HDRS:=	${TR1HDRS:S;^;${SRCDIR}/include/tr1/;}
TR1HDRSDIR=	${CXXINCLUDEDIR}/tr1

# This is the common subset of files that all three "C" header models use.
BASEHDRS=	std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h \
		std_ciso646.h std_climits.h std_clocale.h std_cmath.h \
		std_csetjmp.h std_csignal.h std_cstdarg.h std_cstddef.h \
		std_cstdio.h std_cstdlib.h std_cstring.h std_ctime.h \
		std_cwchar.h std_cwctype.h
.for h in ${BASEHDRS}
BASEHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
BASEHDRS:=	${BASEHDRS:S;^;${SRCDIR}/include/c_std/;}
BASEHDRSDIR=	${CXXINCLUDEDIR}

# Some of the different "C" header models need extra files.
BASEXHDRS=	${SRCDIR}/include/c_std/cmath.tcc
BASEXHDRSDIR=	${CXXINCLUDEDIR}/bits

DEBUGHDRS=	bitset debug.h deque formatter.h functions.h hash_map \
		hash_map.h hash_multimap.h hash_multiset.h hash_set hash_set.h \
		list macros.h map map.h multimap.h multiset.h safe_base.h \
		safe_iterator.h safe_iterator.tcc safe_sequence.h set set.h \
		string vector
DEBUGHDRS:=	${DEBUGHDRS:S;^;${SRCDIR}/include/debug/;}
DEBUGHDRSDIR=	${CXXINCLUDEDIR}/debug

# Not installed, but kept here for completeness
COMPATHDRS=	assert.h ctype.h errno.h float.h iso646.h limits.h locale.h \
		math.h setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h \
		string.h time.h wchar.h wctype.h
COMPATHDRS:=	${COMPATHDRS:S;^;${SRCDIR}/include/debug/;}
COMPATHDRSDIR=	${CXXINCLUDEDIR}/c_compatibility

PBHDRS0 = \
	assoc_container.hpp \
	exception.hpp \
	hash_policy.hpp \
	list_update_policy.hpp \
	priority_queue.hpp \
	tag_and_trait.hpp \
	tree_policy.hpp \
	trie_policy.hpp
PBHDRS0:=	${PBHDRS0:S;^;${SRCDIR}/include/ext/pb_ds/;}
PBHDRS0DIR=	${CXXINCLUDEDIR}/ext/pb_ds

PBHDRS1 = \
	basic_types.hpp \
	cond_dealtor.hpp \
	constructors_destructor_fn_imps.hpp \
	container_base_dispatch.hpp \
	map_debug_base.hpp \
	priority_queue_base_dispatch.hpp \
	standard_policies.hpp \
	tree_trace_base.hpp \
	type_utils.hpp \
	types_traits.hpp
PBHDRS1:=	${PBHDRS1:S;^;${SRCDIR}/include/ext/pb_ds/detail/;}
PBHDRS1DIR=	${CXXINCLUDEDIR}/ext/pb_ds/detail

PBHDRS+= \
	basic_tree_policy/basic_tree_policy_base.hpp \
	basic_tree_policy/null_node_metadata.hpp \
	basic_tree_policy/traits.hpp \
	basic_types.hpp \
	binary_heap_/binary_heap_.hpp \
	binary_heap_/const_iterator.hpp \
	binary_heap_/const_point_iterator.hpp \
	binary_heap_/constructors_destructor_fn_imps.hpp \
	binary_heap_/debug_fn_imps.hpp \
	binary_heap_/entry_cmp.hpp \
	binary_heap_/entry_pred.hpp \
	binary_heap_/erase_fn_imps.hpp \
	binary_heap_/find_fn_imps.hpp \
	binary_heap_/info_fn_imps.hpp \
	binary_heap_/insert_fn_imps.hpp \
	binary_heap_/iterators_fn_imps.hpp \
	binary_heap_/policy_access_fn_imps.hpp \
	binary_heap_/resize_policy.hpp \
	binary_heap_/split_join_fn_imps.hpp \
	binary_heap_/trace_fn_imps.hpp \
	binomial_heap_base_/binomial_heap_base_.hpp \
	binomial_heap_base_/constructors_destructor_fn_imps.hpp \
	binomial_heap_base_/debug_fn_imps.hpp \
	binomial_heap_base_/erase_fn_imps.hpp \
	binomial_heap_base_/find_fn_imps.hpp \
	binomial_heap_base_/insert_fn_imps.hpp \
	binomial_heap_base_/split_join_fn_imps.hpp \
	binomial_heap_/binomial_heap_.hpp \
	binomial_heap_/constructors_destructor_fn_imps.hpp \
	binomial_heap_/debug_fn_imps.hpp \
	bin_search_tree_/bin_search_tree_.hpp \
	bin_search_tree_/cond_dtor_entry_dealtor.hpp \
	bin_search_tree_/cond_key_dtor_entry_dealtor.hpp

PBHDRS+= \
	bin_search_tree_/constructors_destructor_fn_imps.hpp \
	bin_search_tree_/debug_fn_imps.hpp \
	bin_search_tree_/erase_fn_imps.hpp \
	bin_search_tree_/find_fn_imps.hpp \
	bin_search_tree_/info_fn_imps.hpp \
	bin_search_tree_/insert_fn_imps.hpp \
	bin_search_tree_/iterators_fn_imps.hpp \
	bin_search_tree_/node_iterators.hpp \
	bin_search_tree_/point_iterators.hpp \
	bin_search_tree_/policy_access_fn_imps.hpp \
	bin_search_tree_/r_erase_fn_imps.hpp \
	bin_search_tree_/rotate_fn_imps.hpp \
	bin_search_tree_/split_join_fn_imps.hpp \
	bin_search_tree_/traits.hpp \
	cc_hash_table_map_/cc_ht_map_.hpp \
	cc_hash_table_map_/cmp_fn_imps.hpp \
	cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp \
	cc_hash_table_map_/constructor_destructor_fn_imps.hpp \
	cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
	cc_hash_table_map_/debug_fn_imps.hpp \
	cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/debug_store_hash_fn_imps.hpp \
	cc_hash_table_map_/entry_list_fn_imps.hpp \
	cc_hash_table_map_/erase_fn_imps.hpp \
	cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/erase_store_hash_fn_imps.hpp \
	cc_hash_table_map_/find_fn_imps.hpp \
	cc_hash_table_map_/find_store_hash_fn_imps.hpp \
	cc_hash_table_map_/info_fn_imps.hpp \
	cc_hash_table_map_/insert_fn_imps.hpp \
	cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/insert_store_hash_fn_imps.hpp \
	cc_hash_table_map_/iterators_fn_imps.hpp \
	cc_hash_table_map_/policy_access_fn_imps.hpp \
	cc_hash_table_map_/resize_fn_imps.hpp \
	cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/resize_store_hash_fn_imps.hpp \
	cc_hash_table_map_/size_fn_imps.hpp \
	cc_hash_table_map_/standard_policies.hpp

PBHDRS+= \
	cc_hash_table_map_/trace_fn_imps.hpp \
	cond_dealtor.hpp \
	constructors_destructor_fn_imps.hpp \
	container_base_dispatch.hpp \
	eq_fn/eq_by_less.hpp \
	eq_fn/hash_eq_fn.hpp \
	gp_hash_table_map_/constructor_destructor_fn_imps.hpp \
	gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
	gp_hash_table_map_/debug_fn_imps.hpp \
	gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/debug_store_hash_fn_imps.hpp \
	gp_hash_table_map_/erase_fn_imps.hpp \
	gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/erase_store_hash_fn_imps.hpp \
	gp_hash_table_map_/find_fn_imps.hpp \
	gp_hash_table_map_/find_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/find_store_hash_fn_imps.hpp \
	gp_hash_table_map_/gp_ht_map_.hpp \
	gp_hash_table_map_/info_fn_imps.hpp \
	gp_hash_table_map_/insert_fn_imps.hpp \
	gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/insert_store_hash_fn_imps.hpp \
	gp_hash_table_map_/iterator_fn_imps.hpp \
	gp_hash_table_map_/policy_access_fn_imps.hpp \
	gp_hash_table_map_/resize_fn_imps.hpp \
	gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/resize_store_hash_fn_imps.hpp \
	gp_hash_table_map_/standard_policies.hpp \
	gp_hash_table_map_/trace_fn_imps.hpp \
	hash_fn/direct_mask_range_hashing_imp.hpp \
	hash_fn/direct_mod_range_hashing_imp.hpp \
	hash_fn/linear_probe_fn_imp.hpp \
	hash_fn/mask_based_range_hashing.hpp \
	hash_fn/mod_based_range_hashing.hpp \
	hash_fn/probe_fn_base.hpp \
	hash_fn/quadratic_probe_fn_imp.hpp \
	hash_fn/ranged_hash_fn.hpp \
	hash_fn/ranged_probe_fn.hpp

PBHDRS+= \
	hash_fn/sample_probe_fn.hpp \
	hash_fn/sample_ranged_hash_fn.hpp \
	hash_fn/sample_ranged_probe_fn.hpp \
	hash_fn/sample_range_hashing.hpp \
	left_child_next_sibling_heap_/const_iterator.hpp \
	left_child_next_sibling_heap_/const_point_iterator.hpp \
	left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp \
	left_child_next_sibling_heap_/debug_fn_imps.hpp \
	left_child_next_sibling_heap_/erase_fn_imps.hpp \
	left_child_next_sibling_heap_/info_fn_imps.hpp \
	left_child_next_sibling_heap_/insert_fn_imps.hpp \
	left_child_next_sibling_heap_/iterators_fn_imps.hpp \
	left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp \
	left_child_next_sibling_heap_/node.hpp \
	left_child_next_sibling_heap_/null_metadata.hpp \
	left_child_next_sibling_heap_/policy_access_fn_imps.hpp \
	left_child_next_sibling_heap_/trace_fn_imps.hpp \
	list_update_map_/constructor_destructor_fn_imps.hpp \
	list_update_map_/debug_fn_imps.hpp \
	list_update_map_/entry_metadata_base.hpp \
	list_update_map_/erase_fn_imps.hpp \
	list_update_map_/find_fn_imps.hpp \
	list_update_map_/info_fn_imps.hpp \
	list_update_map_/insert_fn_imps.hpp \
	list_update_map_/iterators_fn_imps.hpp \
	list_update_map_/lu_map_.hpp \
	list_update_map_/trace_fn_imps.hpp \
	list_update_policy/counter_lu_metadata.hpp \
	list_update_policy/counter_lu_policy_imp.hpp \
	list_update_policy/mtf_lu_policy_imp.hpp \
	list_update_policy/sample_update_policy.hpp \
	map_debug_base.hpp \
	ov_tree_map_/cond_dtor.hpp \
	ov_tree_map_/constructors_destructor_fn_imps.hpp \
	ov_tree_map_/debug_fn_imps.hpp \
	ov_tree_map_/erase_fn_imps.hpp \
	ov_tree_map_/info_fn_imps.hpp \
	ov_tree_map_/insert_fn_imps.hpp \
	ov_tree_map_/iterators_fn_imps.hpp \
	ov_tree_map_/node_iterators.hpp \
	ov_tree_map_/ov_tree_map_.hpp

PBHDRS+= \
	ov_tree_map_/policy_access_fn_imps.hpp \
	ov_tree_map_/split_join_fn_imps.hpp \
	ov_tree_map_/traits.hpp \
	pairing_heap_/constructors_destructor_fn_imps.hpp \
	pairing_heap_/debug_fn_imps.hpp \
	pairing_heap_/erase_fn_imps.hpp \
	pairing_heap_/find_fn_imps.hpp \
	pairing_heap_/insert_fn_imps.hpp \
	pairing_heap_/pairing_heap_.hpp \
	pairing_heap_/split_join_fn_imps.hpp \
	pat_trie_/child_iterator.hpp \
	pat_trie_/cond_dtor_entry_dealtor.hpp \
	pat_trie_/const_child_iterator.hpp \
	pat_trie_/constructors_destructor_fn_imps.hpp \
	pat_trie_/debug_fn_imps.hpp \
	pat_trie_/erase_fn_imps.hpp \
	pat_trie_/find_fn_imps.hpp \
	pat_trie_/head.hpp \
	pat_trie_/info_fn_imps.hpp \
	pat_trie_/insert_join_fn_imps.hpp \
	pat_trie_/internal_node.hpp \
	pat_trie_/iterators_fn_imps.hpp \
	pat_trie_/leaf.hpp \
	pat_trie_/node_base.hpp \
	pat_trie_/node_iterators.hpp \
	pat_trie_/node_metadata_base.hpp \
	pat_trie_/pat_trie_.hpp \
	pat_trie_/point_iterators.hpp \
	pat_trie_/policy_access_fn_imps.hpp \
	pat_trie_/r_erase_fn_imps.hpp \
	pat_trie_/rotate_fn_imps.hpp \
	pat_trie_/split_fn_imps.hpp \
	pat_trie_/split_join_branch_bag.hpp \
	pat_trie_/synth_e_access_traits.hpp \
	pat_trie_/trace_fn_imps.hpp \
	pat_trie_/traits.hpp \
	pat_trie_/update_fn_imps.hpp \
	priority_queue_base_dispatch.hpp \
	rb_tree_map_/constructors_destructor_fn_imps.hpp \
	rb_tree_map_/debug_fn_imps.hpp

PBHDRS+= \
	rb_tree_map_/erase_fn_imps.hpp \
	rb_tree_map_/find_fn_imps.hpp \
	rb_tree_map_/info_fn_imps.hpp \
	rb_tree_map_/insert_fn_imps.hpp \
	rb_tree_map_/node.hpp \
	rb_tree_map_/rb_tree_.hpp \
	rb_tree_map_/split_join_fn_imps.hpp \
	rb_tree_map_/traits.hpp \
	rc_binomial_heap_/constructors_destructor_fn_imps.hpp \
	rc_binomial_heap_/debug_fn_imps.hpp \
	rc_binomial_heap_/erase_fn_imps.hpp \
	rc_binomial_heap_/insert_fn_imps.hpp \
	rc_binomial_heap_/rc_binomial_heap_.hpp \
	rc_binomial_heap_/rc.hpp \
	rc_binomial_heap_/split_join_fn_imps.hpp \
	rc_binomial_heap_/trace_fn_imps.hpp \
	resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp \
	resize_policy/hash_exponential_size_policy_imp.hpp \
	resize_policy/hash_load_check_resize_trigger_imp.hpp \
	resize_policy/hash_load_check_resize_trigger_size_base.hpp \
	resize_policy/hash_prime_size_policy_imp.hpp \
	resize_policy/hash_standard_resize_policy_imp.hpp \
	resize_policy/sample_resize_policy.hpp \
	resize_policy/sample_resize_trigger.hpp \
	resize_policy/sample_size_policy.hpp \
	splay_tree_/constructors_destructor_fn_imps.hpp \
	splay_tree_/debug_fn_imps.hpp \
	splay_tree_/erase_fn_imps.hpp \
	splay_tree_/find_fn_imps.hpp \
	splay_tree_/info_fn_imps.hpp \
	splay_tree_/insert_fn_imps.hpp \
	splay_tree_/node.hpp \
	splay_tree_/splay_fn_imps.hpp \
	splay_tree_/splay_tree_.hpp \
	splay_tree_/split_join_fn_imps.hpp \
	splay_tree_/traits.hpp \
	standard_policies.hpp \
	thin_heap_/constructors_destructor_fn_imps.hpp \
	thin_heap_/debug_fn_imps.hpp \
	thin_heap_/erase_fn_imps.hpp

PBHDRS+= \
	thin_heap_/find_fn_imps.hpp \
	thin_heap_/insert_fn_imps.hpp \
	thin_heap_/split_join_fn_imps.hpp \
	thin_heap_/thin_heap_.hpp \
	thin_heap_/trace_fn_imps.hpp \
	tree_policy/node_metadata_selector.hpp \
	tree_policy/null_node_update_imp.hpp \
	tree_policy/order_statistics_imp.hpp \
	tree_policy/sample_tree_node_update.hpp \
	tree_trace_base.hpp \
	trie_policy/node_metadata_selector.hpp \
	trie_policy/null_node_update_imp.hpp \
	trie_policy/order_statistics_imp.hpp \
	trie_policy/prefix_search_node_update_imp.hpp \
	trie_policy/sample_trie_e_access_traits.hpp \
	trie_policy/sample_trie_node_update.hpp \
	trie_policy/string_trie_e_access_traits_imp.hpp \
	trie_policy/trie_policy_base.hpp \
	types_traits.hpp \
	type_utils.hpp \
	unordered_iterator/const_iterator.hpp \
	unordered_iterator/const_point_iterator.hpp \
	unordered_iterator/iterator.hpp \
	unordered_iterator/point_iterator.hpp

PBHDRSDIRS= \
	pairing_heap_ \
	splay_tree_ \
	list_update_map_ \
	basic_tree_policy \
	trie_policy \
	gp_hash_table_map_ \
	tree_policy \
	binomial_heap_base_ \
	resize_policy \
	bin_search_tree_ \
	binomial_heap_ \
	thin_heap_ \
	pat_trie_ \
	cc_hash_table_map_ \
	rc_binomial_heap_ \
	left_child_next_sibling_heap_ \
	unordered_iterator \
	binary_heap_ \
	ov_tree_map_ \
	hash_fn \
	eq_fn \
	rb_tree_map_ \
	list_update_policy

.for D in ${PBHDRSDIRS}
PHDRGRP$D:=	${PBHDRS:M$D/*:S;^;${SRCDIR}/include/ext/pb_ds/detail/;}
PHDRGRP$DDIR=	${CXXINCLUDEDIR}/ext/pb_ds/detail/$D
INCSGROUPS+=	PHDRGRP$D
.endfor

TARGETHDRS=	abi/compatibility.h \
		allocator/new_allocator_base.h \
		io/basic_file_stdio.h \
		io/c_io_stdio.h \
		locale/generic/c_locale.h \
		locale/generic/c++locale_internal.h \
		locale/generic/messages_members.h \
		locale/generic/time_members.h \
		os/bsd/freebsd/ctype_base.h \
		os/bsd/freebsd/ctype_inline.h \
		os/bsd/freebsd/ctype_noninline.h \
		os/bsd/freebsd/os_defines.h
TARGETHDRS:=	${TARGETHDRS:S;^;${SRCDIR}/config/;}
TARGETHDRS+=	c++config.h
TARGETHDRSNAME_basic_file_stdio.h= basic_file.h
TARGETHDRSNAME_c_io_stdio.h= c++io.h
TARGETHDRSNAME_c_locale.h= c++locale.h
TARGETHDRSNAME_new_allocator_base.h= c++allocator.h
TARGETHDRSDIR=	${CXXINCLUDEDIR}/bits

MARCHHDRS=	atomic_word.h cpu_defines.h cxxabi_tweaks.h
.for h in ${MARCHHDRS}
.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/${h})
TARGETHDRS+=	${SRCDIR}/config/cpu/${MARCHDIR}/${h}
.else
TARGETHDRS+=	${SRCDIR}/config/cpu/generic/${h}
.endif
.endfor

THRHDRS=	gthr.h gthr-single.h gthr-posix.h gthr-tpf.h gthr-default.h
THRHDRSDIR=	${CXXINCLUDEDIR}/bits
uppercase =	[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]

gthr.h: ${GCCDIR}/gthr.h
	sed -e '/^#pragma/b' \
	    -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
	    -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-single.h: ${GCCDIR}/gthr-single.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-posix.h: ${GCCDIR}/gthr-posix.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-tpf.h: ${GCCDIR}/gthr-posix.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-default.h: ${GCCDIR}/gthr-posix.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
	    < ${.ALLSRC} > ${.TARGET}

CLEANFILES+=	${THRHDRS}

.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
unwind.h: ${GCCDIR}/config/arm/unwind-arm.h
.else
unwind.h: ${GCCDIR}/unwind-generic.h
.endif

unwind.h:
	ln -sf ${.ALLSRC} ${.TARGET}

SRCS+=		unwind.h
CLEANFILES+=	unwind.h

DATESTAMP!=	cat ${GCCDIR}/DATESTAMP

c++config.h: ${.CURDIR}/config.h ${SRCDIR}/include/bits/c++config
	sed -e "s/\\(define __GLIBCXX__\\)/\1 ${DATESTAMP}/" \
	    -e 's/\(define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY\)/\1 1/' \
	    -e 's/\(define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION\)/\1 0/' \
	    < ${SRCDIR}/include/bits/c++config > ${.TARGET} && \
	sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
	    -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
	    -e 's/VERSION/_GLIBCXX_VERSION/g' \
	    -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
	    < ${.CURDIR}/config.h >> ${.TARGET} && \
	echo "#endif // _CXXCONFIG_" >> ${.TARGET}
CLEANFILES+=	c++config.h

# Symbol versioning.

VERSION_MAP=  	libstdc++.map

${VERSION_MAP}: ${SRCDIR}/config/abi/pre/gnu.ver
	ln -sf ${.ALLSRC} ${.TARGET}

CLEANFILES+=	${VERSION_MAP}

.include <bsd.lib.mk>

# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
@


1.72.2.1
log
@file Makefile was added on branch RELENG_8_4 on 2013-03-28 13:02:47 +0000
@
text
@d1 638
@


1.72.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 625
# $FreeBSD: releng/8.4/gnu/lib/libstdc++/Makefile 212962 2010-09-21 12:55:20Z tijl $

GCCDIR=	${.CURDIR}/../../../contrib/gcc
GCCLIB=	${.CURDIR}/../../../contrib/gcclibs
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++
SUPDIR=	${SRCDIR}/libsupc++

.PATH: ${SRCDIR}/src ${SRCDIR}/libmath ${SRCDIR}/config/io \
       ${SRCDIR}/config/locale/darwin ${SRCDIR}/config/locale/generic \
       ${SRCDIR}/include ${SUPDIR} ${GCCDIR} ${GCCLIB}/libiberty

LIB=		stdc++
SHLIB_MAJOR=	6

CFLAGS+=	-DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
.if ${MACHINE_ARCH} == "arm"
CFLAGS+=	-D_GLIBCXX_SJLJ_EXCEPTIONS=1
.endif
CFLAGS+=	-I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include
CFLAGS+=	-I${GCCLIB}/include -I${SRCDIR}/include -I.
CFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
CXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections \
		-Wno-deprecated

DPADD=		${LIBM}
LDADD=		-lm

# libstdc++ sources
SRCS+=	bitmap_allocator.cc pool_allocator.cc \
	mt_allocator.cc codecvt.cc compatibility.cc complex_io.cc \
	ctype.cc debug.cc debug_list.cc functexcept.cc globals_io.cc \
	ios.cc ios_failure.cc ios_init.cc ios_locale.cc limits.cc \
	list.cc locale.cc locale_init.cc locale_facets.cc \
	localename.cc stdexcept.cc strstream.cc tree.cc \
	allocator-inst.cc concept-inst.cc fstream-inst.cc ext-inst.cc \
	ios-inst.cc iostream-inst.cc istream-inst.cc istream.cc \
	locale-inst.cc misc-inst.cc ostream-inst.cc sstream-inst.cc \
	streambuf-inst.cc streambuf.cc string-inst.cc valarray-inst.cc \
	wlocale-inst.cc wstring-inst.cc atomicity.cc \
	codecvt_members.cc collate_members.cc ctype_members.cc \
	messages_members.cc monetary_members.cc numeric_members.cc \
	time_members.cc basic_file_stdio.cc c_locale.cc \
#	compatibility-ldbl.cc

# target sources
SRCS+=  atomicity.cc codecvt_members.cc collate_members.cc ctype_members.cc \
	messages_members.cc monetary_members.cc numeric_members.cc \
	time_members.cc

# target sources extra
SRCS+=  basic_file_stdio.cc c_locale.cc

# C parts of math
SRCS+=	stubs.c

# Embedded copy of libsupc++
SRCS+=	del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \
	eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc eh_globals.cc \
	eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \
	eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc new_op.cc \
	new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc \
	vec.cc vterminate.cc

# from libiberty:
SRCS+=	cp-demangle.c

# MD headers location
.if ${MACHINE_ARCH} == "sparc64"
MARCHDIR=	sparc
.elif ${MACHINE_ARCH} == "i386" && ${MACHINE_CPU} != 'i386'
MARCHDIR=	i486
.elif ${MACHINE_ARCH} == "amd64"
MARCHDIR=	i486
.else
MARCHDIR=	${MACHINE_ARCH}
.endif

.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/atomicity.h)
ATOMICITY_H=	${SRCDIR}/config/cpu/${MARCHDIR}/atomicity.h
.else
ATOMICITY_H=	${SRCDIR}/config/cpu/generic/atomicity_mutex/atomicity.h
.endif

.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
.if exists(${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h)
ATOMICITY_H=	${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h
.endif
.endif

atomicity.cc:	${ATOMICITY_H}
	ln -sf ${.ALLSRC} ${.TARGET}
CLEANFILES+=	atomicity.cc

INCSGROUPS=	BITSHDRS BKWHDRS EXTHDRS BASEHDRS BASEXHDRS STDHDRS \
		TARGETHDRS THRHDRS DEBUGHDRS TR1HDRS PBHDRS0 PBHDRS1
CXXINCLUDEDIR=	${INCLUDEDIR}/c++/4.2

STDHDRS=	std_algorithm.h std_bitset.h std_complex.h std_deque.h \
		std_fstream.h std_functional.h std_iomanip.h std_ios.h \
		std_iosfwd.h std_iostream.h std_istream.h std_iterator.h \
		std_limits.h std_list.h std_locale.h std_map.h std_memory.h \
		std_numeric.h std_ostream.h std_queue.h std_set.h \
		std_sstream.h std_stack.h std_stdexcept.h std_streambuf.h \
		std_string.h std_utility.h std_valarray.h std_vector.h
.for h in ${STDHDRS}
STDHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
STDHDRS:=	${STDHDRS:S;^;${SRCDIR}/include/std/;}
STDHDRSDIR=	${CXXINCLUDEDIR}

BITSHDRS=	allocator.h basic_ios.h basic_ios.tcc basic_string.h \
		basic_string.tcc boost_concept_check.h char_traits.h codecvt.h \
		concept_check.h cpp_type_traits.h deque.tcc fstream.tcc \
		functexcept.h gslice.h gslice_array.h indirect_array.h \
		ios_base.h istream.tcc list.tcc locale_classes.h \
		locale_facets.h locale_facets.tcc localefwd.h mask_array.h \
		ostream.tcc ostream_insert.h postypes.h stream_iterator.h \
		streambuf_iterator.h slice_array.h sstream.tcc stl_algo.h \
		stl_algobase.h stl_bvector.h stl_construct.h stl_deque.h \
		stl_function.h stl_heap.h stl_iterator.h \
		stl_iterator_base_funcs.h stl_iterator_base_types.h stl_list.h \
		stl_map.h stl_multimap.h stl_multiset.h stl_numeric.h \
		stl_pair.h stl_queue.h stl_raw_storage_iter.h stl_relops.h \
		stl_set.h stl_stack.h stl_tempbuf.h stl_tree.h \
		stl_uninitialized.h stl_vector.h streambuf.tcc stringfwd.h \
		valarray_array.h valarray_array.tcc valarray_before.h \
		valarray_after.h vector.tcc
BITSHDRS:=	${BITSHDRS:S;^;${SRCDIR}/include/bits/;}
BITSHDRSDIR=	${CXXINCLUDEDIR}/bits

BKWHDRS=	complex.h iomanip.h istream.h ostream.h stream.h streambuf.h \
		algo.h algobase.h alloc.h bvector.h defalloc.h deque.h \
		function.h hash_map.h hash_set.h hashtable.h heap.h iostream.h \
		iterator.h list.h map.h multimap.h new.h multiset.h pair.h \
		queue.h rope.h set.h slist.h stack.h tempbuf.h tree.h \
		vector.h fstream.h strstream backward_warning.h
BKWHDRS:=	${BKWHDRS:S;^;${SRCDIR}/include/backward/;}
BKWHDRSDIR=	${CXXINCLUDEDIR}/backward

EXTHDRS=	algorithm atomicity.h array_allocator.h bitmap_allocator.h \
		codecvt_specializations.h concurrence.h debug_allocator.h \
		stdio_filebuf.h stdio_sync_filebuf.h functional \
		hash_map hash_set hash_fun.h hashtable.h iterator \
		malloc_allocator.h memory mt_allocator.h new_allocator.h \
		numeric numeric_traits.h pod_char_traits.h pool_allocator.h \
		rb_tree rope ropeimpl.h slist throw_allocator.h typelist.h \
		type_traits.h rc_string_base.h sso_string_base.h vstring.h \
		vstring.tcc vstring_fwd.h vstring_util.h

EXTHDRS:=	${EXTHDRS:S;^;${SRCDIR}/include/ext/;}
EXTHDRSDIR=	${CXXINCLUDEDIR}/ext

TR1HDRS=	array bind_repeat.h bind_iterate.h boost_shared_ptr.h cctype \
		cfenv cfloat cinttypes climits cmath common.h complex cstdarg \
		cstdbool cstdint cstdio cstdlib ctgmath ctime ctype.h cwchar \
		cwctype fenv.h float.h functional functional_hash.h \
		functional_iterate.h hashtable hashtable_policy.h inttypes.h \
		limits.h math.h memory mu_iterate.h random random.tcc \
		ref_fwd.h ref_wrap_iterate.h repeat.h stdarg.h stdbool.h \
		stdint.h stdio.h stdlib.h tgmath.h tuple tuple_defs.h \
		tuple_iterate.h type_traits type_traits_fwd.h unordered_set \
		unordered_map utility wchar.h wctype.h

TR1HDRS:=	${TR1HDRS:S;^;${SRCDIR}/include/tr1/;}
TR1HDRSDIR=	${CXXINCLUDEDIR}/tr1

# This is the common subset of files that all three "C" header models use.
BASEHDRS=	std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h \
		std_ciso646.h std_climits.h std_clocale.h std_cmath.h \
		std_csetjmp.h std_csignal.h std_cstdarg.h std_cstddef.h \
		std_cstdio.h std_cstdlib.h std_cstring.h std_ctime.h \
		std_cwchar.h std_cwctype.h
.for h in ${BASEHDRS}
BASEHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
BASEHDRS:=	${BASEHDRS:S;^;${SRCDIR}/include/c_std/;}
BASEHDRSDIR=	${CXXINCLUDEDIR}

# Some of the different "C" header models need extra files.
BASEXHDRS=	${SRCDIR}/include/c_std/cmath.tcc
BASEXHDRSDIR=	${CXXINCLUDEDIR}/bits

DEBUGHDRS=	bitset debug.h deque formatter.h functions.h hash_map \
		hash_map.h hash_multimap.h hash_multiset.h hash_set hash_set.h \
		list macros.h map map.h multimap.h multiset.h safe_base.h \
		safe_iterator.h safe_iterator.tcc safe_sequence.h set set.h \
		string vector
DEBUGHDRS:=	${DEBUGHDRS:S;^;${SRCDIR}/include/debug/;}
DEBUGHDRSDIR=	${CXXINCLUDEDIR}/debug

# Not installed, but kept here for completeness
COMPATHDRS=	assert.h ctype.h errno.h float.h iso646.h limits.h locale.h \
		math.h setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h \
		string.h time.h wchar.h wctype.h
COMPATHDRS:=	${COMPATHDRS:S;^;${SRCDIR}/include/debug/;}
COMPATHDRSDIR=	${CXXINCLUDEDIR}/c_compatibility

PBHDRS0 = \
	assoc_container.hpp \
	exception.hpp \
	hash_policy.hpp \
	list_update_policy.hpp \
	priority_queue.hpp \
	tag_and_trait.hpp \
	tree_policy.hpp \
	trie_policy.hpp
PBHDRS0:=	${PBHDRS0:S;^;${SRCDIR}/include/ext/pb_ds/;}
PBHDRS0DIR=	${CXXINCLUDEDIR}/ext/pb_ds

PBHDRS1 = \
	basic_types.hpp \
	cond_dealtor.hpp \
	constructors_destructor_fn_imps.hpp \
	container_base_dispatch.hpp \
	map_debug_base.hpp \
	priority_queue_base_dispatch.hpp \
	standard_policies.hpp \
	tree_trace_base.hpp \
	type_utils.hpp \
	types_traits.hpp
PBHDRS1:=	${PBHDRS1:S;^;${SRCDIR}/include/ext/pb_ds/detail/;}
PBHDRS1DIR=	${CXXINCLUDEDIR}/ext/pb_ds/detail

PBHDRS+= \
	basic_tree_policy/basic_tree_policy_base.hpp \
	basic_tree_policy/null_node_metadata.hpp \
	basic_tree_policy/traits.hpp \
	basic_types.hpp \
	binary_heap_/binary_heap_.hpp \
	binary_heap_/const_iterator.hpp \
	binary_heap_/const_point_iterator.hpp \
	binary_heap_/constructors_destructor_fn_imps.hpp \
	binary_heap_/debug_fn_imps.hpp \
	binary_heap_/entry_cmp.hpp \
	binary_heap_/entry_pred.hpp \
	binary_heap_/erase_fn_imps.hpp \
	binary_heap_/find_fn_imps.hpp \
	binary_heap_/info_fn_imps.hpp \
	binary_heap_/insert_fn_imps.hpp \
	binary_heap_/iterators_fn_imps.hpp \
	binary_heap_/policy_access_fn_imps.hpp \
	binary_heap_/resize_policy.hpp \
	binary_heap_/split_join_fn_imps.hpp \
	binary_heap_/trace_fn_imps.hpp \
	binomial_heap_base_/binomial_heap_base_.hpp \
	binomial_heap_base_/constructors_destructor_fn_imps.hpp \
	binomial_heap_base_/debug_fn_imps.hpp \
	binomial_heap_base_/erase_fn_imps.hpp \
	binomial_heap_base_/find_fn_imps.hpp \
	binomial_heap_base_/insert_fn_imps.hpp \
	binomial_heap_base_/split_join_fn_imps.hpp \
	binomial_heap_/binomial_heap_.hpp \
	binomial_heap_/constructors_destructor_fn_imps.hpp \
	binomial_heap_/debug_fn_imps.hpp \
	bin_search_tree_/bin_search_tree_.hpp \
	bin_search_tree_/cond_dtor_entry_dealtor.hpp \
	bin_search_tree_/cond_key_dtor_entry_dealtor.hpp

PBHDRS+= \
	bin_search_tree_/constructors_destructor_fn_imps.hpp \
	bin_search_tree_/debug_fn_imps.hpp \
	bin_search_tree_/erase_fn_imps.hpp \
	bin_search_tree_/find_fn_imps.hpp \
	bin_search_tree_/info_fn_imps.hpp \
	bin_search_tree_/insert_fn_imps.hpp \
	bin_search_tree_/iterators_fn_imps.hpp \
	bin_search_tree_/node_iterators.hpp \
	bin_search_tree_/point_iterators.hpp \
	bin_search_tree_/policy_access_fn_imps.hpp \
	bin_search_tree_/r_erase_fn_imps.hpp \
	bin_search_tree_/rotate_fn_imps.hpp \
	bin_search_tree_/split_join_fn_imps.hpp \
	bin_search_tree_/traits.hpp \
	cc_hash_table_map_/cc_ht_map_.hpp \
	cc_hash_table_map_/cmp_fn_imps.hpp \
	cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp \
	cc_hash_table_map_/constructor_destructor_fn_imps.hpp \
	cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
	cc_hash_table_map_/debug_fn_imps.hpp \
	cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/debug_store_hash_fn_imps.hpp \
	cc_hash_table_map_/entry_list_fn_imps.hpp \
	cc_hash_table_map_/erase_fn_imps.hpp \
	cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/erase_store_hash_fn_imps.hpp \
	cc_hash_table_map_/find_fn_imps.hpp \
	cc_hash_table_map_/find_store_hash_fn_imps.hpp \
	cc_hash_table_map_/info_fn_imps.hpp \
	cc_hash_table_map_/insert_fn_imps.hpp \
	cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/insert_store_hash_fn_imps.hpp \
	cc_hash_table_map_/iterators_fn_imps.hpp \
	cc_hash_table_map_/policy_access_fn_imps.hpp \
	cc_hash_table_map_/resize_fn_imps.hpp \
	cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
	cc_hash_table_map_/resize_store_hash_fn_imps.hpp \
	cc_hash_table_map_/size_fn_imps.hpp \
	cc_hash_table_map_/standard_policies.hpp

PBHDRS+= \
	cc_hash_table_map_/trace_fn_imps.hpp \
	cond_dealtor.hpp \
	constructors_destructor_fn_imps.hpp \
	container_base_dispatch.hpp \
	eq_fn/eq_by_less.hpp \
	eq_fn/hash_eq_fn.hpp \
	gp_hash_table_map_/constructor_destructor_fn_imps.hpp \
	gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
	gp_hash_table_map_/debug_fn_imps.hpp \
	gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/debug_store_hash_fn_imps.hpp \
	gp_hash_table_map_/erase_fn_imps.hpp \
	gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/erase_store_hash_fn_imps.hpp \
	gp_hash_table_map_/find_fn_imps.hpp \
	gp_hash_table_map_/find_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/find_store_hash_fn_imps.hpp \
	gp_hash_table_map_/gp_ht_map_.hpp \
	gp_hash_table_map_/info_fn_imps.hpp \
	gp_hash_table_map_/insert_fn_imps.hpp \
	gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/insert_store_hash_fn_imps.hpp \
	gp_hash_table_map_/iterator_fn_imps.hpp \
	gp_hash_table_map_/policy_access_fn_imps.hpp \
	gp_hash_table_map_/resize_fn_imps.hpp \
	gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
	gp_hash_table_map_/resize_store_hash_fn_imps.hpp \
	gp_hash_table_map_/standard_policies.hpp \
	gp_hash_table_map_/trace_fn_imps.hpp \
	hash_fn/direct_mask_range_hashing_imp.hpp \
	hash_fn/direct_mod_range_hashing_imp.hpp \
	hash_fn/linear_probe_fn_imp.hpp \
	hash_fn/mask_based_range_hashing.hpp \
	hash_fn/mod_based_range_hashing.hpp \
	hash_fn/probe_fn_base.hpp \
	hash_fn/quadratic_probe_fn_imp.hpp \
	hash_fn/ranged_hash_fn.hpp \
	hash_fn/ranged_probe_fn.hpp

PBHDRS+= \
	hash_fn/sample_probe_fn.hpp \
	hash_fn/sample_ranged_hash_fn.hpp \
	hash_fn/sample_ranged_probe_fn.hpp \
	hash_fn/sample_range_hashing.hpp \
	left_child_next_sibling_heap_/const_iterator.hpp \
	left_child_next_sibling_heap_/const_point_iterator.hpp \
	left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp \
	left_child_next_sibling_heap_/debug_fn_imps.hpp \
	left_child_next_sibling_heap_/erase_fn_imps.hpp \
	left_child_next_sibling_heap_/info_fn_imps.hpp \
	left_child_next_sibling_heap_/insert_fn_imps.hpp \
	left_child_next_sibling_heap_/iterators_fn_imps.hpp \
	left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp \
	left_child_next_sibling_heap_/node.hpp \
	left_child_next_sibling_heap_/null_metadata.hpp \
	left_child_next_sibling_heap_/policy_access_fn_imps.hpp \
	left_child_next_sibling_heap_/trace_fn_imps.hpp \
	list_update_map_/constructor_destructor_fn_imps.hpp \
	list_update_map_/debug_fn_imps.hpp \
	list_update_map_/entry_metadata_base.hpp \
	list_update_map_/erase_fn_imps.hpp \
	list_update_map_/find_fn_imps.hpp \
	list_update_map_/info_fn_imps.hpp \
	list_update_map_/insert_fn_imps.hpp \
	list_update_map_/iterators_fn_imps.hpp \
	list_update_map_/lu_map_.hpp \
	list_update_map_/trace_fn_imps.hpp \
	list_update_policy/counter_lu_metadata.hpp \
	list_update_policy/counter_lu_policy_imp.hpp \
	list_update_policy/mtf_lu_policy_imp.hpp \
	list_update_policy/sample_update_policy.hpp \
	map_debug_base.hpp \
	ov_tree_map_/cond_dtor.hpp \
	ov_tree_map_/constructors_destructor_fn_imps.hpp \
	ov_tree_map_/debug_fn_imps.hpp \
	ov_tree_map_/erase_fn_imps.hpp \
	ov_tree_map_/info_fn_imps.hpp \
	ov_tree_map_/insert_fn_imps.hpp \
	ov_tree_map_/iterators_fn_imps.hpp \
	ov_tree_map_/node_iterators.hpp \
	ov_tree_map_/ov_tree_map_.hpp

PBHDRS+= \
	ov_tree_map_/policy_access_fn_imps.hpp \
	ov_tree_map_/split_join_fn_imps.hpp \
	ov_tree_map_/traits.hpp \
	pairing_heap_/constructors_destructor_fn_imps.hpp \
	pairing_heap_/debug_fn_imps.hpp \
	pairing_heap_/erase_fn_imps.hpp \
	pairing_heap_/find_fn_imps.hpp \
	pairing_heap_/insert_fn_imps.hpp \
	pairing_heap_/pairing_heap_.hpp \
	pairing_heap_/split_join_fn_imps.hpp \
	pat_trie_/child_iterator.hpp \
	pat_trie_/cond_dtor_entry_dealtor.hpp \
	pat_trie_/const_child_iterator.hpp \
	pat_trie_/constructors_destructor_fn_imps.hpp \
	pat_trie_/debug_fn_imps.hpp \
	pat_trie_/erase_fn_imps.hpp \
	pat_trie_/find_fn_imps.hpp \
	pat_trie_/head.hpp \
	pat_trie_/info_fn_imps.hpp \
	pat_trie_/insert_join_fn_imps.hpp \
	pat_trie_/internal_node.hpp \
	pat_trie_/iterators_fn_imps.hpp \
	pat_trie_/leaf.hpp \
	pat_trie_/node_base.hpp \
	pat_trie_/node_iterators.hpp \
	pat_trie_/node_metadata_base.hpp \
	pat_trie_/pat_trie_.hpp \
	pat_trie_/point_iterators.hpp \
	pat_trie_/policy_access_fn_imps.hpp \
	pat_trie_/r_erase_fn_imps.hpp \
	pat_trie_/rotate_fn_imps.hpp \
	pat_trie_/split_fn_imps.hpp \
	pat_trie_/split_join_branch_bag.hpp \
	pat_trie_/synth_e_access_traits.hpp \
	pat_trie_/trace_fn_imps.hpp \
	pat_trie_/traits.hpp \
	pat_trie_/update_fn_imps.hpp \
	priority_queue_base_dispatch.hpp \
	rb_tree_map_/constructors_destructor_fn_imps.hpp \
	rb_tree_map_/debug_fn_imps.hpp

PBHDRS+= \
	rb_tree_map_/erase_fn_imps.hpp \
	rb_tree_map_/find_fn_imps.hpp \
	rb_tree_map_/info_fn_imps.hpp \
	rb_tree_map_/insert_fn_imps.hpp \
	rb_tree_map_/node.hpp \
	rb_tree_map_/rb_tree_.hpp \
	rb_tree_map_/split_join_fn_imps.hpp \
	rb_tree_map_/traits.hpp \
	rc_binomial_heap_/constructors_destructor_fn_imps.hpp \
	rc_binomial_heap_/debug_fn_imps.hpp \
	rc_binomial_heap_/erase_fn_imps.hpp \
	rc_binomial_heap_/insert_fn_imps.hpp \
	rc_binomial_heap_/rc_binomial_heap_.hpp \
	rc_binomial_heap_/rc.hpp \
	rc_binomial_heap_/split_join_fn_imps.hpp \
	rc_binomial_heap_/trace_fn_imps.hpp \
	resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp \
	resize_policy/hash_exponential_size_policy_imp.hpp \
	resize_policy/hash_load_check_resize_trigger_imp.hpp \
	resize_policy/hash_load_check_resize_trigger_size_base.hpp \
	resize_policy/hash_prime_size_policy_imp.hpp \
	resize_policy/hash_standard_resize_policy_imp.hpp \
	resize_policy/sample_resize_policy.hpp \
	resize_policy/sample_resize_trigger.hpp \
	resize_policy/sample_size_policy.hpp \
	splay_tree_/constructors_destructor_fn_imps.hpp \
	splay_tree_/debug_fn_imps.hpp \
	splay_tree_/erase_fn_imps.hpp \
	splay_tree_/find_fn_imps.hpp \
	splay_tree_/info_fn_imps.hpp \
	splay_tree_/insert_fn_imps.hpp \
	splay_tree_/node.hpp \
	splay_tree_/splay_fn_imps.hpp \
	splay_tree_/splay_tree_.hpp \
	splay_tree_/split_join_fn_imps.hpp \
	splay_tree_/traits.hpp \
	standard_policies.hpp \
	thin_heap_/constructors_destructor_fn_imps.hpp \
	thin_heap_/debug_fn_imps.hpp \
	thin_heap_/erase_fn_imps.hpp

PBHDRS+= \
	thin_heap_/find_fn_imps.hpp \
	thin_heap_/insert_fn_imps.hpp \
	thin_heap_/split_join_fn_imps.hpp \
	thin_heap_/thin_heap_.hpp \
	thin_heap_/trace_fn_imps.hpp \
	tree_policy/node_metadata_selector.hpp \
	tree_policy/null_node_update_imp.hpp \
	tree_policy/order_statistics_imp.hpp \
	tree_policy/sample_tree_node_update.hpp \
	tree_trace_base.hpp \
	trie_policy/node_metadata_selector.hpp \
	trie_policy/null_node_update_imp.hpp \
	trie_policy/order_statistics_imp.hpp \
	trie_policy/prefix_search_node_update_imp.hpp \
	trie_policy/sample_trie_e_access_traits.hpp \
	trie_policy/sample_trie_node_update.hpp \
	trie_policy/string_trie_e_access_traits_imp.hpp \
	trie_policy/trie_policy_base.hpp \
	types_traits.hpp \
	type_utils.hpp \
	unordered_iterator/const_iterator.hpp \
	unordered_iterator/const_point_iterator.hpp \
	unordered_iterator/iterator.hpp \
	unordered_iterator/point_iterator.hpp

PBHDRSDIRS= \
	pairing_heap_ \
	splay_tree_ \
	list_update_map_ \
	basic_tree_policy \
	trie_policy \
	gp_hash_table_map_ \
	tree_policy \
	binomial_heap_base_ \
	resize_policy \
	bin_search_tree_ \
	binomial_heap_ \
	thin_heap_ \
	pat_trie_ \
	cc_hash_table_map_ \
	rc_binomial_heap_ \
	left_child_next_sibling_heap_ \
	unordered_iterator \
	binary_heap_ \
	ov_tree_map_ \
	hash_fn \
	eq_fn \
	rb_tree_map_ \
	list_update_policy

.for D in ${PBHDRSDIRS}
PHDRGRP$D:=	${PBHDRS:M$D/*:S;^;${SRCDIR}/include/ext/pb_ds/detail/;}
PHDRGRP$DDIR=	${CXXINCLUDEDIR}/ext/pb_ds/detail/$D
INCSGROUPS+=	PHDRGRP$D
.endfor

TARGETHDRS=	abi/compatibility.h \
		allocator/new_allocator_base.h \
		io/basic_file_stdio.h \
		io/c_io_stdio.h \
		locale/generic/c_locale.h \
		locale/generic/c++locale_internal.h \
		locale/generic/messages_members.h \
		locale/generic/time_members.h \
		os/bsd/freebsd/ctype_base.h \
		os/bsd/freebsd/ctype_inline.h \
		os/bsd/freebsd/ctype_noninline.h \
		os/bsd/freebsd/os_defines.h
TARGETHDRS:=	${TARGETHDRS:S;^;${SRCDIR}/config/;}
TARGETHDRS+=	c++config.h
TARGETHDRSNAME_basic_file_stdio.h= basic_file.h
TARGETHDRSNAME_c_io_stdio.h= c++io.h
TARGETHDRSNAME_c_locale.h= c++locale.h
TARGETHDRSNAME_new_allocator_base.h= c++allocator.h
TARGETHDRSDIR=	${CXXINCLUDEDIR}/bits

MARCHHDRS=	atomic_word.h cpu_defines.h cxxabi_tweaks.h
.for h in ${MARCHHDRS}
.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/${h})
TARGETHDRS+=	${SRCDIR}/config/cpu/${MARCHDIR}/${h}
.else
TARGETHDRS+=	${SRCDIR}/config/cpu/generic/${h}
.endif
.endfor

THRHDRS=	gthr.h gthr-single.h gthr-posix.h gthr-tpf.h gthr-default.h
THRHDRSDIR=	${CXXINCLUDEDIR}/bits
uppercase =	[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]

gthr.h: ${GCCDIR}/gthr.h
	sed -e '/^#pragma/b' \
	    -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
	    -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-single.h: ${GCCDIR}/gthr-single.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-posix.h: ${GCCDIR}/gthr-posix.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-tpf.h: ${GCCDIR}/gthr-posix.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
	    < ${.ALLSRC} > ${.TARGET}

gthr-default.h: ${GCCDIR}/gthr-posix.h
	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
	    < ${.ALLSRC} > ${.TARGET}

CLEANFILES+=	${THRHDRS}

unwind.h: ${GCCDIR}/unwind-generic.h
	ln -sf ${.ALLSRC} ${.TARGET}

SRCS+=		unwind.h
CLEANFILES+=	unwind.h

DATESTAMP!=	cat ${GCCDIR}/DATESTAMP

c++config.h: ${.CURDIR}/config.h ${SRCDIR}/include/bits/c++config
	sed -e "s/\\(define __GLIBCXX__\\)/\1 ${DATESTAMP}/" \
	    -e 's/\(define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY\)/\1 1/' \
	    -e 's/\(define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION\)/\1 0/' \
	    < ${SRCDIR}/include/bits/c++config > ${.TARGET} && \
	sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
	    -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
	    -e 's/VERSION/_GLIBCXX_VERSION/g' \
	    -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
	    < ${.CURDIR}/config.h >> ${.TARGET} && \
	echo "#endif // _CXXCONFIG_" >> ${.TARGET}
CLEANFILES+=	c++config.h

# Symbol versioning.

VERSION_MAP=  	libstdc++.map

${VERSION_MAP}: ${SRCDIR}/config/abi/pre/gnu.ver
	ln -sf ${.ALLSRC} ${.TARGET}

CLEANFILES+=	${VERSION_MAP}

.include <bsd.lib.mk>
@


1.71
log
@Switching exporter and resync
@
text
@d1 3
a3 1
# $FreeBSD: head/gnu/lib/libstdc++/Makefile 241960 2012-10-23 18:57:20Z dim $
d19 1
a19 1
.if ${MACHINE_CPUARCH} == "arm"
d599 3
d603 3
@


1.70
log
@SVN rev 241960 on 2012-10-23 18:57:20Z by dim

For building GNU libstdc++ and libsupc++, filter out libc++-specific and
-std= flags above c++98 or gnu++98 from CXXFLAGS *after* including
bsd.lib.mk, otherwise some additions to CXXFLAGS done in bsd.*.mk might
not be preserved.

MFC after:	1 week
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.69
log
@SVN rev 239695 on 2012-08-25 23:08:24Z by dim

For building libstdc++ and libsupc++, filter out any -stdlib=libc++
option from CXXFLAGS, otherwise these libraries will not build.
Similarly, filter out any -std=xxx options that aren't supported.

Submitted by:	Yamaya Takashi <yamayan@@kbh.biglobe.ne.jp>
MFC after:	2 weeks
@
text
@a24 1
CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
d628 3
@


1.68
log
@SVN rev 233749 on 2012-03-31 14:25:12Z by theraven

Make libsupc++ build as a shared library and make libstdc++ a filter library
for it.

This allows people to swap out libsupc++ for libcxxrt easily, so we can begin
the libstdc++ -> libc++ migration.

Approved by:	dim (mentor)
@
text
@d25 1
@


1.67
log
@SVN rev 212286 on 2010-09-07 08:33:17Z by tijl

GCC defines built-ins for atomic instructions found on i486 and higher.
Because FreeBSD no longer supports the 80386 cpu all code targeting
FreeBSD/i386 necessarily runs on i486 or higher so the compiler
built-ins can be used by default inside libstdc++ and in C++ headers.
This allows newly compiled C++ code to inline some atomic operations.
Old binaries continue to use libstdc++ functions.

PR:		148926
Tested by:	Yuri Karaban <tech askold net>
Reviewed by:	kan
Approved by:	kib (mentor)
MFC after:	2 weeks
@
text
@d28 1
a28 1
LDADD=		-lm
@


1.67.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.67.2.2
log
@SVN rev 235825 on 2012-05-23 09:10:46Z by theraven

Merge r233749, building libsupc++ as a shared library and making libstdc++ a
filter library.

It should now be possible to build applications on 9-STABLE that link against
both libc++ and libstdc++ and to test libcxxrt with libstdc++.

If you wish to test libcxxrt, please add this to your /etc/libmap.conf:

libsupc++.so.1  libcxxrt.so.1

If you wish to test libc++, add -std=libc++ to your compile and link flags for
your favourite C++ applications and / or libraries.
@
text
@d28 1
a28 1
LDADD=		-lm  -Wl,-f,libsupc++.so.1
@


1.67.2.2.2.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.67.2.2.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.1/gnu/lib/libstdc++/Makefile 235825 2012-05-23 09:10:46Z theraven $
@


1.67.2.3
log
@SVN rev 240236 on 2012-09-08 11:34:22Z by dim

MFC r239680:

  Add libcxxrt's objects (prefixing them with cxxrt_ to avoid collisions)
  to libc++.a and libc++_p.a, to make static linking of C++ executables
  with libc++ easier.  This is similar to the approach used in libstdc++.

MFC r239686:

  When using -stdlib=libc++, add the correct dependency to .depend in
  bsd.prog.mk.

  Submitted by:	Yamaya Takashi <yamayan@@kbh.biglobe.ne.jp>

MFC r239695:

  For building libstdc++ and libsupc++, filter out any -stdlib=libc++
  option from CXXFLAGS, otherwise these libraries will not build.
  Similarly, filter out any -std=xxx options that aren't supported.

  Submitted by:	Yamaya Takashi <yamayan@@kbh.biglobe.ne.jp>
@
text
@a24 1
CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
@


1.67.2.4
log
@SVN rev 242347 on 2012-10-30 07:51:18Z by dim

MFC r241957:

  Fix several clang warnings in libstdc++, which were exposed by the
  recent atf import.  These changes are purely cosmetic, no functional
  change.

MFC r241959:

  Fix a number of other clang warnings in libstdc++, which could appear
  when building other C++ software with it.  Also fix one actual bug in
  libsupc++, which was exposed by such a warning.  This latter fix is the
  only functional change.

MFC r241960:

  For building GNU libstdc++ and libsupc++, filter out libc++-specific and
  -std= flags above c++98 or gnu++98 from CXXFLAGS *after* including
  bsd.lib.mk, otherwise some additions to CXXFLAGS done in bsd.*.mk might
  not be preserved.
@
text
@d25 1
a628 3

# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
@


1.67.2.5
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/gnu/lib/libstdc++/Makefile 242347 2012-10-30 07:51:18Z dim $
@


1.67.2.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.67.2.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.0/gnu/lib/libstdc++/Makefile 212286 2010-09-07 08:33:17Z tijl $
@


1.66
log
@SVN rev 211725 on 2010-08-23 22:24:11Z by imp

MFtbemd:

Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
@
text
@d86 1
a86 1
.if ${MACHINE_CPUARCH} == "amd64"
@


1.65
log
@SVN rev 207995 on 2010-05-12 19:59:32Z by obrien

Non-GCC gcc compatible compilers may provide the same multimedia intrinsic
headers as GCC, but of their own implementation.  So put the GCC ones into
their own header "namespace".

Requested by:	ed
@
text
@d17 1
a17 1
.if ${MACHINE_ARCH} == "arm"
d70 1
a70 1
.if ${MACHINE_ARCH} == "sparc64"
d72 1
a72 1
.elif ${MACHINE_ARCH} == "i386" && ${MACHINE_CPU} != 'i386'
d74 1
a74 1
.elif ${MACHINE_ARCH} == "amd64"
d77 1
a77 1
MARCHDIR=	${MACHINE_ARCH}
d86 1
a86 1
.if ${MACHINE_ARCH} == "amd64"
@


1.64
log
@SVN rev 202808 on 2010-01-22 14:09:15Z by sepotvin

Use the new PO_CXXFLAGS from r202807 to remove the '-ffunction-sections'
flag when compiling profiled objects as it's ignored by the compiler.
This removes the associated warning for each file compiled.

MFC after:	1 month
@
text
@d3 1
d98 1
a98 1
CXXINCLUDEDIR=	${INCLUDEDIR}/c++/4.2
@


1.63
log
@SVN rev 186641 on 2008-12-31 07:39:23Z by imp

There's no need to redundantly redefine atomicity.h.
@
text
@d24 1
@


1.63.2.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.63.2.2
log
@SVN rev 212962 on 2010-09-21 12:55:20Z by tijl

MFC r212286:

GCC defines built-ins for atomic instructions found on i486 and higher.
Because FreeBSD no longer supports the 80386 cpu all code targeting
FreeBSD/i386 necessarily runs on i486 or higher so the compiler
built-ins can be used by default inside libstdc++ and in C++ headers.
This allows newly compiled C++ code to inline some atomic operations.
Old binaries continue to use libstdc++ functions.

PR:		148926
Tested by:	Yuri Karaban <tech askold net>
Approved by:	kib (mentor)
@
text
@d84 1
a84 1
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
@


1.63.2.3
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/gnu/lib/libstdc++/Makefile 212962 2010-09-21 12:55:20Z tijl $
@


1.63.2.2.4.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.63.2.2.4.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/8.3/gnu/lib/libstdc++/Makefile 212962 2010-09-21 12:55:20Z tijl $
@


1.63.2.2.2.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.63.2.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.63.2.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.62
log
@SVN rev 179834 on 2008-06-16 22:49:30Z by kan

Install extra include files that were forgotten in original GCC 4.2.x
import changes.

PR: 124647
Submitted by: Vlad GALU
MFC after: 2 days
@
text
@a77 1
ATOMICITY_H=	atomicity.h
@


1.61
log
@Install etx/numeric_traits.h.

PR:		gnu/115250
Approved by:	re (blanket)
@
text
@d96 1
a96 1
		TARGETHDRS THRHDRS DEBUGHDRS TR1HDRS PBHDRS0
d211 14
@


1.61.2.1
log
@SVN rev 179885 on 2008-06-20 00:13:37Z by kan

MFC svn rev 179834.

Install extra include files that were forgotten in original GCC 4.2.x
import changes.

PR: 124647
Submitted by: Vlad GALU
@
text
@d96 1
a96 1
		TARGETHDRS THRHDRS DEBUGHDRS TR1HDRS PBHDRS0 PBHDRS1
a210 14
PBHDRS1 = \
	basic_types.hpp \
	cond_dealtor.hpp \
	constructors_destructor_fn_imps.hpp \
	container_base_dispatch.hpp \
	map_debug_base.hpp \
	priority_queue_base_dispatch.hpp \
	standard_policies.hpp \
	tree_trace_base.hpp \
	type_utils.hpp \
	types_traits.hpp
PBHDRS1:=	${PBHDRS1:S;^;${SRCDIR}/include/ext/pb_ds/detail/;}
PBHDRS1DIR=	${CXXINCLUDEDIR}/ext/pb_ds/detail

@


1.61.2.2
log
@SVN rev 212963 on 2010-09-21 12:57:43Z by tijl

MFC r212286:

GCC defines built-ins for atomic instructions found on i486 and higher.
Because FreeBSD no longer supports the 80386 cpu all code targeting
FreeBSD/i386 necessarily runs on i486 or higher so the compiler
built-ins can be used by default inside libstdc++ and in C++ headers.
This allows newly compiled C++ code to inline some atomic operations.
Old binaries continue to use libstdc++ functions.

Approved by:	kib (mentor)
@
text
@d85 1
a85 1
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
@


1.61.2.3
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/7/gnu/lib/libstdc++/Makefile 212963 2010-09-21 12:57:43Z tijl $
@


1.61.2.2.2.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.61.2.2.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/7.4/gnu/lib/libstdc++/Makefile 212963 2010-09-21 12:57:43Z tijl $
@


1.61.2.1.6.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.61.2.1.4.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.61.2.1.2.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.60
log
@Fix the fallout from over-zealous obsolete files removal. Use correct
atomicity.h file for arm and powerpc.
@
text
@d146 4
a149 4
		numeric pod_char_traits.h pool_allocator.h rb_tree rope \
		ropeimpl.h slist throw_allocator.h typelist.h type_traits.h \
		rc_string_base.h sso_string_base.h vstring.h vstring.tcc \
		vstring_fwd.h vstring_util.h
@


1.59
log
@Update bmake glue to build GCC 4.2.

Also:
        Switch FreeBSD to use libgcc_s.so.1.

        Use dl_iterate_phdr to locate shared objects' exception frame
        info instead of depending on older register_frame_info machinery.
        This allows us to avoid depending on libgcc_s.so.1 in binaries
        that do not use exception handling directly. As an additional
        benefit it breaks circular libc <=> libgcc_s.so.1 dependency too.

        Build newly added libgomp.so.1 library, the runtime support
        bits for OpenMP.

        Build LGPLed libssp library. Our libc provides our own
        BSD-licensed SSP callbacks implementation, so this library
        is only built to benefit applications that have hadcoded
        knowledge of libssp.so and libssp_nonshared.a. When linked
        in from command line, these libraries override libc
        implementation.
@
text
@d82 1
a82 1
ATOMICITY_H=	${SRCDIR}/config/cpu/generic/atomicity.h
@


1.58
log
@The ARM platform does the setjmp/longjmp type of exception handling.
@
text
@d4 1
d9 2
a10 2
       ${SRCDIR}/config/locale/generic ${SRCDIR}/include \
       ${SUPDIR} ${GCCDIR}
d13 1
a13 1
SHLIB_MAJOR=	5
d20 1
d29 15
a43 9
SRCS+= 	allocator.cc codecvt.cc complex_io.cc ctype.cc debug.cc debug_list.cc \
	functexcept.cc globals_locale.cc globals_io.cc ios.cc ios_failure.cc \
	ios_init.cc ios_locale.cc limits.cc debug_list.cc list.cc locale.cc \
	locale_init.cc locale_facets.cc localename.cc stdexcept.cc \
	strstream.cc tree.cc allocator-inst.cc concept-inst.cc fstream-inst.cc \
	ext-inst.cc io-inst.cc istream-inst.cc locale-inst.cc \
	locale-misc-inst.cc misc-inst.cc ostream-inst.cc sstream-inst.cc \
	streambuf-inst.cc string-inst.cc valarray-inst.cc wlocale-inst.cc \
	wstring-inst.cc 
d54 1
a54 1
SRCS+=	signbitf.c signbitl.c stubs.c
d57 2
a58 2
SRCS+=	del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc \
	eh_aux_runtime.cc eh_catch.cc eh_exception.cc eh_globals.cc \
d85 6
d96 2
a97 2
		TARGETHDRS THRHDRS DEBUGHDRS
CXXINCLUDEDIR=	${INCLUDEDIR}/c++/3.4
d112 15
a126 16
BITSHDRS=	allocator.h atomicity.h basic_ios.h basic_ios.tcc \
		basic_string.h basic_string.tcc boost_concept_check.h \
		char_traits.h codecvt.h concept_check.h concurrence.h \
		cpp_type_traits.h deque.tcc fstream.tcc functexcept.h \
		gslice.h gslice_array.h indirect_array.h ios_base.h \
		istream.tcc list.tcc locale_classes.h locale_facets.h \
		locale_facets.tcc localefwd.h mask_array.h ostream.tcc \
		postypes.h stream_iterator.h streambuf_iterator.h \
		slice_array.h sstream.tcc stl_algo.h stl_algobase.h \
		stl_bvector.h stl_construct.h stl_deque.h stl_function.h \
		stl_heap.h stl_iterator.h stl_iterator_base_funcs.h \
		stl_iterator_base_types.h stl_list.h stl_map.h stl_multimap.h \
		stl_multiset.h stl_numeric.h stl_pair.h stl_queue.h \
		stl_raw_storage_iter.h stl_relops.h stl_set.h stl_stack.h \
		stl_tempbuf.h stl_threads.h stl_tree.h stl_uninitialized.h \
		stl_vector.h streambuf.tcc stringfwd.h type_traits.h \
d141 10
a150 6
EXTHDRS=	algorithm bitmap_allocator.h debug_allocator.h \
		enc_filebuf.h stdio_filebuf.h stdio_sync_filebuf.h functional \
		hash_map hash_set iterator malloc_allocator.h memory \
		mt_allocator.h new_allocator.h numeric pod_char_traits.h \
		pool_allocator.h rb_tree rope ropeimpl.h slist hash_fun.h \
		hashtable.h
d154 14
d184 5
a188 4
DEBUGHDRS=	bitset debug.h deque formatter.h hash_map hash_map.h \
		hash_multimap.h hash_multiset.h hash_set hash_set.h list \
		map map.h multimap.h multiset.h safe_base.h safe_iterator.h \
		safe_iterator.tcc safe_sequence.h set set.h string vector
d192 323
a514 1
TARGETHDRS=	allocator/new_allocator_base.h \
a520 1
		locale/generic/codecvt_specializations.h \
d533 1
a533 1
MARCHHDRS=	atomic_word.h
d542 1
a542 1
THRHDRS=	gthr.h gthr-single.h gthr-posix.h gthr-default.h
d547 2
a548 1
	sed -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
d565 7
d582 8
d591 4
a594 1
	cat ${SRCDIR}/include/bits/c++config > ${.TARGET} && \
d603 9
@


1.57
log
@Fix build due to the incomplete removal of demangle.h.
@
text
@d15 3
@


1.56
log
@Bump the shared library version number of all libraries that have not
been bumped since RELENG_5.

Reviewed by:	ru
Approved by:	re (not needed for commit check but in principle...)
@
text
@d125 1
a125 1
EXTHDRS=	algorithm bitmap_allocator.h debug_allocator.h demangle.h \
@


1.55
log
@Enforce style.Makefile(5).

Glanced at by:	ru (some time ago).
@
text
@d12 1
a12 1
SHLIB_MAJOR=	4
@


1.55.2.1
log
@Insta-MFC of the shared library version bump.  All shared libraries
whose version has not already been bumped since RELENG_5 are being
bumped.

Revisions of files being MFC-ed:

> Path						Revision
> src/gnu/lib/libdialog/Makefile		1.43
> src/gnu/lib/libg2c/Makefile			1.16
> src/gnu/lib/libobjc/Makefile			1.27
> src/gnu/lib/libreadline/Makefile.inc		1.12
> src/gnu/lib/libregex/Makefile			1.32
> src/gnu/lib/libstdc++/Makefile		1.56
> src/kerberos5/lib/Makefile.inc		1.7
> src/lib/Makefile.inc				1.3
> src/lib/libalias/Makefile			1.31
> src/lib/libarchive/Makefile			1.37
> src/lib/libbegemot/Makefile			1.3
> src/lib/libbluetooth/Makefile			1.2
> src/lib/libbsnmp/Makefile.inc			1.6
> src/lib/libbz2/Makefile			1.6
> src/lib/libc_r/Makefile			1.42
> src/lib/libcrypt/Makefile			1.36
> src/lib/libdevstat/Makefile			1.15
> src/lib/libdevstat/devstat.h			1.11
> src/lib/libedit/Makefile			1.29
> src/lib/libexpat/Makefile			1.5
> src/lib/libfetch/Makefile			1.45
> src/lib/libftpio/Makefile			1.14
> src/lib/libgpib/Makefile			1.2
> src/lib/libipsec/Makefile			1.17
> src/lib/libkiconv/Makefile			1.3
> src/lib/libmagic/Makefile			1.7
> src/lib/libmp/Makefile			1.10
> src/lib/libncp/Makefile			1.6
> src/lib/libncurses/Makefile			1.79
> src/lib/libnetgraph/Makefile			1.11
> src/lib/libngatm/Makefile			1.6
> src/lib/libopie/Makefile			1.21
> src/lib/libpam/Makefile.inc			1.17
> src/lib/libpthread/Makefile			1.54
> src/lib/libradius/Makefile			1.12
> src/lib/libsdp/Makefile			1.4
> src/lib/libsmb/Makefile			1.8
> src/lib/libtacplus/Makefile			1.7
> src/lib/libthr/Makefile			1.14
> src/lib/libthread_db/Makefile			1.6
> src/lib/libugidfw/Makefile			1.7
> src/lib/libusbhid/Makefile			1.10
> src/lib/libutil/Makefile			1.57
> src/lib/libvgl/Makefile			1.11
> src/lib/libwrap/Makefile			1.17
> src/lib/libypclnt/Makefile			1.13
> src/lib/msun/Makefile				1.72
> src/secure/lib/libcrypto/Makefile		1.74
> src/secure/lib/libssh/Makefile		1.35
> src/secure/lib/libssl/Makefile		1.22
> src/usr.sbin/bsnmpd/modules/Makefile.inc	1.10

Reviewed by:	ru
Approved by:	re (scottl)
@
text
@d12 1
a12 1
SHLIB_MAJOR=	5
@


1.55.2.2
log
@demangle.h was removed in vendor sources sometime between 3.4.2 and 3.4.4.
@
text
@d125 1
a125 1
EXTHDRS=	algorithm bitmap_allocator.h debug_allocator.h \
@


1.55.2.3
log
@MFC: rev 1.58: ARM platform does setjmp/longjmp exceptions.

Approved by:	re(KEN)
@
text
@a14 3
.if ${MACHINE_ARCH} == "arm"
CFLAGS+=	-D_GLIBCXX_SJLJ_EXCEPTIONS=1
.endif
@


1.55.2.4
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/6/gnu/lib/libstdc++/Makefile 163044 2006-10-05 20:57:06Z obrien $
@


1.55.2.3.6.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.54
log
@Of all templates only lists need a special implmementation file compiled
to support __GLIBCXX_DEBUG. Add debug_list.cc to the list of files to
compile.
@
text
@d20 1
a21 1
DPADD=		${LIBM}
@


1.53
log
@Add -frandom-seed=RepeatabilityConsideredGood to CFLAGS for building this
library. As the value suggests, this allows the library to be built repeatably;
without this flag, gcc uses a random value in its parsing.

Since the random seed is only used when handling files which do not have any
externally-visible symbols, this change is not needed for any other libraries
in the FreeBSD base system.

Discussed on:	freebsd-arch (in early November)
Approved by:	kan
MFC after:	1 week
@
text
@d24 9
a32 8
SRCS+= 	allocator.cc codecvt.cc complex_io.cc ctype.cc debug.cc functexcept.cc \
	globals_locale.cc globals_io.cc ios.cc ios_failure.cc ios_init.cc \
	ios_locale.cc limits.cc list.cc locale.cc locale_init.cc \
	locale_facets.cc localename.cc stdexcept.cc strstream.cc tree.cc \
	allocator-inst.cc concept-inst.cc fstream-inst.cc ext-inst.cc \
	io-inst.cc istream-inst.cc locale-inst.cc locale-misc-inst.cc \
	misc-inst.cc ostream-inst.cc sstream-inst.cc streambuf-inst.cc \
	string-inst.cc valarray-inst.cc wlocale-inst.cc wstring-inst.cc 
@


1.52
log
@Add atomicity.cc to CLEANFILES.
@
text
@d16 1
@


1.51
log
@Bmake glue for GCC 3.4.2-prerelease.
@
text
@d74 1
@


1.51.2.1
log
@MFC revision 1.53:
  Add -frandom-seed=RepeatabilityConsideredGood to CFLAGS for building this
  library.  As the value suggests, this allows the library to be built
  repeatably; without this flag, gcc uses a random value in its parsing.
@
text
@a15 1
CFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
@


1.51.2.2
log
@MFC: rev 1.52: Add atomicity.cc to CLEANFILES.
@
text
@a74 1
CLEANFILES+=	atomicity.cc
@


1.51.2.3
log
@MFC: rev 1.54: Add debug_list.cc to the list of files to compile.
@
text
@d24 8
a31 9
SRCS+= 	allocator.cc codecvt.cc complex_io.cc ctype.cc debug.cc debug_list.cc \
	functexcept.cc globals_locale.cc globals_io.cc ios.cc ios_failure.cc \
	ios_init.cc ios_locale.cc limits.cc debug_list.cc list.cc locale.cc \
	locale_init.cc locale_facets.cc localename.cc stdexcept.cc \
	strstream.cc tree.cc allocator-inst.cc concept-inst.cc fstream-inst.cc \
	ext-inst.cc io-inst.cc istream-inst.cc locale-inst.cc \
	locale-misc-inst.cc misc-inst.cc ostream-inst.cc sstream-inst.cc \
	streambuf-inst.cc string-inst.cc valarray-inst.cc wlocale-inst.cc \
	wstring-inst.cc 
@


1.50
log
@Fixed style of DPADD and LDADD assignments as per style.Makefile(5).
@
text
@d8 1
a8 1
       ${SRCDIR}/config/locale/generic ${SRCDIR} ${SRCDIR}/std \
a10 2
#SUBDIR=	doc

d15 3
a17 3
CFLAGS+=	-I${.CURDIR} -I${SUPDIR} -I${GCCDIR}
CXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections -Wno-deprecated
#LDFLAGS+=	-Wl,-version-info,4:0:0 -Wl,--version-script=${SRCDIR}/src/linker.map
d22 9
a30 8
# libstdc++ sources (libstdc++/src/Makefile.in, do not reorder)
SRCS+= bitset.cc codecvt.cc complex_io.cc concept-inst.cc ctype.cc \
	ext-inst.cc fstream.cc fstream-inst.cc functexcept.cc \
	globals.cc io-inst.cc ios.cc istream-inst.cc limits.cc \
	locale.cc locale-inst.cc localename.cc misc-inst.cc \
	ostream-inst.cc  sstream-inst.cc stdexcept.cc stl-inst.cc \
	streambuf-inst.cc string-inst.cc strstream-fixed.cc \
	valarray-inst.cc vterminate.cc wstring-inst.cc
d33 1
a33 1
SRCS+=  codecvt_members.cc collate_members.cc ctype_members.cc \
d41 1
a41 1
SRCS+=	nan.c signbit.c signbitf.c signbitl.c stubs.c
d44 6
a49 5
SRCS+=	del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc \
	eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc \
	eh_globals.cc eh_personality.cc eh_terminate.cc eh_throw.cc eh_type.cc \
	guard.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \
	pure.cc tinfo.cc tinfo2.cc vec.cc
d52 12
a63 1
SRCS+=	cp-demangle.c dyn-string.c
d65 6
a70 3
strstream-fixed.cc:	${SRCDIR}/src/strstream.cc
	sed -e 's,^#include <strstream>,#include <backward/strstream>,g' \
	    < ${SRCDIR}/src/strstream.cc > strstream-fixed.cc
d72 2
a73 1
CLEANFILES+=	strstream-fixed.cc
d76 15
a90 1
		TARGETHDRS THRHDRS
d92 8
a99 7
BITSHDRS=	basic_ios.h basic_ios.tcc basic_string.h basic_string.tcc \
		boost_concept_check.h char_traits.h codecvt.h concept_check.h \
		cpp_type_traits.h deque.tcc fpos.h fstream.tcc functexcept.h \
		gslice.h gslice_array.h indirect_array.h \
		ios_base.h istream.tcc list.tcc \
		locale_classes.h locale_facets.h locale_facets.tcc \
		localefwd.h mask_array.h ostream.tcc pthread_allocimpl.h \
d101 4
a104 5
		stl_alloc.h stl_bvector.h stl_construct.h stl_deque.h \
		stl_function.h stl_heap.h stl_iterator.h \
		stl_iterator_base_funcs.h stl_iterator_base_types.h \
		stl_list.h stl_map.h stl_multimap.h stl_multiset.h \
		stl_numeric.h stl_pair.h stl_pthread_alloc.h stl_queue.h \
d107 3
a109 4
		stl_vector.h stream_iterator.h streambuf.tcc \
		streambuf_iterator.h stringfwd.h type_traits.h \
		valarray_array.h valarray_array.tcc valarray_meta.h \
		vector.tcc
d111 1
a111 1
BITSHDRSDIR=	${INCLUDEDIR}/c++/3.3/bits
d113 6
a118 7
BKWHDRS=	algo.h algobase.h alloc.h backward_warning.h bvector.h \
		complex.h defalloc.h deque.h fstream.h function.h \
		hash_map.h hash_set.h hashtable.h heap.h iomanip.h \
		iostream.h istream.h iterator.h list.h map.h multimap.h \
		multiset.h new.h ostream.h pair.h queue.h rope.h set.h \
		slist.h stack.h stream.h streambuf.h strstream \
		tempbuf.h tree.h vector.h
d120 1
a120 1
BKWHDRSDIR=	${INCLUDEDIR}/c++/3.3/backward
d122 6
a127 3
EXTHDRS=	algorithm enc_filebuf.h functional hash_map hash_set \
		iterator memory numeric rb_tree rope ropeimpl.h slist \
		stdio_filebuf.h stl_hash_fun.h stl_hashtable.h stl_rope.h
d129 1
a129 1
EXTHDRSDIR=	${INCLUDEDIR}/c++/3.3/ext
d141 1
a141 1
BASEHDRSDIR=	${INCLUDEDIR}/c++/3.3
d145 1
a145 1
BASEXHDRSDIR=	${INCLUDEDIR}/c++/3.3/bits
d147 10
a156 14
STDHDRS=	std_algorithm.h std_bitset.h std_complex.h std_deque.h \
		std_fstream.h std_functional.h std_iomanip.h std_ios.h \
		std_iosfwd.h std_iostream.h std_istream.h std_iterator.h \
		std_limits.h std_list.h std_locale.h std_map.h std_memory.h \
		std_numeric.h std_ostream.h std_queue.h std_set.h \
		std_sstream.h std_stack.h std_stdexcept.h std_streambuf.h \
		std_string.h std_utility.h std_valarray.h std_vector.h
.for h in ${STDHDRS}
STDHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
STDHDRS:=	${STDHDRS:S;^;${SRCDIR}/include/std/;}
STDHDRSDIR=	${INCLUDEDIR}/c++/3.3

TARGETHDRS=	io/basic_file_stdio.h io/c_io_stdio.h \
a158 1
		locale/generic/codecvt_specializations.h \
d161 1
d167 1
a167 1
TARGETHDRS+=	${.CURDIR}/c++config.h
d171 2
a172 10
TARGETHDRSDIR=	${INCLUDEDIR}/c++/3.3/bits

MARCHHDRS=	atomicity.h
.if ${MACHINE_ARCH} == "sparc64"
MARCHDIR=	sparc
.elif ${MACHINE_ARCH} == "i386" && ${MACHINE_CPU} != 'i386'
MARCHDIR=	i486
.else
MARCHDIR=	${MACHINE_ARCH}
.endif
d174 1
d184 2
a185 1
THRHDRSDIR=	${INCLUDEDIR}/c++/3.3/bits
d188 2
a189 1
	sed -e '/^#/s/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*\)/_GLIBCPP_\1/g' \
d191 1
a191 1
	    < ${GCCDIR}/gthr.h > gthr.h
d194 3
a196 3
	sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
	    -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \
	    < ${GCCDIR}/gthr-single.h > gthr-single.h
d199 5
a203 4
	sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
	    -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \
	    -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*WEAK\)/_GLIBCPP_\1/g' \
	    < ${GCCDIR}/gthr-posix.h > gthr-posix.h
d206 4
a209 3
	sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
	    -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCPP_\1/g' \
	    -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*WEAK\)/_GLIBCPP_\1/g' \
d211 1
a211 1
	    < ${GCCDIR}/gthr-posix.h > gthr-default.h
d214 10
@


1.49
log
@Correct the atomicity.h fallback path on architectures which do not
define their own.
@
text
@d21 2
a22 2
LDADD+=		-lm
DPADD+=		${LIBM}
@


1.48
log
@Do not install files which are not part of GCC 3.3.x anymore.
@
text
@d160 1
a160 1
TARGETHDRS+=	${SRCDIR}/config/cpu/generic/bits/${h}
@


1.47
log
@Update bmake bits to build GCC 3.3.1-prerelease.
@
text
@d66 1
a66 1
		generic_shadow.h gslice.h gslice_array.h indirect_array.h \
d70 1
a70 1
		slice.h slice_array.h sstream.tcc stl_algo.h stl_algobase.h \
d90 1
a90 1
		slist.h stack.h stream.h streambuf.h strstream strstream.h \
@


1.46
log
@Oops, remove hack to stop libstdc++.so being built now that gcc uses
-lgcc_pic by default on -fpic stuff.  I forgot about this here.
@
text
@d25 15
a39 8
SRCS+=	globals.cc limits.cc basic_file_stdio.cc complex_io.cc ios.cc \
	strstream-fixed.cc bitset.cc functexcept.cc stdexcept.cc \
	vterminate.cc ctype.cc c_locale.cc locale.cc localename.cc codecvt.cc \
	codecvt_members.cc collate_members.cc ctype_members.cc messages_members.cc \
	monetary_members.cc numeric_members.cc time_members.cc concept-inst.cc \
	locale-inst.cc misc-inst.cc stl-inst.cc string-inst.cc wstring-inst.cc \
	valarray-inst.cc ext-inst.cc fstream.cc fstream-inst.cc io-inst.cc \
	istream-inst.cc ostream-inst.cc streambuf-inst.cc sstream-inst.cc
d48 1
a48 1
	new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \
d65 1
a65 1
		cpp_type_traits.h fpos.h fstream.tcc functexcept.h \
d67 2
a68 1
		ios_base.h istream.tcc locale_facets.h locale_facets.tcc \
d80 2
a81 1
		valarray_array.h valarray_array.tcc valarray_meta.h
d83 1
a83 1
BITSHDRSDIR=	${INCLUDEDIR}/g++/bits
d93 1
a93 1
BKWHDRSDIR=	${INCLUDEDIR}/g++/backward
d99 1
a99 1
EXTHDRSDIR=	${INCLUDEDIR}/g++/ext
d111 1
a111 1
BASEHDRSDIR=	${INCLUDEDIR}/g++
d115 1
a115 1
BASEXHDRSDIR=	${INCLUDEDIR}/g++/bits
d128 1
a128 1
STDHDRSDIR=	${INCLUDEDIR}/g++
d136 4
a139 4
		os/bsd/freebsd/bits/ctype_base.h \
		os/bsd/freebsd/bits/ctype_inline.h \
		os/bsd/freebsd/bits/ctype_noninline.h \
		os/bsd/freebsd/bits/os_defines.h
d145 1
a145 1
TARGETHDRSDIR=	${INCLUDEDIR}/g++/bits
d147 1
a147 1
MARCHHDRS=	atomicity.h cpu_limits.h
d149 3
a151 1
MARCHDIR=	${SRCDIR}/config/cpu/sparc/${MACHINE_ARCH}/bits
d153 1
a153 1
MARCHDIR=	${SRCDIR}/config/cpu/${MACHINE_ARCH}/bits
d155 1
d157 2
a158 2
.if exists(${MARCHDIR}/${h})
TARGETHDRS+=	${MARCHDIR}/${h}
d165 1
a165 1
THRHDRSDIR=	${INCLUDEDIR}/g++/bits
@


1.45
log
@Do not bogusly set CSTD to the empty string.
@
text
@a10 5
.if ${MACHINE_ARCH} == "amd64"
NOPIC=		broken		# need libgcc.so or libgcc_pic.a
NOSHARED=	broken
.endif

@


1.44
log
@Something funky is going on here... disabling CSTD makes it go away...
@
text
@a20 1
CSTD?=
@


1.43
log
@libstdc++.so breaks on amd64 due to bogons in our build, so prevent the
shared library being built for amd64.  The problem is that libstdc++.so
is produced with 'cc -shared'.  This has an internal -lgcc, which is
not PIC.  libstdc++.so uses exceptions and the dwarf2 unwinder, which
are in libgcc.a.  As a result, non-PIC code gets pulled into libstdc++.so.
This is fatal on amd64 when certain relocation types cannot be used in
PIC mode.  The official FSF solution to this is to have libgcc.so with
internal ELF symbol versioning to solve the ABI problem, but I dont want
to fight that battle yet.  I tried making libgcc_pic.a (which worked
fine), but thats not something for the 11th hour before a release.

Approved by:  re (amd64 "safe" stuff)
@
text
@d21 1
@


1.42
log
@Install one more header file which is new with GCC 3.2.2.
@
text
@d11 5
@


1.41
log
@C++ exceptions with shared libraries are working on sparc64 now.
Build shared libstdc++so on sparc64 platform too.

Approved:	re (rwatson)
@
text
@d126 1
@


1.40
log
@Remove files no longer part of the gcc_3_2_anoncvs_20021009 libstdc++.

Approved by:	re(jhb)
@
text
@a13 1
.if ${MACHINE_ARCH} != "sparc64"
a14 1
.endif
@


1.39
log
@Zap now-unused SHLIB_MINOR
@
text
@d28 1
a28 1
	strstream-fixed.cc cmath.cc bitset.cc functexcept.cc stdexcept.cc \
@


1.38
log
@Bmake bits for GCC 3.2.1-prerelease libstdc++.
Connect two new source and one header file to the build.

Approved by:	obrien
@
text
@a15 1
SHLIB_MINOR=	0
@


1.37
log
@Connect new files added with GCC 3.2.1 import to the build.

Approved by:	obrien
@
text
@d30 2
a31 2
	vterminate.cc c_locale.cc locale.cc localename.cc codecvt.cc \
	collate_members.cc ctype_members.cc messages_members.cc \
d126 1
@


1.36
log
@Bandaid for sparc64.  Do not build libstdc++.so for now on sparc64.
Binaries compiled with it segfault.
@
text
@d34 2
a35 1
	valarray-inst.cc ext-inst.cc
d51 1
a51 1
	sed -e 's,^#include <strstream.h>,#include <backward/strstream.h>,g' \
@


1.35
log
@Disconnect the docs until we figure out if there are any with v3.
@
text
@d14 1
d17 1
@


1.34
log
@Turn on the math function stub stubs.

Submitted by:	Martin Blapp <mb@@imp.ch>
I believe OK with:	peter
@
text
@d11 1
a11 1
SUBDIR=	doc
@


1.33
log
@The new bsd.incs.mk is powerful enough to handle this wrinkle.
@
text
@d35 1
a35 1
SRCS+=	nan.c signbit.c signbitf.c signbitl.c # stubs.c
@


1.32
log
@The revision 1.31 tweak was to _not_ write .o's in src/contrib/gcc.
Not the other way around as the log message stated.
@
text
@d53 2
a54 2
INCSDIR=	${INCLUDEDIR}/g++
BUILDHDRS=	gthr.h gthr-single.h gthr-posix.h gthr-default.h
d56 96
a151 4
BASELINKS!=	awk '$$0 !~ /^\#/ {print "include/" $$1, $$2}' ${.CURDIR}/includes.map
CONFIGLINKS!=	awk '$$0 !~ /^\#/ {print "config/" $$1, $$2}' ${.CURDIR}/configs.map
CPULINKS!=	awk '$$0 !~ /^\#/ {print "config/" $$1, $$2}' ${.CURDIR}/${MACHINE_ARCH}.map
INCLUDES=	${BASELINKS} ${CONFIGLINKS} ${CPULINKS}
d176 1
a176 16
CLEANFILES+=	${BUILDHDRS}
buildincludes:	${BUILDHDRS}

installincludes:
	@@set ${INCLUDES}; \
	while test $$# -ge 2; do \
		l=${SRCDIR}/$$1; \
		shift; \
		t=$$1; \
		shift; \
		${ECHO} $$l -\> ${DESTDIR}${INCSDIR}/$$t; \
		${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
		     $$l ${DESTDIR}${INCSDIR}/$$t; \
	done; true
	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
	    ${BUILDHDRS} ${.CURDIR}/c++config.h ${DESTDIR}${INCSDIR}/bits
@


1.31
log
@Tweak so that .o's are written into src/contrib/gcc
@
text
@@


1.30
log
@Add some build glue for libstdc++.  I'm not a C++ person, but this seems
to work at least for the non-hairy stuff.  The main wrinkle here is that
a whole mess of include files get installed and under different names.
An earlier version of this built a shadow include tree first in the obj
directory, but this depends on the 'make includes' functionality.

More tweaking is certainly going to be needed.
@
text
@d9 1
a9 1
       ${SUPDIR}
d45 1
a45 1
SRCS+=	${GCCDIR}/cp-demangle.c ${GCCDIR}/dyn-string.c
@


1.29
log
@Added new bsd.incs.mk which handles installing of header files
via INCS.  Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files.  Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1.  Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

	kerberos5/lib/libtelnet/Makefile
	lib/libbz2/Makefile
	lib/libdevinfo/Makefile
	lib/libform/Makefile
	lib/libisc/Makefile
	lib/libmenu/Makefile
	lib/libmilter/Makefile
	lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD.  Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".
@
text
@d3 4
a6 1
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++-v3/src
d8 2
a9 1
       ${SRCDIR}/config/locale/generic ${SRCDIR} ${SRCDIR}/std
d17 4
a20 5
CFLAGS+=	-DHAVE_CONFIG_H
CFLAGS+=	-I${.CURDIR} -I${SRCDIR}/include -I.
CXXFLAGS+=	-nostdinc++ \
		-fno-implicit-templates -ffunction-sections -fdata-sections
LDFLAGS+=	-version-info 4:0:0 -Wl,--version-script=linker.map
d22 2
a23 2
LDADD+=		-lm -lsupc++
DPADD+=		${LIBM} ${LIBSUPCXX}
d25 1
a25 1
# libstdc++ sources (libstdc++-v3/src/Makefile.in, do not reorder)
d27 1
a27 1
	strstream.cc cmath.cc bitset.cc functexcept.cc stdexcept.cc \
d37 13
a49 2
#------------------------------------------------------------------------------
#	From libstdc++-v3/include/Makefile.am
d51 1
a51 47
BITHDRS=basic_ios.h basic_ios.tcc basic_string.h basic_string.tcc \
	boost_concept_check.h char_traits.h codecvt.h concept_check.h \
	cpp_type_traits.h fpos.h fstream.tcc functexcept.h generic_shadow.h \
	gslice.h gslice_array.h indirect_array.h ios_base.h istream.tcc \
	locale_facets.h locale_facets.tcc localefwd.h mask_array.h ostream.tcc \
	pthread_allocimpl.h stream_iterator.h streambuf_iterator.h slice.h \
	slice_array.h sstream.tcc \
	stl_algo.h stl_algobase.h stl_alloc.h stl_bvector.h stl_construct.h \
	stl_deque.h stl_function.h stl_heap.h stl_iterator.h \
	stl_iterator_base_funcs.h stl_iterator_base_types.h stl_list.h \
	stl_map.h stl_multimap.h stl_multiset.h stl_numeric.h stl_pair.h \
	stl_pthread_alloc.h stl_queue.h stl_raw_storage_iter.h stl_relops.h \
	stl_set.h stl_stack.h stl_tempbuf.h stl_threads.h stl_tree.h \
	stl_uninitialized.h stl_vector.h \
	streambuf.tcc stringfwd.h type_traits.h valarray_array.h \
	valarray_array.tcc valarray_meta.h

BKWHDRS=complex.h iomanip.h istream.h ostream.h stream.h streambuf.h algo.h \
	algobase.h alloc.h bvector.h defalloc.h deque.h function.h hash_map.h \
	hash_set.h hashtable.h heap.h iostream.h iterator.h list.h map.h \
	multimap.h new.h multiset.h pair.h queue.h rope.h set.h slist.h \
	stack.h tempbuf.h tree.h vector.h fstream.h strstream.h strstream \
	backward_warning.h

EXTHDRS=algorithm functional hash_map hash_set iterator memory numeric \
	rb_tree rope ropeimpl.h slist stl_hash_fun.h stl_hashtable.h stl_rope.h

# This is the common subset of files that all three "C" header models use.
BASEDHDRS=std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h std_ciso646.h \
	std_climits.h std_clocale.h std_cmath.h std_csetjmp.h std_csignal.h \
	std_cstdarg.h std_cstddef.h std_cstdio.h std_cstdlib.h std_cstring.h \
	std_ctime.h std_cwchar.h std_cwctype.h \
	cmath.tcc

STDHDRS=std_algorithm.h std_bitset.h std_complex.h std_deque.h std_fstream.h \
	std_functional.h std_iomanip.h std_ios.h std_iosfwd.h std_iostream.h \
	std_istream.h std_iterator.h std_limits.h std_list.h std_locale.h \
	std_map.h std_memory.h std_numeric.h std_ostream.h std_queue.h \
	std_set.h std_sstream.h std_stack.h std_stdexcept.h std_streambuf.h \
	std_string.h std_utility.h std_valarray.h std_vector.h

TGTHDRS=ctype_base.h ctype_inline.h ctype_noninline.h os_defines.h \
	atomicity.h cpu_limits.h 

# These extra_target_headers files are all built with ad hoc naming rules.
XTGHDRS=basic_file.h c++config.h c++io.h c++locale.h messages_members.h \
	codecvt_specializations.h 
d53 2
a54 4
THDHDRS=gthr.h gthr-single.h gthr-posix.h gthr-default.h 

BASEDHDRS_renamed=	${BASEDHDRS:Mstd_*:S/std_//g:S/.h//g}
STDHDRS_renamed=	${STDHDRS:Mstd_*:S/std_//g:S/.h//g}
d56 44
a99 5
INCS=		_G_config.h ${HDRS:S;^;${SRCDIR}/;} ${IHDRS} ${STLHDRS}

INCSGROUPS=	INCS STDHDRS
INCSDIR=	${INCLUDEDIR}/g++
STDHDRSDIR=	${INCLUDEDIR}/g++/std
@


1.28
log
@Bmake bits for Gcc 3.1.

Partially made possible by:	Wilko.Bulte@@compaq.com
@
text
@d5 1
a5 1
       ${SRCDIR}/config/locale/generic ${SRCDIR}
d90 1
a90 1
#------------------------------------------------------------------------------
d92 3
a94 12
# gxx_include_dir = $(prefix)/include/g++-v3
beforeinstall:
	mkdir -p ${DESTDIR}/usr/include/g++/{backward,ext}
	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
	    ${.CURDIR}/_G_config.h \
	    ${HDRS:S;^;${SRCDIR}/;} \
	    ${IHDRS:S;^;${SRCDIR}/../libio/;} \
	    ${STLHDRS:S;^;${SRCDIR}/stl/;} \
	    ${DESTDIR}/usr/include/g++
	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
	    ${STDHDRS:S;^;${SRCDIR}/std/;} \
	    ${DESTDIR}/usr/include/g++/std
@


1.27
log
@Sigh.  I should know better than to commit a one line change from a PR
w/o a full compile test, even when the PR seemed so authoritative on the
subject...

Install sstream, not the non-existent sstring.
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.26 2001/03/24 08:19:31 obrien Exp $
d3 3
a5 3
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++.295

.PATH: ${SRCDIR} ${SRCDIR}/stl ${SRCDIR}/../libio
d10 1
a10 1
SHLIB_MAJOR=	3
d13 39
a51 15
CFLAGS+=	-I${.CURDIR} -I${SRCDIR}/include -I${SRCDIR}/../libio -I.
CXXFLAGS+=	-I${SRCDIR}/stl -I${SRCDIR} -I${SRCDIR}/../gcc/cp/inc -I.
CXXFLAGS+=	-nostdinc++ -fno-implicit-templates

LDADD+=		-lm
DPADD+=		${LIBM}

HDRS=	cassert cctype cerrno cfloat ciso646 climits clocale cmath complex \
	csetjmp csignal cstdarg cstddef cstdio cstdlib cstring ctime \
	cwchar cwctype fstream iomanip iosfwd iostream sstream stdexcept \
	string strstream complex.h stl.h valarray

STDHDRS=bastring.cc bastring.h complext.cc complext.h dcomplex.h fcomplex.h \
	gslice.h gslice_array.h indirect_array.h ldcomplex.h mask_array.h \
	slice.h slice_array.h std_valarray.h straits.h valarray_array.h \
d54 37
a90 41
STLHDRS=algo.h algobase.h algorithm alloc.h bitset bvector.h defalloc.h deque \
	deque.h function.h functional hash_map hash_map.h hash_set hash_set.h \
	hashtable.h heap.h iterator iterator.h list list.h map map.h memory \
	multimap.h multiset.h numeric pair.h pthread_alloc pthread_alloc.h \
	queue rope rope.h ropeimpl.h set set.h slist slist.h stack stack.h \
	stl_algo.h stl_algobase.h stl_alloc.h stl_bvector.h stl_config.h \
	stl_construct.h stl_deque.h stl_function.h stl_hash_fun.h \
	stl_hash_map.h stl_hash_set.h stl_hashtable.h stl_heap.h \
	stl_iterator.h stl_list.h stl_map.h stl_multimap.h stl_multiset.h \
	stl_numeric.h stl_pair.h stl_queue.h stl_raw_storage_iter.h \
	stl_relops.h stl_rope.h stl_set.h stl_slist.h stl_stack.h \
	stl_tempbuf.h stl_tree.h stl_uninitialized.h stl_vector.h \
	tempbuf.h tree.h type_traits.h utility vector vector.h

# libstdc++ sources
SRCS+=	cmathi.cc cstdlibi.cc cstringi.cc stdexcepti.cc stlinst.cc

# Headers for iostream / libio
IHDRS=	PlotFile.h SFile.h builtinbuf.h editbuf.h floatio.h fstream.h \
	indstream.h iolibio.h iomanip.h iostdio.h iostream.h iostreamP.h \
	istream.h libio.h libioP.h ostream.h parsestream.h pfstream.h \
	procbuf.h stdiostream.h stream.h streambuf.h strfile.h strstream.h

# C++ parts of iostream / libio
SRCS+=	PlotFile.cc SFile.cc builtinbuf.cc editbuf.cc filebuf.cc fstream.cc \
	indstream.cc ioassign.cc ioextend.cc iomanip.cc iostream.cc \
	isgetline.cc isgetsb.cc isscan.cc osform.cc parsestream.cc \
	pfstream.cc procbuf.cc sbform.cc sbgetline.cc sbscan.cc \
	stdiostream.cc stdstrbufs.cc stdstreams.cc stream.cc streambuf.cc \
	strstream.cc

# C parts of iostream / libio
SRCS+=	cleanup.c filedoalloc.c fileops.c floatconv.c genops.c iofclose.c \
	iofdopen.c iofeof.c ioferror.c iofflush.c iofflush_u.c iofgetpos.c \
	iofgets.c iofopen.c iofprintf.c iofputs.c iofread.c iofscanf.c \
	iofsetpos.c ioftell.c iofwrite.c iogetc.c iogetdelim.c iogetline.c \
	iogets.c ioignore.c iopadn.c ioperror.c iopopen.c ioprims.c ioprintf.c \
	ioputc.c ioputs.c ioscanf.c ioseekoff.c ioseekpos.c iosetbuffer.c \
	iosetvbuf.c iosprintf.c iosscanf.c iostrerror.c ioungetc.c \
	iovfprintf.c iovfscanf.c iovsprintf.c iovsscanf.c outfloat.c \
	peekc.c strops.c
d92 1
d94 1
a103 107

CLEANFILES+=	dummy.h dummy.c dummy.C

# Lots of special cases

# ======== cstrmain.o ========
SRCS+=	cstrmain.cc
CLEANFILES+=	cstrmain.cc

cstrmain.cc: sinst.cc
	echo "#define C 1" > ${.TARGET}
.for i in REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC  EQSS EQPS EQSP NESS \
    NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP LESS LEPS LESP GESS GEPS GESP
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== cstrio.o ========
SRCS+=	cstrio.cc
CLEANFILES+=	cstrio.cc

cstrio.cc: sinst.cc
	echo "#define C 1" > ${.TARGET}
.for i in EXTRACT INSERT GETLINE
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== fcomplex.o =======
SRCS+=	fcomplex.cc
CLEANFILES+=	fcomplex.cc

fcomplex.cc: cinst.cc
	echo "#define F 1" > ${.TARGET}
.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
    DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ \
    NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== fcomio.o =======
SRCS+=	fcomio.cc
CLEANFILES+=	fcomio.cc

fcomio.cc: cinst.cc
	echo "#define F 1" > ${.TARGET}
.for i in EXTRACT INSERT
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== dcomplex.o =======
SRCS+=	dcomplex.cc
CLEANFILES+=	dcomplex.cc

dcomplex.cc: cinst.cc
	echo "#define D 1" > ${.TARGET}
.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
    DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ \
    NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== dcomio.o =======
SRCS+=	dcomio.cc
CLEANFILES+=	dcomio.cc

dcomio.cc: cinst.cc
	echo "#define D 1" > ${.TARGET}
.for i in EXTRACT INSERT
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== ldcomplex.o =======
SRCS+=	ldcomplex.cc
CLEANFILES+=	ldcomplex.cc

ldcomplex.cc: cinst.cc
	echo "#define LD 1" > ${.TARGET}
.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
    DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ \
    NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== ldcomio.o =======
SRCS+=	ldcomio.cc
CLEANFILES+=	ldcomio.cc

ldcomio.cc: cinst.cc
	echo "#define LD 1" > ${.TARGET}
.for i in EXTRACT INSERT
	echo "#define $i 1" >> ${.TARGET}
.endfor
	cat ${.ALLSRC} >> ${.TARGET}

# ======== _G_config.h generation =======
# In case you want or need to generate a _G_config.h file.
make_G_config_h:
	CC="${CC}" CXX="${CXX}" CONFIG_NM="nm" \
	    CPP="${CC} -E -nostdinc -idirafter ${DESTDIR}/usr/include" \
	    sh ${SRCDIR}/../libio/gen-params \
	    LIB_VERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.0 >${.TARGET}
@


1.27.2.1
log
@Mostly filled in contents for GCC 3.1.

Bribed by:	peter
@
text
@d1 1
a1 1
# $FreeBSD$
d3 3
a5 3
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++-v3/src
.PATH: ${SRCDIR}/src ${SRCDIR}/libmath ${SRCDIR}/config/io \
       ${SRCDIR}/config/locale/generic ${SRCDIR}
d10 1
a10 1
SHLIB_MAJOR=	4
d13 15
a27 39
CFLAGS+=	-DHAVE_CONFIG_H
CFLAGS+=	-I${.CURDIR} -I${SRCDIR}/include -I.
CXXFLAGS+=	-nostdinc++ \
		-fno-implicit-templates -ffunction-sections -fdata-sections
LDFLAGS+=	-version-info 4:0:0 -Wl,--version-script=linker.map

LDADD+=		-lm -lsupc++
DPADD+=		${LIBM} ${LIBSUPCXX}

# libstdc++ sources (libstdc++-v3/src/Makefile.in, do not reorder)
SRCS+=	globals.cc limits.cc basic_file_stdio.cc complex_io.cc ios.cc \
	strstream.cc cmath.cc bitset.cc functexcept.cc stdexcept.cc \
	vterminate.cc c_locale.cc locale.cc localename.cc codecvt.cc \
	collate_members.cc ctype_members.cc messages_members.cc \
	monetary_members.cc numeric_members.cc time_members.cc concept-inst.cc \
	locale-inst.cc misc-inst.cc stl-inst.cc string-inst.cc wstring-inst.cc \
	valarray-inst.cc ext-inst.cc

# C parts of math
SRCS+=	nan.c signbit.c signbitf.c signbitl.c # stubs.c

#------------------------------------------------------------------------------
#	From libstdc++-v3/include/Makefile.am

BITHDRS=basic_ios.h basic_ios.tcc basic_string.h basic_string.tcc \
	boost_concept_check.h char_traits.h codecvt.h concept_check.h \
	cpp_type_traits.h fpos.h fstream.tcc functexcept.h generic_shadow.h \
	gslice.h gslice_array.h indirect_array.h ios_base.h istream.tcc \
	locale_facets.h locale_facets.tcc localefwd.h mask_array.h ostream.tcc \
	pthread_allocimpl.h stream_iterator.h streambuf_iterator.h slice.h \
	slice_array.h sstream.tcc \
	stl_algo.h stl_algobase.h stl_alloc.h stl_bvector.h stl_construct.h \
	stl_deque.h stl_function.h stl_heap.h stl_iterator.h \
	stl_iterator_base_funcs.h stl_iterator_base_types.h stl_list.h \
	stl_map.h stl_multimap.h stl_multiset.h stl_numeric.h stl_pair.h \
	stl_pthread_alloc.h stl_queue.h stl_raw_storage_iter.h stl_relops.h \
	stl_set.h stl_stack.h stl_tempbuf.h stl_threads.h stl_tree.h \
	stl_uninitialized.h stl_vector.h \
	streambuf.tcc stringfwd.h type_traits.h valarray_array.h \
d30 41
a70 37
BKWHDRS=complex.h iomanip.h istream.h ostream.h stream.h streambuf.h algo.h \
	algobase.h alloc.h bvector.h defalloc.h deque.h function.h hash_map.h \
	hash_set.h hashtable.h heap.h iostream.h iterator.h list.h map.h \
	multimap.h new.h multiset.h pair.h queue.h rope.h set.h slist.h \
	stack.h tempbuf.h tree.h vector.h fstream.h strstream.h strstream \
	backward_warning.h

EXTHDRS=algorithm functional hash_map hash_set iterator memory numeric \
	rb_tree rope ropeimpl.h slist stl_hash_fun.h stl_hashtable.h stl_rope.h

# This is the common subset of files that all three "C" header models use.
BASEDHDRS=std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h std_ciso646.h \
	std_climits.h std_clocale.h std_cmath.h std_csetjmp.h std_csignal.h \
	std_cstdarg.h std_cstddef.h std_cstdio.h std_cstdlib.h std_cstring.h \
	std_ctime.h std_cwchar.h std_cwctype.h \
	cmath.tcc

STDHDRS=std_algorithm.h std_bitset.h std_complex.h std_deque.h std_fstream.h \
	std_functional.h std_iomanip.h std_ios.h std_iosfwd.h std_iostream.h \
	std_istream.h std_iterator.h std_limits.h std_list.h std_locale.h \
	std_map.h std_memory.h std_numeric.h std_ostream.h std_queue.h \
	std_set.h std_sstream.h std_stack.h std_stdexcept.h std_streambuf.h \
	std_string.h std_utility.h std_valarray.h std_vector.h

TGTHDRS=ctype_base.h ctype_inline.h ctype_noninline.h os_defines.h \
	atomicity.h cpu_limits.h 

# These extra_target_headers files are all built with ad hoc naming rules.
XTGHDRS=basic_file.h c++config.h c++io.h c++locale.h messages_members.h \
	codecvt_specializations.h 

THDHDRS=gthr.h gthr-single.h gthr-posix.h gthr-default.h 

BASEDHDRS_renamed=	${BASEDHDRS:Mstd_*:S/std_//g:S/.h//g}
STDHDRS_renamed=	${STDHDRS:Mstd_*:S/std_//g:S/.h//g}

#------------------------------------------------------------------------------
a71 1
# gxx_include_dir = $(prefix)/include/g++-v3
a72 1
	mkdir -p ${DESTDIR}/usr/include/g++/{backward,ext}
d82 107
@


1.26
log
@Install sstring.

PR:		25927
Submitted by:	Jeremy Norris <ishmael27@@home.com>
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.25 2000/06/04 06:56:22 obrien Exp $
d22 1
a22 1
	cwchar cwctype fstream iomanip iosfwd iostream sstring stdexcept \
@


1.25
log
@Scoot things over to the temporary *.295 source while I do major construction
on the mainline sources.
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.24 1999/11/15 04:16:19 obrien Exp $
d22 2
a23 2
	cwchar cwctype fstream iomanip iosfwd iostream stdexcept string \
	strstream complex.h stl.h valarray
@


1.24
log
@Cut over the system compiler from from EGCS 1.1.2 to GCC 2.95.2.
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.23 1999/08/27 23:32:59 peter Exp $
d3 1
a3 1
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++
@


1.24.2.1
log
@MFC: revs 1.26,7 (install sstream)
@
text
@d1 1
a1 1
# $FreeBSD$
d22 2
a23 2
	cwchar cwctype fstream iomanip iosfwd iostream sstream stdexcept \
	string strstream complex.h stl.h valarray
@


1.24.2.2
log
@Fix ``make includes''.

Submitted by:	Marius Strobl <marius@@alchemy.franken.de>
Approved by:	re (murray)
@
text
@d5 1
a5 1
.PATH: ${SRCDIR} ${SRCDIR}/stl ${SRCDIR}/../libio ${SRCDIR}/std
d72 10
a81 5
INCS=		_G_config.h ${HDRS:S;^;${SRCDIR}/;} ${IHDRS} ${STLHDRS}

INCSGROUPS=	INCS STDHDRS
INCSDIR=	${INCLUDEDIR}/g++
STDHDRSDIR=	${INCLUDEDIR}/g++/std
@


1.24.2.3
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/4/gnu/lib/libstdc++/Makefile 119925 2003-09-09 20:17:28Z ru $
@


1.23
log
@$Id$ -> $FreeBSD$
@
text
@d1 1
a1 1
# $FreeBSD$
d3 1
a3 1
SRCDIR=	${.CURDIR}/../../../contrib/egcs/libstdc++
d23 1
a23 1
	strstream complex.h stl.h
d25 4
a28 2
SHDRS=	bastring.cc bastring.h complext.cc complext.h dcomplex.h fcomplex.h \
	ldcomplex.h straits.h
d30 2
a31 2
STLHDRS=algo.h algobase.h algorithm alloc.h bvector.h defalloc.h deque deque.h \
	function.h functional hash_map hash_map.h hash_set hash_set.h \
d80 1
a80 1
	    ${SHDRS:S;^;${SRCDIR}/std/;} \
@


1.23.2.1
log
@Allow EGCS 1.1.2 to co-exist with the new compiler, for regression testing.
@
text
@d1 1
a1 1
# $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.23 1999/08/27 23:32:59 peter Exp $
d3 1
a3 1
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++
d9 1
a9 1
LIB=		stdc++-egcs
a70 1
	mkdir -p ${DESTDIR}/usr/include/eg++/std
d76 1
a76 1
	    ${DESTDIR}/usr/include/eg++
d79 1
a79 1
	    ${DESTDIR}/usr/include/eg++/std
@


1.22
log
@{EGCSDIR}->{SRCDIR} + associated tweaks.
This is in prepreparation of the gcc-2.95 upgrade.
@
text
@d1 1
a1 1
#	$Id: Makefile,v 1.21 1999/04/25 16:59:54 obrien Exp $
@


1.21
log
@Purely cosmetic changes -- fix Id's
@
text
@d1 1
a1 1
#	$Id: Makefile,v 1.20 1999/04/25 16:59:54 obrien Exp $
d3 1
a3 1
EGCSDIR=	${.CURDIR}/../../../contrib/egcs
d5 1
a5 1
.PATH: ${EGCSDIR}/libstdc++ ${EGCSDIR}/libstdc++/stl ${EGCSDIR}/libio
d13 2
a14 3
CFLAGS+=	-I${.CURDIR} -I${EGCSDIR}/include -I${EGCSDIR}/libio -I.
CXXFLAGS+=	-I${EGCSDIR}/libstdc++/stl -I${EGCSDIR}/libstdc++ \
		-I${EGCSDIR}/gcc/cp/inc -I.
d73 3
a75 3
	    ${HDRS:S;^;${EGCSDIR}/libstdc++/;} \
	    ${IHDRS:S;^;${EGCSDIR}/libio/;} \
	    ${STLHDRS:S;^;${EGCSDIR}/libstdc++/stl/;} \
d78 1
a78 1
	    ${SHDRS:S;^;${EGCSDIR}/libstdc++/std/;} \
d185 1
a185 1
	    sh ${EGCSDIR}/libio/gen-params \
@


1.20
log
@Remove several explicit rules.  The two for exceptioni.o and typeionfoi.o
aren't needed as those files aren't part of libstdc++ any longer.  Another
isn't needed as Cygnus doesn't compile with -frtti.

Noticed by:	bde & my initial mispelling of ".So".
@
text
@d1 1
a1 3
#
# $Id: Makefile,v 1.19 1999/04/15 08:08:56 obrien Exp $
#
@


1.19
log
@Foo.  jdp changed .so to .So during the time I did the EGCS work and I
missed bring in his changes into my work.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.18 1999/04/08 09:13:39 obrien Exp $
a22 2
DIR=		${EGCSDIR}/libstdc++

a86 40

# ======== typeinfoi.o, stdexcepti.o ========
.for file in typeinfoi stdexcepti
CLEANFILES+=	${file}.o.tmp ${file}.po.tmp ${file}.so.tmp
${file}.o: ${file}.cc
	${CXX} -nostdinc++ ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
	@@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
	@@mv ${.TARGET}.tmp ${.TARGET}

${file}.So: ${file}.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc \
	    -o ${.TARGET}
	@@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
	@@mv ${.TARGET}.tmp ${.TARGET}

${file}.po: ${file}.cc
	${CXX} -p ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
	@@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
	@@mv ${.TARGET}.tmp ${.TARGET}
.endfor

# ======== exceptioni.o ========
.for file in exceptioni
CLEANFILES+=	${file}.o.tmp ${file}.po.tmp ${file}.so.tmp
${file}.o: ${file}.cc
	${CXX} ${CXXFLAGS} -O0 -c ${DIR}/${file}.cc -o ${.TARGET}
	@@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
	@@mv ${.TARGET}.tmp ${.TARGET}

${file}.So: ${file}.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -O0 -c ${DIR}/${file}.cc \
	    -o ${.TARGET}
	@@${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
	@@mv ${.TARGET}.tmp ${.TARGET}

${file}.po: ${file}.cc
	${CXX} -p ${CXXFLAGS} -O0 -c ${DIR}/${file}.cc -o ${.TARGET}
	@@${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
	@@mv ${.TARGET}.tmp ${.TARGET}
.endfor
@


1.18
log
@Missed a "\" in a continuation line.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.17 1999/04/08 07:20:33 obrien Exp $
d98 1
a98 1
${file}.so: ${file}.cc
d118 1
a118 1
${file}.so: ${file}.cc
@


1.17
log
@Cometic cleanup.

Pre-bdelinted by:	bde
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.16 1999/04/07 07:48:23 obrien Exp $
d77 1
a77 1
	    ${.CURDIR}/_G_config.h
@


1.16
log
@Don't generate _G_config.h, use fixed version.
I knew better... too dependant on the environment we generate in, but...

This fixes the
/usr/lib/libstdc++.so: undefined reference to `filebuf virtual table'
/usr/lib/libstdc++.so: undefined reference to `stdiobuf virtual table'
errors seen after the initial bootstrap from gcc 2.7.2 to EGCS.

Agreed with by:	bde & jdp
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.15 1999/04/05 09:01:45 obrien Exp $
d77 5
a81 2
		${.CURDIR}/_G_config.h \
		${DESTDIR}/usr/include/g++
d83 2
a84 7
		${HDRS:S;^;${EGCSDIR}/libstdc++/;} \
		${IHDRS:S;^;${EGCSDIR}/libio/;} \
		${STLHDRS:S;^;${EGCSDIR}/libstdc++/stl/;} \
		${DESTDIR}/usr/include/g++
	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
		${SHDRS:S;^;${EGCSDIR}/libstdc++/std/;} \
		${DESTDIR}/usr/include/g++/std
d99 2
a100 1
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
d119 2
a120 1
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -O0 -c ${DIR}/${file}.cc -o ${.TARGET}
d229 3
a231 3
		CPP="${CC} -E -nostdinc -idirafter ${DESTDIR}/usr/include" \
		sh ${EGCSDIR}/libio/gen-params \
		LIB_VERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.0 >${.TARGET}
@


1.15
log
@Fix .for loop continuation lines style bugs.

Submitted by:	bde
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.14 1999/04/05 08:07:40 obrien Exp $
d15 1
a15 1
CFLAGS+=	-I${EGCSDIR}/include -I${EGCSDIR}/libio -I.
d75 1
a75 1
beforeinstall: _G_config.h
d77 1
a77 1
		_G_config.h \
d88 1
a88 7
SRCS+=		_G_config.h
CLEANFILES+=	_G_config.h dummy.h dummy.c dummy.C
_G_config.h: Makefile ${EGCSDIR}/libio/gen-params
	CC="${CC}" CXX="${CXX}" CONFIG_NM="nm" \
		CPP="${CC} -E -nostdinc -idirafter ${DESTDIR}/usr/include" \
		sh ${EGCSDIR}/libio/gen-params \
		LIB_VERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.0 >${.TARGET}
d224 8
@


1.14
log
@Add iostream Info docs.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.19 1999/03/14 22:54:18 obrien Exp $
d166 2
a167 2
	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR  \
	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
d190 2
a191 2
	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
d214 2
a215 2
	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
@


1.13
log
@Minimum set of changes to switch from Gcc 2.7.2 (in contrib/gcc) to Egcs 1.1.2
(in contrib/egcs)
@
text
@d9 2
@


1.12
log
@Switch to using ".So" as the extension for PIC object files rather
than ".so".  The old extension conflicted with well-established
naming conventions for dynamically loadable modules.

The "clean" targets continue to remove ".so" files too, to deal with
old systems.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.11 1998/12/27 17:25:27 bde Exp $
d5 1
a5 1
GPPDIR=	${.CURDIR}/../../../contrib/libg++
d7 1
a7 2
.PATH:	${GPPDIR}/libstdc++ ${GPPDIR}/libstdc++/stl ${GPPDIR}/libio \
	${GPPDIR}/libiberty
d10 1
a10 1
SHLIB_MAJOR=	2
d13 4
a16 3
CFLAGS+=	-I${GPPDIR}/include -I${DESTDIR}/usr/include/g++ -I.
CXXFLAGS+=	-I${GPPDIR}/include -I${GPPDIR}/libio -I${GPPDIR}/libstdc++
CXXFLAGS+=	-fno-implicit-templates
d21 1
a21 1
DIR=		${GPPDIR}/libstdc++
d25 2
a26 22
	cwchar cwctype new stddef string exception stdexcept typeinfo \
	algorithm deque list map queue set stack vector utility functional \
	iterator memory numeric \
	complex.h new.h stl.h

SHDRS=	bastring.cc bastring.h cassert.h cctype.h cerrno.h cfloat.h cinst.h \
	ciso646.h climits.h clocale.h cmath.h complex.h complext.cc \
	complext.h csetjmp.h csignal.h cstdarg.h cstddef.h cstdio.h \
	cstdlib.h cstring.h ctime.h cwchar.h cwctype.h dcomplex.h exception.h \
	fcomplex.h ldcomplex.h new.h sinst.h stddef.h stdexcept.h straits.h \
	string.h typeinfo.h

STLHDRS=algo.h algobase.h bool.h bvector.h defalloc.h deque.h faralloc.h \
	fdeque.h flist.h fmap.h fmultmap.h fmultset.h fset.h function.h \
	hdeque.h heap.h hlist.h hmap.h hmultmap.h hmultset.h hset.h \
	hugalloc.h hvector.h iterator.h lbvector.h ldeque.h list.h llist.h \
	lmap.h lmultmap.h lmultset.h lngalloc.h lset.h map.h multimap.h \
	multiset.h neralloc.h nmap.h nmultmap.h nmultset.h nset.h pair.h \
	projectn.h set.h stack.h tempbuf.h tree.h vector.h

SRCS+=	newi.cc cstringi.cc stddefi.cc typeinfoi.cc exceptioni.cc \
	stdexcepti.cc cstdlibi.cc cmathi.cc
d28 2
a29 2
# stl sources.
SRCS+=	tempbuf.cc tree.cc random.cc
d31 13
a43 2
# "standard" C parts of libiberty (strerror is a superset of the libc version)
SRCS+=	insque.c strerror.c
d45 4
a48 1
# Headers for iostream
d54 1
a54 1
# C++ parts of iostream
d62 1
a62 1
# C parts of iostream
d64 8
a71 4
	iofgetpos.c iofread.c iofscanf.c iofsetpos.c iogetdelim.c iogetline.c \
	ioignore.c iopadn.c iopopen.c ioprims.c ioprintf.c ioseekoff.c \
	ioseekpos.c iostrerror.c ioungetc.c iovfprintf.c iovfscanf.c \
	outfloat.c strops.c
d73 4
a76 7
SRCS+=	config.h
CLEANFILES+=	config.h

config.h:
	touch config.h

beforeinstall:
d78 3
a80 4
		${.CURDIR}/_G_config.h \
		${HDRS:S;^;${GPPDIR}/libstdc++/;} \
		${IHDRS:S;^;${GPPDIR}/libio/;} \
		${STLHDRS:S;^;${GPPDIR}/libstdc++/stl/;} \
d83 1
a83 1
		${SHDRS:S;^;${GPPDIR}/libstdc++/std/;} \
d86 8
d100 1
a100 1
	${CXX} ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
d104 1
a104 1
${file}.So: ${file}.cc
d119 1
a119 1
	${CXX} ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
d123 2
a124 2
${file}.So: ${file}.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
d129 1
a129 1
	${CXX} -p ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
d141 1
a141 1
    NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP  LESS LEPS LESP GESS GEPS GESP
d164 2
a165 2
    DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
    CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
d188 2
a189 2
    DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
    CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
d212 2
a213 2
    DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
    CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
@


1.12.2.1
log
@$Id$ -> $FreeBSD$
@
text
@d2 1
a2 1
# $FreeBSD$
@


1.11
log
@Avoid using `ld -O' (as in bsd.lib.mk).  `ld -O' seems to have caused only
non-problems for elf -- `ld -elf -O foo.tmp -x -r foo' apparently puts
the result in a.out so it has essentially no effect.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.10 1998/10/11 04:56:03 peter Exp $
d102 1
a102 1
${file}.so: ${file}.cc
d121 1
a121 1
${file}.so: ${file}.cc
@


1.10
log
@libg++ and libstdc++ also have internal calls to libm.  Programs using the
shared versions should not need to add -lm unless the program uses libm
itself.  Strictly speaking, libg++ depends on libstdc++, but libstdc++
has dynamic dependencies on some exception tables and binutils doesn't
seem to like it when a secondary library has undefined references.  It
doesn't seem to care when -lstdc++ is added on the command line to ld
though.  Anyway, the c++ driver adds -lstdc++ explicitly, so that should
be OK.  c++ also adds -lm explicitly too, even though it wouldn't need
to now. [except for statically linked binaries as .a files don't have an
equivalent of automatic internal shared object dependencies.]
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.9 1998/03/20 15:10:59 bde Exp $
d96 1
d99 2
a100 1
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}
d104 2
a105 1
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}
d109 2
a110 1
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
d115 1
d118 2
a119 1
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}
d123 2
a124 1
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}
d128 2
a129 1
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
@


1.9
log
@Don't use beforedepend to complicate and break things.  The usual
fix of putting generated source files in SRCS breaks many special
cases (many dependencies had to be incomplete for ${.ALLSRC}
not to give .h files that would break compiling with c++ -c).
Reduce these special cases to the general case so that SRCS works
normally and bsd.lib.mk handles most of the complications.  Now
we only have to duplicate rules from bsd.lib.mk to add special
CFLAGS in some cases.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.8 1998/02/25 01:23:28 bde Exp $
d17 3
@


1.8
log
@Don't add streambuf.cc to SRCS twice.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.7 1997/05/23 08:33:59 asami Exp $
d72 1
a72 4


beforedepend:	config.h
strerror.o:	config.h
d122 5
a126 1
CSTRMAIN=	-DC
d128 2
a129 2
	NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP  LESS LEPS LESP GESS GEPS GESP
CSTRMAIN+=	-D${i}
d131 1
d133 3
a135 1
OBJS+=	cstrmain.o
d137 2
a138 14
cstrmain.o:	sinst.cc
	${CXX} ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

cstrmain.so:	sinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

cstrmain.po:	sinst.cc
	${CXX} -p ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}

# ======== cstrio.o ========
CSTRIO=	-DC
d140 1
a140 1
CSTRIO+=	-D${i}
d142 1
d144 3
a146 9
OBJS+=	cstrio.o

cstrio.o:	sinst.cc
	${CXX} ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

cstrio.so:	sinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}
d148 2
a149 6
cstrio.po:	sinst.cc
	${CXX} -p ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}

# ======== fcomplex.o =======
FCOMPLEX=	-DF
d151 3
a153 3
	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
FCOMPLEX+=	-D${i}
d155 1
d157 3
a159 13
OBJS+=	fcomplex.o

fcomplex.o:	cinst.cc
	${CXX} ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

fcomplex.so:	cinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

fcomplex.po:	cinst.cc
	${CXX} -p ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
d161 2
a162 2
# ======== fcomio.o =======
FCOMIO=	-DF
d164 1
a164 1
FCOMIO+=-D${i}
d166 1
d168 3
a170 13
OBJS+=	fcomio.o

fcomio.o:	cinst.cc
	${CXX} ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

fcomio.so:	cinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

fcomio.po:	cinst.cc
	${CXX} -p ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
d172 2
a173 2
# ======== dcomplex.o =======
DCOMPLEX=	-DD
d175 3
a177 3
	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
DCOMPLEX+=	-D${i}
d179 1
d181 3
a183 13
OBJS+=	dcomplex.o

dcomplex.o:	cinst.cc
	${CXX} ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

dcomplex.so:	cinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

dcomplex.po:	cinst.cc
	${CXX} -p ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
d185 2
a186 2
# ======== dcomio.o =======
DCOMIO=	-DD
d188 1
a188 1
DCOMIO+=-D${i}
d190 1
d192 3
a194 13
OBJS+=	dcomio.o

dcomio.o:	cinst.cc
	${CXX} ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

dcomio.so:	cinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

dcomio.po:	cinst.cc
	${CXX} -p ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
d196 2
a197 2
# ======== ldcomplex.o =======
LDCOMPLEX=	-DLD
d199 3
a201 3
	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
LDCOMPLEX+=	-D${i}
d203 1
d205 3
a207 13
OBJS+=	ldcomplex.o

ldcomplex.o:	cinst.cc
	${CXX} ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

ldcomplex.so:	cinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

ldcomplex.po:	cinst.cc
	${CXX} -p ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
d209 2
a210 2
# ======== ldcomio.o =======
LDCOMIO=	-DLD
d212 1
a212 1
LDCOMIO+=-D${i}
d214 1
a214 14

OBJS+=	ldcomio.o

ldcomio.o:	cinst.cc
	${CXX} ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

ldcomio.so:	cinst.cc
	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -x -r ${.TARGET}

ldcomio.po:	cinst.cc
	${CXX} -p ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
	@@${LD} -O ${.TARGET} -X -r ${.TARGET}
@


1.7
log
@Add ${DESTDIR} in front of absolute paths.

Reviewed by:	bde
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.6 1997/05/06 00:49:35 jdp Exp $
d63 1
a63 1
	streambuf.cc strstream.cc
@


1.6
log
@Bye bye CPLUSPLUSLIB hack!  It's not needed any more.

Don't merge this into -2.2 unless you understand the dependencies on
c++rt0, bsd.lib.mk, and gcc -shared.  I.e., let me do it.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.5 1997/04/09 16:00:07 peter Exp $
d14 1
a14 1
CFLAGS+=	-I${GPPDIR}/include -I/usr/include/g++ -I.
@


1.5
log
@Oops.  Missed the Complex number add case of code generation.. :-]
Fixes PR#3239.

Submitted by: Takeshi WATANABE <watanabe@@crayon.earth.s.kobe-u.ac.jp>
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.4 1997/02/22 15:43:10 peter Exp $
a12 1
CPLUSPLUSLIB=	1	# include c++rt0.o for static constructors
@


1.4
log
@Revert $FreeBSD$ to $Id$
@
text
@d2 1
a2 1
# $Id$
d168 1
a168 1
.for i in MAIN ADD CC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
d210 1
a210 1
.for i in MAIN ADD CC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
d252 1
a252 1
.for i in MAIN ADD CC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
@


1.3
log
@Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
@
text
@d2 1
a2 1
# $FreeBSD$
@


1.2
log
@STL object files missing from libstdc++ - fix.
This closes PR#1975 and was on my TODO list, so I'm breaking my own "no more
commits before I fly!" rule and taking care of this, since it was at the
very top and Peter shamed me in to taking care of it.  This is definitely
a 2.2 candidate.

Submitted-By: Mark Diekhans <markd@@Grizzly.COM>
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.1 1996/10/03 22:52:22 peter Exp $
@


1.1
log
@Initial shot at a bmakefile for libstdc++
@
text
@d2 1
a2 1
# $Id$
d7 2
a8 1
.PATH:	${GPPDIR}/libstdc++ ${GPPDIR}/libio ${GPPDIR}/libiberty
d46 3
d72 2
@


1.1.2.1
log
@Merge from HEAD (be thorough!).
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.1 1996/10/03 22:52:22 peter Exp $
d7 1
a7 2
.PATH:	${GPPDIR}/libstdc++ ${GPPDIR}/libstdc++/stl ${GPPDIR}/libio \
	${GPPDIR}/libiberty
a44 3
# stl sources.
SRCS+=	tempbuf.cc tree.cc random.cc

a67 2


@


1.1.2.2
log
@MFC: add ${DESTDIR} in front of absolute paths.

Reviewed by:	bde
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.1.2.1 1996/11/15 18:15:45 jkh Exp $
d15 1
a15 1
CFLAGS+=	-I${GPPDIR}/include -I${DESTDIR}/usr/include/g++ -I.
@


1.1.2.3
log
@Merge from main branch 1.5 -> 1.6:  Bye bye CPLUSPLUSLIB.
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.1.2.2 1997/05/23 08:35:10 asami Exp $
d13 1
@


1.1.2.4
log
@YAMFC (rev.1.5: complex addition was broken by the bogus space in "ADD CC".
PR:		3239
Forgotten by:	closer of PR3239
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.1.2.3 1997/06/14 17:53:24 jdp Exp $
d167 1
a167 1
.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
d209 1
a209 1
.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
d251 1
a251 1
.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
@


1.1.2.5
log
@$Id$ -> $FreeBSD$
@
text
@d2 1
a2 1
# $FreeBSD$
@

