SNK = abiword-sharp.snk API = $(pkg:=-api.xml) RAW_API = $(pkg:=-api.raw) ASSEMBLY_NAME = $(pkg:=-sharp) ASSEMBLY = $(ASSEMBLY_NAME:=.dll) TARGET = $(ASSEMBLY) $(ASSEMBLY:=.config) $(POLICY_ASSEMBLIES) noinst_DATA = $(TARGET) TARGET_API = $(API) gapidir = $(datadir)/gapi-2.0 gapi_DATA = $(TARGET_API) CLEANFILES = $(ASSEMBLY) $(ASSEMBLY:=.mdb) $(POLICY_ASSEMBLIES) generated-stamp generated/*.cs $(API) glue/generated.c $(SNK) AssemblyInfo.cs $(POLICY_CONFIGS) DISTCLEANFILES = $(ASSEMBLY).config POLICY_ASSEMBLIES = $(filter %.dll, $(patsubst %, policy.%.$(ASSEMBLY), $(POLICY_VERSIONS))) POLICY_CONFIGS = $(patsubst %, policy.%.config, $(POLICY_VERSIONS)) EXTRA_DIST = $(RAW_API) $(SYMBOLS) $(ASSEMBLY:=.config.in) $(METADATA) $(customs) $(sources) $(add_dist) build_symbols = $(patsubst %, --symbols=$(srcdir)/%, $(SYMBOLS)) $(API): $(METADATA) $(RAW_API) $(SYMBOLS) cp $(srcdir)/$(RAW_API) $(API) chmod u+w $(API) @if test -n '$(METADATA)'; then \ echo "$(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols)"; \ $(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols); \ fi build_customs = $(patsubst %, $(srcdir)/%, $(customs)) api_includes = $(GTKSHARP_CFLAGS) $(patsubst %, -I:%, $(INCLUDE_API)) generated-stamp: $(API) $(INCLUDE_API) $(build_customs) rm -f generated/* && \ $(GAPI_CODEGEN) --generate $(API) \ $(api_includes) \ --outdir=generated --customdir=$(srcdir) --assembly-name=$(ASSEMBLY_NAME) \ --gluelib-name=$(pkg)sharpglue-2 --glue-filename=glue/generated.c \ --glue-includes=$(glue_includes) \ && touch generated-stamp $(SNK): $(top_srcdir)/$(SNK) cp $(top_srcdir)/$(SNK) . AssemblyInfo.cs: $(top_builddir)/AssemblyInfo.cs cp $(top_builddir)/AssemblyInfo.cs . $(POLICY_ASSEMBLIES): $(top_builddir)/policy.config $(SNK) @for i in $(POLICY_VERSIONS); do \ echo "Creating policy.$$i.$(ASSEMBLY)"; \ sed -e "s/@ASSEMBLY_NAME@/$(ASSEMBLY_NAME)/" -e "s/@POLICY@/$$i/" $(top_builddir)/policy.config > policy.$$i.config; \ $(AL) -link:policy.$$i.config -out:policy.$$i.$(ASSEMBLY) -keyfile:$(SNK); \ done build_sources = $(patsubst %, $(srcdir)/%, $(sources)) AssemblyInfo.cs build_references = $(GTKSHARP_LIBS) $(patsubst %, /r:%, $(references)) $(MONO_CAIRO_LIBS) 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) 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