Home | History | Annotate | Line # | Download | only in libstdc++-v3
Makefile revision 1.43
      1  1.43       mrg #	$NetBSD: Makefile,v 1.43 2019/02/17 00:05:11 mrg Exp $
      2   1.1       mrg 
      3   1.1       mrg REQUIRETOOLS=	yes
      4   1.1       mrg NOLINT=		# defined
      5  1.27     joerg UNSUPPORTED_COMPILER.clang=	# defined
      6   1.1       mrg 
      7  1.15       mrg .include <bsd.init.mk>
      8   1.1       mrg 
      9   1.6      matt .include "Makefile.inc"
     10   1.6      matt 
     11   1.1       mrg LIB=		stdc++
     12   1.1       mrg 
     13   1.2       mrg LIBDPLIBS+=	m ${.CURDIR}/../../../../../lib/libm
     14   1.1       mrg 
     15  1.13  christos #COPTS+=		-pthread
     16  1.13  christos #LDFLAGS+=	-pthread
     17  1.17     joerg .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
     18  1.17     joerg COPTS.random.cc+=	${${ACTIVE_CC} == "clang":? -mrdrnd :}
     19  1.17     joerg .endif
     20  1.12       mrg 
     21  1.42       mrg SYMBOLS=	libstdc++-symbols.ver
     22  1.29       mrg .if ${MKPIC} != "no"
     23  1.42       mrg ${SYMBOLS}:
     24  1.29       mrg 	cat ${DIST}/libstdc++-v3/config/abi/pre/gnu.ver ${G_port_specific_symbol_files} | \
     25  1.33       mrg 	${TOOL_GREP} -E -v '^[     ]*#(#| |$$)' | \
     26  1.29       mrg 	${CXX} -I${DESTDIR}/usr/include/g++ -E -P -include ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/c++config.h - > \
     27  1.29       mrg 	${.TARGET}.tmp && mv ${.TARGET}.tmp ${.TARGET} && rm -f ${.TARGET}.tmp
     28  1.29       mrg 
     29  1.42       mrg CLEANFILES+=	${SYMBOLS}
     30  1.42       mrg 
     31  1.32       mrg .if ${MKPICLIB} != "no"
     32  1.42       mrg libstdc++_pic.a:: ${SYMBOLS}
     33  1.32       mrg .else
     34  1.42       mrg libstdc++.a:: ${SYMBOLS}
     35  1.32       mrg .endif
     36  1.29       mrg 
     37  1.29       mrg LDFLAGS+=	-Wl,-O1 \
     38  1.29       mrg 		-Wl,--gc-sections \
     39  1.42       mrg 		-Wl,--version-script=${SYMBOLS}
     40  1.29       mrg .endif
     41  1.29       mrg 
     42  1.18     joerg CXXFLAGS.clang+=	-stdlib=libstdc++ -std=c++11 -D_GLIBCXX_ABI_TAG_CXX11=
     43  1.18     joerg CXXFLAGS+=	${CXXFLAGS.${ACTIVE_CC}}
     44   1.1       mrg CWARNFLAGS.clang+=	-Wno-logical-op-parentheses \
     45   1.1       mrg 			-Wno-deprecated-writable-strings -Wno-parentheses
     46   1.1       mrg 
     47   1.9       mrg .include "${.CURDIR}/../libsupc++/Makefile.common"
     48   1.9       mrg 
     49   1.9       mrg .if exists(${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk) && ${MKGCC} != "no"
     50   1.9       mrg .include "${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk"
     51   1.1       mrg 
     52  1.28       mrg SHLIB_MAJOR=	8
     53  1.39       mrg SHLIB_MINOR=	2
     54   1.1       mrg 
     55   1.1       mrg SUBDIR=		include
     56   1.1       mrg 
     57   1.3       mrg SRCS=		${LIBSUPCXXSRCS} ${LIBSTDCXXSRCS}
     58  1.36       mrg 
     59  1.36       mrg CXXFLAGS+=	-fno-implicit-templates
     60  1.36       mrg CPPFLAGS+=	-I${DIST}/libstdc++-v3/include
     61  1.36       mrg CPPFLAGS+=	-I${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}
     62  1.36       mrg CPPFLAGS+=	-D_GLIBCXX_SHARED -DGTHREAD_USE_WEAK -DSUPPORTS_WEAK
     63  1.36       mrg 
     64   1.1       mrg # affects profiling; can't switch it off just for profiling easily.
     65   1.1       mrg #CXXFLAGS+=	${G_SECTION_FLAGS}
     66   1.1       mrg #CXXFLAGS+=	-ffunction-sections -fdata-sections 
     67  1.36       mrg COPTS.bitmap_allocator.cc+=	-ffunction-sections -fdata-sections 
     68  1.37       mrg COPTS.pool_allocator.cc+=	-ffunction-sections -fdata-sections 
     69   1.1       mrg 
     70   1.1       mrg CONF=		${DIST}/libstdc++-v3/config
     71   1.1       mrg 
     72   1.1       mrg GLIBCPP_INCLUDE_DIR=	${DESTDIR}/usr/include/g++
     73   1.1       mrg 
     74  1.11       mrg # Template instantiation bug workaround for -O<2/s
     75  1.24  christos COPTS.cp-demangle.c += -Wno-stack-protector
     76  1.24  christos COPTS.cp-demangle.c += -Wno-stack-protector
     77  1.24  christos COPTS.fstream-inst.cc += -Wno-stack-protector
     78  1.24  christos COPTS.locale-inst.cc += -Wno-stack-protector
     79  1.24  christos COPTS.misc-inst.cc += -Wno-stack-protector
     80  1.24  christos COPTS.ostream-inst.cc += -Wno-stack-protector
     81  1.24  christos COPTS.functexcept.cc += -Wno-stack-protector
     82  1.24  christos COPTS.valarray-inst.cc += -Wno-stack-protector
     83  1.24  christos COPTS.wlocale-inst.cc += -Wno-stack-protector
     84  1.24  christos COPTS.snprintf_lite.cc += -Wno-stack-protector
     85  1.25  christos # From system headers.
     86  1.25  christos COPTS.cxx11-wlocale-inst.cc +=-Wno-stack-protector
     87  1.25  christos COPTS.cxx11-locale-inst.cc +=-Wno-stack-protector
     88  1.25  christos COPTS.cxx11-wlocale-inst.cc +=-Wno-stack-protector
     89  1.25  christos COPTS.compatibility-thread-c++0x.cc += -Wno-deprecated-declarations
     90  1.24  christos COPTS.concept-inst.cc += -fimplicit-templates
     91  1.36       mrg COPTS.collate_members_cow.cc += -fimplicit-templates
     92  1.36       mrg COPTS.messages_members_cow.cc += -fimplicit-templates
     93  1.36       mrg COPTS.monetary_members_cow.cc += -fimplicit-templates
     94  1.36       mrg COPTS.numeric_members_cow.cc += -fimplicit-templates
     95  1.24  christos COPTS.hashtable_c++0x.cc += -fimplicit-templates
     96  1.36       mrg COPTS.c++locale.cc += -fimplicit-templates
     97  1.25  christos COPTS.functexcept.cc += -Wno-deprecated-declarations
     98  1.25  christos COPTS.future.cc += -Wno-deprecated-declarations
     99  1.25  christos COPTS.shared_ptr.cc += -Wno-deprecated-declarations
    100  1.25  christos COPTS.thread.cc += -Wno-deprecated-declarations
    101  1.24  christos CPPFLAGS.strstream.cc += -I$(GLIBCPP_INCLUDE_DIR)/backward -Wno-deprecated
    102   1.1       mrg 
    103   1.3       mrg CPPFLAGS.cp-demangle.cc += -DIN_GLIBCPP_V3
    104   1.3       mrg CPPFLAGS.concept-inst.cc += -D_GLIBCXX_CONCEPT_CHECKS
    105   1.3       mrg CPPFLAGS.parallel_list.cc += -D_GLIBCXX_PARALLEL
    106   1.3       mrg CPPFLAGS.parallel_settings.cc += -D_GLIBCXX_PARALLEL
    107   1.3       mrg CPPFLAGS.compatibility-parallel_list.cc += -D_GLIBCXX_PARALLEL
    108  1.29       mrg CPPFLAGS.compatibility.cc+=	-I${DIST}/libstdc++-v3/config
    109   1.3       mrg 
    110   1.9       mrg cp-demangle.d cp-demangle.o: cp-demangle.h
    111   1.9       mrg 
    112  1.26  christos .if ${MACHINE_ARCH} == "i386"
    113  1.26  christos COPTS.random.cc += -Wno-error=psabi
    114  1.26  christos COPTS.cow-string-inst.cc += -Wno-error=psabi
    115  1.26  christos .endif
    116  1.26  christos 
    117   1.1       mrg # XXX
    118   1.1       mrg MKDEPFLAGS+=	-I$(GLIBCPP_INCLUDE_DIR)/backward
    119   1.1       mrg 
    120   1.9       mrg GLIBCXX_SRCDIR=	${DIST}/libstdc++-v3
    121   1.9       mrg 
    122   1.9       mrg BUILDSYMLINKS+=	\
    123   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CCODECVT_CC} codecvt_members.cc \
    124   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CCOLLATE_CC} collate_members.cc \
    125   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CCTYPE_CC} ctype_members.cc \
    126   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CMESSAGES_CC} messages_members.cc \
    127   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CMONEY_CC} monetary_members.cc \
    128   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC} numeric_members.cc \
    129   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CTIME_CC} time_members.cc \
    130   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_ATOMICITY_SRCDIR}/atomicity.h atomicity.cc \
    131   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_CLOCALE_CC} c++locale.cc \
    132   1.9       mrg 	${GLIBCXX_SRCDIR}/${G_BASIC_FILE_CC} basic_file.cc \
    133   1.9       mrg 	${DIST}/libiberty/cp-demangle.c cp-demangle.c \
    134  1.21       mrg 	${DIST}/libiberty/cp-demangle.h cp-demangle.h \
    135  1.21       mrg 	${GLIBCXX_SRCDIR}/${G_CCOLLATE_CC} collate_members_cow.cc \
    136  1.21       mrg 	${GLIBCXX_SRCDIR}/${G_CMESSAGES_CC} messages_members_cow.cc \
    137  1.21       mrg 	${GLIBCXX_SRCDIR}/${G_CMONEY_CC} monetary_members_cow.cc \
    138  1.21       mrg 	${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC} numeric_members_cow.cc
    139   1.9       mrg 
    140  1.29       mrg # both c++98 and c++11 have codecvt.cc files.
    141  1.22       mrg BUILDSYMLINKS+=	\
    142  1.22       mrg 	${GLIBCXX_SRCDIR}/src/c++98/codecvt.cc c98-codecvt.cc
    143  1.22       mrg BUILDSYMLINKS+=	\
    144  1.22       mrg 	${GLIBCXX_SRCDIR}/src/c++11/codecvt.cc c11-codecvt.cc
    145  1.22       mrg SRCS+=	c98-codecvt.cc c11-codecvt.cc
    146  1.22       mrg 
    147  1.35       mrg .include "../Makefile.gthr"
    148   1.9       mrg 
    149  1.29       mrg # XXX Make this either/or, not one, and maybe another
    150  1.43       mrg # XXX pull out libstdc++/Makefile/cxx11_sources for many of these.
    151  1.29       mrg CXX11_ALWAYS=	localename.cc \
    152  1.29       mrg 		locale_init.cc \
    153  1.29       mrg 		compatibility-c++0x.cc \
    154  1.29       mrg 		compatibility-atomic-c++0x.cc \
    155  1.29       mrg 		compatibility-thread-c++0x.cc \
    156  1.29       mrg 		compatibility-chrono.cc \
    157  1.34       mrg 		compatibility-condvar.cc \
    158  1.34       mrg 		ios_failure.cc
    159  1.37       mrg 
    160  1.39       mrg .for _s in ${CXX11_ALWAYS}
    161  1.37       mrg COPTS.${_s}+= -std=gnu++11
    162  1.37       mrg .endfor
    163  1.37       mrg 
    164  1.43       mrg # XXX pull out libstdc++/Makefile/cxx98_sources for many of these.
    165  1.43       mrg CXX98_ALWAYS=	compatibility.cc \
    166  1.43       mrg 		compatibility-debug_list.cc \
    167  1.43       mrg 		compatibility-debug_list-2.cc
    168  1.43       mrg 
    169  1.43       mrg .for _s in ${CXX98_ALWAYS}
    170  1.43       mrg COPTS.${_s}+= -std=gnu++98
    171  1.43       mrg .endfor
    172  1.43       mrg 
    173  1.24  christos COPTS.cp-demangle.c += -Wno-unused-function
    174  1.24  christos 
    175  1.29       mrg COPTS.ext-inst.cc+= -Wno-error
    176  1.29       mrg 
    177  1.21       mrg .for f in collate_members_cow \
    178  1.21       mrg 	  messages_members_cow \
    179  1.21       mrg           monetary_members_cow \
    180  1.31       mrg 	  numeric_members_cow \
    181  1.31       mrg 	  c++locale
    182  1.21       mrg COPTS.${f}.cc+= -fimplicit-templates ${G_GLIBCXX_ABI_FLAGS}
    183   1.9       mrg .endfor
    184   1.9       mrg 
    185   1.1       mrg .include <bsd.lib.mk>
    186   1.1       mrg .include <bsd.subdir.mk>
    187   1.1       mrg .include <bsd.info.mk>
    188   1.1       mrg 
    189   1.1       mrg .PATH:	${DIST}/libstdc++-v3/src \
    190   1.9       mrg 	${DIST}/libstdc++-v3/src/c++98 \
    191   1.9       mrg 	${DIST}/libstdc++-v3/src/c++11 \
    192  1.37       mrg 	${DIST}/libstdc++-v3/src/filesystem \
    193   1.1       mrg 	${DIST}/libstdc++-v3/libsupc++ \
    194   1.9       mrg 	${DIST}/libstdc++-v3/config/os/bsd/netbsd \
    195   1.1       mrg 	${CONF}/locale/generic \
    196   1.9       mrg 	${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}
    197   1.1       mrg 
    198   1.9       mrg ${OBJS}: ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk
    199  1.29       mrg 
    200   1.1       mrg .else
    201   1.1       mrg .include <bsd.prog.mk> # do nothing
    202   1.1       mrg .endif
    203