# 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)
bin_PROGRAMS = pedump
-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 = 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) \
if WITH_BUNDLE
bundle_srcs = mono-bundle.s mono-bundle.h
-mono-bundle.s mono-bundle.h: $(BUNDLE_FILE) $(srcdir)/make-bundle.pl
+bundle_obj = mono-bundle.o
+#BUILT_SOURCES = $(bundle_srcs)
+
+$(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
-else
-bundle_srcs =
-endif
+ mv $@t $@
-if PLATFORM_WIN32
-libmonoruntime_la_LIBADD = ../os/libmonoos.la
-libmetadata_la_LIBADD = ../os/libmonoos.la
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 \
rawbuffer.h \
loader.c \
class.c \
+ class-internals.h \
mempool.c \
- $(bundle_srcs) \
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
pedump_LDADD = libmetadata.la ../io-layer/libwapi.la ../utils/libmonoutils.la \
$(LIBGC_LIBS) $(GLIB_LIBS) $(GMODULE_LIBS) -lm
-BUILT_SOURCES = $(bundle_srcs) libmetadata.la
-
EXTRA_DIST = make-bundle.pl sample-bundle