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 = $(libdir)
+confdir = $(sysconfdir)
endif
-bin_PROGRAMS = monosn
-
-noinst_PROGRAMS = pedump
-
-noinst_LTLIBRARIES = libmetadata.la libmonoruntime.la
+bin_PROGRAMS = pedump
#
-# 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 = libmetadata.la libmonoruntime.la libmetadata-static.la libmonoruntime-static.la
+
+
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/mono $(LIBGC_CFLAGS) $(GLIB_CFLAGS) $(GMODULE_CFLAGS) $(ICU_CFLAGS) \
+ -DMONO_ASSEMBLIES=\"$(assembliesdir)\" -DMONO_CFG_DIR=\"$(confdir)\"
+
+if WITH_BUNDLE
+bundle_srcs = mono-bundle.s mono-bundle.h
+bundle_obj = mono-bundle.o
+#BUILT_SOURCES = $(bundle_srcs)
-INCLUDES = $(GLIB_CFLAGS) $(GMODULE_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/mono \
- -DMONO_ASSEMBLIES=\""$(assembliesdir)"\" -DMONO_CFG_DIR=\""$(sysconfdir)"\"
+$(bundle_obj): $(bundle_srcs)
+$(bundle_srcs): mono-bundle.stamp
+ @if test -f $@; then :; else rm -f mono-bundle.stamp; $(MAKE) mono-bundle.stamp; fi
+mono-bundle.stamp: $(BUNDLE_FILE) $(srcdir)/make-bundle.pl
+ echo stamp > $@t
+ perl $(srcdir)/make-bundle.pl $(BUNDLE_FILE) mono-bundle.h mono-bundle.s
+ mv $@t $@
+
+endif
+
+CLEANFILES = mono-bundle.stamp
+
+libmetadata_la_LIBADD = $(bundle_obj) $(PLATFORM_LIB)
+
+libmonoruntime_static_la_LIBADD = $(libmonoruntime_la_LIBADD)
+libmetadata_static_la_LIBADD = $(libmetadata_la_LIBADD)
libmonoruntime_la_SOURCES = \
reflection.c \
object.c \
+ object-internals.h \
icall.c \
+ char-conversions.h \
decimal.c \
decimal.h \
gc.c \
gc-internal.h \
marshal.c \
marshal.h \
+ monitor.c \
+ monitor.h \
threads.c \
+ threads-types.h \
threadpool.c \
+ threadpool.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
+ environment.h \
+ locales.c \
+ locales.h \
+ filewatcher.c \
+ filewatcher.h \
+ culture-info.h \
+ culture-info-tables.h
libmetadata_la_SOURCES = \
assembly.c \
domain.c \
+ domain-internals.h \
opcodes.c \
image.c \
+ cil-coff.h \
+ tabledefs.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
+libmetadata_static_la_SOURCES = $(libmetadata_la_SOURCES)
+libmonoruntime_static_la_SOURCES = $(libmonoruntime_la_SOURCES)
+
+libmetadata_static_la_LDFLAGS = -static
+libmonoruntime_static_la_LDFLAGS = -static
+
libmetadataincludedir = $(includedir)/mono/metadata
libmonoruntimeincludedir = $(includedir)/mono/metadata
libmonoruntimeinclude_HEADERS = \
appdomain.h \
+ mono-debug.h \
+ mono-debug-debugger.h \
debug-mono-symfile.h \
- threadpool.h \
- threads-types.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 \
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 = libmetadata.la ../io-layer/libwapi.la ../utils/libmonoutils.la \
+ $(LIBGC_LIBS) $(GLIB_LIBS) $(GMODULE_LIBS) -lm
-monosn_LDADD = \
- ../metadata/libmetadata.la \
- ../io-layer/libwapi.la \
- ../utils/libmonoutils.la \
- $(GLIB_LIBS) \
- $(GMODULE_LIBS) \
- -lm
+EXTRA_DIST = make-bundle.pl sample-bundle