if PLATFORM_WIN32
export HOST_CC
-assembliesdir = `echo $(libdir) | tr '/' '\\\\'`
+# 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 = $(libdir)
+assembliesdir = $(exec_prefix)/lib
+confdir = $(sysconfdir)
endif
-bin_PROGRAMS = monosn pedump
+bin_PROGRAMS = pedump monodiet
-noinst_LTLIBRARIES = libmetadata.la libmonoruntime.la
+#
+# libtool is not capable of creating static/shared versions of the same
+# convenience lib, so we have to do it ourselves
+#
+noinst_LTLIBRARIES = libmonoruntime.la libmonoruntime-static.la
-INCLUDES = $(GLIB_CFLAGS) $(GMODULE_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/mono \
- -DMONO_ASSEMBLIES=\""$(assembliesdir)"\" -DMONO_CFG_DIR=\""$(sysconfdir)"\"
+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 \
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-types.h \
threadpool.c \
+ threadpool.h \
+ threadpool-internals.h \
file-io.c \
file-io.h \
socket-io.c \
appdomain.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 \
process.c \
process.h \
environment.c \
- environment.h
-
-libmetadata_la_SOURCES = \
+ 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 \
- private.h \
rawbuffer.c \
+ rawbuffer.h \
loader.c \
class.c \
+ class-internals.h \
mempool.c \
debug-helpers.c
-libmetadataincludedir = $(includedir)/mono/metadata
+libmonoruntime_static_la_SOURCES = $(libmonoruntime_la_SOURCES)
+
+libmonoruntime_static_la_LDFLAGS = -static
+
libmonoruntimeincludedir = $(includedir)/mono/metadata
libmonoruntimeinclude_HEADERS = \
appdomain.h \
+ mono-debug.h \
+ mono-gc.h \
+ mono-debug-debugger.h \
debug-mono-symfile.h \
- threadpool.h \
- threads-types.h \
threads.h \
environment.h \
- monitor.h
-
-libmetadatainclude_HEADERS = \
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 \
profiler.h \
appdomain.h \
debug-helpers.h \
- mempool.h \
- rand.h
+ mempool.h
pedump_SOURCES = \
pedump.c
-pedump_LDADD = libmetadata.la ../io-layer/libwapi.la ../utils/libmonoutils.la $(GLIB_LIBS) $(GMODULE_LIBS) -lm
+pedump_LDADD = libmonoruntime.la ../io-layer/libwapi.la ../utils/libmonoutils.la \
+ $(PLATFORM_LIB) \
+ $(LIBGC_LIBS) $(GLIB_LIBS) $(GMODULE_LIBS) -lm
+monodiet_SOURCES = monodiet.c
-monosn_LDADD = \
- ../metadata/libmetadata.la \
+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
+