2005-01-09 00:26:45 +00:00
|
|
|
SNK = gtk-sharp.snk
|
|
|
|
API = $(pkg)-api.xml
|
|
|
|
RAW_API = $(pkg)-api.raw
|
|
|
|
|
|
|
|
ASSEMBLY_NAME = $(pkg)-sharp
|
|
|
|
ASSEMBLY = $(ASSEMBLY_NAME).dll
|
|
|
|
|
2005-09-22 04:26:52 +00:00
|
|
|
TARGET = $(pkg:=-sharp.dll) $(pkg:=-sharp.dll.config) $(POLICY_ASSEMBLIES)
|
2005-01-09 00:26:45 +00:00
|
|
|
noinst_DATA = $(TARGET)
|
2005-02-22 10:30:41 +00:00
|
|
|
TARGET_API = $(pkg:=-api.xml)
|
2005-01-09 00:26:45 +00:00
|
|
|
gapidir = $(datadir)/gapi-2.0
|
|
|
|
gapi_DATA = $(TARGET_API)
|
2005-09-22 04:26:52 +00:00
|
|
|
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb $(POLICY_ASSEMBLIES) generated-stamp generated/*.cs $(API) glue/generated.c $(SNK) AssemblyInfo.cs $(POLICY_CONFIGS)
|
2005-01-09 00:26:45 +00:00
|
|
|
DISTCLEANFILES = $(ASSEMBLY).config
|
|
|
|
|
2005-09-22 04:26:52 +00:00
|
|
|
POLICY_ASSEMBLIES = $(addsuffix .$(ASSEMBLY), $(addprefix policy., $(POLICY_VERSIONS)))
|
|
|
|
POLICY_CONFIGS = $(addsuffix .config, $(addprefix policy., $(POLICY_VERSIONS)))
|
|
|
|
|
2005-01-09 00:26:45 +00:00
|
|
|
EXTRA_DIST = $(RAW_API) $(SYMBOLS) $(ASSEMBLY).config.in $(METADATA) $(customs) $(sources) $(add_dist)
|
|
|
|
|
|
|
|
build_symbols = $(addprefix --symbols=$(srcdir)/, $(SYMBOLS))
|
|
|
|
|
2005-06-06 15:32:22 +00:00
|
|
|
$(API): $(METADATA) $(RAW_API) $(SYMBOLS) $(top_builddir)/parser/gapi-fixup.exe
|
2005-01-09 00:26:45 +00:00
|
|
|
cp $(srcdir)/$(RAW_API) $(API)
|
|
|
|
chmod u+w $(API)
|
|
|
|
@if test -n '$(METADATA)'; then \
|
2005-02-22 10:30:41 +00:00
|
|
|
echo "$(RUNTIME) $(top_builddir)/parser/gapi-fixup.exe --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols)"; \
|
|
|
|
$(RUNTIME) $(top_builddir)/parser/gapi-fixup.exe --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols); \
|
2005-01-09 00:26:45 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
build_customs = $(addprefix $(srcdir)/, $(customs))
|
|
|
|
api_includes = $(addprefix -I:, $(INCLUDE_API))
|
|
|
|
|
2005-06-17 18:48:27 +00:00
|
|
|
generated-stamp: $(API) $(INCLUDE_API) $(top_builddir)/generator/gapi_codegen.exe $(build_customs)
|
2005-01-09 00:26:45 +00:00
|
|
|
rm -f generated/* && \
|
2005-02-22 10:30:41 +00:00
|
|
|
$(RUNTIME) $(top_builddir)/generator/gapi_codegen.exe --generate $(API) \
|
2005-01-09 00:26:45 +00:00
|
|
|
$(api_includes) \
|
|
|
|
--outdir=generated --customdir=$(srcdir) --assembly-name=$(ASSEMBLY_NAME) \
|
* generator/StructBase.cs: update field-generation logic a bit
* generator/CodeGenerator.cs: add a --glue-includes flag
* generator/GenerationInfo.cs: Accept glue_includes value from
Main and output it to the glue_filename.
* generator/FieldBase.cs (Ignored): handle more ignorable cases.
(CheckGlue): New method to figure out what kind of glue we'll need
for a field.
(GenerateImports): generate appropriate imports per CheckGlue.
(GenerateGlue): Generate C glue for accessing a struct field;
either a fully-C-based accessor, or a method to just return the
field's offset in the struct.
(Generate): Use the generated glue to read the field.
* generator/PropertyBase.cs (CType): if the field is a single bit,
set its type to gboolean.
* generator/ObjectGen.cs (Generate):
* generator/OpaqueGen.cs (Generate): Call GenFields.
* generator/StructField.cs: Use FieldBase's glue-generation code
to handle bitfields. [#54489]
* generator/ObjectField.cs: Generates accessors for public fields
of objects and opaque structs. [#69514]
* generator/ClassBase.cs (ClassBase): Parse <fields> nodes and
create ObjectField objects.
(GenFields): Output field properties
(IgnoreMethod): Ignore Get/Set methods that duplicate fields
* generator/Makefile.am (sources): update
* {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as
public. Rename/retype some fields for consistency with earlier
hand-coded bindings.
* {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can
now be autogenerated.
* {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now
be autogenerated
* {gdk,glade,gnome,gtk,pango,vte}/Makefile.am
* {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am
* {gdk,gnome,gtk,pango}/glue/makefile.win32: Update
svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
|
|
|
--gluelib-name=$(pkg)sharpglue-2 --glue-filename=glue/generated.c \
|
|
|
|
--glue-includes=$(glue_includes) \
|
2005-01-09 00:26:45 +00:00
|
|
|
&& touch generated-stamp
|
|
|
|
|
|
|
|
$(SNK): $(top_srcdir)/$(SNK)
|
|
|
|
cp $(top_srcdir)/$(SNK) .
|
|
|
|
|
2005-08-25 22:32:18 +00:00
|
|
|
AssemblyInfo.cs: $(top_builddir)/AssemblyInfo.cs
|
|
|
|
cp $(top_builddir)/AssemblyInfo.cs .
|
2005-08-25 20:59:21 +00:00
|
|
|
|
2009-01-24 04:47:54 +00:00
|
|
|
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)
|
2005-09-22 04:26:52 +00:00
|
|
|
|
2005-08-25 20:59:21 +00:00
|
|
|
build_sources = $(addprefix $(srcdir)/, $(sources)) AssemblyInfo.cs
|
2005-12-13 15:33:28 +00:00
|
|
|
build_references = $(addprefix /r:, $(references)) $(MONO_CAIRO_LIBS)
|
2005-01-09 00:26:45 +00:00
|
|
|
|
2005-08-25 20:59:21 +00:00
|
|
|
if PLATFORM_WIN32
|
|
|
|
GAPI_CDECL_INSERT=$(top_srcdir)/gapi-cdecl-insert --keyfile=$(SNK) $(ASSEMBLY)
|
|
|
|
else
|
|
|
|
GAPI_CDECL_INSERT=
|
|
|
|
endif
|
|
|
|
|
2009-04-15 15:32:41 +00:00
|
|
|
BUILD_PARAMS=$(CSFLAGS) -nowarn:0169,0612,0618 -unsafe -target:library $(GENERATED_SOURCES) $(build_sources)
|
|
|
|
|
2005-01-09 00:26:45 +00:00
|
|
|
$(ASSEMBLY): generated-stamp $(SNK) $(build_sources) $(references)
|
2005-04-11 14:56:29 +00:00
|
|
|
@rm -f $(ASSEMBLY).mdb
|
2009-04-15 15:32:41 +00:00
|
|
|
$(CSC) $(build_references) $(BUILD_PARAMS) -out:$(ASSEMBLY)
|
2005-08-25 20:59:21 +00:00
|
|
|
$(GAPI_CDECL_INSERT)
|
2005-01-09 00:26:45 +00:00
|
|
|
|
|
|
|
install-data-local:
|
2005-09-22 04:26:52 +00:00
|
|
|
@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 \
|
2005-01-09 00:26:45 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
uninstall-local:
|
2005-09-22 04:26:52 +00:00
|
|
|
@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 \
|
2005-01-09 00:26:45 +00:00
|
|
|
fi
|
2005-09-22 04:26:52 +00:00
|
|
|
|