Make work again.
authorMatthias Clasen <mclasen@redhat.com>
Mon, 14 Mar 2005 06:47:51 +0000 (06:47 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 14 Mar 2005 06:47:51 +0000 (06:47 +0000)
2005-03-14  Matthias Clasen  <mclasen@redhat.com>

* abicheck.sh: Make work again.

* gsourceclosure.c: Fix a typo.

Make PLT-reduction work with gcc4, and don't include
everything in gobjectalias.h:

* gobject.symbols: Group symbols by header and source
file.
* makegobjectalias.pl: Protect definitions by the same
preprocessor symbols used to guard the headers. Move
the alias declarations to a separate file which is
produced when calling makegalias.pl -def
* Makefile.am (gobjectaliasdef.c): Add a rule to
build this file.
* *.c: Include gobjectalias.h after the other i
        GLib headers, include gobjectaliasdef.c at the bottom.

21 files changed:
gobject/ChangeLog
gobject/Makefile.am
gobject/abicheck.sh
gobject/gboxed.c
gobject/gclosure.c
gobject/genums.c
gobject/gobject.c
gobject/gobject.symbols
gobject/gobjectnotifyqueue.c
gobject/gparam.c
gobject/gparamspecs.c
gobject/gsignal.c
gobject/gsourceclosure.c
gobject/gtype.c
gobject/gtypemodule.c
gobject/gtypeplugin.c
gobject/gvalue.c
gobject/gvaluearray.c
gobject/gvaluetransform.c
gobject/gvaluetypes.c
gobject/makegobjectalias.pl

index 124ef52..c73f4d7 100644 (file)
@@ -1,3 +1,19 @@
+2005-03-14  Matthias Clasen  <mclasen@redhat.com>
+
+       Make PLT-reduction work with gcc4, and don't include
+       everything in gobjectalias.h:
+       
+       * gobject.symbols: Group symbols by header and source 
+       file.
+       * makegobjectalias.pl: Protect definitions by the same 
+       preprocessor symbols used to guard the headers. Move
+       the alias declarations to a separate file which is 
+       produced when calling makegalias.pl -def
+       * Makefile.am (gobjectaliasdef.c): Add a rule to 
+       build this file.
+       * *.c: Include gobjectalias.h after the other i
+       GLib headers, include gobjectaliasdef.c at the bottom.
+
 2005-03-08  Matthias Clasen  <mclasen@redhat.com>
 
        * gobject.symbols: Add the new attributes here, too.
index ea78f38..6d17d54 100644 (file)
@@ -14,11 +14,14 @@ INCLUDES = \
        -DG_DISABLE_CONST_RETURNS
 
 gobject.def: gobject.symbols
-       (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 - <$(srcdir)/gobject.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gobject.def
+       (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gobject.symbols | sed -e '/^$$/d' -e 's/^/     /' -e 's/G_GNUC_[^ ]*//g' | sort) > gobject.def
 
 gobjectalias.h: gobject.symbols
        $(PERL) $(srcdir)/makegobjectalias.pl < $(srcdir)/gobject.symbols > gobjectalias.h
 
+gobjectaliasdef.c: gobject.symbols
+       $(PERL) $(srcdir)/makegobjectalias.pl -def < $(srcdir)/gobject.symbols > gobjectaliasdef.c
+
 if OS_LINUX
 if HAVE_GNUC_VISIBILITY
 TESTS = abicheck.sh
@@ -126,7 +129,7 @@ gobject_c_sources = \
        gvaluetypes.c
 
 # these sources (also mentioned above) are generated.
-BUILT_SOURCES = gmarshal.h gmarshal.c gobjectalias.h
+BUILT_SOURCES = gmarshal.h gmarshal.c gobjectalias.h gobjectaliasdef.c
 
 # non-header sources (headers should be specified in the above variables)
 # that don't serve as direct make target sources, i.e. they don't have
index 745db40..53aaa5d 100755 (executable)
@@ -5,7 +5,7 @@ egrep '^#([^i]|if).*[^\]$' "${top_builddir:-..}/glibconfig.h" > glibconfig.cpp
 INCLUDES="-include ${top_builddir:-..}/config.h"
 INCLUDES="$INCLUDES -include glibconfig.cpp"
 
-cpp -P $INCLUDES ${srcdir:-.}/gobject.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE$//' | sort > expected-abi
+cpp -P $INCLUDES -DALL_FILES ${srcdir:-.}/gobject.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE$//' | sort > expected-abi
 rm glibconfig.cpp
 
 nm -D .libs/libgobject-2.0.so | grep " T " | cut -d ' ' -f 3 | sort > actual-abi
index dc3339a..ee722a0 100644 (file)
@@ -16,7 +16,6 @@
  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-#include       "gobjectalias.h"
 #include       "gboxed.h"
 
 #include       "gbsearcharray.h"
@@ -25,6 +24,8 @@
 #include       "gclosure.h"
 #include       "gvaluecollector.h"
 
+#include       "gobjectalias.h"
+
 #include <string.h>
 
 /* --- typedefs & structures --- */
@@ -529,3 +530,6 @@ g_value_take_boxed (GValue       *value,
 
   value_set_boxed_internal (value, boxed, FALSE, TRUE);
 }
+
+#define __G_BOXED_C__
+#include "gobjectaliasdef.c"
index 23299bf..2323384 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-#include       "gobjectalias.h"
 #include       "gclosure.h"
 
 #include       "gvalue.h"
+#include       "gobjectalias.h"
 #include       <string.h>
 
 
@@ -558,3 +558,6 @@ g_signal_type_cclosure_new (GType    itype,
   
   return closure;
 }
+
+#define __G_CLOSURE_C__
+#include "gobjectaliasdef.c"
index 5bbc772..63ccd93 100644 (file)
 
 #include        <string.h>
 
-#include       "gobjectalias.h"
 #include       "genums.h"
 
 #include       "gvalue.h"
 #include       "gvaluecollector.h"
 
+#include       "gobjectalias.h"
+
 
 /* --- prototypes --- */
 static void    g_enum_class_init               (GEnumClass     *class,
@@ -420,3 +421,6 @@ g_value_get_flags (const GValue *value)
   
   return value->data[0].v_ulong;
 }
+
+#define __G_ENUMS_C__
+#include "gobjectaliasdef.c"
index 6429cdc..723b65f 100644 (file)
@@ -16,8 +16,8 @@
  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-#include       "gobjectalias.h"
 #include       "gobject.h"
+#include       "gobjectalias.h"
 
 /*
  * MT safe
@@ -2014,3 +2014,6 @@ g_cclosure_new_object_swap (GCallback callback_func,
 
   return closure;
 }
+
+#define __G_OBJECT_C__
+#include "gobjectaliasdef.c"
index 6582ad4..8e3d21e 100644 (file)
@@ -1,6 +1,39 @@
+/* This file lists all exported symbols. It is used to generate
+ * the gobject.def file used to control exports on Windows and the
+ * gobjectalias.h/gobjectaliasdef.c files used to avoid PLT entries for 
+ * internal uses of exported functions (see makegobjectalias.pl).
+ * 
+ * Every symbol must be included in the right
+ * #ifdef IN_HEADER(sym) #endif and
+ * #ifdef IN_FILE(sym) #endif sections. 
+ */
+#ifdef ALL_FILES
+#define IN_FILE(x) 1
+#define IN_HEADER(x) 1
+#endif
+#if IN_HEADER(__G_BOXED_H__)
+#if IN_FILE(__G_BOXED_C__)
 g_boxed_copy
 g_boxed_free
 g_boxed_type_register_static
+g_gstring_get_type G_GNUC_CONST
+g_strv_get_type G_GNUC_CONST
+g_closure_get_type G_GNUC_CONST
+g_value_get_type G_GNUC_CONST
+g_value_array_get_type G_GNUC_CONST
+g_value_set_boxed
+g_value_take_boxed
+g_value_dup_boxed
+g_value_get_boxed
+g_value_set_static_boxed
+#ifndef G_DISABLE_DEPRECATED
+g_value_set_boxed_take_ownership
+#endif
+#endif
+#endif
+
+#if IN_HEADER(__G_MARSHAL_H__)
+#if IN_FILE(__G_SIGNAL_C__)
 g_cclosure_marshal_BOOLEAN__FLAGS
 g_cclosure_marshal_STRING__OBJECT_POINTER
 g_cclosure_marshal_VOID__BOOLEAN
@@ -21,17 +54,18 @@ g_cclosure_marshal_VOID__UINT
 g_cclosure_marshal_VOID__UINT_POINTER
 g_cclosure_marshal_VOID__ULONG
 g_cclosure_marshal_VOID__VOID
+#endif
+#endif
+
+#if IN_HEADER(__G_CLOSURE_H__)
+#if IN_FILE(__G_CLOSURE_C__)
 g_cclosure_new
-g_cclosure_new_object
-g_cclosure_new_object_swap
 g_cclosure_new_swap
 g_closure_add_finalize_notifier
 g_closure_add_invalidate_notifier
 g_closure_add_marshal_guards
-g_closure_get_type G_GNUC_CONST
 g_closure_invalidate
 g_closure_invoke
-g_closure_new_object
 g_closure_new_simple
 g_closure_ref
 g_closure_remove_finalize_notifier
@@ -40,6 +74,12 @@ g_closure_set_marshal
 g_closure_set_meta_marshal
 g_closure_sink
 g_closure_unref
+g_signal_type_cclosure_new
+#endif
+#endif
+
+#if IN_HEADER(__G_ENUMS_H__)
+#if IN_FILE(__G_ENUMS_C__)
 g_enum_complete_type_info
 g_enum_get_value
 g_enum_get_value_by_name
@@ -50,9 +90,26 @@ g_flags_get_first_value
 g_flags_get_value_by_name
 g_flags_get_value_by_nick
 g_flags_register_static
-g_gstring_get_type G_GNUC_CONST
+g_value_set_enum
+g_value_set_flags
+g_value_get_enum
+g_value_get_flags
+#endif
+#endif
+
+#if IN_HEADER(__G_SOURCECLOSURE_H__)
+#if IN_FILE(__G_SOURCECLOSURE_C__)
 g_io_channel_get_type
 g_io_condition_get_type
+g_source_set_closure
+#endif
+#endif
+
+#if IN_HEADER(__G_OBJECT_H__)
+#if IN_FILE(__G_OBJECT_C__)
+g_cclosure_new_object
+g_cclosure_new_object_swap
+g_closure_new_object
 g_object_add_weak_pointer
 g_object_class_find_property
 g_object_class_install_property
@@ -90,6 +147,19 @@ g_object_unref
 g_object_watch_closure
 g_object_weak_ref
 g_object_weak_unref
+g_value_get_object
+g_value_set_object
+g_value_dup_object
+g_value_take_object
+#ifndef G_DISABLE_DEPRECATED
+g_value_set_object_take_ownership
+#endif
+g_signal_connect_object
+#endif
+#endif
+
+#if IN_HEADER(__G_PARAMSPECS_H__)
+#if IN_FILE(__G_PARAMSPECS_C__)
 g_param_spec_boolean
 g_param_spec_boxed
 g_param_spec_char
@@ -97,52 +167,106 @@ g_param_spec_double
 g_param_spec_enum
 g_param_spec_flags
 g_param_spec_float
-g_param_spec_get_blurb
-g_param_spec_get_name
-g_param_spec_get_nick
-g_param_spec_get_qdata
-g_param_spec_get_redirect_target
 g_param_spec_int
 g_param_spec_int64
-g_param_spec_internal
 g_param_spec_long
 g_param_spec_object
 g_param_spec_override
 g_param_spec_param
 g_param_spec_pointer
-g_param_spec_pool_insert
-g_param_spec_pool_list
-g_param_spec_pool_list_owned
-g_param_spec_pool_lookup
-g_param_spec_pool_new
-g_param_spec_pool_remove
-g_param_spec_ref
-g_param_spec_set_qdata
-g_param_spec_set_qdata_full
-g_param_spec_sink
-g_param_spec_steal_qdata
 g_param_spec_string
 g_param_spec_uchar
 g_param_spec_uint
 g_param_spec_uint64
 g_param_spec_ulong
 g_param_spec_unichar
-g_param_spec_unref
 g_param_spec_value_array
+#endif
+#endif
+
+#if IN_HEADER(__G_PARAM_H__)
+#if IN_FILE(__G_PARAM_C__) 
+g_param_spec_get_blurb
+g_param_spec_get_name
+g_param_spec_get_nick
+g_param_spec_get_redirect_target
+g_param_spec_internal
 g_param_type_register_static
+g_param_spec_ref
+g_param_spec_unref
+g_param_spec_sink
+g_param_spec_steal_qdata
+g_param_spec_set_qdata
+g_param_spec_set_qdata_full
+g_param_spec_get_qdata
 g_param_value_convert
 g_param_value_defaults
 g_param_values_cmp
 g_param_value_set_default
 g_param_value_validate
+g_param_spec_pool_insert
+g_param_spec_pool_list
+g_param_spec_pool_list_owned
+g_param_spec_pool_lookup
+g_param_spec_pool_new
+g_param_spec_pool_remove
+g_value_get_param
+g_value_set_param
+g_value_dup_param
+g_value_take_param
+#ifndef G_DISABLE_DEPRECATED
+g_value_set_param_take_ownership
+#endif
+#endif
+#endif
+
+#if IN_HEADER(__G_VALUETYPES_H__)
+#if IN_FILE(__G_VALUETYPES_C__)
 g_pointer_type_register_static
+g_strdup_value_contents
+g_value_set_boolean
+g_value_set_char
+g_value_set_double
+g_value_set_float
+g_value_set_int
+g_value_set_int64
+g_value_set_long
+g_value_set_pointer
+g_value_set_static_string
+g_value_set_string
+#ifndef G_DISABLE_DEPRECATED
+g_value_set_string_take_ownership
+#endif
+g_value_set_uchar
+g_value_set_uint
+g_value_set_uint64
+g_value_set_ulong
+g_value_dup_string
+g_value_get_boolean
+g_value_get_char
+g_value_get_double
+g_value_get_float
+g_value_get_int
+g_value_get_int64
+g_value_get_long
+g_value_get_pointer
+g_value_get_string
+g_value_get_uchar
+g_value_get_uint
+g_value_get_uint64
+g_value_get_ulong
+g_value_take_string
+#endif
+#endif
+
+#if IN_HEADER(__G_SIGNAL_H__)
+#if IN_FILE(__G_SIGNAL_C__)
 g_signal_accumulator_true_handled
 g_signal_add_emission_hook
 g_signal_chain_from_overridden
 g_signal_connect_closure
 g_signal_connect_closure_by_id
 g_signal_connect_data
-g_signal_connect_object
 g_signal_emit
 g_signal_emit_by_name
 g_signal_emitv
@@ -170,10 +294,11 @@ g_signal_query
 g_signal_remove_emission_hook
 g_signal_stop_emission
 g_signal_stop_emission_by_name
-g_signal_type_cclosure_new
-g_source_set_closure
-g_strdup_value_contents
-g_strv_get_type G_GNUC_CONST
+#endif
+#endif
+
+#if IN_HEADER(__G_TYPE_H__)
+#if IN_FILE(__G_TYPE_C__)
 g_type_add_class_cache_func
 g_type_add_interface_check
 g_type_add_interface_dynamic
@@ -215,24 +340,11 @@ g_type_interface_peek_parent
 g_type_interface_prerequisites
 g_type_interfaces
 g_type_is_a
-g_type_module_add_interface
-g_type_module_get_type G_GNUC_CONST
-g_type_module_register_enum
-g_type_module_register_flags
-g_type_module_register_type
-g_type_module_set_name
-g_type_module_unuse
-g_type_module_use
 g_type_name
 g_type_name_from_class
 g_type_name_from_instance
 g_type_next_base
 g_type_parent
-g_type_plugin_complete_interface_info
-g_type_plugin_complete_type_info
-g_type_plugin_get_type G_GNUC_CONST
-g_type_plugin_unuse
-g_type_plugin_use
 g_type_qname
 g_type_query
 g_type_register_dynamic
@@ -243,79 +355,63 @@ g_type_remove_interface_check
 g_type_set_qdata
 g_type_test_flags
 g_type_value_table_peek
+#endif
+#endif
+
+#if IN_HEADER(__G_TYPE_MODULE_H__)
+#if IN_FILE(__G_TYPE_MODULE_C__)
+g_type_module_add_interface
+g_type_module_get_type G_GNUC_CONST
+g_type_module_register_enum
+g_type_module_register_flags
+g_type_module_register_type
+g_type_module_set_name
+g_type_module_unuse
+g_type_module_use
+#endif
+#endif
+
+#if IN_HEADER(__G_VALUE_ARRAY_H__)
+#if IN_FILE(__G_VALUE_ARRAY_C__)
 g_value_array_append
 g_value_array_copy
 g_value_array_free
 g_value_array_get_nth
-g_value_array_get_type G_GNUC_CONST
 g_value_array_insert
 g_value_array_new
 g_value_array_prepend
 g_value_array_remove
 g_value_array_sort
 g_value_array_sort_with_data
+#endif
+#endif
+
+#if IN_HEADER(__G_TYPE_PLUGIN_H__)
+#if IN_FILE(__G_TYPE_PLUGIN_C__)
+g_type_plugin_complete_interface_info
+g_type_plugin_complete_type_info
+g_type_plugin_get_type G_GNUC_CONST
+g_type_plugin_unuse
+g_type_plugin_use
+#endif
+#endif
+
+#if IN_HEADER(__G_VALUE_H__)
+#if IN_FILE(__G_VALUE_C__)
 g_value_copy
-g_value_dup_boxed
-g_value_dup_object
-g_value_dup_param
-g_value_dup_string
 g_value_fits_pointer
-g_value_get_boolean
-g_value_get_boxed
-g_value_get_char
-g_value_get_double
-g_value_get_enum
-g_value_get_flags
-g_value_get_float
-g_value_get_int
-g_value_get_int64
-g_value_get_long
-g_value_get_object
-g_value_get_param
-g_value_get_pointer
-g_value_get_string
-g_value_get_type G_GNUC_CONST
-g_value_get_uchar
-g_value_get_uint
-g_value_get_uint64
-g_value_get_ulong
 g_value_init
 g_value_peek_pointer
 g_value_register_transform_func
 g_value_reset
-g_value_set_boolean
-g_value_set_boxed
-g_value_set_boxed_take_ownership
-g_value_set_char
-g_value_set_double
-g_value_set_enum
-g_value_set_flags
-g_value_set_float
-g_value_set_instance
-g_value_set_int
-g_value_set_int64
-g_value_set_long
-g_value_set_object
-g_value_set_object_take_ownership
-g_value_set_param
-g_value_set_param_take_ownership
-g_value_set_pointer
-g_value_set_static_boxed
-g_value_set_static_string
-g_value_set_string
-g_value_set_string_take_ownership
-g_value_set_uchar
-g_value_set_uint
-g_value_set_uint64
-g_value_set_ulong
-g_value_take_boxed
-g_value_take_object
-g_value_take_param
-g_value_take_string
 g_value_transform
 g_value_type_compatible
 g_value_type_transformable
 g_value_unset
+g_value_set_instance
+#endif
+#endif
+
 #ifdef INCLUDE_VARIABLES
 g_param_spec_types
 #endif
index c816a86..e02e6d0 100644 (file)
@@ -166,4 +166,4 @@ g_object_notify_queue_from_object (GObject              *object,
 
 G_END_DECLS
 
-#endif /* __G_OBJECT_H__ */
+#endif /* __G_NOTIFY_H__ */
index 282b8a4..8aecc49 100644 (file)
  * MT safe
  */
 
-#include       "gobjectalias.h"
 #include       "gparam.h"
 #include        "gparamspecs.h"
 
 #include       "gvaluecollector.h"
+#include       "gobjectalias.h"
 #include       <string.h>
 
 
@@ -1109,3 +1109,6 @@ g_value_dup_param (const GValue *value)
 
   return value->data[0].v_pointer ? g_param_spec_ref (value->data[0].v_pointer) : NULL;
 }
+
+#define __G_PARAM_C__
+#include "gobjectaliasdef.c"
index 7e40f7e..d3f7264 100644 (file)
 
 #include       "../config.h"
 
-#include       "gobjectalias.h"
 #include       "gparamspecs.h"
 
 #include       "gvaluecollector.h"
 #include       "gvaluearray.h"
+#include       "gobjectalias.h"
 #include       <string.h>
 
 #define        G_FLOAT_EPSILON         (1e-30)
@@ -1928,3 +1928,6 @@ g_param_spec_override (const gchar *name,
 
   return pspec;
 }
+
+#define __G_PARAMSPECS_C__
+#include "gobjectaliasdef.c"
index ef8f3fb..2ecb3fc 100644 (file)
 
 #include <config.h>
 
-#include       "gobjectalias.h"
 #include        "gsignal.h"
+
 #include        "gbsearcharray.h"
 #include        "gvaluecollector.h"
 #include       "gvaluetypes.h"
 #include       "gboxed.h"
+
+#include       "gobjectalias.h"
+
 #include       <string.h> 
 #include       <signal.h>
 
@@ -2655,3 +2658,6 @@ g_signal_accumulator_true_handled (GSignalInvocationHint *ihint,
 #include       "gobject.h"
 #include       "genums.h"
 #include        "gmarshal.c"
+
+#define __G_SIGNAL_C__
+#include "gobjectaliasdef.c"
index a733deb..8f43afb 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
-#include "gobjectalias.h"
 #include "gsourceclosure.h"
 #include "gboxed.h"
 #include "genums.h"
 #include "gmarshal.h"
 #include "gvalue.h"
 #include "gvaluetypes.h"
+#include "gobjectalias.h"
 
 GType
 g_io_channel_get_type (void)
@@ -190,3 +190,6 @@ g_source_set_closure (GSource  *source,
        g_closure_set_marshal (closure, marshal);
     }
 }
+
+#define __G_SOURCECLOSURE_C__
+#include "gobjectaliasdef.c"
index 9a5753b..2f5303c 100644 (file)
@@ -17,8 +17,8 @@
  * Boston, MA 02111-1307, USA.
  */
 #include        <config.h>
-#include       "gobjectalias.h"
 #include       "gtype.h"
+#include       "gobjectalias.h"
 
 /*
  * MT safe
@@ -3580,3 +3580,6 @@ g_type_instance_get_private (GTypeInstance *instance,
 
   return G_STRUCT_MEMBER_P (instance, offset);
 }
+
+#define __G_TYPE_C__
+#include "gobjectaliasdef.c"
index 4ecb6ca..22e86f3 100644 (file)
@@ -19,9 +19,9 @@
 
 #include <stdlib.h>
 
-#include "gobjectalias.h"
 #include "gtypeplugin.h"
 #include "gtypemodule.h"
+#include "gobjectalias.h"
 
 typedef struct _ModuleTypeInfo ModuleTypeInfo;
 typedef struct _ModuleInterfaceInfo ModuleInterfaceInfo;
@@ -424,3 +424,7 @@ g_type_module_register_flags (GTypeModule      *module,
   return g_type_module_register_type (G_TYPE_MODULE (module),
                                       G_TYPE_FLAGS, name, &flags_type_info, 0);
 }
+
+
+#define __G_TYPE_MODULE_C__
+#include "gobjectaliasdef.c"
index 99665cc..bc1e7c0 100644 (file)
@@ -16,8 +16,8 @@
  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  * Boston, MA 02111-1307, USA.
  */
-#include       "gobjectalias.h"
 #include       "gtypeplugin.h"
+#include       "gobjectalias.h"
 
 
 
@@ -99,3 +99,6 @@ g_type_plugin_complete_interface_info (GTypePlugin    *plugin,
                                  interface_type,
                                  info);
 }
+
+#define __G_TYPE_PLUGIN_C__
+#include "gobjectaliasdef.c"
index 680122f..f181ac2 100644 (file)
 
 #include <string.h>
 
-#include "gobjectalias.h"
 #include "gvalue.h"
 #include "gvaluecollector.h"
 #include "gbsearcharray.h"
+#include "gobjectalias.h"
 
 
 /* --- typedefs & structures --- */
@@ -359,3 +359,6 @@ g_value_transform (const GValue *src_value,
     }
   return FALSE;
 }
