Exemple #1
0
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);
}
Exemple #2
0
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);
}