]> git.saurik.com Git - apple/libdispatch.git/blob - src/Makefile.am
libdispatch-703.50.37.tar.gz
[apple/libdispatch.git] / src / Makefile.am
1 #
2 #
3 #
4
5 if HAVE_SWIFT
6 swiftlibdir=${prefix}/lib/swift/linux
7 swiftlib_LTLIBRARIES=libdispatch.la
8 else
9 lib_LTLIBRARIES=libdispatch.la
10 endif
11
12 libdispatch_la_SOURCES= \
13 allocator.c \
14 apply.c \
15 benchmark.c \
16 data.c \
17 introspection.c \
18 init.c \
19 io.c \
20 object.c \
21 once.c \
22 queue.c \
23 semaphore.c \
24 source.c \
25 time.c \
26 transform.c \
27 voucher.c \
28 protocol.defs \
29 provider.d \
30 allocator_internal.h \
31 data_internal.h \
32 inline_internal.h \
33 internal.h \
34 introspection_internal.h \
35 io_internal.h \
36 object_internal.h \
37 queue_internal.h \
38 semaphore_internal.h \
39 shims.h \
40 source_internal.h \
41 trace.h \
42 voucher_internal.h \
43 firehose/firehose_internal.h \
44 shims/atomic.h \
45 shims/atomic_sfb.h \
46 shims/getprogname.h \
47 shims/hw_config.h \
48 shims/linux_stubs.c \
49 shims/linux_stubs.h \
50 shims/lock.c \
51 shims/lock.h \
52 shims/perfmon.h \
53 shims/time.h \
54 shims/tsd.h \
55 shims/yield.h
56
57 EXTRA_libdispatch_la_SOURCES=
58 EXTRA_libdispatch_la_DEPENDENCIES=
59
60 AM_CPPFLAGS=-I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/private
61
62 DISPATCH_CFLAGS=-Wall $(VISIBILITY_FLAGS) $(OMIT_LEAF_FP_FLAGS) \
63 $(MARCH_FLAGS) $(BSD_OVERLAY_CFLAGS)
64 if DISPATCH_ENABLE_ASSERTS
65 DISPATCH_CFLAGS+=-DDISPATCH_DEBUG=1
66 endif
67 AM_CFLAGS= $(KQUEUE_CFLAGS) $(PTHREAD_WORKQUEUE_CFLAGS) $(DISPATCH_CFLAGS) $(CBLOCKS_FLAGS)
68 AM_OBJCFLAGS=$(DISPATCH_CFLAGS) $(CBLOCKS_FLAGS)
69 AM_CXXFLAGS=$(KQUEUE_CFLAGS) $(PTHREAD_WORKQUEUE_CFLAGS) $(DISPATCH_CFLAGS) $(CXXBLOCKS_FLAGS)
70 AM_OBJCXXFLAGS=$(DISPATCH_CFLAGS) $(CXXBLOCKS_FLAGS)
71
72 if BUILD_OWN_KQUEUES
73 KQUEUE_LIBS+=$(top_builddir)/libkqueue/libkqueue.la
74 KQUEUE_CFLAGS+=-I$(top_srcdir)/libkqueue/include
75 endif
76
77 if BUILD_OWN_PTHREAD_WORKQUEUES
78 PTHREAD_WORKQUEUE_LIBS=$(top_builddir)/libpwq/libpthread_workqueue.la
79 PTHREAD_WORKQUEUE_CFLAGS=-I$(top_srcdir)/libpwq/include
80 else
81 if HAVE_PTHREAD_WORKQUEUES
82 PTHREAD_WORKQUEUE_LIBS=-lpthread_workqueue
83 endif
84 endif
85
86 if BUILD_OWN_BLOCKS_RUNTIME
87 libdispatch_la_SOURCES+= BlocksRuntime/data.c BlocksRuntime/runtime.c
88 CBLOCKS_FLAGS+= -I$(top_srcdir)/src/BlocksRuntime
89 CXXBLOCKS_FLAGS+= -I$(top_srcdir)/src/BlocksRuntime
90 BLOCKS_RUNTIME_LIBS=-ldl
91 endif
92
93 libdispatch_la_LDFLAGS=-avoid-version
94 libdispatch_la_LIBADD=$(KQUEUE_LIBS) $(PTHREAD_WORKQUEUE_LIBS) $(BSD_OVERLAY_LIBS) $(BLOCKS_RUNTIME_LIBS)
95
96 if HAVE_DARWIN_LD
97 libdispatch_la_LDFLAGS+=-Wl,-compatibility_version,1 \
98 -Wl,-current_version,$(VERSION) -Wl,-dead_strip \
99 -Wl,-alias_list,$(top_srcdir)/xcodeconfig/libdispatch.aliases
100 endif
101
102 if USE_GOLD_LINKER
103 libdispatch_la_LDFLAGS+=-Xcompiler -fuse-ld=gold
104 endif
105
106 if USE_OBJC
107 libdispatch_la_SOURCES+=block.cpp data.m object.m
108 libdispatch_la_OBJCFLAGS=$(AM_OBJCFLAGS) -Wno-switch -fobjc-gc
109 libdispatch_la_CXXFLAGS=$(AM_CXXFLAGS) -std=gnu++11 -fno-exceptions
110 libdispatch_la_LDFLAGS+=-Wl,-upward-lobjc -Wl,-upward-lauto \
111 -Wl,-order_file,$(top_srcdir)/xcodeconfig/libdispatch.order
112 else
113 libdispatch_la_SOURCES+=block.cpp
114 libdispatch_la_CXXFLAGS=$(AM_CXXFLAGS) -std=gnu++11 -fno-exceptions
115 endif
116
117 if USE_MIG
118 MIG_SOURCES= \
119 protocolUser.c \
120 protocol.h \
121 protocolServer.c \
122 protocolServer.h
123
124 %User.c %.h %Server.c %Server.h: $(abs_srcdir)/%.defs
125 $(MIG) -user $*User.c -header $*.h \
126 -server $*Server.c -sheader $*Server.h $<
127 endif
128
129 if USE_DTRACE
130 DTRACE_SOURCES=provider.h
131
132 %.h: $(abs_srcdir)/%.d
133 $(DTRACE) -h -s $< -o $@
134 endif
135
136 if HAVE_SWIFT
137 SWIFT_SRC_FILES=\
138 swift/Block.swift \
139 swift/Data.swift \
140 swift/Dispatch.swift \
141 swift/IO.swift \
142 swift/Private.swift \
143 swift/Queue.swift \
144 swift/Source.swift \
145 swift/Time.swift \
146 swift/Wrapper.swift
147
148 SWIFT_ABS_SRC_FILES = $(SWIFT_SRC_FILES:%=$(abs_srcdir)/%)
149 SWIFT_OBJ_FILES = $(SWIFT_SRC_FILES:%.swift=$(abs_builddir)/%.o)
150
151 libdispatch_la_SOURCES+=swift/DispatchStubs.cc
152 EXTRA_libdispatch_la_SOURCES+=$(SWIFT_SRC_FILES)
153
154 EXTRA_libdispatch_la_DEPENDENCIES+=$(SWIFT_OBJ_FILES) $(abs_builddir)/swift/Dispatch.swiftmodule
155 libdispatch_la_LIBADD+=$(SWIFT_OBJ_FILES)
156
157 SWIFT_GEN_FILES= \
158 $(abs_builddir)/swift/Dispatch.swiftmodule \
159 $(abs_builddir)/swift/Dispatch.swiftdoc \
160 $(SWIFT_OBJ_FILES) \
161 $(SWIFT_OBJ_FILES:%=%.d) \
162 $(SWIFT_OBJ_FILES:%=%.swiftdeps) \
163 $(SWIFT_OBJ_FILES:%=%.~partial.swiftmodule) \
164 $(SWIFT_OBJ_FILES:%=%.~partial.swiftdoc) \
165 $(SWIFT_OBJ_FILES:%=%.~partial.swiftdeps)
166
167 SWIFTC_FLAGS = -Xcc -fmodule-map-file=$(abs_top_srcdir)/dispatch/module.modulemap -I$(abs_top_srcdir) -Xcc -fblocks
168 if DISPATCH_ENABLE_OPTIMIZATION
169 SWIFTC_FLAGS+=-O
170 endif
171
172 $(abs_builddir)/swift/%.o: $(abs_srcdir)/swift/%.swift $(SWIFTC)
173 @rm -f $@
174 $(SWIFTC) -frontend -c $(SWIFT_ABS_SRC_FILES) -primary-file $< \
175 $(SWIFTC_FLAGS) -module-name Dispatch -module-link-name dispatch \
176 -o $@ -emit-module-path $@.~partial.swiftmodule \
177 -emit-module-doc-path $@.~partial.swiftdoc -emit-dependencies-path $@.d \
178 -emit-reference-dependencies-path $@.swiftdeps \
179 -module-cache-path $(top_builddir)
180
181 $(abs_builddir)/swift/Dispatch.swiftmodule: $(SWIFT_ABS_SRC_FILES) $(SWIFTC)
182 @rm -f $@
183 $(SWIFTC) -frontend -emit-module $(SWIFT_OBJ_FILES:%=%.~partial.swiftmodule) \
184 $(SWIFTC_FLAGS) -module-cache-path $(top_builddir) -module-link-name dispatch \
185 -o $@ -emit-module-doc-path $(@:%.swiftmodule=%.swiftdoc)
186
187 swiftmoddir=${prefix}/lib/swift/linux/${build_cpu}
188 swiftmod_HEADERS=\
189 $(abs_builddir)/swift/Dispatch.swiftmodule \
190 $(abs_builddir)/swift/Dispatch.swiftdoc
191
192 endif
193
194 BUILT_SOURCES=$(MIG_SOURCES) $(DTRACE_SOURCES)
195 nodist_libdispatch_la_SOURCES=$(BUILT_SOURCES)
196 CLEANFILES=$(BUILT_SOURCES) $(SWIFT_GEN_FILES)
197 DISTCLEANFILES=pthread_machdep.h pthread System mach objc
198