* m4/pr40134.m4: Added a configure switch for ARM linker problem.
[cacao.git] / src / cacao / Makefile.am
index 0ab02d3f0ef8ec8fad47b1ee785ac25639a7586f..34a81cbfbcc2891e912498f4209fa10e1de253d4 100644 (file)
@@ -1,9 +1,7 @@
-## cacao/Makefile.am
+## src/cacao/Makefile.am
 ##
-## Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-## R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-## C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-## TU Wien
+## Copyright (C) 1996-2005, 2006, 2007, 2008
+## CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
 ##
 ## This file is part of CACAO.
 ##
 ##
 ## You should have received a copy of the GNU General Public License
 ## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-##
-## Contact: cacao@complang.tuwien.ac.at
-##
-## Authors: Christian Thalinger
-##
-## Changes:
-##
-## $Id: Makefile.am 1676 2004-12-03 16:52:15Z twisti $
+## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+## 02110-1301, USA.
 
-## Process this file with automake to produce Makefile.in
 
-INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/src/vm/jit/@ARCH_DIR@
+AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/vm/jit/$(ARCH_DIR) -I$(top_srcdir)/src/vm/jit/$(ARCH_DIR)/$(OS_DIR)
 
-if USE_THREADS
-if NATIVE_THREADS
-THREAD_LIB = $(top_srcdir)/src/threads/native/libthreads.a
+if ENABLE_STATICVM
+cacao_LDFLAGS = \
+       -all-static
 else
-THREAD_LIB = $(top_srcdir)/src/threads/green/libthreads.a
+cacao_LDFLAGS =
 endif
+
+if ENABLE_LIBJVM
+lib_LTLIBRARIES = \
+       libjvm.la
+
+libjvm_la_LDFLAGS = \
+       -avoid-version
+
+if WITH_JAVA_RUNTIME_LIBRARY_OPENJDK
+if WITH_GNU_LD
+libjvm_la_LDFLAGS += \
+       -Xlinker --version-script=$(top_srcdir)/contrib/mapfile-vers-product
 else
-THREAD_LIB =
+# This is for the Solaris LD.
+libjvm_la_LDFLAGS += \
+       -Xlinker -M$(top_srcdir)/contrib/mapfile-vers-product
+endif
 endif
 
-if STATIC_CLASSPATH
-cacao_LDFLAGS =
-CLASSPATH_LIBS = \
-       $(top_srcdir)/src/classpath/native/jni/java-io/.libs/libjavaio.a \
-       $(top_srcdir)/src/classpath/native/jni/java-nio/.libs/libjavanio.a \
-       $(top_srcdir)/src/classpath/native/jni/java-net/.libs/libjavanet.a \
-       $(top_srcdir)/src/classpath/native/jni/java-util/.libs/libjavautil.a \
-       $(top_srcdir)/src/classpath/native/jni/java-lang/.libs/libjavalang.a \
-       $(top_srcdir)/src/classpath/native/jni/java-lang/.libs/libjavalangreflect.a
-
-if USE_GTK_PEER
-CLASSPATH_LIBS += \
-       $(top_srcdir)/src/classpath/native/jni/gtk-peer/.libs/libgtkpeer.a
+if GCC_PR40134
+libjvm_la_LDFLAGS += -lgcc
 endif
 
+cacao_LDFLAGS += \
+       -export-dynamic
+
+CACAO_LIBS =
 else
-cacao_LDFLAGS = -ldl -Wl,--export-dynamic
-CLASSPATH_LIBS =
+noinst_LTLIBRARIES = \
+       libjvm.la
+
+cacao_LDFLAGS += \
+       -export-dynamic
+
+CACAO_LIBS = \
+       libjvm.la
 endif
 
-if USE_GTK_PEER
+if ENABLE_RT_TIMING
+cacao_LDFLAGS += -lrt
+endif
+
+if ENABLE_PYTHON
 cacao_LDFLAGS += \
-       -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 \
-       -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 \
-       -lgthread-2.0 -lart_lgpl_2
+    @PYTHON_LSPEC@
 endif
 
-bindir = $(prefix)/jre/bin
+libjvm_la_SOURCES =
+
+# Dummy C++ source to cause C++ linking.
+# http://www.gnu.org/software/automake/manual/automake.html#Libtool-Convenience-Libraries
+nodist_EXTRA_libjvm_la_SOURCES = \
+       dummy.cxx
 
-bin_PROGRAMS = cacao
+libjvm_la_LIBADD = \
+       $(top_builddir)/src/fdlibm/libfdlibm.la \
+       $(top_builddir)/src/mm/libmm.la \
+       $(top_builddir)/src/native/libnative.la \
+       $(top_builddir)/src/threads/libthreads.la \
+       $(top_builddir)/src/toolbox/libtoolbox.la \
+       $(top_builddir)/src/vm/libvm.la \
+       $(GC_LIB)
+
+bin_PROGRAMS = \
+       cacao
 
 cacao_SOURCES = \
-       cacao.c \
-       cacao.h
+       cacao.cpp
 
 cacao_LDADD = \
-       $(top_srcdir)/src/mm/libmm.a \
-       $(THREAD_LIB) \
-       $(top_srcdir)/src/vm/libvm.a \
-       $(top_srcdir)/src/vm/jit/libjit.a \
-       $(top_srcdir)/src/vm/jit/inline/libinline.a \
-       $(top_srcdir)/src/vm/jit/loop/libloop.a \
-       $(top_srcdir)/src/vm/jit/verify/libverify.a \
-       $(top_srcdir)/src/vm/jit/@ARCH_DIR@/libarch.a \
-       $(top_srcdir)/src/native/libnative.a \
-       $(top_srcdir)/src/native/vm/libnativevm.a \
-       $(top_srcdir)/src/toolbox/libtoolbox.a \
-       $(top_srcdir)/src/boehm-gc/.libs/libgc.a \
-       $(CLASSPATH_LIBS)
+       $(CACAO_LIBS)
 
 cacao_DEPENDENCIES = \
-       $(top_srcdir)/src/mm/libmm.a \
-       $(THREAD_LIB) \
-       $(top_srcdir)/src/vm/libvm.a \
-       $(top_srcdir)/src/vm/jit/libjit.a \
-       $(top_srcdir)/src/vm/jit/inline/libinline.a \
-       $(top_srcdir)/src/vm/jit/loop/libloop.a \
-       $(top_srcdir)/src/vm/jit/verify/libverify.a \
-       $(top_srcdir)/src/vm/jit/@ARCH_DIR@/libarch.a \
-       $(top_srcdir)/src/native/libnative.a \
-       $(top_srcdir)/src/native/vm/libnativevm.a \
-       $(top_srcdir)/src/toolbox/libtoolbox.a \
-       $(top_srcdir)/src/boehm-gc/.libs/libgc.a \
-       $(CLASSPATH_LIBS)
+       $(cacao_LDADD)
+
+
+if WITH_JAVA_RUNTIME_LIBRARY_OPENJDK
+install-data-local:
+       $(mkdir_p) $(prefix)/jre/lib/$(JAVA_ARCH)/server
+       $(LN_S) -f $(libdir)/libjvm.so $(prefix)/jre/lib/$(JAVA_ARCH)/server
+       $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt
+       $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so
+
+uninstall-local:
+       rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjvm.so
+       rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt
+       rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so
+endif
 
 
 ## Local variables: