STDCXX_PORT_DIR := $(call select_from_ports,stdcxx) # determine location of libstdc++ source tree STDCXX_DIR := $(STDCXX_PORT_DIR)/src/lib/stdcxx # public headers from port INC_DIR += $(STDCXX_PORT_DIR)/include/stdcxx # enable 'atomic.cc' to find 'gstdint.h' INC_DIR += $(REP_DIR)/include/stdcxx/bits ## enable 'allocator-inst.cc' to find 'memory' #INC_DIR += $(REP_DIR)/include/stdcxx/std # exclude code that is no single compilation unit FILTER_OUT = hash-long-double-tr1-aux.cc # exclude deprecated parts FILTER_OUT += strstream.cc # add libstdc++ sources SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++11/*.cc))) SRC_CC += $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(STDCXX_DIR)/src/c++98/*.cc))) # add config/locale/generic sources SRC_CC += $(notdir $(wildcard $(STDCXX_DIR)/config/locale/generic/*.cc)) # add config/os/generic sources SRC_CC += $(notdir $(wildcard $(STDCXX_DIR)/config/os/generic/*.cc)) CC_OPT += -D__GXX_EXPERIMENTAL_CXX0X__ -std=c++11 # add config/io backend SRC_CC += basic_file_stdio.cc INC_DIR += $(STDCXX_DIR)/config/io # add bits of libsupc++ (most parts are already contained in the cxx library) SRC_CC += new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc new_handler.cc SRC_CC += del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc SRC_CC += bad_array_length.cc bad_array_new.cc bad_cast.cc bad_alloc.cc bad_typeid.cc SRC_CC += eh_aux_runtime.cc hash_bytes.cc SRC_CC += tinfo.cc INC_DIR += $(STDCXX_DIR)/libsupc++ include $(REP_DIR)/lib/import/import-stdcxx.mk vpath %.cc $(STDCXX_DIR)/src/c++11 vpath %.cc $(STDCXX_DIR)/src/c++98 vpath %.cc $(STDCXX_DIR)/config/locale/generic vpath %.cc $(STDCXX_DIR)/config/os/generic vpath %.cc $(STDCXX_DIR)/config/io vpath %.cc $(STDCXX_DIR)/libsupc++ SHARED_LIB = yes