Fri, 29 Apr 2016 00:06:10 +0800
Added MIPS 64-bit port.
1 #
2 # Copyright (c) 2002, 2012, 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.
8 #
9 # This code is distributed in the hope that it will be useful, but WITHOUT
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 # version 2 for more details (a copy is included in the LICENSE file that
13 # accompanied this code).
14 #
15 # You should have received a copy of the GNU General Public License version
16 # 2 along with this work; if not, write to the Free Software Foundation,
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 #
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 # or visit www.oracle.com if you need additional information or have any
21 # questions.
22 #
23 #
25 #
26 # This file has been modified by Loongson Technology in 2015. These
27 # modifications are Copyright (c) 2015 Loongson Technology, and are made
28 # available on the same license terms set forth above.
29 #
31 ARCH := $(shell if ([ `uname -m` = "ia64" ]) ; then echo ia64 ; elif ([ `uname -m` = "mips64" ]) ; then echo mips ; elif ([ `uname -m` = "x86_64" ]) ; then echo amd64; elif ([ `uname -m` = "sparc64" ]) ; then echo sparc; else echo i386 ; fi )
32 GCC = gcc
34 JAVAH = ${JAVA_HOME}/bin/javah
36 SOURCES = salibelf.c \
37 symtab.c \
38 libproc_impl.c \
39 ps_proc.c \
40 ps_core.c \
41 LinuxDebuggerLocal.c
43 INCLUDES = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux
45 OBJS = $(SOURCES:%.c=$(ARCH)/%.o) $(ARCH)/sadis.o
47 LIBS = -lthread_db
49 CFLAGS = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) -I$(ARCH)
51 LIBSA = $(ARCH)/libsaproc.so
53 all: $(LIBSA)
55 $(ARCH):
56 mkdir $(ARCH)
58 $(ARCH)/LinuxDebuggerLocal.o: LinuxDebuggerLocal.c
59 $(JAVAH) -jni -classpath ../../../build/classes -d $(ARCH) \
60 sun.jvm.hotspot.debugger.x86.X86ThreadContext \
61 sun.jvm.hotspot.debugger.sparc.SPARCThreadContext \
62 sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext
63 $(GCC) $(CFLAGS) $< -o $@
65 $(ARCH)/sadis.o: ../../share/native/sadis.c
66 $(JAVAH) -jni -classpath ../../../build/classes -d $(ARCH) \
67 sun.jvm.hotspot.asm.Disassembler
68 $(GCC) $(CFLAGS) $< -o $@
70 $(ARCH)/%.o: %.c
71 $(GCC) $(CFLAGS) $< -o $@
73 ifndef LDNOMAP
74 LFLAGS_LIBSA = -Xlinker --version-script=mapfile
75 endif
77 # If this is a --hash-style=gnu system, use --hash-style=both
78 # The gnu .hash section won't work on some Linux systems like SuSE 10.
79 _HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | grep -- '--hash-style=gnu')
80 ifneq ($(_HAS_HASH_STYLE_GNU),)
81 LDFLAGS_HASH_STYLE = -Wl,--hash-style=both
82 endif
83 LFLAGS_LIBSA += $(LDFLAGS_HASH_STYLE)
85 $(LIBSA): $(ARCH) $(OBJS) mapfile
86 $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
88 test.o: test.c
89 $(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
91 test: test.o
92 $(GCC) -o test test.o -L$(ARCH) -lsaproc $(LIBS)
94 clean:
95 rm -fr $(ARCH)