Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/demo/jvmti/waiters/sample.makefile.txt
38829 views
1
#
2
# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
3
#
4
# Redistribution and use in source and binary forms, with or without
5
# modification, are permitted provided that the following conditions
6
# are met:
7
#
8
# - Redistributions of source code must retain the above copyright
9
# notice, this list of conditions and the following disclaimer.
10
#
11
# - Redistributions in binary form must reproduce the above copyright
12
# notice, this list of conditions and the following disclaimer in the
13
# documentation and/or other materials provided with the distribution.
14
#
15
# - Neither the name of Oracle nor the names of its
16
# contributors may be used to endorse or promote products derived
17
# from this software without specific prior written permission.
18
#
19
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
#
31
32
########################################################################
33
#
34
# Sample GNU Makefile for building JVMTI Demo waiters
35
#
36
# Example uses:
37
# gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparc]
38
# gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparcv9]
39
# gnumake JDK=<java_home> OSNAME=linux [OPT=true]
40
# gnumake JDK=<java_home> OSNAME=win32 [OPT=true]
41
#
42
########################################################################
43
44
# Source lists
45
LIBNAME=waiters
46
SOURCES=waiters.cpp Agent.cpp Thread.cpp Monitor.cpp ../agent_util/agent_util.c
47
48
# Solaris Sun C Compiler Version 5.5
49
ifeq ($(OSNAME), solaris)
50
# Tell gnumake which compilers to use
51
CC=cc
52
CXX=CC
53
# Sun Solaris Compiler options needed
54
COMMON_FLAGS=-mt -KPIC
55
# Check LIBARCH for any special compiler options
56
LIBARCH=$(shell uname -p)
57
ifeq ($(LIBARCH), sparc)
58
COMMON_FLAGS+=-xarch=v8 -xregs=no%appl
59
endif
60
ifeq ($(LIBARCH), sparcv9)
61
COMMON_FLAGS+=-xarch=v9 -xregs=no%appl
62
endif
63
ifeq ($(OPT), true)
64
CXXFLAGS=-xO2 $(COMMON_FLAGS)
65
else
66
CXXFLAGS=-g $(COMMON_FLAGS)
67
endif
68
# Object files needed to create library
69
OBJECTS=$(SOURCES:%.cpp=%.o)
70
# Library name and options needed to build it
71
LIBRARY=lib$(LIBNAME).so
72
LDFLAGS=-z defs -ztext
73
# Libraries we are dependent on
74
LIBRARIES= -lc
75
# Building a shared library
76
LINK_SHARED=$(LINK.cc) -G -o $@
77
endif
78
79
# Linux GNU C Compiler
80
ifeq ($(OSNAME), linux)
81
# GNU Compiler options needed to build it
82
COMMON_FLAGS=-fno-strict-aliasing -fPIC -fno-omit-frame-pointer
83
# Options that help find errors
84
COMMON_FLAGS+= -W -Wall -Wno-unused -Wno-parentheses
85
ifeq ($(OPT), true)
86
CXXFLAGS=-O2 $(COMMON_FLAGS)
87
else
88
CXXFLAGS=-g $(COMMON_FLAGS)
89
endif
90
# Object files needed to create library
91
OBJECTS=$(SOURCES:%.cpp=%.o)
92
# Library name and options needed to build it
93
LIBRARY=lib$(LIBNAME).so
94
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
95
# Libraries we are dependent on
96
LIBRARIES=
97
# Building a shared library
98
LINK_SHARED=$(LINK.cc) -shared -o $@
99
endif
100
101
# Windows Microsoft C/C++ Optimizing Compiler Version 12
102
ifeq ($(OSNAME), win32)
103
CC=cl
104
# Compiler options needed to build it
105
COMMON_FLAGS=-Gy -DWIN32
106
# Options that help find errors
107
COMMON_FLAGS+=-W0 -WX
108
ifeq ($(OPT), true)
109
CXXFLAGS= -Ox -Op -Zi $(COMMON_FLAGS)
110
else
111
CXXFLAGS= -Od -Zi $(COMMON_FLAGS)
112
endif
113
# Object files needed to create library
114
OBJECTS=$(SOURCES:%.cpp=%.obj)
115
# Library name and options needed to build it
116
LIBRARY=$(LIBNAME).dll
117
LDFLAGS=
118
# Libraries we are dependent on
119
LIBRARIES=
120
# Building a shared library
121
LINK_SHARED=link -dll -out:$@
122
endif
123
124
# Common -I options
125
CXXFLAGS += -I.
126
CXXFLAGS += -I../agent_util
127
CXXFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME)
128
129
# Default rule
130
all: $(LIBRARY)
131
132
# Build native library
133
$(LIBRARY): $(OBJECTS)
134
$(LINK_SHARED) $(OBJECTS) $(LIBRARIES)
135
136
# Cleanup the built bits
137
clean:
138
rm -f $(LIBRARY) $(OBJECTS)
139
140
# Simple tester
141
test: all
142
LD_LIBRARY_PATH=`pwd` $(JDK)/bin/java -agentlib:$(LIBNAME) -version
143
144
# Compilation rule only needed on Windows
145
ifeq ($(OSNAME), win32)
146
%.obj: %.cpp
147
$(COMPILE.cc) $<
148
endif
149
150
151