GtkSharp/Makefile.include
Bertrand Lorentz 2d83fb3073 Move the fixup tool from the parser to the generator folder
The parser will be going away at some point in the future, but we
will still need the fixup step. And the fixup step is really more
of a preliminary step for the generator anyway.
2013-10-13 17:04:56 +02:00

82 lines
3.4 KiB
Text

SNK = $(top_srcdir)/gtk-sharp.snk
API = $(pkg)-api.xml
RAW_API = $(pkg)-api.raw
ASSEMBLY_NAME = $(pkg)-sharp
ASSEMBLY_NAME_VERSION = $(ASSEMBLY_NAME),Version=$(API_VERSION)
ASSEMBLY = $(ASSEMBLY_NAME).dll
GAPI_XSD=$(top_srcdir)/gapi.xsd
TARGET = $(pkg:=-sharp.dll) $(pkg:=-sharp.dll.config) $(POLICY_ASSEMBLIES)
noinst_DATA = $(TARGET)
TARGET_API = $(pkg:=-api.xml)
gapidir = $(datadir)/gapi-3.0
gapi_DATA = $(TARGET_API) $(GAPI_XSD)
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb $(POLICY_ASSEMBLIES) generated-stamp generated/*.cs $(API) glue/generated.c $(POLICY_CONFIGS)
DISTCLEANFILES = $(ASSEMBLY).config
POLICY_ASSEMBLIES = $(addsuffix .$(ASSEMBLY), $(addprefix policy., $(POLICY_VERSIONS)))
POLICY_CONFIGS = $(addsuffix .config, $(addprefix policy., $(POLICY_VERSIONS)))
EXTRA_DIST = $(RAW_API) $(SYMBOLS) $(ASSEMBLY).config.in $(METADATA) $(sources) $(add_dist)
build_symbols = $(addprefix --symbols=$(srcdir)/, $(SYMBOLS))
$(API): $(METADATA) $(RAW_API) $(SYMBOLS) $(top_builddir)/generator/gapi-fixup.exe
cp $(srcdir)/$(RAW_API) $(API)
chmod u+w $(API)
@if test -n '$(METADATA)'; then \
echo "$(RUNTIME) $(top_builddir)/generator/gapi-fixup.exe --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols)"; \
$(RUNTIME) $(top_builddir)/generator/gapi-fixup.exe --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols); \
fi
api_includes = $(addprefix -I:, $(INCLUDE_API))
generated-stamp: $(API) $(INCLUDE_API) $(top_builddir)/generator/gapi_codegen.exe $(GAPI_XSD)
rm -f generated/* && \
$(RUNTIME) $(top_builddir)/generator/gapi_codegen.exe --generate $(API) \
$(api_includes) \
--outdir=generated --assembly-name=$(ASSEMBLY_NAME) \
--gluelib-name=$(pkg)sharpglue-3 --glue-filename=glue/generated.c \
--glue-includes=$(glue_includes) \
--schema=$(GAPI_XSD) \
&& touch generated-stamp
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)
build_sources = $(addprefix $(srcdir)/, $(sources)) $(top_builddir)/AssemblyInfo.cs
build_references = $(addprefix -r:, $(references)) $(MONO_CAIRO_LIBS)
$(ASSEMBLY): generated-stamp $(SNK) $(build_sources) $(references)
@rm -f $(ASSEMBLY).mdb
$(CSC) $(CSFLAGS) -keyfile:$(SNK) -nowarn:0169,0612,0618 -unsafe -out:$(ASSEMBLY) -target:library $(build_references) $(GENERATED_SOURCES) $(build_sources)
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_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