+
+#define __G_VALUE_C__
+#include "gobjectaliasdef.c"
index 54e0e11..3db5d2e 100644 (file)
@@ -23,8 +23,8 @@
 
 #include <config.h>
 
-#include       "gobjectalias.h"
 #include       "gvaluearray.h"
+#include       "gobjectalias.h"
 #include       <string.h>
 #include       <stdlib.h>      /* qsort() */
 
@@ -228,3 +228,6 @@ g_value_array_sort_with_data (GValueArray     *value_array,
                       compare_func, user_data);
   return value_array;
 }
+
+#define __G_VALUE_ARRAY_C__
+#include "gobjectaliasdef.c"
index 94f1f0b..d6a4e3d 100644 (file)
@@ -18,9 +18,9 @@
  */
 #include        <string.h>
 
-#include       "gobjectalias.h"
 #include        "gvalue.h"
 #include        "genums.h"
+#include       "gobjectalias.h"
 
 
 /* same type transforms
index 3b73876..48d332a 100644 (file)
  * MT safe
  */
 
-#include       "gobjectalias.h"
 #include       "gvaluetypes.h"
 
 #include       "gvaluecollector.h"
+#include       "gobjectalias.h"
 #include       <string.h>
 #include       <stdlib.h>      /* qsort() */
 
