GtkSharp/glib/Makefile.am
Bertrand Lorentz 8885fa98af build: Fix references to AssemblyInfo.cs in makefiles on Windows
On Windows with MinGW, csc.exe is confused by paths like
"../AssemblyInfo.cs", so we need some trickery to have something that
works on both Linux and Windows.

This isn't pretty, but it's the best solution I could find right now.
The other approach would have been to go back to copying AssemblyInfo.cs
around, but that has it's own set of issues.
2014-02-23 19:17:05 +01:00

140 lines
3.9 KiB
Makefile

SUBDIRS =
SNK = $(top_srcdir)/gtk-sharp.snk
TARGET = $(ASSEMBLY)
ASSEMBLY = $(ASSEMBLY_NAME).dll
ASSEMBLY_NAME = glib-sharp
ASSEMBLY_NAME_VERSION = $(ASSEMBLY_NAME),Version=$(API_VERSION)
noinst_DATA = $(ASSEMBLY) $(ASSEMBLY).config $(POLICY_ASSEMBLIES)
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = glib-sharp-3.0.pc
gapidir = $(datadir)/gapi-3.0
gapi_DATA = glib-api.xml
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb $(POLICY_ASSEMBLIES) $(POLICY_CONFIGS)
DISTCLEANFILES = $(ASSEMBLY).config
POLICY_ASSEMBLIES = $(addsuffix .$(ASSEMBLY), $(addprefix policy., $(POLICY_VERSIONS)))
POLICY_CONFIGS = $(addsuffix .config, $(addprefix policy., $(POLICY_VERSIONS)))
references =
# TODO: auto-generate at compile time the following classes:
# Cond, Date, DateTime, Mutex, PollFD, RecMutex, (half)Source,
# SourceCallbackFuncs, SourceDummyMarshal, SourceFunc,
# SourceFuncNative, SourceFuncs, TimeVal, TimeZone
# (to do that, we need to fill missing pieces in glib's
# gobject-introspection metadata upstream)
sources = \
Argv.cs \
ConnectBeforeAttribute.cs \
Cond.cs \
Date.cs \
DateTime.cs \
DefaultSignalHandlerAttribute.cs \
DestroyNotify.cs \
ExceptionManager.cs \
FileUtils.cs \
GException.cs \
GInterfaceAdapter.cs \
GInterfaceAttribute.cs \
GLibSynchronizationContext.cs \
Global.cs \
GString.cs \
GType.cs \
GTypeAttribute.cs \
Idle.cs \
InitiallyUnowned.cs \
IOChannel.cs \
IWrapper.cs \
KeyFile.cs \
ListBase.cs \
List.cs \
Log.cs \
MainContext.cs \
MainLoop.cs \
ManagedValue.cs \
Markup.cs \
Marshaller.cs \
MissingIntPtrCtorException.cs \
Mutex.cs \
NotifyHandler.cs \
Object.cs \
ObjectManager.cs \
Opaque.cs \
ParamSpec.cs \
PollFD.cs \
Priority.cs \
PropertyAttribute.cs \
PtrArray.cs \
RecMutex.cs \
Signal.cs \
SignalArgs.cs \
SignalAttribute.cs \
SignalClosure.cs \
SList.cs \
Source.cs \
SourceFunc.cs \
SourceFuncs.cs \
SourceDummyMarshal.cs \
GLibSharp.SourceFuncNative.cs \
GLibSharp.SourceDummyMarshalNative.cs \
SourceCallbackFuncs.cs \
Spawn.cs \
Thread.cs \
Timeout.cs \
TimeVal.cs \
TimeZone.cs \
ToggleRef.cs \
TypeFundamentals.cs \
TypeInitializerAttribute.cs \
ValueArray.cs \
Value.cs \
Variant.cs \
VariantType.cs
build_sources = $(addprefix $(srcdir)/, $(sources))
dist_sources = $(sources)
EXTRA_DIST = \
$(dist_sources) \
$(ASSEMBLY).config.in \
glib-sharp-3.0.pc.in \
glib-api.xml
$(ASSEMBLY): $(build_sources) $(SNK)
@rm -f $(ASSEMBLY).mdb
$(CSC) $(CSFLAGS) -keyfile:$(SNK) -unsafe -out:$(ASSEMBLY) -target:library $(references) $(build_sources) $(top_builddir)$(ASSEMBLYINFO)
policy.%.config: $(top_builddir)/policy.config
sed -e "s/@ASSEMBLY_NAME@/$(ASSEMBLY_NAME)/" -e "s/@POLICY@/$*/" $(top_builddir)/policy.config > $@
$(POLICY_ASSEMBLIES) : policy.%.$(ASSEMBLY): policy.%.config $(SNK)
$(AL) -link:policy.$*.config -out:$@ -keyfile:$(SNK)
install-data-local:
@if test -n '$(TARGET)'; then \
echo "$(GACUTIL) -i $(ASSEMBLY) -f $(GACUTIL_FLAGS)"; \
"$(GACUTIL)" -i $(ASSEMBLY) -f $(GACUTIL_FLAGS) || exit 1; \
if test -n '$(POLICY_VERSIONS)'; then \
for i in $(POLICY_VERSIONS); do \
echo "$(GACUTIL) -i policy.$$i.$(ASSEMBLY) -f $(GACUTIL_FLAGS)"; \
"$(GACUTIL)" -i policy.$$i.$(ASSEMBLY) -f $(GACUTIL_FLAGS) || exit 1; \
done \
fi \
fi
uninstall-local:
@if test -n '$(TARGET)'; then \
echo "$(GACUTIL) -u $(ASSEMBLY_NAME_VERSION) $(GACUTIL_FLAGS)"; \
"$(GACUTIL)" -u $(ASSEMBLY_NAME_VERSION) $(GACUTIL_FLAGS) || exit 1; \
if test -n '$(POLICY_VERSIONS)'; then \
for i in $(POLICY_VERSIONS); do \
echo "$(GACUTIL) -u policy.$$i.$(ASSEMBLY_NAME) $(GACUTIL_FLAGS)"; \
"$(GACUTIL)" -u policy.$$i.$(ASSEMBLY_NAME) $(GACUTIL_FLAGS) || exit 1; \
done \
fi \
fi