* class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
[mono.git] / mono / metadata / Makefile.am
index a84f9edc73ba85cabe386ccff0513c417380e3ea..4eb70f7519666342c68e1d783c828ce272380483 100644 (file)
@@ -1,36 +1,68 @@
-noinst_PROGRAMS = pedump
+if PLATFORM_WIN32
+export HOST_CC
+# Use -m here. This will use / as directory separator (C:/WINNT).
+# The files that use MONO_ASSEMBLIES and/or MONO_CFG_DIR replace the
+# / by \ if running under WIN32.
+assembliesdir = `cygpath -m "${libdir}"`
+confdir = `cygpath -m "${sysconfdir}"`
+# The mingw math.h has "extern inline" functions that dont appear in libs, so
+# optimisation is required to actually inline them
+AM_CFLAGS = -O
+PLATFORM_LIB = ../os/libmonoos.la
+else
+assembliesdir = $(exec_prefix)/lib
+confdir = $(sysconfdir)
+endif
 
-lib_LIBRARIES = libmetadata.a
+bin_PROGRAMS = pedump monodiet
 
 #
-# Keep in sync with mono/runtime/Makefile.am
+# libtool is not capable of creating static/shared versions of the same
+# convenience lib, so we have to do it ourselves
 #
-assembliesdir = $(libdir)
+noinst_LTLIBRARIES = libmonoruntime.la libmonoruntime-static.la
 
-INCLUDES = $(GLIB_CFLAGS) $(GMODULE_CFLAGS) -I$(top_srcdir)    \
-       -DMONO_ASSEMBLIES=\""$(assembliesdir)"\"                
 
-libmetadata_a_SOURCES = \
-       assembly.c      \
-       opcodes.c       \
-       image.c         \
-       metadata.c      \
-       verify.c        \
-       mono-endian.c   \
-       private.h       \
-       rawbuffer.c     \
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/mono $(LIBGC_CFLAGS) $(GLIB_CFLAGS) $(GMODULE_CFLAGS) $(ICU_CFLAGS) \
+       -DMONO_ASSEMBLIES=\"$(assembliesdir)\" -DMONO_CFG_DIR=\"$(confdir)\"
+
+#
+# Make sure any prefix changes are updated in the binaries too.
+#
+#  assembly.c uses MONO_ASSEMBLIES
+#  mono-config.c uses MONO_CFG_DIR
+#
+# This won't result in many more false positives than AC_DEFINEing them
+# in configure.in.
+#
+assembly.lo mono-config.lo: Makefile
+
+CLEANFILES = mono-bundle.stamp
+
+libmonoruntime_static_la_LIBADD = $(bundle_obj) $(PLATFORM_LIB) $(libmonoruntime_la_LIBADD)
+
+libmonoruntime_la_SOURCES = \
        reflection.c    \
-       loader.c        \
-       class.c         \
        object.c        \
+       object-internals.h      \
        icall.c         \
+       char-conversions.h \
        decimal.c       \
        decimal.h       \
+       boehm-gc.c      \
+       null-gc.c       \
+       gc.c            \
+       gc-internal.h   \
        marshal.c       \
        marshal.h       \
+       monitor.c       \
+       monitor.h       \
+       tabledefs.h \
        threads.c       \
-       threads.h       \
        threads-types.h \
+       threadpool.c    \
+       threadpool.h    \
+       threadpool-internals.h  \
        file-io.c       \
        file-io.h       \
        socket-io.c     \
@@ -39,43 +71,109 @@ libmetadata_a_SOURCES = \
        exception.h     \
        unicode.c       \
        unicode.h       \
-       mempool.h       \
-       mempool.c       \
-       appdomain.h     \
        appdomain.c     \
-       debug-helpers.h \
-       debug-helpers.c \
+       debug-mono-symfile.h    \
+       debug-mono-symfile.c    \
+       mono-debug.h            \
+       mono-debug.c            \
+       mono-debug-debugger.h   \
+       mono-debug-debugger.c   \
+       profiler.c      \
+       profiler-private.h      \
        rand.h          \
        rand.c          \
+       security.c      \
+       security.h      \
+       string-icalls.c \
+       string-icalls.h \
        sysmath.h       \
-       sysmath.c
+       sysmath.c       \
+       process.c       \
+       process.h       \
+       environment.c   \
+       environment.h   \
+       locales.c       \
+       locales.h       \
+       filewatcher.c   \
+       filewatcher.h   \
+       culture-info.h  \
+       culture-info-tables.h   \
+       security-manager.c      \
+       security-manager.h      \
+       console-io.c            \
+       console-io.h    \
+       assembly.c      \
+       domain.c        \
+       domain-internals.h      \
+       opcodes.c       \
+       image.c         \
+       cil-coff.h      \
+       metadata.c      \
+       metadata-internals.h    \
+       verify.c        \
+       mono-endian.c   \
+       mono-endian.h   \
+       mono-config.c   \
+       mono-config.h   \
+       rawbuffer.c     \
+       rawbuffer.h     \
+       loader.c        \
+       class.c         \
+       class-internals.h               \
+       mempool.c       \
+       debug-helpers.c
+
+libmonoruntime_static_la_SOURCES = $(libmonoruntime_la_SOURCES)
+
+libmonoruntime_static_la_LDFLAGS = -static
 
-libmetadataincludedir = $(includedir)/mono/metadata
+libmonoruntimeincludedir = $(includedir)/mono/metadata
 
-libmetadatainclude_HEADERS = \
+libmonoruntimeinclude_HEADERS = \
+       appdomain.h     \
+       mono-debug.h    \
+       mono-gc.h       \
+       mono-debug-debugger.h   \
+       debug-mono-symfile.h    \
+       threads.h       \
+       environment.h   \
        assembly.h      \
        opcodes.h       \
        blob.h          \
-       cil-coff.h      \
-       mono-endian.h   \
        image.h         \
        metadata.h      \
        verify.h        \
-       rawbuffer.h     \
        reflection.h    \
        row-indexes.h   \
-       tabledefs.h     \
        tokentype.h     \
        loader.h        \
        class.h         \
        object.h        \
        exception.h     \
+       profiler.h      \
        appdomain.h     \
-       rand.h
+       debug-helpers.h \
+       mempool.h
 
 pedump_SOURCES =               \
-       pedump.c $(libmetadata_a_SOURCES)
+       pedump.c
+
+pedump_LDADD = libmonoruntime.la ../io-layer/libwapi.la ../utils/libmonoutils.la \
+       $(PLATFORM_LIB)                 \
+       $(LIBGC_LIBS) $(GLIB_LIBS) $(GMODULE_LIBS) -lm
+
+monodiet_SOURCES = monodiet.c
 
-pedump_LDADD = $(GLIB_LIBS) $(GMODULE_LIBS) ../io-layer/libwapi.a
+monodiet_LDADD = \
+       libmonoruntime.la       \
+       ../io-layer/libwapi.la          \
+       ../utils/libmonoutils.la        \
+       $(PLATFORM_LIB)                 \
+       $(LIBGC_LIBS)                   \
+       $(GLIB_LIBS)                    \
+       $(GMODULE_LIBS)                 \
+       $(ICU_LIBS)                     \
+       -lm
 
+EXTRA_DIST = make-bundle.pl sample-bundle