1 # |
1 # |
2 # Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. |
2 # Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. |
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 # |
4 # |
5 # This code is free software; you can redistribute it and/or modify it |
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 |
6 # under the terms of the GNU General Public License version 2 only, as |
7 # published by the Free Software Foundation. |
7 # published by the Free Software Foundation. |
20 # or visit www.oracle.com if you need additional information or have any |
20 # or visit www.oracle.com if you need additional information or have any |
21 # questions. |
21 # questions. |
22 # |
22 # |
23 # |
23 # |
24 |
24 |
25 ARCH := $(shell if ([ `uname -m` = "ia64" ]) ; then echo ia64 ; elif ([ `uname -m` = "amd64" ]) ; then echo amd64; elif ([ `uname -m` = "sparc64" ]) ; then echo sparc; else echo i386 ; fi ) |
25 ARCH := $(shell if ([ `uname -m` = "ia64" ]) ; then echo ia64 ; elif ([ `uname -m` = "amd64" ]) ; then echo amd64; elif ([ `uname -m` = "x86_64" ]) ; then echo amd64; elif ([ `uname -m` = "sparc64" ]) ; then echo sparc; else echo i386 ; fi ) |
|
26 |
|
27 OS := $(shell uname -s) |
|
28 |
26 GCC = gcc |
29 GCC = gcc |
27 |
30 |
28 JAVAH = ${JAVA_HOME}/bin/javah |
31 JAVAH = ${JAVA_HOME}/bin/javah |
29 |
32 |
|
33 ifneq ($(OS), Darwin) |
30 SOURCES = salibelf.c \ |
34 SOURCES = salibelf.c \ |
31 symtab.c \ |
35 symtab.c \ |
32 libproc_impl.c \ |
36 libproc_impl.c \ |
33 ps_proc.c \ |
37 ps_proc.c \ |
34 ps_core.c \ |
38 ps_core.c \ |
35 BsdDebuggerLocal.c |
39 BsdDebuggerLocal.c |
36 |
40 OBJS = $(SOURCES:.c=.o) |
37 INCLUDES = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/$(shell uname -s | tr "[:upper:]" "[:lower:]") |
41 OBJSPLUS = $(OBJS) sadis.o |
38 |
42 LIBSA = $(ARCH)/libsaproc.so |
39 OBJS = $(SOURCES:.c=.o) |
|
40 |
43 |
41 LIBS = -lutil -lthread_db |
44 LIBS = -lutil -lthread_db |
42 |
45 |
43 CFLAGS = -c -fPIC -g -Wall -D_ALLBSD_SOURCE -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) |
46 else |
44 |
47 |
45 LIBSA = $(ARCH)/libsaproc.so |
48 SOURCES = symtab.c \ |
|
49 libproc_impl.c \ |
|
50 ps_core.c |
|
51 OBJS = $(SOURCES:.c=.o) |
|
52 OBJSPLUS = MacosxDebuggerLocal.o sadis.o $(OBJS) |
|
53 EXTINCLUDE = -I/System/Library/Frameworks/JavaVM.framework/Headers -I. |
|
54 EXTCFLAGS = -m64 -D__APPLE__ -framework JavaNativeFoundation |
|
55 FOUNDATIONFLAGS = -framework Foundation -F/System/Library/Frameworks/JavaVM.framework/Frameworks -framework JavaNativeFoundation -framework Security -framework CoreFoundation |
|
56 LIBSA = $(ARCH)/libsaproc.dylib |
|
57 endif # Darwin |
|
58 |
|
59 INCLUDES = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/$(shell uname -s | tr "[:upper:]" "[:lower:]") $(EXTINCLUDE) |
|
60 |
|
61 |
|
62 |
|
63 CFLAGS = -c -fPIC -g -Wall -D_ALLBSD_SOURCE -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) $(EXTCFLAGS) |
|
64 |
|
65 |
46 |
66 |
47 all: $(LIBSA) |
67 all: $(LIBSA) |
48 |
68 |
49 BsdDebuggerLocal.o: BsdDebuggerLocal.c |
69 MacosxDebuggerLocal.o: MacosxDebuggerLocal.m |
50 $(JAVAH) -jni -classpath ../../../../../build/bsd-i586/hotspot/outputdir/bsd_i486_compiler2/generated/saclasses \ |
70 echo "OS="$(OS) |
|
71 $(JAVAH) -jni -classpath ../../../build/classes \ |
51 sun.jvm.hotspot.debugger.x86.X86ThreadContext \ |
72 sun.jvm.hotspot.debugger.x86.X86ThreadContext \ |
52 sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext |
73 sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext |
|
74 $(GCC) $(CFLAGS) $(FOUNDATIONFLAGS) $< |
|
75 |
|
76 sadis.o: ../../share/native/sadis.c |
|
77 $(JAVAH) -jni -classpath ../../../build/classes \ |
|
78 sun.jvm.hotspot.asm.Disassembler |
53 $(GCC) $(CFLAGS) $< |
79 $(GCC) $(CFLAGS) $< |
54 |
80 |
55 .c.obj: |
81 .c.obj: |
56 $(GCC) $(CFLAGS) |
82 $(GCC) $(CFLAGS) |
57 |
83 |
58 ifndef LDNOMAP |
84 ifndef LDNOMAP |
59 LFLAGS_LIBSA = -Xlinker --version-script=mapfile |
85 LFLAGS_LIBSA = -Xlinker --version-script=mapfile |
60 endif |
86 endif |
61 |
87 |
62 $(LIBSA): $(OBJS) mapfile |
88 $(LIBSA): $(OBJSPLUS) mapfile |
63 if [ ! -d $(ARCH) ] ; then mkdir $(ARCH) ; fi |
89 if [ ! -d $(ARCH) ] ; then mkdir $(ARCH) ; fi |
64 $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS) |
90 $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(FOUNDATIONFLAGS) $(OBJSPLUS) $(LIBS) $(SALIBS) |
65 |
91 |
66 test.o: $(LIBSA) test.c |
92 test.o: $(LIBSA) test.c |
67 $(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c |
93 $(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c |
68 |
94 |
69 test: test.o |
95 test: test.o |
70 $(GCC) -o test test.o -L$(ARCH) -lsaproc $(LIBS) |
96 $(GCC) -o test test.o -L$(ARCH) -lsaproc $(LIBS) |
71 |
97 |
72 clean: |
98 clean: |
73 rm -f $(LIBSA) |
99 rm -f $(LIBSA) |
74 rm -f $(OBJS) |
100 rm -f *.o |
75 rm -f test.o |
101 rm -f test.o |
76 -rmdir $(ARCH) |
102 -rmdir $(ARCH) |
77 |
|