1## Makefile for the Phobos standard library. 2## Copyright (C) 2012-2019 Free Software Foundation, Inc. 3## 4## GCC is free software; you can redistribute it and/or modify 5## it under the terms of the GNU General Public License as published by 6## the Free Software Foundation; either version 3, or (at your option) 7## any later version. 8## 9## GCC is distributed in the hope that it will be useful, 10## but WITHOUT ANY WARRANTY; without even the implied warranty of 11## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12## GNU General Public License for more details. 13## 14## You should have received a copy of the GNU General Public License 15## along with GCC; see the file COPYING3. If not see 16## <http://www.gnu.org/licenses/>. 17 18# Include D build rules 19include $(top_srcdir)/d_rules.am 20 21# Make sure GDC can find libdruntime and libphobos include files 22D_EXTRA_DFLAGS=-nostdinc -I $(srcdir) \ 23 -I $(top_srcdir)/libdruntime -I ../libdruntime -I . 24 25# D flags for compilation 26AM_DFLAGS=$(phobos_compiler_pic_flag) 27 28# Install all D files 29ALL_PHOBOS_INSTALL_DSOURCES = $(PHOBOS_DSOURCES) 30 31# Setup source files depending on configure 32ALL_PHOBOS_COMPILE_DSOURCES = $(PHOBOS_DSOURCES) 33 34ALL_PHOBOS_SOURCES = $(ALL_PHOBOS_COMPILE_DSOURCES) 35 36# Main library build definitions 37toolexeclib_DATA = libgphobos.spec 38toolexeclib_LTLIBRARIES = libgphobos.la 39libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES) 40libgphobos_la_LIBTOOLFLAGS = 41libgphobos_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../libdruntime/gcc \ 42 -version-info $(libtool_VERSION) 43libgphobos_la_LIBADD = ../libdruntime/libgdruntime.la $(LIBZ) 44libgphobos_la_DEPENDENCIES = libgphobos.spec 45 46# Handles generated files as well 47install-data-local: 48 for file in $(ALL_PHOBOS_INSTALL_DSOURCES); do \ 49 $(MKDIR_P) `dirname $(DESTDIR)$(gdc_include_dir)/$$file` ; \ 50 if test -f $$file; then \ 51 $(INSTALL_HEADER) $$file $(DESTDIR)$(gdc_include_dir)/$$file ; \ 52 else \ 53 $(INSTALL_HEADER) $(srcdir)/$$file \ 54 $(DESTDIR)$(gdc_include_dir)/$$file ; \ 55 fi ; \ 56 done 57 58# Source file definitions. Boring stuff, auto-generated with 59# https://gist.github.com/jpf91/8744acebc9dcf1e9d1a35cdff20afbb2 60# Can't use wildcards here: 61# https://www.gnu.org/software/automake/manual/html_node/Wildcards.html 62PHOBOS_DSOURCES = etc/c/curl.d etc/c/sqlite3.d etc/c/zlib.d \ 63 std/algorithm/comparison.d std/algorithm/internal.d \ 64 std/algorithm/iteration.d std/algorithm/mutation.d \ 65 std/algorithm/package.d std/algorithm/searching.d \ 66 std/algorithm/setops.d std/algorithm/sorting.d std/array.d std/ascii.d \ 67 std/base64.d std/bigint.d std/bitmanip.d std/compiler.d std/complex.d \ 68 std/concurrency.d std/container/array.d std/container/binaryheap.d \ 69 std/container/dlist.d std/container/package.d std/container/rbtree.d \ 70 std/container/slist.d std/container/util.d std/conv.d std/csv.d \ 71 std/datetime/date.d std/datetime/interval.d std/datetime/package.d \ 72 std/datetime/stopwatch.d std/datetime/systime.d \ 73 std/datetime/timezone.d std/demangle.d std/digest/crc.d \ 74 std/digest/digest.d std/digest/hmac.d std/digest/md.d \ 75 std/digest/murmurhash.d std/digest/package.d std/digest/ripemd.d \ 76 std/digest/sha.d std/encoding.d std/exception.d \ 77 std/experimental/allocator/building_blocks/affix_allocator.d \ 78 std/experimental/allocator/building_blocks/allocator_list.d \ 79 std/experimental/allocator/building_blocks/bitmapped_block.d \ 80 std/experimental/allocator/building_blocks/bucketizer.d \ 81 std/experimental/allocator/building_blocks/fallback_allocator.d \ 82 std/experimental/allocator/building_blocks/free_list.d \ 83 std/experimental/allocator/building_blocks/free_tree.d \ 84 std/experimental/allocator/building_blocks/kernighan_ritchie.d \ 85 std/experimental/allocator/building_blocks/null_allocator.d \ 86 std/experimental/allocator/building_blocks/package.d \ 87 std/experimental/allocator/building_blocks/quantizer.d \ 88 std/experimental/allocator/building_blocks/region.d \ 89 std/experimental/allocator/building_blocks/scoped_allocator.d \ 90 std/experimental/allocator/building_blocks/segregator.d \ 91 std/experimental/allocator/building_blocks/stats_collector.d \ 92 std/experimental/allocator/common.d \ 93 std/experimental/allocator/gc_allocator.d \ 94 std/experimental/allocator/mallocator.d \ 95 std/experimental/allocator/mmap_allocator.d \ 96 std/experimental/allocator/package.d \ 97 std/experimental/allocator/showcase.d \ 98 std/experimental/allocator/typed.d std/experimental/checkedint.d \ 99 std/experimental/logger/core.d std/experimental/logger/filelogger.d \ 100 std/experimental/logger/multilogger.d \ 101 std/experimental/logger/nulllogger.d std/experimental/logger/package.d \ 102 std/experimental/typecons.d std/file.d std/format.d std/functional.d \ 103 std/getopt.d std/internal/cstring.d std/internal/math/biguintcore.d \ 104 std/internal/math/biguintnoasm.d std/internal/math/errorfunction.d \ 105 std/internal/math/gammafunction.d std/internal/scopebuffer.d \ 106 std/internal/test/dummyrange.d std/internal/test/range.d \ 107 std/internal/test/uda.d std/internal/unicode_comp.d \ 108 std/internal/unicode_decomp.d std/internal/unicode_grapheme.d \ 109 std/internal/unicode_norm.d std/internal/unicode_tables.d \ 110 std/internal/windows/advapi32.d std/json.d std/math.d \ 111 std/mathspecial.d std/meta.d std/mmfile.d std/net/curl.d \ 112 std/net/isemail.d std/numeric.d std/outbuffer.d std/parallelism.d \ 113 std/path.d std/process.d std/random.d std/range/interfaces.d \ 114 std/range/package.d std/range/primitives.d \ 115 std/regex/internal/backtracking.d std/regex/internal/generator.d \ 116 std/regex/internal/ir.d std/regex/internal/kickstart.d \ 117 std/regex/internal/parser.d std/regex/internal/tests.d \ 118 std/regex/internal/thompson.d std/regex/package.d std/signals.d \ 119 std/socket.d std/stdint.d std/stdio.d std/string.d std/system.d \ 120 std/traits.d std/typecons.d std/typetuple.d std/uni.d std/uri.d \ 121 std/utf.d std/uuid.d std/variant.d std/windows/charset.d \ 122 std/windows/registry.d std/windows/syserror.d std/xml.d std/zip.d \ 123 std/zlib.d 124