Permalink
Fetching contributors…
Cannot retrieve contributors at this time
90 lines (73 sloc) 3.4 KB
SNK = gtk-sharp.snk
API = $(pkg:=-api.xml)
RAW_API = $(pkg:=-api.raw)
ASSEMBLY_NAME = $(pkg:=-sharp)
ASSEMBLY = $(ASSEMBLY_NAME:=.dll)
PACKAGE_VERSION = $(ASSEMBLY_NAME:=-$(pkgversion))
TARGET = $(ASSEMBLY) $(ASSEMBLY:=.config) $(POLICY_ASSEMBLIES)
noinst_DATA = $(TARGET)
gapidir = $(datadir)/$(ASSEMBLY_NAME)/$(pkgversion)
gapi_DATA = $(API)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY:=.mdb) $(POLICY_ASSEMBLIES) $(POLICY_CONFIGS) generated-stamp generated/*.cs $(API) glue/generated.c $(SNK) AssemblyInfo.cs
DISTCLEANFILES = $(ASSEMBLY:=.config)
EXTRA_DIST = $(RAW_API) $(METADATA) $(customs) $(sources) $(add_dist)
$(API): $(METADATA) $(RAW_API)
cp $(srcdir)/$(RAW_API) $(API)
chmod u+w $(API)
@if test -n '$(METADATA)'; then \
echo "$(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA)"; \
$(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA); \
fi
build_customs = $(addprefix $(srcdir)/, $(customs))
api_includes = $(GTKSHARP_CFLAGS) $(addprefix -I:, $(INCLUDE_API))
generated-stamp: $(API) $(INCLUDE_API) $(build_customs)
rm -f generated/* && \
$(GAPI_CODEGEN) --generate $(API) \
$(api_includes) $(glue_args) \
--outdir=generated --customdir=$(srcdir) --assembly-name=$(ASSEMBLY_NAME) \
&& touch generated-stamp
$(SNK): $(top_srcdir)/$(SNK)
cp $(top_srcdir)/$(SNK) .
AssemblyInfo.cs: $(top_srcdir)/AssemblyInfo.cs.in
sed -e "s/@API_VERSION@/$(API_VERSION)/" $(top_srcdir)/AssemblyInfo.cs.in > AssemblyInfo.cs
build_sources = $(addprefix $(srcdir)/, $(sources)) AssemblyInfo.cs
build_references = $(MONO_CAIRO_LIBS) $(GNOMESHARP_LIBS) $(addprefix /r:, $(references))
if PLATFORM_WIN32
GAPI_CDECL_INSERT=$(top_srcdir)/gapi-cdecl-insert --keyfile=$(SNK) $(ASSEMBLY)
else
GAPI_CDECL_INSERT=
endif
$(ASSEMBLY): generated-stamp $(SNK) $(build_sources) $(references)
@rm -f $(ASSEMBLY).mdb
$(CSC) $(CSFLAGS) -nowarn:0169,0612,0618 -unsafe -out:$(ASSEMBLY) -target:library $(build_references) $(GENERATED_SOURCES) $(build_sources)
$(GAPI_CDECL_INSERT)
POLICY_ASSEMBLIES = $(filter %.dll, $(patsubst %, policy.%.$(ASSEMBLY), $(POLICY_VERSIONS)))
POLICY_CONFIGS = $(patsubst %, policy.%.config, $(POLICY_VERSIONS))
$(POLICY_ASSEMBLIES): $(top_srcdir)/policy.config.in $(SNK)
@for i in $(POLICY_VERSIONS); do \
echo "Creating policy.$$i.$(ASSEMBLY)"; \
sed -e "s/@ASSEMBLY_NAME@/$(ASSEMBLY_NAME)/" -e "s/@POLICY@/$$i/" -e "s/@API_VERSION@/$(API_VERSION)/" $(top_srcdir)/policy.config.in > policy.$$i.config; \
$(AL) -link:policy.$$i.config -out:policy.$$i.$(ASSEMBLY) -keyfile:$(SNK); \
done
install-data-local:
@if test -n '$(pkg)'; 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 '$(pkg)'; then \
echo "$(GACUTIL) /u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS)"; \
$(GACUTIL) /u $(ASSEMBLY_NAME) $(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