119
120 JVM_OBJ_FILES = $(Obj_Files)
121
122 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
123
124 mapfile : $(MAPFILE) vm.def
125 rm -f $@
126 awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
127 { system ("cat vm.def"); } \
128 else \
129 { print $$0 } \
130 }' > $@ < $(MAPFILE)
131
132 mapfile_reorder : mapfile $(REORDERFILE)
133 rm -f $@
134 cat $^ > $@
135
136 vm.def: $(Res_Files) $(Obj_Files)
137 sh $(GAMMADIR)/make/linux/makefiles/build_vm_def.sh *.o > $@
138
139 ifeq ($(ZERO_LIBARCH), ppc64)
140 STATIC_CXX = false
141 else
142 STATIC_CXX = true
143 endif
144
145 ifeq ($(LINK_INTO),AOUT)
146 LIBJVM.o =
147 LIBJVM_MAPFILE =
148 LIBS_VM = $(LIBS)
149 else
150 LIBJVM.o = $(JVM_OBJ_FILES)
151 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder
152 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE))
153 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM))
154
155 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to
156 # get around library dependency and compatibility issues. Must use gcc not
157 # g++ to link.
158 ifeq ($(STATIC_CXX), true)
159 LFLAGS_VM += $(STATIC_LIBGCC)
160 LIBS_VM += $(STATIC_STDCXX)
161 else
162 LIBS_VM += -lstdc++
163 endif
164
165 LIBS_VM += $(LIBS)
166 endif
167 ifeq ($(ZERO_BUILD), true)
168 LIBS_VM += $(LIBFFI_LIBS)
169 endif
170
171 LINK_VM = $(LINK_LIB.c)
172
173 # rule for building precompiled header
174 $(PRECOMPILED_HEADER): $(Precompiled_Files)
175 $(QUIETLY) echo Generating precompiled header $@
176 $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)/incls
177 $(QUIETLY) $(COMPILE.CC) -x c++-header -c $(GENERATED)/incls/_precompiled.incl -o $@ $(COMPILE_DONE)
178
179 # making the library:
180
181 ifneq ($(JVM_BASE_ADDR),)
182 # By default shared library is linked at base address == 0. Modify the
183 # linker script if JVM prefers a different base location. It can also be
184 # implemented with 'prelink -r'. But 'prelink' is not (yet) available on
185 # our build platform (AS-2.1).
186 LD_SCRIPT = libjvm.so.lds
187 $(LD_SCRIPT): $(LIBJVM_MAPFILE)
188 $(QUIETLY) { \
189 rm -rf $@; \
|
119
120 JVM_OBJ_FILES = $(Obj_Files)
121
122 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES))
123
124 mapfile : $(MAPFILE) vm.def
125 rm -f $@
126 awk '{ if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") \
127 { system ("cat vm.def"); } \
128 else \
129 { print $$0 } \
130 }' > $@ < $(MAPFILE)
131
132 mapfile_reorder : mapfile $(REORDERFILE)
133 rm -f $@
134 cat $^ > $@
135
136 vm.def: $(Res_Files) $(Obj_Files)
137 sh $(GAMMADIR)/make/linux/makefiles/build_vm_def.sh *.o > $@
138
139 ifeq ($(SHARK_BUILD), true)
140 STATIC_CXX = false
141 else
142 ifeq ($(ZERO_LIBARCH), ppc64)
143 STATIC_CXX = false
144 else
145 STATIC_CXX = true
146 endif
147 endif
148
149 ifeq ($(LINK_INTO),AOUT)
150 LIBJVM.o =
151 LIBJVM_MAPFILE =
152 LIBS_VM = $(LIBS)
153 else
154 LIBJVM.o = $(JVM_OBJ_FILES)
155 LIBJVM_MAPFILE$(LDNOMAP) = mapfile_reorder
156 LFLAGS_VM$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LIBJVM_MAPFILE))
157 LFLAGS_VM += $(SONAMEFLAG:SONAME=$(LIBJVM))
158
159 # JVM is statically linked with libgcc[_s] and libstdc++; this is needed to
160 # get around library dependency and compatibility issues. Must use gcc not
161 # g++ to link.
162 ifeq ($(STATIC_CXX), true)
163 LFLAGS_VM += $(STATIC_LIBGCC)
164 LIBS_VM += $(STATIC_STDCXX)
165 else
166 LIBS_VM += -lstdc++
167 endif
168
169 LIBS_VM += $(LIBS)
170 endif
171 ifeq ($(ZERO_BUILD), true)
172 LIBS_VM += $(LIBFFI_LIBS)
173 endif
174 ifeq ($(SHARK_BUILD), true)
175 LFLAGS_VM += $(LLVM_LDFLAGS)
176 LIBS_VM += $(LLVM_LIBS)
177 endif
178
179 LINK_VM = $(LINK_LIB.c)
180
181 # rule for building precompiled header
182 $(PRECOMPILED_HEADER): $(Precompiled_Files)
183 $(QUIETLY) echo Generating precompiled header $@
184 $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)/incls
185 $(QUIETLY) $(COMPILE.CC) -x c++-header -c $(GENERATED)/incls/_precompiled.incl -o $@ $(COMPILE_DONE)
186
187 # making the library:
188
189 ifneq ($(JVM_BASE_ADDR),)
190 # By default shared library is linked at base address == 0. Modify the
191 # linker script if JVM prefers a different base location. It can also be
192 # implemented with 'prelink -r'. But 'prelink' is not (yet) available on
193 # our build platform (AS-2.1).
194 LD_SCRIPT = libjvm.so.lds
195 $(LD_SCRIPT): $(LIBJVM_MAPFILE)
196 $(QUIETLY) { \
197 rm -rf $@; \
|