Daily bump.
[official-gcc.git] / libphobos / src / Makefile.am
blobf847f4d3660f70d0ff73f29882e4e7fb5af1a20d
1 ## Makefile for the Phobos standard library.
2 ## Copyright (C) 2012-2024 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.
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/>.
18 # Include D build rules
19 include $(top_srcdir)/d_rules.am
21 # Make sure GDC can find libdruntime and libphobos include files
22 D_EXTRA_DFLAGS=-fpreview=dip1000 -fpreview=dtorfields -fpreview=fieldwise \
23         -nostdinc -I $(srcdir) -I $(top_srcdir)/libdruntime \
24         -I ../libdruntime -I .
26 # D flags for compilation
27 AM_DFLAGS= \
28         $(phobos_lt_pic_flag) $(phobos_compiler_shared_flag) \
29         $(WARN_DFLAGS) $(CHECKING_DFLAGS) $(SECTION_FLAGS) $(CET_DFLAGS)
31 # Flags for other kinds of sources
32 AM_CFLAGS=$(CET_FLAGS)
34 # Install all D files
35 ALL_PHOBOS_INSTALL_DSOURCES = $(PHOBOS_DSOURCES)
37 # Setup source files depending on configure
38 ALL_PHOBOS_COMPILE_DSOURCES = $(PHOBOS_DSOURCES)
40 ALL_PHOBOS_SOURCES = $(ALL_PHOBOS_COMPILE_DSOURCES)
42 # Main library build definitions
43 toolexeclib_DATA = libgphobos.spec
44 toolexeclib_LTLIBRARIES = libgphobos.la
45 libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES)
46 libgphobos_la_LIBTOOLFLAGS =
47 if ENABLE_DARWIN_AT_RPATH
48 libgphobos_darwin_rpath = -Wl,-rpath,@loader_path
49 endif
50 libgphobos_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../libdruntime/gcc \
51     -version-info $(libtool_VERSION) $(libgphobos_darwin_rpath)
52 if ENABLE_LIBDRUNTIME_ONLY
53 libgphobos_la_LIBADD = ../libdruntime/libgdruntime_convenience.la
54 else
55 libgphobos_la_LIBADD = \
56     ../libdruntime/libgdruntime_convenience.la $(LIBZ)
57 endif
58 libgphobos_la_DEPENDENCIES = \
59     ../libdruntime/libgdruntime_convenience.la libgphobos.spec
61 # Also override library link commands: This is not strictly
62 # required, but we want to record additional dependencies such
63 # as pthread in the library
64 libgphobos_la_LINK = $(LIBTOOL) --tag=D $(libgphobos_la_LIBTOOLFLAGS) \
65         $(LIBTOOLFLAGS) --mode=link $(GDC) $(AM_CFLAGS) $(CFLAGS) \
66         $(libgphobos_la_LDFLAGS) $(LDFLAGS) -o $@
68 # Handles generated files as well
69 install-data-local:
70         for file in $(ALL_PHOBOS_INSTALL_DSOURCES); do \
71           $(MKDIR_P) `dirname $(DESTDIR)$(gdc_include_dir)/$$file` ; \
72           if test -f $$file; then \
73             $(INSTALL_HEADER) $$file $(DESTDIR)$(gdc_include_dir)/$$file ; \
74           else \
75             $(INSTALL_HEADER) $(srcdir)/$$file \
76               $(DESTDIR)$(gdc_include_dir)/$$file ; \
77           fi ; \
78         done
80 # Source file definitions. Boring stuff, auto-generated with
81 # https://gist.github.com/jpf91/8744acebc9dcf1e9d1a35cdff20afbb2
82 # Can't use wildcards here:
83 # https://www.gnu.org/software/automake/manual/html_node/Wildcards.html
84 if ENABLE_LIBDRUNTIME_ONLY
86 PHOBOS_DSOURCES =
88 else
90 PHOBOS_DSOURCES = etc/c/curl.d etc/c/zlib.d std/algorithm/comparison.d \
91         std/algorithm/internal.d std/algorithm/iteration.d \
92         std/algorithm/mutation.d std/algorithm/package.d \
93         std/algorithm/searching.d std/algorithm/setops.d \
94         std/algorithm/sorting.d std/array.d std/ascii.d std/base64.d \
95         std/bigint.d std/bitmanip.d std/checkedint.d std/compiler.d \
96         std/complex.d std/concurrency.d std/container/array.d \
97         std/container/binaryheap.d std/container/dlist.d \
98         std/container/package.d std/container/rbtree.d std/container/slist.d \
99         std/container/util.d std/conv.d std/csv.d std/datetime/date.d \
100         std/datetime/interval.d std/datetime/package.d \
101         std/datetime/stopwatch.d std/datetime/systime.d \
102         std/datetime/timezone.d std/demangle.d std/digest/crc.d \
103         std/digest/hmac.d std/digest/md.d std/digest/murmurhash.d \
104         std/digest/package.d std/digest/ripemd.d std/digest/sha.d \
105         std/encoding.d std/exception.d \
106         std/experimental/allocator/building_blocks/affix_allocator.d \
107         std/experimental/allocator/building_blocks/aligned_block_list.d \
108         std/experimental/allocator/building_blocks/allocator_list.d \
109         std/experimental/allocator/building_blocks/ascending_page_allocator.d \
110         std/experimental/allocator/building_blocks/bitmapped_block.d \
111         std/experimental/allocator/building_blocks/bucketizer.d \
112         std/experimental/allocator/building_blocks/fallback_allocator.d \
113         std/experimental/allocator/building_blocks/free_list.d \
114         std/experimental/allocator/building_blocks/free_tree.d \
115         std/experimental/allocator/building_blocks/kernighan_ritchie.d \
116         std/experimental/allocator/building_blocks/null_allocator.d \
117         std/experimental/allocator/building_blocks/package.d \
118         std/experimental/allocator/building_blocks/quantizer.d \
119         std/experimental/allocator/building_blocks/region.d \
120         std/experimental/allocator/building_blocks/scoped_allocator.d \
121         std/experimental/allocator/building_blocks/segregator.d \
122         std/experimental/allocator/building_blocks/stats_collector.d \
123         std/experimental/allocator/common.d \
124         std/experimental/allocator/gc_allocator.d \
125         std/experimental/allocator/mallocator.d \
126         std/experimental/allocator/mmap_allocator.d \
127         std/experimental/allocator/package.d \
128         std/experimental/allocator/showcase.d \
129         std/experimental/allocator/typed.d std/experimental/checkedint.d \
130         std/experimental/logger/core.d std/experimental/logger/filelogger.d \
131         std/experimental/logger/multilogger.d \
132         std/experimental/logger/nulllogger.d std/experimental/logger/package.d \
133         std/file.d std/format/internal/floats.d std/format/internal/read.d \
134         std/format/internal/write.d std/format/package.d std/format/read.d \
135         std/format/spec.d std/format/write.d std/functional.d std/getopt.d \
136         std/int128.d std/internal/attributes.d std/internal/cstring.d \
137         std/internal/math/biguintcore.d std/internal/math/biguintnoasm.d \
138         std/internal/math/errorfunction.d std/internal/math/gammafunction.d \
139         std/internal/memory.d std/internal/scopebuffer.d \
140         std/internal/test/dummyrange.d std/internal/test/range.d \
141         std/internal/test/uda.d std/internal/unicode_comp.d \
142         std/internal/unicode_decomp.d std/internal/unicode_grapheme.d \
143         std/internal/unicode_norm.d std/internal/unicode_tables.d \
144         std/internal/windows/advapi32.d std/json.d std/logger/core.d \
145         std/logger/filelogger.d std/logger/multilogger.d \
146         std/logger/nulllogger.d std/logger/package.d std/math/algebraic.d \
147         std/math/constants.d std/math/exponential.d std/math/hardware.d \
148         std/math/operations.d std/math/package.d std/math/remainder.d \
149         std/math/rounding.d std/math/traits.d std/math/trigonometry.d \
150         std/mathspecial.d std/meta.d std/mmfile.d std/net/curl.d \
151         std/net/isemail.d std/numeric.d std/outbuffer.d std/package.d \
152         std/parallelism.d std/path.d std/process.d std/random.d \
153         std/range/interfaces.d std/range/package.d std/range/primitives.d \
154         std/regex/internal/backtracking.d std/regex/internal/generator.d \
155         std/regex/internal/ir.d std/regex/internal/kickstart.d \
156         std/regex/internal/parser.d std/regex/internal/tests.d \
157         std/regex/internal/tests2.d std/regex/internal/thompson.d \
158         std/regex/package.d std/signals.d std/socket.d std/stdint.d \
159         std/stdio.d std/string.d std/sumtype.d std/system.d std/traits.d \
160         std/typecons.d std/typetuple.d std/uni/package.d std/uri.d std/utf.d \
161         std/uuid.d std/variant.d std/windows/charset.d std/windows/registry.d \
162         std/windows/syserror.d std/zip.d std/zlib.d
164 endif