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