void jb_main (int argc, char **argv, const char *package, const char *version, const char *human_package, const JBFeature **features, int num_features) { setlocale(LC_ALL, ""); g_log_set_fatal_mask(G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL); g_type_init(); jb_topsrcdir = g_get_current_dir(); jb_set_log_file("build/jb.log"); jb_variable_init(); jb_compile_options = jb_compile_options_new("package"); jb_feature_set_list(features, num_features); /* these flags are needed by the JB GOB2 build mechanism */ jb_compile_options_add_gob2flags(jb_compile_options, "--always-private-header --no-touch"); jb_variable_set_string("package", package); jb_variable_set_string("version", version); jb_variable_set_string("human-package", human_package); jb_variable_add_string("cc", "C compiler command", jb_variable_group_compiler_options, 0, "cc"); jb_variable_add_string("cflags", "C compiler flags", jb_variable_group_compiler_options, 0, "-O2"); jb_variable_add_string("cppflags", "C preprocessor flags", jb_variable_group_compiler_options, 0, NULL); jb_variable_add_string("ldflags", "C linker flags", jb_variable_group_compiler_options, 0, NULL); jb_variable_add_string("libs", "C -l flags", jb_variable_group_compiler_options, 0, NULL); jb_variable_add_bool("cc-dependency-tracking", "enable C compiler dependency tracking", jb_variable_group_compiler_options, 0, TRUE); jb_variable_add_string("destdir", "destination directory", jb_variable_group_installation_options, 0, NULL); jb_variable_add_string("prefix", "installation prefix", jb_variable_group_installation_options, 0, "/usr/local"); jb_variable_add_string("bindir", "user executables directory", jb_variable_group_installation_options, 0, "$prefix/bin"); jb_variable_add_string("libdir", "shared libraries directory", jb_variable_group_installation_options, 0, "$prefix/lib"); jb_variable_add_string("libexecdir", "private executables directory", jb_variable_group_installation_options, 0, "$prefix/libexec"); jb_variable_add_string("datadir", "read-only architecture-independent data directory", jb_variable_group_installation_options, 0, "$prefix/share"); jb_variable_add_string("sysconfdir", "per-machine configuration directory", jb_variable_group_installation_options, 0, "$prefix/etc"); jb_variable_add_string("localstatedir", "per-machine state directory", jb_variable_group_installation_options, 0, "$prefix/var"); jb_variable_set_string("pkglibdir", "$libdir/$package"); jb_variable_set_string("pkgdatadir", "$datadir/$package"); jb_variable_set_string("pkgsysconfdir", "$sysconfdir/$package"); jb_variable_add_mode("data-mode", "data file permissions (octal)", jb_variable_group_installation_options, 0, 0644); jb_variable_add_string("data-owner", "data file owner", jb_variable_group_installation_options, 0, NULL); jb_variable_add_string("data-group", "data file group", jb_variable_group_installation_options, 0, NULL); jb_variable_add_mode("program-mode", "program file permissions (octal)", jb_variable_group_installation_options, 0, 0755); jb_variable_add_string("program-owner", "program file owner", jb_variable_group_installation_options, 0, NULL); jb_variable_add_string("program-group", "program file group", jb_variable_group_installation_options, 0, NULL); jb_variable_add_mode("library-mode", "library file permissions (octal)", jb_variable_group_installation_options, 0, 0644); jb_variable_add_string("library-owner", "library file owner", jb_variable_group_installation_options, 0, NULL); jb_variable_add_string("library-group", "library file group", jb_variable_group_installation_options, 0, NULL); jb_feature_init(); jb_package_init(); parse_args(argc, argv); }
void jb_package_add_resources (void) { JBGroup *group; JBObject *object; if (jb_variable_get_bool("compile-warnings")) jb_compile_options_add_cflags(&jb_compile_options, LM_WARNING_CFLAGS " -Werror"); if (! jb_variable_get_bool("debug")) jb_compile_options_add_cflags(&jb_compile_options, "-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"); jb_compile_options_add_gob2flags(&jb_compile_options, "--exit-on-warn"); /*** art *******************************************************************/ group = jb_group_new("art"); jb_group_add_data_file(group, "link-monitor-applet.png", "$datadir/pixmaps"); if (jb_variable_get_bool("geoip")) jb_group_add_data_files_pattern(group, "flags/*.svg", "$pkgdatadir/flags"); jb_group_add(group); /*** data ******************************************************************/ group = jb_group_new("data"); jb_group_add_resource(group, JB_GROUP_RESOURCE(jb_template_new("LinkMonitorApplet.panel-applet.in.in"))); jb_group_add_panel_applet(group, "LinkMonitorApplet.panel-applet.in"); jb_group_add_resource(group, JB_GROUP_RESOURCE(jb_template_new("LinkMonitorApplet.service.in.in"))); jb_group_add_dbus_service(group, "LinkMonitorApplet.service.in"); jb_group_add_gconf_schemas(group, "link-monitor-applet.schemas.in"); jb_group_add(group); /*** help ******************************************************************/ group = jb_group_new("help"); jb_group_add_resource(group, JB_GROUP_RESOURCE(jb_gnome_help_new("C", "documentation-license.xml software-license.xml"))); jb_group_add(group); /*** jbsrc *****************************************************************/ group = jb_group_new("jbsrc"); jb_group_add_dist_files(group, "lm-gdk-pixbuf-loader-test.c", "lm-glibc-test.c", NULL); jb_group_add(group); /*** po ********************************************************************/ group = jb_group_new("po"); jb_group_add_translations(group, "bg fr it"); jb_group_add(group); /*** src *******************************************************************/ group = jb_group_new("src"); object = JB_OBJECT(jb_program_new("link-monitor-applet")); jb_install_options_set_installdir(&object->install_options, "$libexecdir"); if (jb_variable_get_bool("suid-root")) { jb_install_options_set_owner(&object->install_options, "root"); jb_install_options_set_extra_mode(&object->install_options, S_ISUID); } jb_compile_options_add_string_defines(&object->compile_options, "PACKAGE", "$package", "VERSION", "$version", "GETTEXT_PACKAGE", "$package", "PREFIX", "$prefix", "SYSCONFDIR", "$sysconfdir", "DATADIR", "$datadir", "PKGDATADIR", "$pkgdatadir", "LIBDIR", "$libdir", "GNOMELOCALEDIR", "$datadir/locale", "GNOMEPIXMAPSDIR", "$datadir/pixmaps", NULL); /* * We need --export-dynamic because because libglade needs to * resolve symbols from our own binary in order to autoconnect * signal handlers. */ jb_compile_options_add_ldflags(&object->compile_options, "-Wl,--export-dynamic"); jb_compile_options_add_ldflags(&object->compile_options, "-lm"); jb_compile_options_add_package(&object->compile_options, "glibc"); jb_compile_options_add_ldflags(&object->compile_options, "$clock-gettime-ldflags"); jb_compile_options_add_package(&object->compile_options, "gettext"); jb_compile_options_add_package(&object->compile_options, "gnome"); if (jb_variable_get_bool("geoip")) jb_compile_options_add_package(&object->compile_options, "geoip"); jb_object_add_sources(object, "LM:About:Dialog", "LM:Applet", "LM:Bar:Graph", "LM:Cell:Renderer:Color", "LM:Data:Set", "LM:Dialog", "LM:Framed:Image", "LM:Host", "LM:Host:Frontend", "LM:Host:View", "LM:Line:Graph", "LM:Line:Graph:Icon", "LM:Preferences:Dialog", "LM:Shell", "LM:Tooltips", "lm-color-generator", "lm-decls.h", "lm-icmp", "lm-main.c", "lm-non-linear-range", "lm-util", NULL); jb_group_add_resource(group, JB_GROUP_RESOURCE(object)); jb_group_add(group); /*** ui ********************************************************************/ group = jb_group_new("ui"); jb_group_add_data_files(group, "preferences-dialog.ui", "$pkgdatadir", "lm-style.css", "$pkgdatadir", "GNOME_LinkMonitorApplet.xml", "$datadir/gnome-2.0/ui", NULL); jb_group_add(group); }