make/common/Demo.gmk
Print this page
rev 4528 : 6988099: jvmti demos missing Publisher (COMPANY resource) in dlls/exes on windows
Summary: Add creation/linking of resource data to link step for demos on Windows
Reviewed-by: dcubed, zgu, ngmr
Contributed-by: Sean Chou <zhouyx@linux.vnet.ibm.com>
*** 156,165 ****
--- 156,167 ----
ifeq ($(PLATFORM),windows)
# Note: This is a link with cl.exe, not link.exe, options differ quite
# bit between them.
LINK.demo = $(LINK.c)
LDLIBS.demo = $(EXTRA_LIBS) $(LFLAGS_$(COMPILER_VERSION))
+ DEMO_VERSION_INFO = $(OBJDIR)/$(LIBRARY).res
+ LDLIBS.demo += $(DEMO_VERSION_INFO)
else
ifneq ($(DEMO_NEEDS_CPP),)
LINK.demo = $(LINK.cpp)
LDLIBS.demo = $(LIBCXX)
ifeq ($(PLATFORM),solaris)
*** 286,295 ****
--- 288,304 ----
# Install the destination src.zip file and create the src tree
$(DEMO_SOURCE_ZIP): $(DEMO_BUILD_SRCZIP)
$(install-file)
endif
+ ifeq ($(PLATFORM),windows)
+ # JDK name required here
+ RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
+ /D "JDK_INTERNAL_NAME=$(LIBRARY)" \
+ /D "JDK_FTYPE=0x2L"
+ endif
+
# Native library building
ifdef DEMO_LIBRARY
# Full paths to object files
DEMO_FULL_OBJECTS = $(DEMO_OBJECTS:%=$(OBJDIR)/%)
*** 306,315 ****
--- 315,327 ----
endif
# Actual creation of the native shared library (C++ and C are different)
$(DEMO_LIBRARY): $(DEMO_FULL_OBJECTS)
@$(prep-target)
+ ifeq ($(PLATFORM),windows)
+ $(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(DEMO_VERSION_INFO) $(VERSIONINFO_RESOURCE)
+ endif
$(LINK.demo) $(SHARED_LIBRARY_FLAG) $(CC_PROGRAM_OUTPUT_FLAG)$@ \
$(DEMO_FULL_OBJECTS) $(LDLIBS.demo)
@$(call binary_file_verification,$@)
# Generation of any javah include file, make sure objects are dependent on it