230 endif
231 ifeq ($(Platform_arch_model), x86_64)
232 Src_Files_EXCLUDE += \*x86_32\*
233 endif
234
235 # Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
236 define findsrc
237 $(notdir $(shell find $(1)/. ! -name . -prune \
238 -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
239 -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \)))
240 endef
241
242 Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
243
244 Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files))))
245
246 JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS)
247
248 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
249
250 mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) vm.def
251 rm -f $@
252 cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \
253 | $(NAWK) '{ \
254 if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") { \
255 system ("cat vm.def"); \
256 } else { \
257 print $$0; \
258 } \
259 }' > $@
260
261 mapfile_extended : mapfile $(MAPFILE_DTRACE_OPT)
262 rm -f $@
263 cat $^ > $@
264
265 vm.def: $(Obj_Files)
266 sh $(GAMMADIR)/make/solaris/makefiles/build_vm_def.sh *.o > $@
267
268 ifeq ($(LINK_INTO),AOUT)
269 LIBJVM.o =
270 LIBJVM_MAPFILE =
271 LIBS_VM = $(LIBS)
272 else
273 LIBJVM.o = $(JVM_OBJ_FILES)
274 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_extended
275 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE))
276 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM))
277 ifndef USE_GCC
278 LIBS_VM = $(LIBS)
279 else
280 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to
281 # get around library dependency and compatibility issues. Must use gcc not
282 # g++ to link.
283 LFLAGS_VM += $(STATIC_LIBGCC)
284 LIBS_VM += $(STATIC_STDCXX) $(LIBS)
285 endif
286 endif
287
|
230 endif
231 ifeq ($(Platform_arch_model), x86_64)
232 Src_Files_EXCLUDE += \*x86_32\*
233 endif
234
235 # Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE.
236 define findsrc
237 $(notdir $(shell find $(1)/. ! -name . -prune \
238 -a \( -name \*.c -o -name \*.cpp -o -name \*.s \) \
239 -a ! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \)))
240 endef
241
242 Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e)))
243
244 Obj_Files = $(sort $(addsuffix .o,$(basename $(Src_Files))))
245
246 JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS)
247
248 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
249
250 mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) vm.def mapfile_ext
251 rm -f $@
252 cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \
253 | $(NAWK) '{ \
254 if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") { \
255 system ("cat mapfile_ext"); \
256 system ("cat vm.def"); \
257 } else { \
258 print $$0; \
259 } \
260 }' > $@
261
262 mapfile_extended : mapfile $(MAPFILE_DTRACE_OPT)
263 rm -f $@
264 cat $^ > $@
265
266 vm.def: $(Obj_Files)
267 sh $(GAMMADIR)/make/solaris/makefiles/build_vm_def.sh *.o > $@
268
269 mapfile_ext:
270 rm -f $@
271 touch $@
272 if [ -f $(HS_ALT_MAKE)/solaris/makefiles/mapfile-ext ]; then \
273 cat $(HS_ALT_MAKE)/solaris/makefiles/mapfile-ext > $@; \
274 fi
275
276 ifeq ($(LINK_INTO),AOUT)
277 LIBJVM.o =
278 LIBJVM_MAPFILE =
279 LIBS_VM = $(LIBS)
280 else
281 LIBJVM.o = $(JVM_OBJ_FILES)
282 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_extended
283 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE))
284 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM))
285 ifndef USE_GCC
286 LIBS_VM = $(LIBS)
287 else
288 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to
289 # get around library dependency and compatibility issues. Must use gcc not
290 # g++ to link.
291 LFLAGS_VM += $(STATIC_LIBGCC)
292 LIBS_VM += $(STATIC_STDCXX) $(LIBS)
293 endif
294 endif
295
|