LICENSE   := LGPL
VERSION   := 10.3.0
DOWNLOADS := gcc.archive

URL(gcc) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz
SHA(gcc) := 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
DIR(gcc) := src/lib/stdcxx
SIG(gcc) := ${URL(gcc)}
KEY(gcc) := GNU

TAR_OPT(gcc) := gcc-$(VERSION)/libstdc++-v3 \
                gcc-$(VERSION)/libgcc/gthr.h \
                gcc-$(VERSION)/libgcc/gthr-posix.h \
                --strip-components=2

PATCHES   := src/lib/stdcxx/*.patch
PATCH_OPT := -p1 -d src/lib/stdcxx

DIRS := include/stdcxx
DIR_CONTENT(include/stdcxx) := \
    src/lib/stdcxx/include/* \
    src/lib/stdcxx/include/c_compatibility/complex.h \
    src/lib/stdcxx/include/c_compatibility/fenv.h \
    src/lib/stdcxx/include/c_compatibility/tgmath.h \
    src/lib/stdcxx/libsupc++/cxxabi.h \
    src/lib/stdcxx/libsupc++/exception \
    src/lib/stdcxx/libsupc++/initializer_list \
    src/lib/stdcxx/libsupc++/new \
    src/lib/stdcxx/libsupc++/typeinfo

DIRS += include/stdcxx/bits
DIR_CONTENT(include/stdcxx/bits) := \
    src/lib/stdcxx/libsupc++/atomic_lockfree_defines.h \
    src/lib/stdcxx/libsupc++/cxxabi_forced.h \
    src/lib/stdcxx/libsupc++/cxxabi_init_exception.h \
    src/lib/stdcxx/libsupc++/exception.h \
    src/lib/stdcxx/libsupc++/exception_defines.h \
    src/lib/stdcxx/libsupc++/exception_ptr.h \
    src/lib/stdcxx/libsupc++/hash_bytes.h \
    src/lib/stdcxx/libsupc++/nested_exception.h \
    src/lib/stdcxx/config/cpu/generic/atomic_word.h \
    src/lib/stdcxx/config/cpu/generic/cpu_defines.h \
    src/lib/stdcxx/config/cpu/generic/cxxabi_tweaks.h \
    src/lib/stdcxx/config/cpu/generic/opt/bits/opt_random.h \
    src/lib/stdcxx/config/os/generic/ctype_base.h \
    src/lib/stdcxx/config/os/generic/ctype_inline.h \
    src/lib/stdcxx/config/os/generic/error_constants.h \
    src/lib/stdcxx/config/os/generic/os_defines.h \
    src/lib/stdcxx/config/locale/generic/messages_members.h \
    src/lib/stdcxx/config/locale/generic/time_members.h \
    src/lib/stdcxx/gthr.h

DIRS += include/stdcxx/config
DIR_CONTENT(include/stdcxx/config) := \
    src/lib/stdcxx/config/allocator/new_allocator_base.h \
    src/lib/stdcxx/config/io/basic_file_stdio.h \
    src/lib/stdcxx/config/io/c_io_stdio.h \
    src/lib/stdcxx/config/locale/generic/c_locale.h

default: symlinks

symlinks: $(DOWNLOADS)
	ln -sf ../../config/io/basic_file_stdio.h src/lib/stdcxx/include/bits/basic_file.h
	ln -sf ../../config/allocator/new_allocator_base.h src/lib/stdcxx/include/bits/c++allocator.h
	ln -sf ../../config/io/c_io_stdio.h src/lib/stdcxx/include/bits/c++io.h
	ln -sf ../../config/locale/generic/c_locale.h src/lib/stdcxx/include/bits/c++locale.h
	ln -sf ../../config/cpu/generic/opt/ext/opt_random.h src/lib/stdcxx/include/ext/opt_random.h
	ln -sf ../precompiled/extc++.h src/lib/stdcxx/include/bits/extc++.h
	ln -sf ../precompiled/stdc++.h src/lib/stdcxx/include/bits/stdc++.h
	ln -sf ../precompiled/stdtr1c++.h src/lib/stdcxx/include/bits/stdtr1c++.h
	ln -sf ../../gthr-posix.h src/lib/stdcxx/include/bits/gthr-default.h
	ln -sf atomicity_builtins/atomicity.h src/lib/stdcxx/config/cpu/generic/atomicity.cc
	ln -sf collate_members.cc src/lib/stdcxx/config/locale/generic/collate_members_cow.cc
	ln -sf messages_members.cc src/lib/stdcxx/config/locale/generic/messages_members_cow.cc
	ln -sf monetary_members.cc src/lib/stdcxx/config/locale/generic/monetary_members_cow.cc
	ln -sf numeric_members.cc src/lib/stdcxx/config/locale/generic/numeric_members_cow.cc
