* m4/pr40134.m4: Added a configure switch for ARM linker problem.
[cacao.git] / src / cacao / Makefile.am
index 782741773b9ac2a1ca6fe0805a914821c957f207..34a81cbfbcc2891e912498f4209fa10e1de253d4 100644 (file)
@@ -1,9 +1,7 @@
 ## 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,
-## Institut f. Computersprachen - 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 4039 2006-01-01 19:39:30Z 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 DISABLE_GC
-if NATIVE_THREADS
-GC_LIB = $(top_builddir)/src/boehm-gc/libgc.la
+if ENABLE_STATICVM
+cacao_LDFLAGS = \
+       -all-static
 else
-GC_LIB =
+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
-GC_LIB = $(top_builddir)/src/boehm-gc/libgc.la
+# This is for the Solaris LD.
+libjvm_la_LDFLAGS += \
+       -Xlinker -M$(top_srcdir)/contrib/mapfile-vers-product
+endif
 endif
 
-if USE_THREADS
-if NATIVE_THREADS
-THREAD_LIB = $(top_builddir)/src/threads/native/libthreads.la
-else
-THREAD_LIB = $(top_builddir)/src/threads/green/libthreads.la
+if GCC_PR40134
+libjvm_la_LDFLAGS += -lgcc
 endif
+
+cacao_LDFLAGS += \
+       -export-dynamic
+
+CACAO_LIBS =
 else
-THREAD_LIB =
+noinst_LTLIBRARIES = \
+       libjvm.la
+
+cacao_LDFLAGS += \
+       -export-dynamic
+
+CACAO_LIBS = \
+       libjvm.la
 endif
 
-if ENABLE_STATICVM
-cacao_LDFLAGS = \
-       $(LTLIBICONV)
-
-CLASSPATH_LIBS = \
-       $(CLASSPATH_INSTALL_DIR)/lib/classpath/libjavaio.a \
-       $(CLASSPATH_INSTALL_DIR)/lib/classpath/libjavanio.a \
-       $(CLASSPATH_INSTALL_DIR)/lib/classpath/libjavanet.a \
-       $(CLASSPATH_INSTALL_DIR)/lib/classpath/libjavautil.a \
-       $(CLASSPATH_INSTALL_DIR)/lib/classpath/libjavalang.a \
-       $(CLASSPATH_INSTALL_DIR)/lib/classpath/libjavalangreflect.a
-
-#if USE_GTK_PEER
-#cacao_CFLAGS = \
-#      $(GTK_CFLAGS) $(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS) \
-#      $(XML_CFLAGS) $(XSLT_CFLAGS)
-#
-#cacao_LDFLAGS += \
-#      $(GTK_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS) $(X_LIBS) -lXtst \
-#      $(XML_LIBS) $(XSLT_LIBS)
-#
-#CLASSPATH_LIBS += \
-#      $(CLASSPATH_INSTALL_DIR)/lib/classpath/libgtkpeer.a
-#endif
+if ENABLE_RT_TIMING
+cacao_LDFLAGS += -lrt
+endif
 
-else
-cacao_LDFLAGS = $(EXPORT_SYMBOLS_FLAGS)
-CLASSPATH_LIBS =
+if ENABLE_PYTHON
+cacao_LDFLAGS += \
+    @PYTHON_LSPEC@
 endif
 
-noinst_LTLIBRARIES = libcacao.la
+libjvm_la_SOURCES =
 
-libcacao_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
 
-libcacao_la_LIBADD = \
+libjvm_la_LIBADD = \
+       $(top_builddir)/src/fdlibm/libfdlibm.la \
        $(top_builddir)/src/mm/libmm.la \
        $(top_builddir)/src/native/libnative.la \
-       $(THREAD_LIB) \
+       $(top_builddir)/src/threads/libthreads.la \
        $(top_builddir)/src/toolbox/libtoolbox.la \
-       $(top_builddir)/src/vm/libvm.la
+       $(top_builddir)/src/vm/libvm.la \
+       $(GC_LIB)
 
-bin_PROGRAMS = cacao
+bin_PROGRAMS = \
+       cacao
 
 cacao_SOURCES = \
-       cacao.c \
-       cacao.h
+       cacao.cpp
 
 cacao_LDADD = \
-       libcacao.la \
-       $(top_builddir)/src/fdlibm/libfdlibm.la \
-       $(GC_LIB) \
-       $(CLASSPATH_LIBS)
+       $(CACAO_LIBS)
+
+cacao_DEPENDENCIES = \
+       $(cacao_LDADD)
 
-cacao_DEPENDENCIES = $(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: