source: libcfa/src/Makefile.am @ 4b3b352

ADTast-experimentalenumpthread-emulationqualifiedEnum
Last change on this file since 4b3b352 was 0f781fb8, checked in by Michael Brooks <mlbrooks@…>, 3 years ago

Refactoring of string internals. Existing tests pass.

Adding tracking for multiple string heaps, or "scratchpads."
Cases of allocating across different pad contexts aren't implemented yet.
Adding basic controls to manage these contexts, which lead to expected assertion failures
at unimplemented cases.

  • Property mode set to 100644
File size: 6.5 KB
Line 
1######################## -*- Mode: Makefile-Automake -*- ######################
2##
3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
4##
5## The contents of this file are covered under the licence agreement in the
6## file "LICENCE" distributed with Cforall.
7##
8## Makefile.am --
9##
10## Author           : Peter A. Buhr
11## Created On       : Sun May 31 08:54:01 2015
12## Last Modified By : Peter A. Buhr
13## Last Modified On : Fri Jul 16 16:00:40 2021
14## Update Count     : 255
15###############################################################################
16
17# create object files in directory with source files
18AUTOMAKE_OPTIONS = foreign subdir-objects
19ACLOCAL_AMFLAGS  = -I automake
20
21include $(top_srcdir)/../tools/build/cfa.make
22
23libdir = ${CFA_LIBDIR}
24lib_LTLIBRARIES = libcfa.la libcfathread.la
25
26VPATH += :../prelude
27
28gdbwaittarget=""
29
30# AM_CFLAGS for all cfa source
31# AM_CFAFLAGS for only cfa source
32# use -no-include-stdhdr to prevent rebuild cycles
33# The built sources must not depend on the installed inst_headers_src
34AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr -I$(srcdir)/concurrency $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
35AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -fexceptions -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
36AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
37CFACC = @CFACC@
38
39#----------------------------------------------------------------------------------------------------------------
40if BUILDLIB
41inst_headers_nosrc = \
42        bitmanip.hfa \
43        clock.hfa \
44        exception.hfa \
45        exception.h \
46        gmp.hfa \
47        math.trait.hfa \
48        math.hfa \
49        time_t.hfa \
50        bits/algorithm.hfa \
51        bits/align.hfa \
52        bits/containers.hfa \
53        bits/debug.hfa \
54        bits/defs.hfa \
55        bits/locks.hfa \
56        bits/collection.hfa \
57        bits/stack.hfa \
58        bits/queue.hfa \
59        bits/sequence.hfa \
60        containers/array.hfa \
61        concurrency/iofwd.hfa \
62        containers/list.hfa \
63        containers/queueLockFree.hfa \
64        containers/stackLockFree.hfa \
65        containers/string_sharectx.hfa \
66        containers/vector2.hfa \
67        vec/vec.hfa \
68        vec/vec2.hfa \
69        vec/vec3.hfa \
70        vec/vec4.hfa
71
72inst_headers_src = \
73        common.hfa \
74        fstream.hfa \
75        heap.hfa \
76        iostream.hfa \
77        iterator.hfa \
78        limits.hfa \
79        memory.hfa \
80        parseargs.hfa \
81        parseconfig.hfa \
82        rational.hfa \
83        stdlib.hfa \
84        strstream.hfa \
85        time.hfa \
86        bits/weakso_locks.hfa \
87        containers/maybe.hfa \
88        containers/pair.hfa \
89        containers/result.hfa \
90        containers/string.hfa \
91        containers/string_res.hfa \
92        containers/vector.hfa \
93        device/cpu.hfa
94
95libsrc = ${inst_headers_src} ${inst_headers_src:.hfa=.cfa} \
96        assert.cfa \
97        bits/debug.cfa \
98        exception.c \
99        interpose.cfa \
100        lsda.h \
101        startup.cfa \
102        startup.hfa \
103        virtual.c \
104        virtual.h
105
106# not all platforms support concurrency, add option do disable it
107inst_thread_headers_nosrc = \
108        bits/random.hfa \
109        concurrency/clib/cfathread.h \
110        concurrency/invoke.h \
111        concurrency/future.hfa \
112        concurrency/kernel/fwd.hfa \
113        concurrency/mutex_stmt.hfa
114
115inst_thread_headers_src = \
116        concurrency/alarm.hfa \
117        concurrency/coroutine.hfa \
118        concurrency/exception.hfa \
119        concurrency/kernel.hfa \
120        concurrency/locks.hfa \
121        concurrency/monitor.hfa \
122        concurrency/mutex.hfa \
123        concurrency/thread.hfa
124
125thread_libsrc = ${inst_thread_headers_src} ${inst_thread_headers_src:.hfa=.cfa} \
126        bits/signal.hfa \
127        concurrency/clib/cfathread.cfa \
128        concurrency/CtxSwitch-@ARCHITECTURE@.S \
129        concurrency/invoke.c \
130        concurrency/io.cfa \
131        concurrency/io/setup.cfa \
132        concurrency/io/types.hfa \
133        concurrency/io/call.cfa \
134        concurrency/iofwd.hfa \
135        concurrency/kernel_private.hfa \
136        concurrency/kernel/startup.cfa \
137        concurrency/preemption.cfa \
138        concurrency/preemption.hfa \
139        concurrency/ready_queue.cfa \
140        concurrency/ready_subqueue.hfa \
141        concurrency/snzi.hfa \
142        concurrency/stats.cfa \
143        concurrency/stats.hfa \
144        concurrency/stats.hfa
145
146else
147inst_headers_src =
148inst_thread_headers_src =
149inst_headers_nosrc =
150inst_thread_headers_nosrc =
151libsrc =
152endif
153
154
155#----------------------------------------------------------------------------------------------------------------
156# add dependency to cfa-cpp so all libraries are rebuilt with new translator
157#@CFACC@ @CFACPP@ prelude.cfa
158
159# add dependency of cfa files
160libobjs = $(addsuffix .lo, $(basename $(filter %.cfa,$(libsrc))))
161$(libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
162
163thread_libobjs = $(addsuffix .lo, $(basename $(filter %.cfa,$(thread_libsrc))))
164$(thread_libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
165
166
167# .deps inclusion is not done automatically by automake for new languages
168libdeps = $(join \
169        $(addsuffix $(DEPDIR)/ , $(dir $(libobjs) ) ), \
170        $(notdir ${libobjs:.lo=.Plo}) \
171)
172
173-include $(libdeps)
174
175thread_libdeps = $(join \
176        $(addsuffix $(DEPDIR)/ , $(dir $(thread_libobjs) ) ), \
177        $(notdir ${thread_libobjs:.lo=.Plo}) \
178)
179
180-include $(thread_libdeps)
181
182
183if ENABLE_DISTCC
184
185../prelude/distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ ../prelude/gcc-builtins.cf ../prelude/builtins.cf ../prelude/extras.cf ../prelude/prelude.cfa ../prelude/bootloader.c $(srcdir)/../../tools/build/push2dist.sh
186        @+make -C ../prelude distribution
187
188prelude.o prelude.lo $(libobjs) $(thread_libobjs) : ../prelude/distribution
189
190endif ENABLE_DISTCC
191
192prelude.o : prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
193        ${AM_V_GEN}$(CFACOMPILE) -quiet -XCFA,-l ${<} -c -o ${@}
194
195prelude.lo: prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
196        ${AM_V_GEN}$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
197        $(CFACOMPILE) -quiet -XCFA,-l ${<} -c -o ${@}
198
199concurrency/io/call.cfa: $(srcdir)/concurrency/io/call.cfa.in
200        ${AM_V_GEN}python3 $< > $@
201
202#----------------------------------------------------------------------------------------------------------------
203libcfa_la_SOURCES = ${libsrc}
204nodist_libcfa_la_SOURCES = prelude.cfa
205libcfa_la_LDFLAGS = -version-info @CFA_VERSION@
206
207libcfathread_la_SOURCES = ${thread_libsrc}
208libcfathread_la_LDFLAGS = -version-info @CFA_VERSION@
209
210stdhdr = $(shell find $(srcdir)/stdhdr -type f -printf "%p ")
211
212cfa_includedir = $(CFA_INCDIR)
213nobase_cfa_include_HEADERS = ${stdhdr} ${inst_headers_src} ${inst_headers_nosrc} ${inst_thread_headers_src} ${inst_thread_headers_nosrc}
214EXTRA_DIST = stdhdr
215
216#----------------------------------------------------------------------------------------------------------------
217maintainer-clean-local:
218        -rm -rf ${CFA_INCDIR} ${CFA_LIBDIR}
219
220distclean-local:
221        find ${builddir} -path '*.Plo' -delete
222
223
224# $(AM_V_CFA)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
225#       $(CFACOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
226#       $(am__mv) $$depbase.Tpo $$depbase.Po
Note: See TracBrowser for help on using the repository browser.