1# Copyright (C) 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
2#
3# Redistribution and use in source and binary forms, with or without
4# modification, are permitted provided that the following conditions
5# are met:
6# 1.  Redistributions of source code must retain the above copyright
7#     notice, this list of conditions and the following disclaimer.
8# 2.  Redistributions in binary form must reproduce the above copyright
9#     notice, this list of conditions and the following disclaimer in the
10#     documentation and/or other materials provided with the distribution.
11#
12# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
13# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
14# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
15# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
16# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
18# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
19# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
20# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
23VPATH = \
24    $(WebKit2) \
25    $(WebKit2)/DatabaseProcess \
26    $(WebKit2)/DatabaseProcess/IndexedDB \
27    $(WebKit2)/DatabaseProcess/mac \
28    $(WebKit2)/NetworkProcess \
29    $(WebKit2)/NetworkProcess/mac \
30    $(WebKit2)/PluginProcess \
31    $(WebKit2)/PluginProcess/mac \
32    $(WebKit2)/Shared/Plugins \
33    $(WebKit2)/Shared \
34    $(WebKit2)/Shared/API/Cocoa \
35    $(WebKit2)/Shared/Authentication \
36    $(WebKit2)/Shared/Network/CustomProtocols \
37    $(WebKit2)/Shared/mac \
38    $(WebKit2)/WebProcess/ApplicationCache \
39    $(WebKit2)/WebProcess/Cookies \
40    $(WebKit2)/WebProcess/Databases/IndexedDB \
41    $(WebKit2)/WebProcess/FullScreen \
42    $(WebKit2)/WebProcess/Geolocation \
43    $(WebKit2)/WebProcess/IconDatabase \
44    $(WebKit2)/WebProcess/MediaCache \
45    $(WebKit2)/WebProcess/Network \
46    $(WebKit2)/WebProcess/Notifications \
47    $(WebKit2)/WebProcess/OriginData \
48    $(WebKit2)/WebProcess/Plugins \
49    $(WebKit2)/WebProcess/ResourceCache \
50    $(WebKit2)/WebProcess/Scrolling \
51    $(WebKit2)/WebProcess/Storage \
52    $(WebKit2)/WebProcess/UserContent \
53    $(WebKit2)/WebProcess/WebCoreSupport \
54    $(WebKit2)/WebProcess/WebPage \
55    $(WebKit2)/WebProcess/ios \
56    $(WebKit2)/WebProcess \
57    $(WebKit2)/UIProcess \
58    $(WebKit2)/UIProcess/Databases \
59    $(WebKit2)/UIProcess/Downloads \
60    $(WebKit2)/UIProcess/Network \
61    $(WebKit2)/UIProcess/Network/CustomProtocols \
62    $(WebKit2)/UIProcess/Notifications \
63    $(WebKit2)/UIProcess/Plugins \
64    $(WebKit2)/UIProcess/Storage \
65    $(WebKit2)/UIProcess/UserContent \
66    $(WebKit2)/UIProcess/mac \
67    $(WebKit2)/UIProcess/ios \
68#
69
70MESSAGE_RECEIVERS = \
71    AuthenticationManager \
72    CustomProtocolManager \
73    CustomProtocolManagerProxy \
74    DatabaseProcess \
75    DatabaseProcessIDBConnection \
76    DatabaseProcessProxy \
77    DatabaseToWebProcessConnection \
78    DownloadProxy \
79    DrawingArea \
80    DrawingAreaProxy \
81    EventDispatcher \
82    NPObjectMessageReceiver \
83    NetworkConnectionToWebProcess \
84    NetworkProcess \
85    NetworkProcessConnection \
86    NetworkProcessProxy \
87    NetworkResourceLoader \
88    PluginControllerProxy \
89    PluginProcess \
90    PluginProcessConnection \
91    PluginProcessConnectionManager \
92    PluginProcessProxy \
93    PluginProxy \
94    RemoteLayerTreeDrawingAreaProxy \
95    RemoteObjectRegistry \
96    RemoteScrollingCoordinator \
97    SecItemShim \
98    SecItemShimProxy \
99    SmartMagnificationController \
100    StorageAreaMap \
101    StorageManager \
102    ViewGestureController \
103    ViewGestureGeometryCollector \
104    ViewUpdateDispatcher \
105    VisitedLinkProvider \
106    VisitedLinkTableController \
107    WebApplicationCacheManager \
108    WebApplicationCacheManagerProxy \
109    WebConnection \
110    WebContext \
111    WebCookieManager \
112    WebCookieManagerProxy \
113    WebDatabaseManager \
114    WebDatabaseManagerProxy \
115    WebFullScreenManager \
116    WebFullScreenManagerProxy \
117    WebGeolocationManager \
118    WebGeolocationManagerProxy \
119    WebIDBServerConnection \
120    WebIconDatabase \
121    WebIconDatabaseProxy \
122    WebInspector \
123    WebInspectorProxy \
124    WebMediaCacheManager \
125    WebMediaCacheManagerProxy \
126    WebNotificationManager \
127    WebOriginDataManager \
128    WebOriginDataManagerProxy \
129    WebPage \
130    WebPageGroupProxy \
131    WebPageProxy \
132    WebProcess \
133    WebProcessConnection \
134    WebProcessProxy \
135    WebResourceCacheManager \
136    WebResourceCacheManagerProxy \
137    WebResourceLoader \
138    WebUserContentController \
139    WebUserContentControllerProxy \
140    WebVideoFullscreenManager \
141    WebVideoFullscreenManagerProxy \
142#
143
144SCRIPTS = \
145    $(WebKit2)/Scripts/generate-message-receiver.py \
146    $(WebKit2)/Scripts/generate-messages-header.py \
147    $(WebKit2)/Scripts/webkit2/__init__.py \
148    $(WebKit2)/Scripts/webkit2/messages.py \
149    $(WebKit2)/Scripts/webkit2/model.py \
150    $(WebKit2)/Scripts/webkit2/parser.py \
151#
152
153.PHONY : all
154
155all : \
156    $(MESSAGE_RECEIVERS:%=%MessageReceiver.cpp) \
157    $(MESSAGE_RECEIVERS:%=%Messages.h) \
158#
159
160%MessageReceiver.cpp : %.messages.in $(SCRIPTS)
161	@echo Generating messages header for $*...
162	@python $(WebKit2)/Scripts/generate-message-receiver.py $< > $@
163
164%Messages.h : %.messages.in $(SCRIPTS)
165	@echo Generating message receiver for $*...
166	@python $(WebKit2)/Scripts/generate-messages-header.py $< > $@
167
168
169FRAMEWORK_FLAGS = $(shell echo $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));')
170HEADER_FLAGS = $(shell echo $(BUILT_PRODUCTS_DIR) $(HEADER_SEARCH_PATHS) | perl -e 'print "-I" . join(" -I", split(" ", <>));')
171
172# Some versions of clang incorrectly strip out // comments in c89 code.
173# Use -traditional as a workaround, but only when needed since that causes
174# other problems with later versions of clang.
175ifeq ($(shell echo '//x' | $(CC) -E -P -x c -std=c89 - | grep x),)
176TEXT_PREPROCESSOR_FLAGS=-E -P -x c -traditional -w
177else
178TEXT_PREPROCESSOR_FLAGS=-E -P -x c -std=c89 -w
179endif
180
181ifneq ($(SDKROOT),)
182	SDK_FLAGS=-isysroot $(SDKROOT)
183endif
184
185SANDBOX_PROFILES = \
186	com.apple.WebProcess.sb \
187	com.apple.WebKit.Databases.sb \
188	com.apple.WebKit.NetworkProcess.sb
189
190all: $(SANDBOX_PROFILES)
191
192%.sb : %.sb.in
193	@echo Pre-processing $* sandbox profile...
194	$(CC) $(SDK_FLAGS) $(TEXT_PREPROCESSOR_FLAGS) $(FRAMEWORK_FLAGS) $(HEADER_FLAGS) -include "wtf/Platform.h" $< > $@
195
196