Mercurial > hg > truffle
annotate make/windows/create_obj_files.sh @ 2163:515cc1a31fd1
Merge
author | dcubed |
---|---|
date | Wed, 26 Jan 2011 21:26:52 -0800 |
parents | e7ad5f6f4d29 |
children | 5d801e6b9a80 |
rev | line source |
---|---|
1972 | 1 # |
2 # Copyright (c) 2010, 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 # | |
24 | |
25 set -e | |
26 | |
27 # Note that we currently do not have a way to set HotSpotMksHome in | |
28 # the batch build, but so far this has not seemed to be a problem. The | |
29 # reason this environment variable is necessary is that it seems that | |
30 # Windows truncates very long PATHs when executing shells like MKS's | |
31 # sh, and it has been found that sometimes `which sh` fails. | |
32 | |
33 if [ "x$HotSpotMksHome" != "x" ]; then | |
34 TOOL_DIR="$HotSpotMksHome" | |
35 else | |
36 # HotSpotMksHome is not set so use the directory that contains "sh". | |
37 # This works with both MKS and Cygwin. | |
38 SH=`which sh` | |
39 TOOL_DIR=`dirname "$SH"` | |
40 fi | |
41 | |
42 DIRNAME="$TOOL_DIR/dirname" | |
43 FIND="$TOOL_DIR/find" | |
44 | |
45 TYPE=$1 | |
46 Platform_arch=$2 | |
47 Platform_arch_model=$3 | |
48 Platform_os_family=windows | |
49 Platform_os_arch=windows_$Platform_arch | |
50 | |
51 WorkSpace=$4 | |
52 GENERATED=$5 | |
53 | |
54 BASE_PATHS="` $FIND ${WorkSpace}/src/share/vm ! -name vm -prune -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)`" | |
55 BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/share/vm/gc_implementation/shared" | |
56 BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os/${Platform_os_family}/vm" | |
57 BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/cpu/${Platform_arch}/vm" | |
58 BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os_cpu/${Platform_os_arch}/vm" | |
59 BASE_PATHS="${BASE_PATHS} ${GENERATED}/jvmtifiles" | |
60 | |
61 CORE_PATHS="${BASE_PATHS}" | |
62 # shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS. | |
63 CORE_PATHS="${CORE_PATHS} `$FIND ${WorkSpace}/src/share/vm/gc_implementation ! -name gc_implementation -prune -type d \! -name shared`" | |
64 | |
65 COMPILER1_PATHS="${WorkSpace}/src/share/vm/c1" | |
66 | |
67 COMPILER2_PATHS="${WorkSpace}/src/share/vm/opto" | |
68 COMPILER2_PATHS="${COMPILER2_PATHS} ${WorkSpace}/src/share/vm/libadt" | |
69 COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles" | |
70 | |
71 # Include dirs per type. | |
72 case "${TYPE}" in | |
73 "core") Src_Dirs="${CORE_PATHS}" ;; | |
74 "kernel") Src_Dirs="${BASE_PATHS} ${COMPILER1_PATHS}" ;; | |
75 "compiler1") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS}" ;; | |
76 "compiler2") Src_Dirs="${CORE_PATHS} ${COMPILER2_PATHS}" ;; | |
77 "tiered") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS} ${COMPILER2_PATHS}" ;; | |
78 "zero") Src_Dirs="${CORE_PATHS}" ;; | |
79 "shark") Src_Dirs="${CORE_PATHS}" ;; | |
80 esac | |
81 | |
82 COMPILER2_SPECIFIC_FILES="opto libadt bcEscapeAnalyzer.cpp chaitin* c2_* runtime_*" | |
83 COMPILER1_SPECIFIC_FILES="c1_*" | |
84 SHARK_SPECIFIC_FILES="shark" | |
85 ZERO_SPECIFIC_FILES="zero" | |
86 | |
87 # These files need to be excluded when building the kernel target. | |
88 KERNEL_EXCLUDED_FILES="attachListener.cpp attachListener_windows.cpp dump.cpp dump_${Platform_arch_model}.cpp forte.cpp fprofiler.cpp heapDumper.cpp heapInspection.cpp jniCheck.cpp jvmtiCodeBlobEvents.cpp jvmtiExtensions.cpp jvmtiImpl.cpp jvmtiRawMonitor.cpp jvmtiTagMap.cpp jvmtiTrace.cpp restore.cpp serialize.cpp vmStructs.cpp g1MemoryPool.cpp psMemoryPool.cpp gcAdaptivePolicyCounters.cpp concurrentGCThread.cpp mutableNUMASpace.cpp allocationStats.cpp gSpaceCounters.cpp immutableSpace.cpp mutableSpace.cpp spaceCounters.cpp yieldingWorkgroup.cpp" | |
89 | |
90 # Always exclude these. | |
91 Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp" | |
92 | |
93 # Exclude per type. | |
94 case "${TYPE}" in | |
95 "core") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; | |
96 "kernel") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ${KERNEL_EXCLUDED_FILES} ciTypeFlow.cpp" ;; | |
97 "compiler1") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; | |
98 "compiler2") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;; | |
99 "tiered") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;; | |
100 "zero") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; | |
101 "shark") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES}" ;; | |
102 esac | |
103 | |
104 # Special handling of arch model. | |
105 case "${Platform_arch_model}" in | |
106 "x86_32") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_64*" ;; | |
107 "x86_64") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_32*" ;; | |
108 esac | |
109 | |
2026
e7ad5f6f4d29
7006659: temporary adlc files are added to the build variables
stefank
parents:
1972
diff
changeset
|
110 # Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE. |
1972 | 111 function findsrc { |
2026
e7ad5f6f4d29
7006659: temporary adlc files are added to the build variables
stefank
parents:
1972
diff
changeset
|
112 $FIND ${1}/. ! -name . -prune \ |
e7ad5f6f4d29
7006659: temporary adlc files are added to the build variables
stefank
parents:
1972
diff
changeset
|
113 -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \ |
e7ad5f6f4d29
7006659: temporary adlc files are added to the build variables
stefank
parents:
1972
diff
changeset
|
114 -a \! \( -name ${Src_Files_EXCLUDE// / -o -name } \) \ |
e7ad5f6f4d29
7006659: temporary adlc files are added to the build variables
stefank
parents:
1972
diff
changeset
|
115 | sed 's/.*\/\(.*\)/\1/'; |
1972 | 116 } |
117 | |
118 Src_Files= | |
119 for e in ${Src_Dirs}; do | |
120 Src_Files="${Src_Files}`findsrc ${e}` " | |
121 done | |
122 | |
123 Obj_Files= | |
124 for e in ${Src_Files}; do | |
125 Obj_Files="${Obj_Files}${e%\.[!.]*}.obj " | |
126 done | |
127 | |
128 echo Obj_Files=${Obj_Files} |