140 #---------------------------------------------------------------------- |
140 #---------------------------------------------------------------------- |
141 # JVM |
141 # JVM |
142 |
142 |
143 JVM = jvm |
143 JVM = jvm |
144 ifeq ($(OS_VENDOR), Darwin) |
144 ifeq ($(OS_VENDOR), Darwin) |
145 LIBJVM = lib$(JVM).dylib |
145 LIBJVM = lib$(JVM).$(LIBRARY_SUFFIX) |
146 CFLAGS += -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE |
146 CFLAGS += -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE |
147 |
147 |
148 LIBJVM_DEBUGINFO = lib$(JVM).dylib.dSYM |
148 LIBJVM_DEBUGINFO = lib$(JVM).$(LIBRARY_SUFFIX).dSYM |
149 LIBJVM_DIZ = lib$(JVM).diz |
149 LIBJVM_DIZ = lib$(JVM).diz |
150 else |
150 else |
151 LIBJVM = lib$(JVM).so |
151 LIBJVM = lib$(JVM).so |
152 |
152 |
153 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo |
153 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo |
259 { system ("cat mapfile_extra vm.def"); } \ |
259 { system ("cat mapfile_extra vm.def"); } \ |
260 else \ |
260 else \ |
261 { print $$0 } \ |
261 { print $$0 } \ |
262 }' > $@ < $(MAPFILE) |
262 }' > $@ < $(MAPFILE) |
263 |
263 |
|
264 ifeq ($(STATIC_BUILD),true) |
|
265 EXPORTED_SYMBOLS = libjvm.symbols |
|
266 |
|
267 libjvm.symbols : mapfile |
|
268 $(CP) mapfile libjvm.symbols |
|
269 |
|
270 else |
|
271 EXPORTED_SYMBOLS = |
|
272 endif |
|
273 |
264 mapfile_reorder : mapfile $(REORDERFILE) |
274 mapfile_reorder : mapfile $(REORDERFILE) |
265 rm -f $@ |
275 rm -f $@ |
266 cat $^ > $@ |
276 cat $^ > $@ |
267 |
277 |
268 vm.def: $(Res_Files) $(Obj_Files) |
278 vm.def: $(Res_Files) $(Obj_Files) |
286 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder |
296 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder |
287 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE)) |
297 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE)) |
288 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM)) |
298 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM)) |
289 |
299 |
290 ifeq ($(OS_VENDOR), Darwin) |
300 ifeq ($(OS_VENDOR), Darwin) |
291 LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/. |
301 ifneq ($(STATIC_BUILD),true) |
292 LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/.. |
302 LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/. |
293 LFLAGS_VM += -Xlinker -install_name -Xlinker @rpath/$(@F) |
303 LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/.. |
|
304 LFLAGS_VM += -Xlinker -install_name -Xlinker @rpath/$(@F) |
|
305 endif |
294 else |
306 else |
295 LFLAGS_VM += -Wl,-z,defs |
307 LFLAGS_VM += -Wl,-z,defs |
296 endif |
308 endif |
297 |
309 |
298 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to |
310 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to |
343 } |
355 } |
344 LD_SCRIPT_FLAG = -Wl,-T,$(LD_SCRIPT) |
356 LD_SCRIPT_FLAG = -Wl,-T,$(LD_SCRIPT) |
345 endif |
357 endif |
346 |
358 |
347 $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT) |
359 $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT) |
|
360 ifeq ($(STATIC_BUILD),true) |
|
361 echo Linking static vm...; |
|
362 $(LINK_LIB.CC) $@ $(LIBJVM.o) |
|
363 else |
348 $(QUIETLY) { \ |
364 $(QUIETLY) { \ |
349 echo $(LOG_INFO) Linking vm...; \ |
365 echo $(LOG_INFO) Linking vm...; \ |
350 $(LINK_LIB.CXX/PRE_HOOK) \ |
366 $(LINK_LIB.CXX/PRE_HOOK) \ |
351 $(LINK_VM) $(LD_SCRIPT_FLAG) \ |
367 $(LINK_VM) $(LD_SCRIPT_FLAG) \ |
352 $(LFLAGS_VM) -o $@ $(sort $(LIBJVM.o)) $(LIBS_VM); \ |
368 $(LFLAGS_VM) -o $@ $(sort $(LIBJVM.o)) $(LIBS_VM); \ |
353 $(LINK_LIB.CXX/POST_HOOK) \ |
369 $(LINK_LIB.CXX/POST_HOOK) \ |
354 rm -f $@.1; ln -s $@ $@.1; \ |
370 rm -f $@.1; ln -s $@ $@.1; \ |
355 } |
371 } |
|
372 |
|
373 endif |
356 |
374 |
357 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
375 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
358 ifeq ($(OS_VENDOR), Darwin) |
376 ifeq ($(OS_VENDOR), Darwin) |
359 $(DSYMUTIL) $@ |
377 $(DSYMUTIL) $@ |
360 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
378 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
408 |
426 |
409 #---------------------------------------------------------------------- |
427 #---------------------------------------------------------------------- |
410 |
428 |
411 ifeq ($(OS_VENDOR), Darwin) |
429 ifeq ($(OS_VENDOR), Darwin) |
412 # no libjvm_db for macosx |
430 # no libjvm_db for macosx |
413 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck |
431 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck $(EXPORTED_SYMBOLS) |
414 echo "Doing vm.make build:" |
432 echo "Doing vm.make build:" |
415 else |
433 else |
416 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) |
434 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) $(EXPORTED_SYMBOLS) |
417 endif |
435 endif |
418 |
436 |
419 install: install_jvm install_jsig install_saproc |
437 install: install_jvm install_jsig install_saproc |
420 |
438 |
421 .PHONY: default build install install_jvm |
439 .PHONY: default build install install_jvm |