blob: 43b68c655b65aabe48106c813fbb3ca7fe8ba8e6 [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
26LIBNET_SRC_DIRS := $(JDK_TOPDIR)/src/share/native/java/net \
27 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net \
28 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/dns \
29 $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/spi
30
31ifeq ($(OPENJDK_TARGET_OS), windows)
32 LIBNET_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/www/protocol/http/ntlm
33else
34 LIBNET_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/sdp
35endif
36
37LIBNET_CFLAGS := $(foreach dir, $(LIBNET_SRC_DIRS), -I$(dir))
38
39LIBNET_EXCLUDE_FILES :=
40ifneq ($(OPENJDK_TARGET_OS), linux)
41 LIBNET_EXCLUDE_FILES += linux_close.c
42endif
43
44ifneq ($(OPENJDK_TARGET_OS), macosx)
45 LIBNET_EXCLUDE_FILES += bsd_close.c
46endif
47
kvn7130df72013-12-05 15:10:36 -080048ifeq ($(OPENJDK_TARGET_OS), aix)
49 LIBNET_SRC_DIRS += $(JDK_TOPDIR)/src/aix/native/java/net/
50endif
51
ihse554e46f2013-11-14 11:19:32 +010052ifeq ($(OPENJDK_TARGET_OS), windows)
53 LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c
54else
55 LIBNET_EXCLUDE_FILES += TwoStacksPlainSocketImpl.c DualStackPlainSocketImpl.c \
56 TwoStacksPlainDatagramSocketImpl.c DualStackPlainDatagramSocketImpl.c \
57 NTLMAuthSequence.c NetworkInterface_winXP.c
58endif
59
60$(eval $(call SetupNativeCompilation,BUILD_LIBNET, \
61 LIBRARY := net, \
62 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
63 SRC := $(LIBNET_SRC_DIRS), \
64 EXCLUDE_FILES := $(LIBNET_EXCLUDE_FILES), \
65 LANG := C, \
66 OPTIMIZATION := LOW, \
67 CFLAGS := $(CFLAGS_JDKLIB) \
68 $(LIBNET_CFLAGS), \
69 MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnet/mapfile-vers, \
70 LDFLAGS := $(LDFLAGS_JDKLIB) \
71 $(call SET_SHARED_LIBRARY_ORIGIN), \
72 LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \
73 LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \
74 LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \
kvn7130df72013-12-05 15:10:36 -080075 LDFLAGS_SUFFIX_aix := $(LIBDL) -ljvm -ljava,\
ihse554e46f2013-11-14 11:19:32 +010076 LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \
77 delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \
78 -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \
79 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
80 RC_FLAGS := $(RC_FLAGS) \
81 -D "JDK_FNAME=net.dll" \
82 -D "JDK_INTERNAL_NAME=net" \
83 -D "JDK_FTYPE=0x2L", \
84 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnet, \
85 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
86
87$(BUILD_LIBNET): $(BUILD_LIBJAVA)
88
89BUILD_LIBRARIES += $(BUILD_LIBNET)
90
91$(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/share/lib/net.properties
92 $(ECHO) $(LOG_INFO) Copying $(@F)
93 $(call install-file)
94
95COPY_FILES += $(JDK_OUTPUTDIR)/lib/net.properties
96
97ifeq ($(OPENJDK_TARGET_OS), solaris)
98 $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template: $(JDK_TOPDIR)/src/${OPENJDK_TARGET_OS_API_DIR}/lib/sdp/sdp.conf.template
99 $(ECHO) $(LOG_INFO) Copying $(@F)
100 $(call install-file)
101
102 COPY_FILES += $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template
103endif