2 .include "../../Makefile.inc"
3 SRCDIR= ${GCCDIR}/libstdc++-v3
4 .include "Makefile.headers"
8 # These sections are detailed in Makefile.headers
9 # parallel section is empty, skip it
10 # make buildincludes, make installincludes before make depend
11 glibcxx_srcdir= ${SRCDIR}
12 HSECT= std bits bits_sup backward ext ext_compat tr1 tr2 decimal \
13 c_base c_compatibility debug profile profile_impl host supc \
14 parallel experimental ext_host
16 HD= ${INCLUDEDIR}/c++/${GCCPOINTVER}
19 INCSGROUPS+= ${i}_headers
20 ${i}_headersDIR= ${HD}/${${i}_builddir}
25 . for k in ${pb_headers${i}}
26 . if ${PATHGROUP:M${k:H:T}} == ""
28 PATH_${k:H:T}=${k:H:T}
34 INCSGROUPS+= PBG_pb_ds
35 PBG_pb_dsDIR= ${HD}/${pb_builddir}
37 INCSGROUPS+= PBG_detail
38 PBG_detailDIR= ${HD}/${pb_builddir}/detail
40 .for k in ${PATHGROUP:Npb_ds:Ndetail}
42 PBG_${k}DIR= ${HD}/${pb_builddir}/detail/${PATH_${k}}
45 INCSGROUPS+= experimental_bits_headers
46 experimental_bits_headersDIR= ${HD}/experimental/bits
48 INCSGROUPS+= host_headers_extra
49 host_headers_extraDIR= ${HD}/bits
50 host_headers_extraNAME_basic_file_stdio.h= basic_file.h
51 host_headers_extraNAME_c_locale.h= c++locale.h
52 host_headers_extraNAME_c_io_stdio.h+= c++io.h
53 host_headers_extraNAME_new_allocator_base.h= c++allocator.h
55 cxxabi_forced.h: ${SRCDIR}/libsupc++/cxxabi_forced.h
56 cp ${.ALLSRC} ${.TARGET}
58 gthr.h: ${GCCDIR}/libgcc/gthr.h
59 sed -e '/^#pragma/b' \
60 -e '/^#/s/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*\)/_GLIBCXX_\1/g' \
61 -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
62 -e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \
63 -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
64 < ${GCCDIR}/libgcc/gthr.h > ${.TARGET}
66 gthr-single.h: ${GCCDIR}/libgcc/gthr.h
67 sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
68 -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
69 < ${GCCDIR}/libgcc/gthr-single.h > ${.TARGET}
71 gthr-posix.h: ${GCCDIR}/libgcc/gthr-posix.h
72 sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
73 -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
74 -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
75 -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*USE_WEAK\)/_GLIBCXX_\1/g' \
76 < ${GCCDIR}/libgcc/gthr-posix.h > ${.TARGET}
78 gthr-default.h: gthr-posix.h
79 cp ${.ALLSRC} ${.TARGET}
81 release=${GCCMAJORVER}
89 S1='s,define __GLIBCXX__,define __GLIBCXX__ ${GCCSHORTDATE},'
90 S2='s,define _GLIBCXX_RELEASE,define _GLIBCXX_RELEASE ${release},'
91 S3='s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION ${ns_version},'
92 S4='s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY ${visibility},'
93 S5='s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE ${externtemplate},'
94 S6='s,define _GLIBCXX_USE_DUAL_ABI, define _GLIBCXX_USE_DUAL_ABI ${dualabi},'
95 S7='s,define _GLIBCXX_USE_CXX11_ABI, define _GLIBCXX_USE_CXX11_ABI ${cxx11abi},'
96 S8='s,define _GLIBCXX_USE_ALLOCATOR_NEW, define _GLIBCXX_USE_ALLOCATOR_NEW ${allocatornew},'
100 sed -e ${S1} -e ${S2} -e ${S3} -e ${S4} -e ${S5} -e ${S6} -e ${S7} -e ${S8} -e ${S9} \
101 < ${GCCDIR}/libstdc++-v3/include/bits/c++config > ${.TARGET}
102 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
103 -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
104 -e 's/VERSION/_GLIBCXX_VERSION/g' \
105 -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
106 -e 's/ICONV_CONST/_GLIBCXX_ICONV_CONST/g' \
107 -e '/[ ]_GLIBCXX_LONG_DOUBLE_COMPAT[ ]/d' \
108 < ${.ALLSRC} >> ${.TARGET}
109 echo "" >> ${.TARGET}
110 echo "#endif // _GLIBCXX_CXX_CONFIG_H" >> ${.TARGET}
112 CLEANFILES= gthr.h gthr-default.h gthr-single.h gthr-posix.h \
113 c++config.h cxxabi_forced.h
115 .include <bsd.lib.mk>