blob: 6c9c46a3f3dcdf05a0adf0e1b4c800c80080f597 [file] [log] [blame]
ihse554e46f2013-11-14 11:19:32 +01001#
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
26BUILD_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
31BUILD_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
37BUILD_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
50ifeq ($(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
59endif
60
61ifeq ($(OPENJDK_TARGET_OS), linux)
62 BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/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
78endif
79
80ifeq ($(OPENJDK_TARGET_OS), macosx)
81 BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/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
96endif
97
98ifeq ($(OPENJDK_TARGET_OS), solaris)
99 BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/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
113endif
114
kvn7130df72013-12-05 15:10:36 -0800115ifeq ($(OPENJDK_TARGET_OS), aix)
simonis34518a62013-12-06 14:22:34 +0100116 BUILD_LIBNIO_MAPFILE:=$(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
kvn7130df72013-12-05 15:10:36 -0800117 BUILD_LIBNIO_SRC += \
118 $(JDK_TOPDIR)/src/aix/native/sun/nio/ch \
119 $(JDK_TOPDIR)/src/aix/native/sun/nio/fs
120 BUILD_LIBNIO_FILES += \
121 AixPollPort.c \
122 InheritedChannel.c \
simonise27e5a02014-02-26 19:26:42 +0100123 AixNativeThread.c \
kvn7130df72013-12-05 15:10:36 -0800124 PollArrayWrapper.c \
125 UnixAsynchronousServerSocketChannelImpl.c \
126 UnixAsynchronousSocketChannelImpl.c \
127 GnomeFileTypeDetector.c \
128 UnixCopyFile.c \
129 AixNativeDispatcher.c \
130 UnixNativeDispatcher.c
131endif
132
ihse554e46f2013-11-14 11:19:32 +0100133$(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \
134 LIBRARY := nio, \
135 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
136 SRC := $(BUILD_LIBNIO_SRC), \
137 INCLUDE_FILES := $(BUILD_LIBNIO_FILES), \
138 LANG := C, \
139 OPTIMIZATION := HIGH, \
140 CFLAGS := $(CFLAGS_JDKLIB) \
141 $(BUILD_LIBNIO_CFLAGS), \
142 MAPFILE := $(BUILD_LIBNIO_MAPFILE), \
143 LDFLAGS := $(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \
144 $(call SET_SHARED_LIBRARY_ORIGIN), \
145 LDFLAGS_SUFFIX_linux := -ljava -lnet -lpthread $(LIBDL), \
kvn7130df72013-12-05 15:10:36 -0800146 LDFLAGS_SUFFIX_aix := -ljava -lnet $(LIBDL),\
ihse554e46f2013-11-14 11:19:32 +0100147 LDFLAGS_SUFFIX_solaris := -ljvm -lsocket -lposix4 $(LIBDL) \
148 -lsendfile -ljava -lnet -lc, \
149 LDFLAGS_SUFFIX_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \
150 $(JDK_OUTPUTDIR)/objs/libnet/net.lib \
151 advapi32.lib, \
152 LDFLAGS_SUFFIX_macosx := -ljava -lnet -pthread -framework CoreFoundation, \
153 LDFLAGS_SUFFIX :=, \
154 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
155 RC_FLAGS := $(RC_FLAGS) \
156 -D "JDK_FNAME=nio.dll" \
157 -D "JDK_INTERNAL_NAME=nio" \
158 -D "JDK_FTYPE=0x2L", \
159 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnio, \
160 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
161
162BUILD_LIBRARIES += $(BUILD_LIBNIO)
163
164$(BUILD_LIBNIO): $(BUILD_LIBNET)
165
166##########################################################################################
167
168ifeq ($(OPENJDK_TARGET_OS_API), posix)
169
kvn7130df72013-12-05 15:10:36 -0800170 ifeq (, $(filter $(OPENJDK_TARGET_OS), macosx aix))
ihse554e46f2013-11-14 11:19:32 +0100171
172 # Suppress unused parameters required by exported JNI functions.
173 SCTP_WERROR := -Werror -Wno-error=unused-parameter
174 ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
175 SCTP_WERROR :=
176 endif
177
178 $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \
179 LIBRARY := sctp, \
180 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
181 SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp, \
182 LANG := C, \
183 OPTIMIZATION := LOW, \
184 CFLAGS := $(CFLAGS_JDKLIB) \
185 -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
186 -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \
187 -I$(JDK_TOPDIR)/src/share/native/java/net \
188 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \
189 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net, \
190 CFLAGS_linux := $(SCTP_WERROR), \
191 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsctp/mapfile-vers, \
192 LDFLAGS := $(LDFLAGS_JDKLIB) \
193 $(call SET_SHARED_LIBRARY_ORIGIN), \
194 LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \
195 LDFLAGS_SUFFIX_posix := -lnio -lnet, \
196 LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \
197 LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \
198 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \
199 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
200
201 BUILD_LIBRARIES += $(BUILD_LIBSCTP)
202
203 $(BUILD_LIBSCTP): $(BUILD_LIBNIO)
204 endif
205endif