annotate make/solaris/makefiles/adlc.make @ 3762:5c0a3c1858b1

7048782: CMS: assert(last_chunk_index_to_check<= last_chunk_index) failed: parCardTableModRefBS.cpp:359 Summary: The LNC array is sized before the start of a scavenge, while the heap may expand during a scavenge. With CMS, the last block of an arbitrary suffice of the LNC array may expand due to coalition with the expansion delta. We now take care not to attempt access past the end of the LNC array. LNC array code will be cleaned up and suitably encapsulated as part of the forthcoming performance RFE 7043675. Reviewed-by: brutisso
author ysr
date Thu, 02 Jun 2011 10:23:36 -0700
parents 1d1603768966
children 65149e74c706
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 #
2426
1d1603768966 7010070: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - second pass
trims
parents: 2199
diff changeset
2 # Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 #
a61af66fc99e Initial load
duke
parents:
diff changeset
5 # This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 # under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 # published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 #
a61af66fc99e Initial load
duke
parents:
diff changeset
9 # This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 # version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 # accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 #
a61af66fc99e Initial load
duke
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 # 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 #
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1396
diff changeset
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1396
diff changeset
20 # or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1396
diff changeset
21 # questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 #
a61af66fc99e Initial load
duke
parents:
diff changeset
23 #
a61af66fc99e Initial load
duke
parents:
diff changeset
24
a61af66fc99e Initial load
duke
parents:
diff changeset
25 # This makefile (adlc.make) is included from the adlc.make in the
a61af66fc99e Initial load
duke
parents:
diff changeset
26 # build directories.
a61af66fc99e Initial load
duke
parents:
diff changeset
27 # It knows how to compile, link, and run the adlc.
a61af66fc99e Initial load
duke
parents:
diff changeset
28
91
a294fd0c4b38 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 0
diff changeset
29 include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/rules.make
2199
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 1972
diff changeset
30 include $(GAMMADIR)/make/altsrc.make
0
a61af66fc99e Initial load
duke
parents:
diff changeset
31
a61af66fc99e Initial load
duke
parents:
diff changeset
32 # #########################################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
33
a61af66fc99e Initial load
duke
parents:
diff changeset
34 # OUTDIR must be the same as AD_Dir = $(GENERATED)/adfiles in top.make:
a61af66fc99e Initial load
duke
parents:
diff changeset
35 GENERATED = ../generated
a61af66fc99e Initial load
duke
parents:
diff changeset
36 OUTDIR = $(GENERATED)/adfiles
a61af66fc99e Initial load
duke
parents:
diff changeset
37
a61af66fc99e Initial load
duke
parents:
diff changeset
38 ARCH = $(Platform_arch)
a61af66fc99e Initial load
duke
parents:
diff changeset
39 OS = $(Platform_os_family)
a61af66fc99e Initial load
duke
parents:
diff changeset
40
a61af66fc99e Initial load
duke
parents:
diff changeset
41 SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad
a61af66fc99e Initial load
duke
parents:
diff changeset
42
2199
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 1972
diff changeset
43 SOURCES.AD = \
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 1972
diff changeset
44 $(call altsrc-replace,$(HS_COMMON_SRC)/cpu/$(ARCH)/vm/$(Platform_arch_model).ad) \
d8a72fbc4be7 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 1972
diff changeset
45 $(call altsrc-replace,$(HS_COMMON_SRC)/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
46
a61af66fc99e Initial load
duke
parents:
diff changeset
47 EXEC = $(OUTDIR)/adlc
a61af66fc99e Initial load
duke
parents:
diff changeset
48
a61af66fc99e Initial load
duke
parents:
diff changeset
49 # set VPATH so make knows where to look for source files
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
50 Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
51 VPATH += $(Src_Dirs_V:%=%:)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
52
a61af66fc99e Initial load
duke
parents:
diff changeset
53 # set INCLUDES for C preprocessor
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
54 Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
55 INCLUDES += $(Src_Dirs_I:%=-I%)
a61af66fc99e Initial load
duke
parents:
diff changeset
56
475
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
57 # set flags for adlc compilation
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
58 CPPFLAGS = $(SYSDEFS) $(INCLUDES)
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
59
0
a61af66fc99e Initial load
duke
parents:
diff changeset
60 # Force assertions on.
475
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
61 CPPFLAGS += -DASSERT
0
a61af66fc99e Initial load
duke
parents:
diff changeset
62
a61af66fc99e Initial load
duke
parents:
diff changeset
63 ifndef USE_GCC
a61af66fc99e Initial load
duke
parents:
diff changeset
64 # We need libCstd.so for adlc
a61af66fc99e Initial load
duke
parents:
diff changeset
65 CFLAGS += -library=Cstd -g
a61af66fc99e Initial load
duke
parents:
diff changeset
66 LFLAGS += -library=Cstd -g
a61af66fc99e Initial load
duke
parents:
diff changeset
67 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
68
a61af66fc99e Initial load
duke
parents:
diff changeset
69 # CFLAGS_WARN holds compiler options to suppress/enable warnings.
603
dbbe28fc66b5 6778669: Patch from Red Hat -- fixes compilation errors
twisti
parents: 475
diff changeset
70 # Compiler warnings are treated as errors
821
d1fe2c2fbdac 6851829: solaris build fails with 5.8 compilers
twisti
parents: 628
diff changeset
71 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
d1fe2c2fbdac 6851829: solaris build fails with 5.8 compilers
twisti
parents: 628
diff changeset
72 CFLAGS_WARN = +w -errwarn
d1fe2c2fbdac 6851829: solaris build fails with 5.8 compilers
twisti
parents: 628
diff changeset
73 endif
0
a61af66fc99e Initial load
duke
parents:
diff changeset
74 CFLAGS += $(CFLAGS_WARN)
a61af66fc99e Initial load
duke
parents:
diff changeset
75
a61af66fc99e Initial load
duke
parents:
diff changeset
76 ifeq ("${Platform_compiler}", "sparcWorks")
a61af66fc99e Initial load
duke
parents:
diff changeset
77 # Enable the following CFLAGS addition if you need to compare the
a61af66fc99e Initial load
duke
parents:
diff changeset
78 # built ELF objects.
a61af66fc99e Initial load
duke
parents:
diff changeset
79 #
a61af66fc99e Initial load
duke
parents:
diff changeset
80 # The -g option makes static data global and the "-Qoption ccfe
a61af66fc99e Initial load
duke
parents:
diff changeset
81 # -xglobalstatic" option tells the compiler to not globalize static
a61af66fc99e Initial load
duke
parents:
diff changeset
82 # data using a unique globalization prefix. Instead force the use
a61af66fc99e Initial load
duke
parents:
diff changeset
83 # of a static globalization prefix based on the source filepath so
a61af66fc99e Initial load
duke
parents:
diff changeset
84 # the objects from two identical compilations are the same.
a61af66fc99e Initial load
duke
parents:
diff changeset
85 #CFLAGS += -Qoption ccfe -xglobalstatic
a61af66fc99e Initial load
duke
parents:
diff changeset
86 endif # Platform_compiler == sparcWorks
a61af66fc99e Initial load
duke
parents:
diff changeset
87
a61af66fc99e Initial load
duke
parents:
diff changeset
88 OBJECTNAMES = \
a61af66fc99e Initial load
duke
parents:
diff changeset
89 adlparse.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
90 archDesc.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
91 arena.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
92 dfa.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
93 dict2.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
94 filebuff.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
95 forms.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
96 formsopt.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
97 formssel.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
98 main.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
99 adlc-opcodes.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
100 output_c.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
101 output_h.o \
a61af66fc99e Initial load
duke
parents:
diff changeset
102
a61af66fc99e Initial load
duke
parents:
diff changeset
103 OBJECTS = $(OBJECTNAMES:%=$(OUTDIR)/%)
a61af66fc99e Initial load
duke
parents:
diff changeset
104
a61af66fc99e Initial load
duke
parents:
diff changeset
105 GENERATEDNAMES = \
a61af66fc99e Initial load
duke
parents:
diff changeset
106 ad_$(Platform_arch_model).cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
107 ad_$(Platform_arch_model).hpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
108 ad_$(Platform_arch_model)_clone.cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
109 ad_$(Platform_arch_model)_expand.cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
110 ad_$(Platform_arch_model)_format.cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
111 ad_$(Platform_arch_model)_gen.cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
112 ad_$(Platform_arch_model)_misc.cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
113 ad_$(Platform_arch_model)_peephole.cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
114 ad_$(Platform_arch_model)_pipeline.cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
115 adGlobals_$(Platform_arch_model).hpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
116 dfa_$(Platform_arch_model).cpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
117
a61af66fc99e Initial load
duke
parents:
diff changeset
118 GENERATEDFILES = $(GENERATEDNAMES:%=$(OUTDIR)/%)
a61af66fc99e Initial load
duke
parents:
diff changeset
119
a61af66fc99e Initial load
duke
parents:
diff changeset
120 # #########################################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
121
a61af66fc99e Initial load
duke
parents:
diff changeset
122 all: $(EXEC)
a61af66fc99e Initial load
duke
parents:
diff changeset
123
a61af66fc99e Initial load
duke
parents:
diff changeset
124 $(EXEC) : $(OBJECTS)
a61af66fc99e Initial load
duke
parents:
diff changeset
125 @echo Making adlc
a61af66fc99e Initial load
duke
parents:
diff changeset
126 $(QUIETLY) $(LINK_NOPROF.CC) -o $(EXEC) $(OBJECTS)
a61af66fc99e Initial load
duke
parents:
diff changeset
127
a61af66fc99e Initial load
duke
parents:
diff changeset
128 # Random dependencies:
a61af66fc99e Initial load
duke
parents:
diff changeset
129 $(OBJECTS): opcodes.hpp classes.hpp adlc.hpp adlcVMDeps.hpp adlparse.hpp archDesc.hpp arena.hpp dict2.hpp filebuff.hpp forms.hpp formsopt.hpp formssel.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
130
a61af66fc99e Initial load
duke
parents:
diff changeset
131 # The source files refer to ostream.h, which sparcworks calls iostream.h
a61af66fc99e Initial load
duke
parents:
diff changeset
132 $(OBJECTS): ostream.h
a61af66fc99e Initial load
duke
parents:
diff changeset
133
a61af66fc99e Initial load
duke
parents:
diff changeset
134 ostream.h :
a61af66fc99e Initial load
duke
parents:
diff changeset
135 @echo >$@ '#include <iostream.h>'
a61af66fc99e Initial load
duke
parents:
diff changeset
136
a61af66fc99e Initial load
duke
parents:
diff changeset
137 dump:
a61af66fc99e Initial load
duke
parents:
diff changeset
138 : OUTDIR=$(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
139 : OBJECTS=$(OBJECTS)
a61af66fc99e Initial load
duke
parents:
diff changeset
140 : products = $(GENERATEDFILES)
a61af66fc99e Initial load
duke
parents:
diff changeset
141
a61af66fc99e Initial load
duke
parents:
diff changeset
142 all: $(GENERATEDFILES)
a61af66fc99e Initial load
duke
parents:
diff changeset
143
a61af66fc99e Initial load
duke
parents:
diff changeset
144 $(GENERATEDFILES): refresh_adfiles
a61af66fc99e Initial load
duke
parents:
diff changeset
145
a61af66fc99e Initial load
duke
parents:
diff changeset
146 # Get a unique temporary directory name, so multiple makes can run in parallel.
a61af66fc99e Initial load
duke
parents:
diff changeset
147 # Note that product files are updated via "mv", which is atomic.
a61af66fc99e Initial load
duke
parents:
diff changeset
148 TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$)
a61af66fc99e Initial load
duke
parents:
diff changeset
149
1396
d7f654633cfe 6946040: add intrinsic for short and char reverseBytes
never
parents: 821
diff changeset
150 # Debuggable by default
d7f654633cfe 6946040: add intrinsic for short and char reverseBytes
never
parents: 821
diff changeset
151 CFLAGS += -g
d7f654633cfe 6946040: add intrinsic for short and char reverseBytes
never
parents: 821
diff changeset
152
475
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
153 # Pass -D flags into ADLC.
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
154 ADLCFLAGS += $(SYSDEFS)
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
155
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
156 # Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO.
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
157 ADLCFLAGS += -q -T
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
158
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
159 # Normally, debugging is done directly on the ad_<arch>*.cpp files.
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
160 # But -g will put #line directives in those files pointing back to <arch>.ad.
1396
d7f654633cfe 6946040: add intrinsic for short and char reverseBytes
never
parents: 821
diff changeset
161 ADLCFLAGS += -g
0
a61af66fc99e Initial load
duke
parents:
diff changeset
162
a61af66fc99e Initial load
duke
parents:
diff changeset
163 ifdef LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
164 ADLCFLAGS += -D_LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
165 else
a61af66fc99e Initial load
duke
parents:
diff changeset
166 ADLCFLAGS += -U_LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
167 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
168
a61af66fc99e Initial load
duke
parents:
diff changeset
169 #
a61af66fc99e Initial load
duke
parents:
diff changeset
170 # adlc_updater is a simple sh script, under sccs control. It is
a61af66fc99e Initial load
duke
parents:
diff changeset
171 # used to selectively update generated adlc files. This should
a61af66fc99e Initial load
duke
parents:
diff changeset
172 # provide a nice compilation speed improvement.
a61af66fc99e Initial load
duke
parents:
diff changeset
173 #
91
a294fd0c4b38 6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents: 0
diff changeset
174 ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
175 ADLC_UPDATER = adlc_updater
475
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
176 $(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER)
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
177 $(QUIETLY) cp $< $@; chmod +x $@
0
a61af66fc99e Initial load
duke
parents:
diff changeset
178
a61af66fc99e Initial load
duke
parents:
diff changeset
179 # This action refreshes all generated adlc files simultaneously.
a61af66fc99e Initial load
duke
parents:
diff changeset
180 # The way it works is this:
a61af66fc99e Initial load
duke
parents:
diff changeset
181 # 1) create a scratch directory to work in.
a61af66fc99e Initial load
duke
parents:
diff changeset
182 # 2) if the current working directory does not have $(ADLC_UPDATER), copy it.
a61af66fc99e Initial load
duke
parents:
diff changeset
183 # 3) run the compiled adlc executable. This will create new adlc files in the scratch directory.
a61af66fc99e Initial load
duke
parents:
diff changeset
184 # 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files.
a61af66fc99e Initial load
duke
parents:
diff changeset
185 # 5) If we actually updated any files, echo a notice.
a61af66fc99e Initial load
duke
parents:
diff changeset
186 #
475
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
187 refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
188 @rm -rf $(TEMPDIR); mkdir $(TEMPDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
189 $(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \
a61af66fc99e Initial load
duke
parents:
diff changeset
190 -c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \
a61af66fc99e Initial load
duke
parents:
diff changeset
191 || { rm -rf $(TEMPDIR); exit 1; }
a61af66fc99e Initial load
duke
parents:
diff changeset
192 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model).cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
193 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model).hpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
194 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_clone.cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
195 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_expand.cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
196 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_format.cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
197 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_gen.cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
198 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_misc.cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
199 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_peephole.cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
200 $(QUIETLY) ./$(ADLC_UPDATER) ad_$(Platform_arch_model)_pipeline.cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
201 $(QUIETLY) ./$(ADLC_UPDATER) adGlobals_$(Platform_arch_model).hpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
202 $(QUIETLY) ./$(ADLC_UPDATER) dfa_$(Platform_arch_model).cpp $(TEMPDIR) $(OUTDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
203 $(QUIETLY) [ -f $(TEMPDIR)/made-change ] \
a61af66fc99e Initial load
duke
parents:
diff changeset
204 || echo "Rescanned $(SOURCE.AD) but encountered no changes."
a61af66fc99e Initial load
duke
parents:
diff changeset
205 $(QUIETLY) rm -rf $(TEMPDIR)
a61af66fc99e Initial load
duke
parents:
diff changeset
206
a61af66fc99e Initial load
duke
parents:
diff changeset
207
a61af66fc99e Initial load
duke
parents:
diff changeset
208 # #########################################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
209
a61af66fc99e Initial load
duke
parents:
diff changeset
210 $(SOURCE.AD): $(SOURCES.AD)
475
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
211 $(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD)
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
212
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
213 #PROCESS_AD_FILES = cat
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
214 # Pass through #line directives, in case user enables -g option above:
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
215 PROCESS_AD_FILES = awk '{ \
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
216 if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
217 if (need_lineno && $$0 !~ /\/\//) \
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
218 { print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \
284d0af00d53 6771309: debugging AD files is difficult without #line directives in generated code
jrose
parents: 196
diff changeset
219 print }'
0
a61af66fc99e Initial load
duke
parents:
diff changeset
220
a61af66fc99e Initial load
duke
parents:
diff changeset
221 $(OUTDIR)/%.o: %.cpp
a61af66fc99e Initial load
duke
parents:
diff changeset
222 @echo Compiling $<
a61af66fc99e Initial load
duke
parents:
diff changeset
223 $(QUIETLY) $(REMOVE_TARGET)
a61af66fc99e Initial load
duke
parents:
diff changeset
224 $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
a61af66fc99e Initial load
duke
parents:
diff changeset
225
a61af66fc99e Initial load
duke
parents:
diff changeset
226 # Some object files are given a prefix, to disambiguate
a61af66fc99e Initial load
duke
parents:
diff changeset
227 # them from objects of the same name built for the VM.
a61af66fc99e Initial load
duke
parents:
diff changeset
228 $(OUTDIR)/adlc-%.o: %.cpp
a61af66fc99e Initial load
duke
parents:
diff changeset
229 @echo Compiling $<
a61af66fc99e Initial load
duke
parents:
diff changeset
230 $(QUIETLY) $(REMOVE_TARGET)
a61af66fc99e Initial load
duke
parents:
diff changeset
231 $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
a61af66fc99e Initial load
duke
parents:
diff changeset
232
a61af66fc99e Initial load
duke
parents:
diff changeset
233 # #########################################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
234
a61af66fc99e Initial load
duke
parents:
diff changeset
235 clean :
a61af66fc99e Initial load
duke
parents:
diff changeset
236 rm $(OBJECTS)
a61af66fc99e Initial load
duke
parents:
diff changeset
237
a61af66fc99e Initial load
duke
parents:
diff changeset
238 cleanall :
a61af66fc99e Initial load
duke
parents:
diff changeset
239 rm $(OBJECTS) $(EXEC)
a61af66fc99e Initial load
duke
parents:
diff changeset
240
a61af66fc99e Initial load
duke
parents:
diff changeset
241 # #########################################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
242
a61af66fc99e Initial load
duke
parents:
diff changeset
243 .PHONY: all dump refresh_adfiles clean cleanall