blob: 546565af91b987c4d6215d62ce9157c022aee10e [file] [log] [blame]
ihse0962aa62013-10-16 20:24:46 +02001#
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
48ifeq ($(OPENJDK_TARGET_OS), windows)
49 LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c
50else
51 LIBNET_EXCLUDE_FILES += TwoStacksPlainSocketImpl.c DualStackPlainSocketImpl.c \
52 TwoStacksPlainDatagramSocketImpl.c DualStackPlainDatagramSocketImpl.c \
53 NTLMAuthSequence.c NetworkInterface_winXP.c
54endif
55
56$(eval $(call SetupNativeCompilation,BUILD_LIBNET, \
57 LIBRARY := net, \
58 OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
59 SRC := $(LIBNET_SRC_DIRS), \
60 EXCLUDE_FILES := $(LIBNET_EXCLUDE_FILES), \
61 LANG := C, \
62 OPTIMIZATION := LOW, \
63 CFLAGS := $(CFLAGS_JDKLIB) \
64 $(LIBNET_CFLAGS), \
65 MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnet/mapfile-vers, \
66 LDFLAGS := $(LDFLAGS_JDKLIB) \
67 $(call SET_SHARED_LIBRARY_ORIGIN), \
68 LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \
69 LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \
70 LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \
71 LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \
72 delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \
73 -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \
74 VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
75 RC_FLAGS := $(RC_FLAGS) \
76 -D "JDK_FNAME=net.dll" \
77 -D "JDK_INTERNAL_NAME=net" \
78 -D "JDK_FTYPE=0x2L", \
79 OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnet, \
80 DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
81
82$(BUILD_LIBNET): $(BUILD_LIBJAVA)
83
84BUILD_LIBRARIES += $(BUILD_LIBNET)
85
86$(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/share/lib/net.properties
87 $(ECHO) $(LOG_INFO) Copying $(@F)
88 $(call install-file)
89
90COPY_FILES += $(JDK_OUTPUTDIR)/lib/net.properties
91
92ifeq ($(OPENJDK_TARGET_OS), solaris)
93 $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template: $(JDK_TOPDIR)/src/${OPENJDK_TARGET_OS_API_DIR}/lib/sdp/sdp.conf.template
94 $(ECHO) $(LOG_INFO) Copying $(@F)
95 $(call install-file)
96
97 COPY_FILES += $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template
98endif