source: libcfa/src/Makefile.am@ acb38ce9

ADT ast-experimental enum forall-pointer-decay jacob/cs343-translation new-ast-unique-expr pthread-emulation qualifiedEnum
Last change on this file since acb38ce9 was 44856ed, checked in by Michael Brooks <mlbrooks@…>, 4 years ago

Baseline "new" vector, with iterators.

Implementation has not had thorough correctness testing, e.g. checking wraparound
behaviours, and at least one such case is commented as unimplemented.

Implementation has not been optimized at the instruction path level, though a basic
iteration performance check has it within 5% of c++ std::vector.

  • Property mode set to 100644
File size: 6.2 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 : Sat Apr 24 09:09:56 2021
14## Update Count : 254
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.hfa \
48 time_t.hfa \
49 bits/align.hfa \
50 bits/containers.hfa \
51 bits/debug.hfa \
52 bits/defs.hfa \
53 bits/locks.hfa \
54 bits/collection.hfa \
55 bits/stack.hfa \
56 bits/queue.hfa \
57 bits/sequence.hfa \
58 containers/array.hfa \
59 concurrency/iofwd.hfa \
60 containers/list.hfa \
61 containers/queueLockFree.hfa \
62 containers/stackLockFree.hfa \
63 containers/vector2.hfa \
64 vec/vec.hfa \
65 vec/vec2.hfa \
66 vec/vec3.hfa \
67 vec/vec4.hfa
68
69inst_headers_src = \
70 common.hfa \
71 fstream.hfa \
72 heap.hfa \
73 iostream.hfa \
74 iterator.hfa \
75 limits.hfa \
76 memory.hfa \
77 parseargs.hfa \
78 rational.hfa \
79 stdlib.hfa \
80 strstream.hfa \
81 time.hfa \
82 bits/weakso_locks.hfa \
83 containers/maybe.hfa \
84 containers/pair.hfa \
85 containers/result.hfa \
86 containers/vector.hfa \
87 device/cpu.hfa
88
89libsrc = ${inst_headers_src} ${inst_headers_src:.hfa=.cfa} \
90 assert.cfa \
91 bits/algorithm.hfa \
92 bits/debug.cfa \
93 exception.c \
94 interpose.cfa \
95 lsda.h \
96 startup.cfa \
97 startup.hfa \
98 virtual.c \
99 virtual.h
100
101# not all platforms support concurrency, add option do disable it
102inst_thread_headers_nosrc = \
103 bits/random.hfa \
104 concurrency/clib/cfathread.h \
105 concurrency/invoke.h \
106 concurrency/future.hfa \
107 concurrency/kernel/fwd.hfa
108
109inst_thread_headers_src = \
110 concurrency/alarm.hfa \
111 concurrency/coroutine.hfa \
112 concurrency/exception.hfa \
113 concurrency/kernel.hfa \
114 concurrency/locks.hfa \
115 concurrency/monitor.hfa \
116 concurrency/mutex.hfa \
117 concurrency/thread.hfa
118
119thread_libsrc = ${inst_thread_headers_src} ${inst_thread_headers_src:.hfa=.cfa} \
120 bits/signal.hfa \
121 concurrency/clib/cfathread.cfa \
122 concurrency/CtxSwitch-@ARCHITECTURE@.S \
123 concurrency/invoke.c \
124 concurrency/io.cfa \
125 concurrency/io/setup.cfa \
126 concurrency/io/types.hfa \
127 concurrency/io/call.cfa \
128 concurrency/iofwd.hfa \
129 concurrency/kernel_private.hfa \
130 concurrency/kernel/startup.cfa \
131 concurrency/preemption.cfa \
132 concurrency/preemption.hfa \
133 concurrency/ready_queue.cfa \
134 concurrency/ready_subqueue.hfa \
135 concurrency/snzi.hfa \
136 concurrency/stats.cfa \
137 concurrency/stats.hfa \
138 concurrency/stats.hfa
139
140else
141inst_headers_src =
142inst_thread_headers_src =
143inst_headers_nosrc =
144inst_thread_headers_nosrc =
145libsrc =
146endif
147
148
149#----------------------------------------------------------------------------------------------------------------
150# add dependency to cfa-cpp so all libraries are rebuilt with new translator
151#@CFACC@ @CFACPP@ prelude.cfa
152
153# add dependency of cfa files
154libobjs = $(addsuffix .lo, $(basename $(filter %.cfa,$(libsrc))))
155$(libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
156
157thread_libobjs = $(addsuffix .lo, $(basename $(filter %.cfa,$(thread_libsrc))))
158$(thread_libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
159
160
161# .deps inclusion is not done automatically by automake for new languages
162libdeps = $(join \
163 $(addsuffix $(DEPDIR)/ , $(dir $(libobjs) ) ), \
164 $(notdir ${libobjs:.lo=.Plo}) \
165)
166
167-include $(libdeps)
168
169thread_libdeps = $(join \
170 $(addsuffix $(DEPDIR)/ , $(dir $(thread_libobjs) ) ), \
171 $(notdir ${thread_libobjs:.lo=.Plo}) \
172)
173
174-include $(thread_libdeps)
175
176
177if ENABLE_DISTCC
178
179../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
180 @+make -C ../prelude distribution
181
182prelude.o prelude.lo $(libobjs) $(thread_libobjs) : ../prelude/distribution
183
184endif ENABLE_DISTCC
185
186prelude.o : prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
187 ${AM_V_GEN}$(CFACOMPILE) -quiet -XCFA,-l ${<} -c -o ${@}
188
189prelude.lo: prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
190 ${AM_V_GEN}$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
191 $(CFACOMPILE) -quiet -XCFA,-l ${<} -c -o ${@}
192
193#----------------------------------------------------------------------------------------------------------------
194libcfa_la_SOURCES = ${libsrc}
195nodist_libcfa_la_SOURCES = prelude.cfa
196libcfa_la_LDFLAGS = -version-info @CFA_VERSION@
197
198libcfathread_la_SOURCES = ${thread_libsrc}
199libcfathread_la_LDFLAGS = -version-info @CFA_VERSION@
200
201stdhdr = $(shell find $(srcdir)/stdhdr -type f -printf "%p ")
202
203cfa_includedir = $(CFA_INCDIR)
204nobase_cfa_include_HEADERS = ${stdhdr} ${inst_headers_src} ${inst_headers_nosrc} ${inst_thread_headers_src} ${inst_thread_headers_nosrc}
205EXTRA_DIST = stdhdr
206
207#----------------------------------------------------------------------------------------------------------------
208maintainer-clean-local:
209 -rm -rf ${CFA_INCDIR} ${CFA_LIBDIR}
210
211distclean-local:
212 find ${builddir} -path '*.Plo' -delete
213
214
215# $(AM_V_CFA)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
216# $(CFACOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
217# $(am__mv) $$depbase.Tpo $$depbase.Po
Note: See TracBrowser for help on using the repository browser.