@@ -906,3 +906,5 @@ g_pointer_type_register_static (const gchar *name)
   return type;
 }
 
+#define __G_VALUETYPES_C__
+#include "gobjectaliasdef.c"
index 1eb2cb3..9094222 100755 (executable)
@@ -1,5 +1,12 @@
 #!/usr/bin/perl -w
 
+my $do_def = 0;
+
+if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) {
+    shift;
+    $do_def = 1;
+}
+
 print <<EOF;
 /* Generated by makegobjectalias.pl */
 
@@ -9,14 +16,25 @@ print <<EOF;
 
 #ifdef G_HAVE_GNUC_VISIBILITY
 
-#ifdef  G_DISABLE_DEPRECATED
-#define WAS_NO_G_DEPR
-#endif
-#undef  G_DISABLE_DEPRECATED
+EOF
+
+if ($do_def) {
+    print <<EOF
+#undef IN_FILE
+#define IN_FILE defined
 
-#include "glib-object.h"
+#undef IN_HEADER
+#define IN_HEADER(x) 1
 
 EOF
+} 
+else { 
+    print <<EOF
+#define IN_FILE(x) 1
+#define IN_HEADER defined
+
+EOF
+}
 
 my $in_comment = 0;
 my $in_skipped_section = 0;
@@ -55,7 +73,7 @@ while (<>) {
       next;
   }
 
