From d281b07c4aba18d30c4365ef3cba2df85ac4ab6f Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Mon, 7 Jul 2014 18:04:14 +0800 Subject: build: Export Symbols Using Compiler Directives Use compiler directives for exporting symbols for the build of libgirepository and also for the test libraries, like what is now done in GLib and GTK+ so that maintaining a separate .symbols (and .def files) would not be needed, in which the correct compiler directive is determined during configure time. Drop all the .def files and the .symbols file as we would not be using them anymore. https://bugzilla.gnome.org/show_bug.cgi?id=732669 --- Makefile-girepository.am | 15 +- Makefile-msvcproj.am | 1 - build/win32/Makefile.am | 11 - build/win32/Regress.def | 272 ----------------- build/win32/annotation.def | 48 --- build/win32/everything.def | 106 ------- build/win32/foo.def | 48 --- build/win32/gettype.def | 6 - build/win32/gimarshallingtests.def | 588 ------------------------------------- build/win32/gtkfrob.def | 2 - build/win32/sletter.def | 4 - build/win32/testinherit.def | 6 - build/win32/utility.def | 4 - configure.ac | 33 +++ girepository/girepository.symbols | 197 ------------- tests/Makefile.am | 2 +- tests/offsets/Makefile.am | 2 +- 17 files changed, 46 insertions(+), 1299 deletions(-) delete mode 100644 build/win32/Regress.def delete mode 100644 build/win32/annotation.def delete mode 100644 build/win32/everything.def delete mode 100644 build/win32/foo.def delete mode 100644 build/win32/gettype.def delete mode 100644 build/win32/gimarshallingtests.def delete mode 100644 build/win32/gtkfrob.def delete mode 100644 build/win32/sletter.def delete mode 100644 build/win32/testinherit.def delete mode 100644 build/win32/utility.def delete mode 100644 girepository/girepository.symbols diff --git a/Makefile-girepository.am b/Makefile-girepository.am index 19db3e0a..8a857d67 100644 --- a/Makefile-girepository.am +++ b/Makefile-girepository.am @@ -44,7 +44,11 @@ libgirepository_internals_la_SOURCES = \ girepository/girwriter.c \ girepository/girwriter.h -libgirepository_internals_la_CFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository +libgirepository_internals_la_CFLAGS = \ + $(GIREPO_CFLAGS) \ + $(GI_HIDDEN_VISIBILITY_CFLAGS) \ + -I$(top_srcdir)/girepository + libgirepository_internals_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS) libgirepository_1_0_la_SOURCES = \ @@ -73,12 +77,15 @@ libgirepository_1_0_la_SOURCES = \ girepository/giunioninfo.c \ girepository/givfuncinfo.c -libgirepository_1_0_la_CPPFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository -DG_IREPOSITORY_COMPILATION +libgirepository_1_0_la_CPPFLAGS = \ + $(GIREPO_CFLAGS) \ + $(GI_HIDDEN_VISIBILITY_CFLAGS) \ + -I$(top_srcdir)/girepository \ + -DG_IREPOSITORY_COMPILATION libgirepository_1_0_la_LIBADD = libgirepository-gthash.la $(GIREPO_LIBS) libgirepository_1_0_la_LDFLAGS = \ $(EXTRA_LINK_FLAGS) \ - -no-undefined -version-number 1:0:0 \ - -export-symbols $(srcdir)/girepository/girepository.symbols + -no-undefined -version-number 1:0:0 gdumpdir = $(datadir)/gobject-introspection-1.0/ gdump_DATA = girepository/gdump.c diff --git a/Makefile-msvcproj.am b/Makefile-msvcproj.am index 6e5b7962..cdfbd486 100644 --- a/Makefile-msvcproj.am +++ b/Makefile-msvcproj.am @@ -199,7 +199,6 @@ GENERATED_MSVC_FILES = \ config.h.win32 EXTRA_DIST += \ - ./girepository/girepository.symbols \ $(GENERATED_MSVC_FILES) CLEANFILES += $(GENERATED_MSVC_FILES) diff --git a/build/win32/Makefile.am b/build/win32/Makefile.am index cfebe0ca..31f582f1 100644 --- a/build/win32/Makefile.am +++ b/build/win32/Makefile.am @@ -4,14 +4,3 @@ SUBDIRS = \ vs11 \ vs12 -EXTRA_DIST = \ - annotation.def \ - everything.def \ - foo.def \ - gettype.def \ - gimarshallingtests.def \ - gtkfrob.def \ - Regress.def \ - sletter.def \ - testinherit.def \ - utility.def diff --git a/build/win32/Regress.def b/build/win32/Regress.def deleted file mode 100644 index 693f053f..00000000 --- a/build/win32/Regress.def +++ /dev/null @@ -1,272 +0,0 @@ -EXPORTS -regress_set_abort_on_error -regress_test_boolean -regress_test_boolean_true -regress_test_boolean_false -regress_test_int8 -regress_test_uint8 -regress_test_int16 -regress_test_uint16 -regress_test_int32 -regress_test_uint32 -regress_test_int64 -regress_test_uint64 -regress_test_short -regress_test_ushort -regress_test_int -regress_test_uint -regress_test_long -regress_test_ulong -regress_test_ssize -regress_test_size -regress_test_float -regress_test_double -regress_test_unichar -regress_test_timet -regress_test_gtype -regress_test_utf8_const_return -regress_test_utf8_nonconst_return -regress_test_utf8_const_in -regress_test_utf8_out -regress_test_utf8_inout -regress_test_filename_return -regress_test_utf8_null_in -regress_test_utf8_null_out - -regress_test_int_out_utf8 - - -regress_test_multi_double_args -regress_test_utf8_out_out -regress_test_utf8_out_nonconst_return - - -regress_test_strv_in -regress_test_array_int_in -regress_test_array_int_out -regress_test_array_int_inout -regress_test_array_gint8_in -regress_test_array_gint16_in -regress_test_array_gint32_in -regress_test_array_gint64_in -regress_test_array_gtype_in -regress_test_strv_out_container -regress_test_strv_out -regress_test_strv_out_c -regress_test_strv_outarg -regress_test_array_fixed_size_int_in -regress_test_array_fixed_size_int_out -regress_test_array_fixed_size_int_return - - -regress_test_array_int_full_out -regress_test_array_int_none_out -regress_test_array_int_null_in -regress_test_array_int_null_out - - -regress_test_glist_nothing_return -regress_test_glist_nothing_return2 -regress_test_glist_container_return -regress_test_glist_everything_return -regress_test_glist_nothing_in -regress_test_glist_nothing_in2 -regress_test_glist_null_in -regress_test_glist_null_out - - -regress_test_gslist_nothing_return -regress_test_gslist_nothing_return2 -regress_test_gslist_container_return -regress_test_gslist_everything_return -regress_test_gslist_nothing_in -regress_test_gslist_nothing_in2 -regress_test_gslist_null_in -regress_test_gslist_null_out - - -regress_test_ghash_null_return -regress_test_ghash_nothing_return -regress_test_ghash_nothing_return2 -regress_test_ghash_gvalue_return -regress_test_ghash_gvalue_in -regress_test_ghash_container_return -regress_test_ghash_everything_return -regress_test_ghash_null_in -regress_test_ghash_null_out -regress_test_ghash_nothing_in -regress_test_ghash_nothing_in2 -regress_test_ghash_nested_everything_return -regress_test_ghash_nested_everything_return2 - - -regress_test_garray_container_return -regress_test_garray_full_return - - - - -regress_test_closure -regress_test_closure_one_arg -regress_test_closure_variant - - -regress_test_int_value_arg -regress_test_value_return - - -regress_test_cairo_context_full_return -regress_test_cairo_context_none_in - -regress_test_cairo_surface_none_return -regress_test_cairo_surface_full_return -regress_test_cairo_surface_none_in -regress_test_cairo_surface_full_out - -regress_test_gvariant_i -regress_test_gvariant_s -regress_test_gvariant_asv -regress_test_gvariant_v -regress_test_gvariant_as -regress_test_enum_get_type -regress_test_enum_unsigned_get_type -regress_test_flags_get_type - - -regress_test_enum_param -regress_test_unsigned_enum_param - -regress_global_get_flags_out -regress_test_struct_a_clone -regress_test_struct_a_parse - -regress_test_struct_b_clone - - -regress_test_simple_boxed_a_get_gtype -regress_test_simple_boxed_a_copy -regress_test_simple_boxed_a_equals -regress_test_simple_boxed_a_const_return - -regress_test_simple_boxed_b_get_type -regress_test_simple_boxed_b_copy - -regress_test_boxed_get_type -regress_test_boxed_new -regress_test_boxed_new_alternative_constructor1 -regress_test_boxed_new_alternative_constructor2 -regress_test_boxed_new_alternative_constructor3 - -regress_test_boxed_copy - - -regress_test_boxed_b_get_type -regress_test_boxed_b_new -regress_test_boxed_b_copy - -regress_test_boxed_c_get_type -regress_test_boxed_c_new - -regress_test_boxed_d_get_type -regress_test_boxed_d_new -regress_test_boxed_d_copy -regress_test_boxed_d_free -regress_test_boxed_d_get_magic - -regress_test_obj_get_type -regress_test_obj_new -regress_constructor -regress_test_obj_new_from_file -regress_test_obj_set_bare -regress_test_obj_emit_sig_with_obj -regress_test_obj_emit_sig_with_foreign_struct -regress_test_obj_emit_sig_with_int64 -regress_test_obj_emit_sig_with_uint64 -regress_test_obj_instance_method -regress_test_obj_static_method -regress_forced_method - -regress_test_array_fixed_out_objects -regress_test_obj_torture_signature_0 -regress_test_obj_torture_signature_1 -regress_test_obj_skip_return_val -regress_test_obj_skip_return_val_no_out -regress_test_obj_skip_param -regress_test_obj_skip_out_param -regress_test_obj_skip_inout_param -regress_test_obj_do_matrix -regress_func_obj_null_in -regress_test_obj_null_out -regress_test_sub_obj_get_type -regress_test_sub_obj_new -regress_test_sub_obj_unset_bare -regress_test_sub_obj_instance_method -regress_test_skip_unannotated_callback - -regress_test_fundamental_object_get_type -regress_test_fundamental_object_ref -regress_test_fundamental_object_unref -regress_test_value_set_fundamental_object -regress_test_value_get_fundamental_object -regress_test_fundamental_sub_object_get_type - -regress_test_fundamental_sub_object_new - - -regress_test_simple_callback -regress_test_callback -regress_test_multi_callback -regress_test_array_callback -regress_test_callback_user_data -regress_test_callback_destroy_notify -regress_test_callback_destroy_notify_no_user_data -regress_test_callback_thaw_notifications - -regress_test_callback_async -regress_test_callback_thaw_async - -regress_test_async_ready_callback - -regress_test_obj_instance_method_callback -regress_test_obj_static_method_callback -regress_test_obj_new_callback -regress_test_hash_table_callback -regress_test_gerror_callback -regress_test_null_gerror_callback -regress_test_owned_gerror_callback -regress_test_interface_get_type - -regress_test_wi_802_1x_get_type -regress_test_wi_802_1x_new -regress_test_wi_802_1x_get_testbool -regress_test_wi_802_1x_set_testbool -regress_test_wi_802_1x_static_method - -regress_test_floating_get_type -regress_test_floating_new - -regress_test_torture_signature_0 -regress_test_torture_signature_1 -regress_test_torture_signature_2 -regress_test_date_in_gvalue -regress_test_strv_in_gvalue - -regress_test_multiline_doc_comments -regress_test_nested_parameter - -regress_introspectable_via_alias -regress_not_introspectable_via_alias -regress_aliased_caller_alloc - -regress_atest_error_quark -regress_test_def_error_quark -regress_test_unconventional_error_quark -regress_test_abc_error_quark -regress_test_error_quark -regress_test_boxed_c_get_type -regress_test_unconventional_error_get_type -regress_test_abc_error_get_type -regress_test_error_get_type - - -regress_test_versioning diff --git a/build/win32/annotation.def b/build/win32/annotation.def deleted file mode 100644 index 27452281..00000000 --- a/build/win32/annotation.def +++ /dev/null @@ -1,48 +0,0 @@ -EXPORTS -regress_annotation_object_get_type -regress_annotation_object_method -regress_annotation_object_out -regress_annotation_object_create_object -regress_annotation_object_allow_none -regress_annotation_object_notrans -regress_annotation_object_inout -regress_annotation_object_inout2 -regress_annotation_object_inout3 -regress_annotation_object_in -regress_annotation_object_calleeowns -regress_annotation_object_calleesowns -regress_annotation_object_get_strings -regress_annotation_object_get_hash -regress_annotation_object_with_voidp -regress_annotation_object_get_objects -regress_annotation_object_use_buffer -regress_annotation_object_compute_sum -regress_annotation_object_compute_sum_n -regress_annotation_object_compute_sum_nz -regress_annotation_object_parse_args -regress_annotation_object_string_out -regress_annotation_object_foreach -regress_annotation_object_set_data -regress_annotation_object_set_data2 -regress_annotation_object_set_data3 -regress_annotation_object_do_not_use -regress_annotation_object_watch -regress_annotation_object_watch_full -regress_annotation_object_hidden_self -regress_annotation_init -regress_annotation_return_array -regress_annotation_versioned -regress_annotation_string_zero_terminated -regress_annotation_string_zero_terminated_out -regress_annotation_string_array_length -regress_annotation_object_extra_annos -regress_annotation_custom_destroy -regress_annotation_get_source_file -regress_annotation_set_source_file -regress_annotation_attribute_func -regress_annotation_invalid_regress_annotation -regress_annotation_ptr_array -regress_annotation_test_parsing_bug630862 -regress_annotation_space_after_comment_bug631690 -regress_annotation_return_filename -regress_annotation_transfer_floating diff --git a/build/win32/everything.def b/build/win32/everything.def deleted file mode 100644 index e15f2fdc..00000000 --- a/build/win32/everything.def +++ /dev/null @@ -1,106 +0,0 @@ -EXPORTS -everything_nullfunc -everything_const_return_gboolean -everything_const_return_gint8 -everything_const_return_guint8 -everything_const_return_gint16 -everything_const_return_guint16 -everything_const_return_gint32 -everything_const_return_guint32 -everything_const_return_gint64 -everything_const_return_guint64 -everything_const_return_gchar -everything_const_return_gshort -everything_const_return_gushort -everything_const_return_gint -everything_const_return_guint -everything_const_return_glong -everything_const_return_gulong -everything_const_return_gsize -everything_const_return_gssize -everything_const_return_gintptr -everything_const_return_guintptr -everything_const_return_gfloat -everything_const_return_gdouble -everything_const_return_gunichar -everything_const_return_GType -everything_const_return_utf8 -everything_const_return_filename -everything_oneparam_gboolean -everything_oneparam_gint8 -everything_oneparam_guint8 -everything_oneparam_gint16 -everything_oneparam_guint16 -everything_oneparam_gint32 -everything_oneparam_guint32 -everything_oneparam_gint64 -everything_oneparam_guint64 -everything_oneparam_gchar -everything_oneparam_gshort -everything_oneparam_gushort -everything_oneparam_gint -everything_oneparam_guint -everything_oneparam_glong -everything_oneparam_gulong -everything_oneparam_gsize -everything_oneparam_gssize -everything_oneparam_gintptr -everything_oneparam_guintptr -everything_oneparam_gfloat -everything_oneparam_gdouble -everything_oneparam_gunichar -everything_oneparam_GType -everything_oneparam_utf8 -everything_oneparam_filename -everything_one_outparam_gboolean -everything_one_outparam_gint8 -everything_one_outparam_guint8 -everything_one_outparam_gint16 -everything_one_outparam_guint16 -everything_one_outparam_gint32 -everything_one_outparam_guint32 -everything_one_outparam_gint64 -everything_one_outparam_guint64 -everything_one_outparam_gchar -everything_one_outparam_gshort -everything_one_outparam_gushort -everything_one_outparam_gint -everything_one_outparam_guint -everything_one_outparam_glong -everything_one_outparam_gulong -everything_one_outparam_gsize -everything_one_outparam_gssize -everything_one_outparam_gintptr -everything_one_outparam_guintptr -everything_one_outparam_gfloat -everything_one_outparam_gdouble -everything_one_outparam_gunichar -everything_one_outparam_GType -everything_one_outparam_utf8 -everything_one_outparam_filename -everything_passthrough_one_gboolean -everything_passthrough_one_gint8 -everything_passthrough_one_guint8 -everything_passthrough_one_gint16 -everything_passthrough_one_guint16 -everything_passthrough_one_gint32 -everything_passthrough_one_guint32 -everything_passthrough_one_gint64 -everything_passthrough_one_guint64 -everything_passthrough_one_gchar -everything_passthrough_one_gshort -everything_passthrough_one_gushort -everything_passthrough_one_gint -everything_passthrough_one_guint -everything_passthrough_one_glong -everything_passthrough_one_gulong -everything_passthrough_one_gsize -everything_passthrough_one_gssize -everything_passthrough_one_gintptr -everything_passthrough_one_guintptr -everything_passthrough_one_gfloat -everything_passthrough_one_gdouble -everything_passthrough_one_gunichar -everything_passthrough_one_GType -everything_passthrough_one_utf8 -everything_passthrough_one_filename diff --git a/build/win32/foo.def b/build/win32/foo.def deleted file mode 100644 index cba3e2a2..00000000 --- a/build/win32/foo.def +++ /dev/null @@ -1,48 +0,0 @@ -EXPORTS -regress_foo_interface_do_regress_foo -regress_foo_interface_static_method -regress_foo_sub_interface_get_type -regress_foo_sub_interface_do_bar -regress_foo_sub_interface_do_baz -regress_foo_init -regress_foo_object_get_type -regress_foo_object_new -regress_foo_object_external_type -regress_foo_object_new_as_super -regress_foo_object_take_all -regress_foo_object_new_cookie -regress_foo_object_is_it_time_yet -regress_foo_object_get_name -regress_foo_object_dup_name -regress_foo_object_read -regress_foo_object_skipped_method -regress_foo_subobject_get_type -regress_foo_object_get_default -regress_foo_buffer_get_type -regress_foo_buffer_some_method -regress_foo_other_object_get_type -regress_foo_not_a_constructor_new -regress_foo_enum_type_get_type -regress_foo_flags_type_get_type -regress_foo_boxed_get_type -regress_foo_boxed_new -regress_foo_boxed_method -regress_foo_dbus_data_get_type -regress_foo_rectangle_add -regress_foo_rectangle_new -regress_foo_brect_get_type -regress_foo_bunion_get_type -regress_foo_test_string_array -regress_foo_test_string_array_with_g -regress_foo_test_array -regress_foo_test_varargs_callback -regress_foo_test_varargs_callback2 -regress_foo_test_varargs_callback3 -regress_foo_error_get_type -regress_foo_error_quark -regress_foo_some_variant -regress_foo_skip_me -regress_foo_foreign_struct_new -regress_foo_foreign_struct_copy -regress_foo_object_append_new_stack_layer -regress_foo_interface_get_type diff --git a/build/win32/gettype.def b/build/win32/gettype.def deleted file mode 100644 index 401cb333..00000000 --- a/build/win32/gettype.def +++ /dev/null @@ -1,6 +0,0 @@ -EXPORTS -gettype_object_get_type -gettype_object_new -gettype_object_nonmeta1_get_type -gettype_object_nonmeta2_get_type -gettype_object_nonmeta_get_gtype diff --git a/build/win32/gimarshallingtests.def b/build/win32/gimarshallingtests.def deleted file mode 100644 index 3c91c796..00000000 --- a/build/win32/gimarshallingtests.def +++ /dev/null @@ -1,588 +0,0 @@ -EXPORTS -gi_marshalling_tests_boolean_return_true -gi_marshalling_tests_boolean_return_false -gi_marshalling_tests_boolean_in_true -gi_marshalling_tests_boolean_in_false -gi_marshalling_tests_boolean_out_true -gi_marshalling_tests_boolean_out_false -gi_marshalling_tests_boolean_inout_true_false -gi_marshalling_tests_boolean_inout_false_true - -gi_marshalling_tests_int8_return_max -gi_marshalling_tests_int8_return_min -gi_marshalling_tests_int8_in_max -gi_marshalling_tests_int8_in_min -gi_marshalling_tests_int8_out_max -gi_marshalling_tests_int8_out_min -gi_marshalling_tests_int8_inout_max_min -gi_marshalling_tests_int8_inout_min_max -gi_marshalling_tests_uint8_return -gi_marshalling_tests_uint8_in -gi_marshalling_tests_uint8_out -gi_marshalling_tests_uint8_inout -gi_marshalling_tests_int16_return_max -gi_marshalling_tests_int16_return_min -gi_marshalling_tests_int16_in_max -gi_marshalling_tests_int16_in_min -gi_marshalling_tests_int16_out_max -gi_marshalling_tests_int16_out_min -gi_marshalling_tests_int16_inout_max_min -gi_marshalling_tests_int16_inout_min_max -gi_marshalling_tests_uint16_return -gi_marshalling_tests_uint16_in -gi_marshalling_tests_uint16_out -gi_marshalling_tests_uint16_inout -gi_marshalling_tests_int32_return_max -gi_marshalling_tests_int32_return_min - -gi_marshalling_tests_int32_in_max -gi_marshalling_tests_int32_in_min - -gi_marshalling_tests_int32_out_max -gi_marshalling_tests_int32_out_min - -gi_marshalling_tests_int32_inout_max_min -gi_marshalling_tests_int32_inout_min_max - - -gi_marshalling_tests_uint32_return - -gi_marshalling_tests_uint32_in - -gi_marshalling_tests_uint32_out -gi_marshalling_tests_uint32_inout - - -gi_marshalling_tests_int64_return_max -gi_marshalling_tests_int64_return_min - -gi_marshalling_tests_int64_in_max -gi_marshalling_tests_int64_in_min - -gi_marshalling_tests_int64_out_max -gi_marshalling_tests_int64_out_min - -gi_marshalling_tests_int64_inout_max_min -gi_marshalling_tests_int64_inout_min_max - - -gi_marshalling_tests_uint64_return - -gi_marshalling_tests_uint64_in - -gi_marshalling_tests_uint64_out -gi_marshalling_tests_uint64_inout - - -gi_marshalling_tests_short_return_max -gi_marshalling_tests_short_return_min - -gi_marshalling_tests_short_in_max -gi_marshalling_tests_short_in_min - -gi_marshalling_tests_short_out_max -gi_marshalling_tests_short_out_min - -gi_marshalling_tests_short_inout_max_min -gi_marshalling_tests_short_inout_min_max - - -gi_marshalling_tests_ushort_return - -gi_marshalling_tests_ushort_in - -gi_marshalling_tests_ushort_out -gi_marshalling_tests_ushort_inout - - -gi_marshalling_tests_int_return_max -gi_marshalling_tests_int_return_min - -gi_marshalling_tests_int_in_max -gi_marshalling_tests_int_in_min - -gi_marshalling_tests_int_out_max -gi_marshalling_tests_int_out_min - -gi_marshalling_tests_int_inout_max_min -gi_marshalling_tests_int_inout_min_max - - -gi_marshalling_tests_uint_return - -gi_marshalling_tests_uint_in - -gi_marshalling_tests_uint_out -gi_marshalling_tests_uint_inout - - -gi_marshalling_tests_long_return_max -gi_marshalling_tests_long_return_min - -gi_marshalling_tests_long_in_max -gi_marshalling_tests_long_in_min - -gi_marshalling_tests_long_out_max -gi_marshalling_tests_long_out_min - -gi_marshalling_tests_long_inout_max_min -gi_marshalling_tests_long_inout_min_max - - -gi_marshalling_tests_ulong_return - -gi_marshalling_tests_ulong_in - -gi_marshalling_tests_ulong_out -gi_marshalling_tests_ulong_inout - - -gi_marshalling_tests_ssize_return_max -gi_marshalling_tests_ssize_return_min - -gi_marshalling_tests_ssize_in_max -gi_marshalling_tests_ssize_in_min - -gi_marshalling_tests_ssize_out_max -gi_marshalling_tests_ssize_out_min - -gi_marshalling_tests_ssize_inout_max_min -gi_marshalling_tests_ssize_inout_min_max - - -gi_marshalling_tests_size_return - -gi_marshalling_tests_size_in - -gi_marshalling_tests_size_out -gi_marshalling_tests_size_inout -gi_marshalling_tests_float_return - -gi_marshalling_tests_float_in - -gi_marshalling_tests_float_out - -gi_marshalling_tests_float_inout - - -gi_marshalling_tests_double_return - -gi_marshalling_tests_double_in - -gi_marshalling_tests_double_out - -gi_marshalling_tests_double_inout - -gi_marshalling_tests_time_t_return - -gi_marshalling_tests_time_t_in - -gi_marshalling_tests_time_t_out - -gi_marshalling_tests_time_t_inout - -gi_marshalling_tests_gtype_return - -gi_marshalling_tests_gtype_string_return - -gi_marshalling_tests_gtype_in - -gi_marshalling_tests_gtype_string_in - -gi_marshalling_tests_gtype_out - -gi_marshalling_tests_gtype_string_out - -gi_marshalling_tests_gtype_inout - -gi_marshalling_tests_utf8_none_return -gi_marshalling_tests_utf8_full_return - -gi_marshalling_tests_utf8_none_in -gi_marshalling_tests_utf8_none_out -gi_marshalling_tests_utf8_full_out - -gi_marshalling_tests_utf8_dangling_out - -gi_marshalling_tests_utf8_none_inout -gi_marshalling_tests_utf8_full_inout -gi_marshalling_tests_utf8_as_uint8array_in - -gi_marshalling_tests_filename_list_return - - -gi_marshalling_tests_enum_returnv - -gi_marshalling_tests_enum_in - -gi_marshalling_tests_enum_out - -gi_marshalling_tests_enum_inout - - -gi_marshalling_tests_genum_get_type -gi_marshalling_tests_genum_returnv - -gi_marshalling_tests_genum_in - -gi_marshalling_tests_genum_out - -gi_marshalling_tests_genum_inout - -gi_marshalling_tests_flags_get_type - -gi_marshalling_tests_flags_returnv - -gi_marshalling_tests_flags_in -gi_marshalling_tests_flags_in_zero - -gi_marshalling_tests_flags_out - -gi_marshalling_tests_flags_inout - -gi_marshalling_tests_no_type_flags_returnv - -gi_marshalling_tests_no_type_flags_in -gi_marshalling_tests_no_type_flags_in_zero - -gi_marshalling_tests_no_type_flags_out - -gi_marshalling_tests_no_type_flags_inout - -gi_marshalling_tests_init_function - -gi_marshalling_tests_array_fixed_int_return -gi_marshalling_tests_array_fixed_short_return - -gi_marshalling_tests_array_fixed_int_in -gi_marshalling_tests_array_fixed_short_in - -gi_marshalling_tests_array_fixed_out - -gi_marshalling_tests_array_fixed_out_struct - -gi_marshalling_tests_array_fixed_inout - -gi_marshalling_tests_array_in_nonzero_nonlen - -gi_marshalling_tests_array_return -gi_marshalling_tests_array_return_etc - -gi_marshalling_tests_array_in -gi_marshalling_tests_array_in_len_before -gi_marshalling_tests_array_in_len_zero_terminated -gi_marshalling_tests_array_string_in -gi_marshalling_tests_array_uint8_in -gi_marshalling_tests_array_struct_in -gi_marshalling_tests_array_struct_take_in -gi_marshalling_tests_array_struct_value_in -gi_marshalling_tests_array_simple_struct_in -gi_marshalling_tests_multi_array_key_value_in -gi_marshalling_tests_array_enum_in -gi_marshalling_tests_array_in_guint64_len -gi_marshalling_tests_array_in_guint8_len - -gi_marshalling_tests_array_out -gi_marshalling_tests_array_out_etc - -gi_marshalling_tests_array_inout -gi_marshalling_tests_array_inout_etc - - -gi_marshalling_tests_array_zero_terminated_return -gi_marshalling_tests_array_zero_terminated_return_null -gi_marshalling_tests_array_zero_terminated_return_struct - -gi_marshalling_tests_array_zero_terminated_in - -gi_marshalling_tests_array_zero_terminated_out - -gi_marshalling_tests_array_zero_terminated_inout - -gi_marshalling_tests_array_gvariant_none_in - -gi_marshalling_tests_array_gvariant_container_in - -gi_marshalling_tests_array_gvariant_full_in - - -gi_marshalling_tests_garray_int_none_return -gi_marshalling_tests_garray_uint64_none_return -gi_marshalling_tests_garray_utf8_none_return -gi_marshalling_tests_garray_utf8_container_return -gi_marshalling_tests_garray_utf8_full_return - -gi_marshalling_tests_garray_int_none_in -gi_marshalling_tests_garray_uint64_none_in -gi_marshalling_tests_garray_utf8_none_in - -gi_marshalling_tests_garray_utf8_none_out -gi_marshalling_tests_garray_utf8_container_out -gi_marshalling_tests_garray_utf8_full_out -gi_marshalling_tests_garray_utf8_full_out_caller_allocated - -gi_marshalling_tests_garray_utf8_none_inout -gi_marshalling_tests_garray_utf8_container_inout -gi_marshalling_tests_garray_utf8_full_inout - - -gi_marshalling_tests_gptrarray_utf8_none_return -gi_marshalling_tests_gptrarray_utf8_container_return -gi_marshalling_tests_gptrarray_utf8_full_return - -gi_marshalling_tests_gptrarray_utf8_none_in - -gi_marshalling_tests_gptrarray_utf8_none_out -gi_marshalling_tests_gptrarray_utf8_container_out -gi_marshalling_tests_gptrarray_utf8_full_out - -gi_marshalling_tests_gptrarray_utf8_none_inout -gi_marshalling_tests_gptrarray_utf8_container_inout -gi_marshalling_tests_gptrarray_utf8_full_inout - - -gi_marshalling_tests_bytearray_full_return -gi_marshalling_tests_bytearray_none_in - - -gi_marshalling_tests_gstrv_return -gi_marshalling_tests_gstrv_in -gi_marshalling_tests_gstrv_out -gi_marshalling_tests_gstrv_inout - - - -gi_marshalling_tests_glist_int_none_return -gi_marshalling_tests_glist_uint32_none_return -gi_marshalling_tests_glist_utf8_none_return -gi_marshalling_tests_glist_utf8_container_return -gi_marshalling_tests_glist_utf8_full_return - -gi_marshalling_tests_glist_int_none_in -gi_marshalling_tests_glist_uint32_none_in -gi_marshalling_tests_glist_utf8_none_in - -gi_marshalling_tests_glist_utf8_none_out -gi_marshalling_tests_glist_utf8_container_out -gi_marshalling_tests_glist_utf8_full_out - -gi_marshalling_tests_glist_utf8_none_inout -gi_marshalling_tests_glist_utf8_container_inout -gi_marshalling_tests_glist_utf8_full_inout - - - -gi_marshalling_tests_gslist_int_none_return -gi_marshalling_tests_gslist_utf8_none_return -gi_marshalling_tests_gslist_utf8_container_return -gi_marshalling_tests_gslist_utf8_full_return - -gi_marshalling_tests_gslist_int_none_in -gi_marshalling_tests_gslist_utf8_none_in - -gi_marshalling_tests_gslist_utf8_none_out -gi_marshalling_tests_gslist_utf8_container_out -gi_marshalling_tests_gslist_utf8_full_out - -gi_marshalling_tests_gslist_utf8_none_inout -gi_marshalling_tests_gslist_utf8_container_inout -gi_marshalling_tests_gslist_utf8_full_inout - - - -gi_marshalling_tests_ghashtable_int_none_return -gi_marshalling_tests_ghashtable_utf8_none_return -gi_marshalling_tests_ghashtable_utf8_container_return -gi_marshalling_tests_ghashtable_utf8_full_return - -gi_marshalling_tests_ghashtable_int_none_in -gi_marshalling_tests_ghashtable_utf8_none_in - -gi_marshalling_tests_ghashtable_utf8_none_out -gi_marshalling_tests_ghashtable_utf8_container_out -gi_marshalling_tests_ghashtable_utf8_full_out - -gi_marshalling_tests_ghashtable_utf8_none_inout -gi_marshalling_tests_ghashtable_utf8_container_inout -gi_marshalling_tests_ghashtable_utf8_full_inout - -gi_marshalling_tests_gvalue_return - -gi_marshalling_tests_gvalue_in -gi_marshalling_tests_gvalue_in_with_type -gi_marshalling_tests_gvalue_int64_in -gi_marshalling_tests_gvalue_int64_out - -gi_marshalling_tests_gvalue_in_enum - -gi_marshalling_tests_gvalue_out -gi_marshalling_tests_gvalue_out_caller_allocates - -gi_marshalling_tests_gvalue_inout - -gi_marshalling_tests_gvalue_flat_array - -gi_marshalling_tests_return_gvalue_flat_array - -gi_marshalling_tests_gvalue_flat_array_round_trip -gi_marshalling_tests_gclosure_in -gi_marshalling_tests_gclosure_return - - -gi_marshalling_tests_callback_return_value_only - - -gi_marshalling_tests_callback_one_out_parameter - - -gi_marshalling_tests_callback_multiple_out_parameters - - -gi_marshalling_tests_callback_return_value_and_one_out_parameter - -gi_marshalling_tests_callback_return_value_and_multiple_out_parameters -gi_marshalling_tests_pointer_in_return - - -gi_marshalling_tests_simple_struct_returnv - -gi_marshalling_tests_simple_struct_inv - -gi_marshalling_tests_simple_struct_method - -gi_marshalling_tests_pointer_struct_get_type - -gi_marshalling_tests_pointer_struct_returnv - -gi_marshalling_tests_pointer_struct_inv - -gi_marshalling_tests_boxed_struct_get_type - -gi_marshalling_tests_boxed_struct_new - -gi_marshalling_tests_boxed_struct_returnv - -gi_marshalling_tests_boxed_struct_inv - -gi_marshalling_tests_boxed_struct_out - -gi_marshalling_tests_boxed_struct_inout -gi_marshalling_tests_union_get_type - -gi_marshalling_tests_union_returnv - -gi_marshalling_tests_union_inv - - -gi_marshalling_tests_union_method -gi_marshalling_tests_object_get_type -gi_marshalling_tests_object_static_method -gi_marshalling_tests_object_method -gi_marshalling_tests_object_overridden_method -gi_marshalling_tests_object_new - -gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_none -gi_marshalling_tests_object_get_ref_info_for_vfunc_return_object_transfer_full -gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_none -gi_marshalling_tests_object_get_ref_info_for_vfunc_out_object_transfer_full -gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_none -gi_marshalling_tests_object_get_ref_info_for_vfunc_in_object_transfer_full - -gi_marshalling_tests_object_method_array_in -gi_marshalling_tests_object_method_array_out -gi_marshalling_tests_object_method_array_inout -gi_marshalling_tests_object_method_array_return - -gi_marshalling_tests_object_method_int8_in -gi_marshalling_tests_object_method_int8_out -gi_marshalling_tests_object_method_int8_arg_and_out_caller -gi_marshalling_tests_object_method_int8_arg_and_out_callee -gi_marshalling_tests_object_method_str_arg_out_ret -gi_marshalling_tests_object_method_with_default_implementation -;gi_marshalling_tests_object_method_variant_array_in ;unimplemented - -gi_marshalling_tests_object_vfunc_return_value_only -gi_marshalling_tests_object_vfunc_one_out_parameter -gi_marshalling_tests_object_vfunc_multiple_out_parameters -gi_marshalling_tests_object_vfunc_caller_allocated_out_parameter -gi_marshalling_tests_object_vfunc_array_out_parameter -gi_marshalling_tests_object_vfunc_return_value_and_one_out_parameter -gi_marshalling_tests_object_vfunc_return_value_and_multiple_out_parameters -gi_marshalling_tests_object_vfunc_meth_with_error - -gi_marshalling_tests_object_none_return -gi_marshalling_tests_object_full_return - -gi_marshalling_tests_object_none_in - - -gi_marshalling_tests_object_none_out -gi_marshalling_tests_object_full_out - -gi_marshalling_tests_object_none_inout -gi_marshalling_tests_object_full_inout - -gi_marshalling_tests_object_int8_in -gi_marshalling_tests_object_int8_out - -gi_marshalling_tests_object_vfunc_with_callback -gi_marshalling_tests_object_call_vfunc_with_callback - - - - -gi_marshalling_tests_sub_object_get_type - -gi_marshalling_tests_sub_object_sub_method -gi_marshalling_tests_sub_object_overwritten_method -gi_marshalling_tests_sub_sub_object_get_type -gi_marshalling_tests_interface_get_type - -gi_marshalling_tests_interface_test_int8_in - -gi_marshalling_tests_test_interface_test_int8_in - -gi_marshalling_tests_interface2_get_type - - -gi_marshalling_tests_int_out_out -gi_marshalling_tests_int_three_in_three_out -gi_marshalling_tests_int_return_out - - -gi_marshalling_tests_gerror -gi_marshalling_tests_gerror_array_in -gi_marshalling_tests_gerror_out -gi_marshalling_tests_gerror_out_transfer_none -gi_marshalling_tests_gerror_return - -gi_marshalling_tests_overrides_struct_get_type - -gi_marshalling_tests_overrides_struct_new - -gi_marshalling_tests_overrides_struct_method - -gi_marshalling_tests_overrides_struct_returnv -gi_marshalling_tests_overrides_object_get_type - -gi_marshalling_tests_overrides_object_new - -gi_marshalling_tests_overrides_object_method - -gi_marshalling_tests_overrides_object_returnv -gi_marshalling_tests_properties_object_get_type -gi_marshalling_tests_properties_object_new -gi_marshalling_tests_interface3_get_type -gi_marshalling_tests_interface3_test_variant_array_in - -gi_marshalling_tests_param_spec_return -gi_marshalling_tests_param_spec_out -gi_marshalling_tests_param_spec_in_bool - -gi_marshalling_tests_gbytes_full_return -gi_marshalling_tests_gbytes_none_in - -gi_marshalling_tests_int_two_in_utf8_two_in_with_allow_none -gi_marshalling_tests_int_one_in_utf8_two_in_one_allows_none -gi_marshalling_tests_array_in_utf8_two_in -gi_marshalling_tests_array_in_utf8_two_in_out_of_order diff --git a/build/win32/gtkfrob.def b/build/win32/gtkfrob.def deleted file mode 100644 index 79dce040..00000000 --- a/build/win32/gtkfrob.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS -gtk_frob_language_manager_get_default diff --git a/build/win32/sletter.def b/build/win32/sletter.def deleted file mode 100644 index a4a547e8..00000000 --- a/build/win32/sletter.def +++ /dev/null @@ -1,4 +0,0 @@ -EXPORTS -s_hello -s_spawn_error_quark -s_dbus_error_quark diff --git a/build/win32/testinherit.def b/build/win32/testinherit.def deleted file mode 100644 index 8881dab7..00000000 --- a/build/win32/testinherit.def +++ /dev/null @@ -1,6 +0,0 @@ -EXPORTS -regress_test_inherit_drawable_get_type -regress_test_inherit_drawable_do_foo -regress_test_inherit_drawable_get_origin -regress_test_inherit_drawable_get_size -regress_test_inherit_drawable_do_foo_maybe_throw diff --git a/build/win32/utility.def b/build/win32/utility.def deleted file mode 100644 index e0614fe6..00000000 --- a/build/win32/utility.def +++ /dev/null @@ -1,4 +0,0 @@ -EXPORTS -utility_object_get_type -utility_object_watch_dir -utility_dir_foreach diff --git a/configure.ac b/configure.ac index b863220a..5add902e 100644 --- a/configure.ac +++ b/configure.ac @@ -291,6 +291,39 @@ AM_CONDITIONAL(WITH_GLIBSRC, test x"$GLIBSRC" != x) AC_SUBST(GLIBSRC) AC_MSG_RESULT([$GLIBSRC]) +dnl +dnl Check for -fvisibility=hidden to determine if we can do GNU-style +dnl visibility attributes for symbol export control +dnl +GI_HIDDEN_VISIBILITY_CFLAGS="" +case "$host" in + *-*-mingw*) + dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport) + AC_DEFINE([_GI_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern], + [defines how to decorate public symbols while building]) + CFLAGS="${CFLAGS} -fvisibility=hidden" + ;; + *) + dnl on other compilers, check if we can do -fvisibility=hidden + SAVED_CFLAGS="${CFLAGS}" + CFLAGS="-fvisibility=hidden" + AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) + AC_TRY_COMPILE([], [int main (void) { return 0; }], + AC_MSG_RESULT(yes) + enable_fvisibility_hidden=yes, + AC_MSG_RESULT(no) + enable_fvisibility_hidden=no) + CFLAGS="${SAVED_CFLAGS}" + + AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [ + AC_DEFINE([_GI_EXTERN], [__attribute__((visibility("default"))) extern], + [defines how to decorate public symbols while building]) + GI_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden" + ]) + ;; +esac +AC_SUBST(GI_HIDDEN_VISIBILITY_CFLAGS) + dnl dnl Check for -Bsymbolic-functions linker flag used to avoid dnl intra-library PLT jumps, if available. diff --git a/girepository/girepository.symbols b/girepository/girepository.symbols deleted file mode 100644 index 48fb0d90..00000000 --- a/girepository/girepository.symbols +++ /dev/null @@ -1,197 +0,0 @@ -g_arg_info_get_closure -g_arg_info_get_destroy -g_arg_info_get_direction -g_arg_info_get_ownership_transfer -g_arg_info_get_scope -g_arg_info_get_type -g_arg_info_is_caller_allocates -g_arg_info_is_optional -g_arg_info_is_return_value -g_arg_info_is_skip -g_arg_info_load_type -g_arg_info_may_be_null -g_base_info_equal -g_base_info_get_attribute -g_base_info_get_container -g_base_info_get_name -g_base_info_get_namespace -g_base_info_get_type -g_base_info_get_typelib -g_base_info_gtype_get_type -g_base_info_is_deprecated -g_base_info_iterate_attributes -g_base_info_ref -g_base_info_unref -g_info_new -g_callable_info_can_throw_gerror -g_callable_info_get_arg -g_callable_info_get_caller_owns -g_callable_info_get_instance_ownership_transfer -g_callable_info_get_n_args -g_callable_info_get_return_attribute -g_callable_info_get_return_type -g_callable_info_invoke -g_callable_info_iterate_return_attributes -g_callable_info_is_method -g_callable_info_load_arg -g_callable_info_load_return_type -g_callable_info_may_return_null -g_callable_info_skip_return -g_constant_info_free_value -g_constant_info_get_type -g_constant_info_get_value -g_enum_info_get_error_domain -g_enum_info_get_method -g_enum_info_get_n_methods -g_enum_info_get_n_values -g_enum_info_get_storage_type -g_enum_info_get_value -g_value_info_get_value -g_field_info_get_field -g_field_info_get_flags -g_field_info_get_offset -g_field_info_get_size -g_field_info_get_type -g_field_info_set_field -g_function_info_get_flags -g_function_info_get_property -g_function_info_get_symbol -g_function_info_get_vfunc -g_function_info_invoke -g_invoke_error_quark -g_interface_info_find_method -g_interface_info_find_signal -g_interface_info_find_vfunc -g_interface_info_get_constant -g_interface_info_get_iface_struct -g_interface_info_get_method -g_interface_info_get_n_constants -g_interface_info_get_n_methods -g_interface_info_get_n_prerequisites -g_interface_info_get_n_properties -g_interface_info_get_prerequisite -g_interface_info_get_n_signals -g_interface_info_get_n_vfuncs -g_interface_info_get_property -g_interface_info_get_signal -g_interface_info_get_vfunc -g_object_info_find_method -g_object_info_find_method_using_interfaces -g_object_info_find_signal -g_object_info_find_vfunc -g_object_info_find_vfunc_using_interfaces -g_object_info_get_abstract -g_object_info_get_class_struct -g_object_info_get_constant -g_object_info_get_field -g_object_info_get_fundamental -g_object_info_get_get_value_function -g_object_info_get_get_value_function_pointer -g_object_info_get_interface -g_object_info_get_method -g_object_info_get_n_constants -g_object_info_get_n_fields -g_object_info_get_n_interfaces -g_object_info_get_n_methods -g_object_info_get_n_properties -g_object_info_get_n_signals -g_object_info_get_n_vfuncs -g_object_info_get_parent -g_object_info_get_property -g_object_info_get_ref_function -g_object_info_get_ref_function_pointer -g_object_info_get_set_value_function -g_object_info_get_set_value_function_pointer -g_object_info_get_signal -g_object_info_get_type_init -g_object_info_get_type_name -g_object_info_get_unref_function -g_object_info_get_unref_function_pointer -g_object_info_get_vfunc -g_property_info_get_flags -g_property_info_get_ownership_transfer -g_property_info_get_type -g_registered_type_info_get_g_type -g_registered_type_info_get_type_init -g_registered_type_info_get_type_name -gi_cclosure_marshal_generic -g_irepository_dump -g_irepository_enumerate_versions -g_irepository_error_quark -g_irepository_find_by_error_domain -g_irepository_find_by_gtype -g_irepository_find_by_name -g_irepository_get_c_prefix -g_irepository_get_default -g_irepository_get_dependencies -g_irepository_get_info -g_irepository_get_loaded_namespaces -g_irepository_get_n_infos -g_irepository_get_option_group -g_irepository_get_search_path -g_irepository_get_shared_library -g_irepository_get_type -g_irepository_get_typelib_path -g_irepository_get_version -g_irepository_is_registered -g_irepository_load_typelib -g_irepository_prepend_library_path -g_irepository_prepend_search_path -g_irepository_require -g_irepository_require_private -gi_type_info_extract_ffi_return_value -gi_type_tag_get_ffi_type -g_callable_info_free_closure -g_callable_info_prepare_closure -g_function_info_prep_invoker -g_function_invoker_destroy -g_function_invoker_new_for_address -g_type_info_get_ffi_type -g_signal_info_get_class_closure -g_signal_info_get_flags -g_signal_info_true_stops_emit -g_struct_info_find_method -g_struct_info_get_alignment -g_struct_info_get_field -g_struct_info_get_method -g_struct_info_get_n_fields -g_struct_info_get_n_methods -g_struct_info_get_size -g_struct_info_is_foreign -g_struct_info_is_gtype_struct -g_type_info_is_pointer -g_type_info_is_zero_terminated -g_type_info_get_array_fixed_size -g_type_info_get_array_length -g_type_info_get_array_type -g_type_info_get_interface -g_type_info_get_param_type -g_type_info_get_tag -g_type_tag_to_string -g_info_type_to_string -g_typelib_check_sanity -g_typelib_error_quark -g_typelib_free -g_typelib_get_namespace -g_typelib_new_from_const_memory -g_typelib_new_from_mapped_file -g_typelib_new_from_memory -g_typelib_symbol -g_typelib_validate -g_union_info_find_method -g_union_info_get_alignment -g_union_info_get_discriminator -g_union_info_get_discriminator_offset -g_union_info_get_discriminator_type -g_union_info_get_field -g_union_info_get_method -g_union_info_get_n_fields -g_union_info_get_n_methods -g_union_info_get_size -g_union_info_is_discriminated -g_vfunc_info_get_address -g_vfunc_info_get_invoker -g_vfunc_info_get_flags -g_vfunc_info_get_offset -g_vfunc_info_get_signal -g_vfunc_info_invoke diff --git a/tests/Makefile.am b/tests/Makefile.am index 8bcf74ee..adeba760 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -6,7 +6,7 @@ EXTRA_DIST= BUILT_SOURCES= CLEANFILES= -AM_CFLAGS = $(GOBJECT_CFLAGS) +AM_CFLAGS = $(GOBJECT_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) LIBADD = $(GOBJECT_LIBS) testsdir = $(datadir)/gobject-introspection-1.0/tests diff --git a/tests/offsets/Makefile.am b/tests/offsets/Makefile.am index a3ec78b1..9608ad06 100644 --- a/tests/offsets/Makefile.am +++ b/tests/offsets/Makefile.am @@ -16,7 +16,7 @@ EXTRA_LTLIBRARIES += liboffsets.la liboffsets_la_SOURCES = \ offsets.h \ offsets.c -liboffsets_la_CPPFLAGS = $(GIREPO_CFLAGS) +liboffsets_la_CPPFLAGS = $(GIREPO_CFLAGS) $(GI_HIDDEN_VISIBILITY_CFLAGS) # dummy rpath to get built dynamically (huh?) liboffsets_la_LDFLAGS = -avoid-version -rpath $(libdir) -- cgit v1.2.1