blob: 05ff4ced5813e99e59504f373bb39da3f7d1edc7 [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
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
143BUILD_LIBRARIES += $(BUILD_LIBNIO)
144
145$(BUILD_LIBNIO): $(BUILD_LIBNET)
146
147##########################################################################################
148
149ifeq ($(OPENJDK_TARGET_OS_API), posix)
150
151 ifneq ($(OPENJDK_TARGET_OS), macosx)
152
153 # Suppress unused parameters required by exported JNI functions.
154 SCTP_WERROR := -Werror -Wno-error=unused-parameter
155 ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc)
156 SCTP_WERROR :=
157 endif
158
159 $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \
160 LIBRARY := sctp, \
161 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
162 SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp, \
163 LANG := C, \
164 OPTIMIZATION := LOW, \
165 CFLAGS := $(CFLAGS_JDKLIB) \
166 -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
167 -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \
168 -I$(JDK_TOPDIR)/src/share/native/java/net \
169 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \
170 -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net, \
171 CFLAGS_linux := $(SCTP_WERROR), \
172 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsctp/mapfile-vers, \
173 LDFLAGS := $(LDFLAGS_JDKLIB) \
174 $(call SET_SHARED_LIBRARY_ORIGIN), \
175 LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \
176 LDFLAGS_SUFFIX_posix := -lnio -lnet, \
177 LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \
178 LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \
179 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \
180 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
181
182 BUILD_LIBRARIES += $(BUILD_LIBSCTP)
183
184 $(BUILD_LIBSCTP): $(BUILD_LIBNIO)
185 endif
186endif