-  if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS)/)
+  if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/)
   {
       $in_skipped_section = 1;
   }
@@ -65,13 +83,20 @@ while (<>) {
       next;
   }
 
-  if ($_ =~ /^\#ifdef\s+G/)
+  if ($_ =~ /^\#ifn?def\s+G/)
   {
       print $_;
       
       next;
   }
  
+  if ($_ =~ /^\#if.*(IN_FILE|IN_HEADER)/)
+  {
+      print $_;
+      
+      next;
+  }
+
   chop;
   my $str = $_;
   my @words;
@@ -87,23 +112,25 @@ while (<>) {
       $attributes = "$attributes $word" unless $word eq "PRIVATE";
   }
   
-  print <<EOF
+  if (!$do_def) {
+    print <<EOF
 extern __typeof ($str) $alias __attribute((visibility("hidden")))$attributes;
-extern __typeof ($str) $str __attribute((alias("$alias"), visibility("default")));
 \#define $str $alias
 
 EOF
+  }
+  else {
+    print <<EOF
+\#undef $str 
+extern __typeof ($str) $str __attribute((alias("$alias"), visibility("default")));
+
+EOF
+  }
 }
 
 print <<EOF;
 
-#ifdef  WAS_NO_G_DEPR
-#define G_DISABLE_DEPRECATED
-#undef  WAS_NO_G_DEPR
-#endif
-
 #endif /* G_HAVE_GNUC_VISIBILITY */
-
 #endif /* DISABLE_VISIBILITY */
 EOF