|
1 # |
|
2 # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. |
|
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 # |
|
5 # This code is free software; you can redistribute it and/or modify it |
|
6 # under the terms of the GNU General Public License version 2 only, as |
|
7 # published by the Free Software Foundation. Oracle designates this |
|
8 # particular file as subject to the "Classpath" exception as provided |
|
9 # by Oracle in the LICENSE file that accompanied this code. |
|
10 # |
|
11 # This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 # version 2 for more details (a copy is included in the LICENSE file that |
|
15 # accompanied this code). |
|
16 # |
|
17 # You should have received a copy of the GNU General Public License version |
|
18 # 2 along with this work; if not, write to the Free Software Foundation, |
|
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 # |
|
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
22 # or visit www.oracle.com if you need additional information or have any |
|
23 # questions. |
|
24 # |
|
25 |
|
26 BUILD_LIBNIO_SRC := \ |
|
27 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/nio \ |
|
28 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \ |
|
29 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs |
|
30 |
|
31 BUILD_LIBNIO_CFLAGS := \ |
|
32 -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ |
|
33 -I$(JDK_TOPDIR)/src/share/native/java/io \ |
|
34 -I$(JDK_TOPDIR)/src/share/native/java/net \ |
|
35 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net |
|
36 |
|
37 BUILD_LIBNIO_FILES := \ |
|
38 DatagramChannelImpl.c \ |
|
39 DatagramDispatcher.c \ |
|
40 FileChannelImpl.c \ |
|
41 FileDispatcherImpl.c \ |
|
42 FileKey.c \ |
|
43 IOUtil.c \ |
|
44 MappedByteBuffer.c \ |
|
45 Net.c \ |
|
46 ServerSocketChannelImpl.c \ |
|
47 SocketChannelImpl.c \ |
|
48 SocketDispatcher.c |
|
49 |
|
50 ifeq ($(OPENJDK_TARGET_OS), windows) |
|
51 BUILD_LIBNIO_FILES += \ |
|
52 Iocp.c \ |
|
53 RegistryFileTypeDetector.c \ |
|
54 WindowsAsynchronousFileChannelImpl.c \ |
|
55 WindowsAsynchronousServerSocketChannelImpl.c \ |
|
56 WindowsAsynchronousSocketChannelImpl.c \ |
|
57 WindowsNativeDispatcher.c \ |
|
58 WindowsSelectorImpl.c |
|
59 endif |
|
60 |
|
61 ifeq ($(OPENJDK_TARGET_OS), linux) |
|
62 BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) |
|
63 BUILD_LIBNIO_FILES += \ |
|
64 EPoll.c \ |
|
65 EPollArrayWrapper.c \ |
|
66 EPollPort.c \ |
|
67 InheritedChannel.c \ |
|
68 NativeThread.c \ |
|
69 PollArrayWrapper.c \ |
|
70 UnixAsynchronousServerSocketChannelImpl.c \ |
|
71 UnixAsynchronousSocketChannelImpl.c \ |
|
72 GnomeFileTypeDetector.c \ |
|
73 MagicFileTypeDetector.c \ |
|
74 LinuxNativeDispatcher.c \ |
|
75 LinuxWatchService.c \ |
|
76 UnixCopyFile.c \ |
|
77 UnixNativeDispatcher.c |
|
78 endif |
|
79 |
|
80 ifeq ($(OPENJDK_TARGET_OS), macosx) |
|
81 BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) |
|
82 BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch |
|
83 BUILD_LIBNIO_FILES += \ |
|
84 InheritedChannel.c \ |
|
85 NativeThread.c \ |
|
86 PollArrayWrapper.c \ |
|
87 UnixAsynchronousServerSocketChannelImpl.c \ |
|
88 UnixAsynchronousSocketChannelImpl.c \ |
|
89 BsdNativeDispatcher.c \ |
|
90 MacOSXNativeDispatcher.c \ |
|
91 UnixCopyFile.c \ |
|
92 UnixNativeDispatcher.c \ |
|
93 KQueue.c \ |
|
94 KQueuePort.c \ |
|
95 KQueueArrayWrapper.c |
|
96 endif |
|
97 |
|
98 ifeq ($(OPENJDK_TARGET_OS), solaris) |
|
99 BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) |
|
100 BUILD_LIBNIO_FILES += \ |
|
101 DevPollArrayWrapper.c \ |
|
102 InheritedChannel.c \ |
|
103 NativeThread.c \ |
|
104 PollArrayWrapper.c \ |
|
105 SolarisEventPort.c \ |
|
106 UnixAsynchronousServerSocketChannelImpl.c \ |
|
107 UnixAsynchronousSocketChannelImpl.c \ |
|
108 GnomeFileTypeDetector.c \ |
|
109 SolarisNativeDispatcher.c \ |
|
110 SolarisWatchService.c \ |
|
111 UnixCopyFile.c \ |
|
112 UnixNativeDispatcher.c |
|
113 endif |
|
114 |
|
115 $(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \ |
|
116 LIBRARY := nio, \ |
|
117 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ |
|
118 SRC := $(BUILD_LIBNIO_SRC), \ |
|
119 INCLUDE_FILES := $(BUILD_LIBNIO_FILES), \ |
|
120 LANG := C, \ |
|
121 OPTIMIZATION := HIGH, \ |
|
122 CFLAGS := $(CFLAGS_JDKLIB) \ |
|
123 $(BUILD_LIBNIO_CFLAGS), \ |
|
124 MAPFILE := $(BUILD_LIBNIO_MAPFILE), \ |
|
125 LDFLAGS := $(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \ |
|
126 $(call SET_SHARED_LIBRARY_ORIGIN), \ |
|
127 LDFLAGS_SUFFIX_linux := -ljava -lnet -lpthread $(LIBDL), \ |
|
128 LDFLAGS_SUFFIX_solaris := -ljvm -lsocket -lposix4 $(LIBDL) \ |
|
129 -lsendfile -ljava -lnet -lc, \ |
|
130 LDFLAGS_SUFFIX_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \ |
|
131 $(JDK_OUTPUTDIR)/objs/libnet/net.lib \ |
|
132 advapi32.lib, \ |
|
133 LDFLAGS_SUFFIX_macosx := -ljava -lnet -pthread -framework CoreFoundation, \ |
|
134 LDFLAGS_SUFFIX :=, \ |
|
135 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ |
|
136 RC_FLAGS := $(RC_FLAGS) \ |
|
137 -D "JDK_FNAME=nio.dll" \ |
|
138 -D "JDK_INTERNAL_NAME=nio" \ |
|
139 -D "JDK_FTYPE=0x2L", \ |
|
140 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnio, \ |
|
141 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) |
|
142 |
|
143 BUILD_LIBRARIES += $(BUILD_LIBNIO) |
|
144 |
|
145 $(BUILD_LIBNIO): $(BUILD_LIBNET) |
|
146 |
|
147 ########################################################################################## |
|
148 |
|
149 ifeq ($(OPENJDK_TARGET_OS_API), posix) |
|
150 |
|
151 ifneq ($(OPENJDK_TARGET_OS), macosx) |
|
152 |
|
153 SCTP_WERROR := -Werror |
|
154 ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc) |
|
155 SCTP_WERROR := |
|
156 endif |
|
157 |
|
158 $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \ |
|
159 LIBRARY := sctp, \ |
|
160 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ |
|
161 SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp, \ |
|
162 LANG := C, \ |
|
163 OPTIMIZATION := LOW, \ |
|
164 CFLAGS := $(CFLAGS_JDKLIB) \ |
|
165 -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ |
|
166 -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \ |
|
167 -I$(JDK_TOPDIR)/src/share/native/java/net \ |
|
168 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \ |
|
169 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net, \ |
|
170 CFLAGS_linux := $(SCTP_WERROR), \ |
|
171 MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsctp/mapfile-vers, \ |
|
172 LDFLAGS := $(LDFLAGS_JDKLIB) \ |
|
173 $(call SET_SHARED_LIBRARY_ORIGIN), \ |
|
174 LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \ |
|
175 LDFLAGS_SUFFIX_posix := -lnio -lnet, \ |
|
176 LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \ |
|
177 LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \ |
|
178 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \ |
|
179 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) |
|
180 |
|
181 BUILD_LIBRARIES += $(BUILD_LIBSCTP) |
|
182 |
|
183 $(BUILD_LIBSCTP): $(BUILD_LIBNIO) |
|
184 endif |
|
185 endif |