Add install target for Fremantle Xsession.post script to Makefile
Refactor configuration Most of the code for loading configuration from the config file was being duplicated between the UI and the main browser-switchboard code; also, the forthcoming command-line configuration tool should share the code for loading and saving configuration with the UI. Therefore, move code for loading and saving configuration information into functions generic enough to be shared between the UIs and browser-switchboard.
Revert "Make startup notification work for MicroB menu entry" This behaves very badly if you try to use the MicroB menu entry while MicroB is already open (a new MicroB will open after you close the MicroB). This reverts commit 846e68b8ffa979d30ed331c43020212ffdee2bf2.
Make startup notification work for MicroB menu entry To have working startup notification, we have to provide a D-Bus service with a top_application method; hildon-desktop will then use that to launch the application instead of invoking the binary directly. Co-opt the org.maemo.garage.browser_switchboard name previously used for locking for this (replacing a - with a _ to get around D-Bus naming restrictions). While we're at it, remove the non-standard switchboard_launch_microb method from the com.nokia.osso_browser interface we implement, instead providing a launch_microb method in our own interface.
Link binaries with -Wl,--as-needed to reduce library dependencies Using pkg-config --libs to get library link lines has the disadvantage of bringing in many more library dependencies than actually necessary, since that assumes that dependencies of libraries need to be specified explicitly at link time (even when the library is itself linked against those dependencies). Using GNU ld's --as-needed option causes these unnecessary dependencies to be omitted from the binary. --as-needed needs to be specified after all the objects to be linked into the binary and before the libraries, so some reordering of the link command line is needed.
Fix Makefile install targets The overhaul of the Makefile targets broke the dependencies of the install targets; fix this (along with a broken strip target in config-ui/Makefile).
Fix Makefile clean targets Since we have a list of objects that we build already, use that in the clean targets instead of *.o. This fixes the config-ui Makefile clean target, which was potentially missing ../configfile.plugin.o.
Update build system As currently set up, it takes far too much external knowledge to generate builds for Fremantle (a set of EXTRA_CPPFLAGS as well as EXTRA_LDFLAGS); this is because the Makefiles were originally written when there was only one target system (Diablo). To fix this, provide new "diablo" and "fremantle" targets that can be used to build the appropriate browser-switchboard without further configuration, and make the "all" target print out a help message. For the config UI, provide new "fremantle-hildon-app" and "fremantle-plugin" targets, and rename the existing targets to "diablo-hildon-app" and "diablo-plugin" to match.
Make "Web" menu entry and /usr/bin/browser open the default browser Currently, no matter what the default browser is set to, the "Web" menu entry opens MicroB, and running /usr/bin/browser does the same. This is done to make sure that there's always a way of opening MicroB regardless of the default browser setting. However, this behavior would seem to be less than intuitive (why does the entry marked "Web" not open the default browser? on Diablo, why do the Web sidebar panel and Web menu entry do completely different things?). Therefore, do the following: * Make the top_application method in the D-Bus interface open the default browser, not MicroB, and therefore make the "Web" menu entry open the default browser. * Ship a new microb.desktop file which provides a MicroB menu entry that launches MicroB. * Rename the existing /usr/bin/browser script to /usr/bin/microb. * Ship a new /usr/bin/browser script which launches the default browser. This has one primary disadvantage: none of the standard methods of launching a browser on Maemo can be guaranteed to bring up MicroB (with the old behavior, invoking /usr/bin/browser was guaranteed to bring up MicroB, just as if Browser Switchboard weren't installed).
Convert existing code to use the new logging infrastructure
Add support for EXTRA_CPPFLAGS/EXTRA_LDFLAGS in Makefiles
Support EXTRA_CFLAGS in Makefiles This makes it possible to specify additional CFLAGS at build time.
Make the default prefix /usr We're already assuming this in several places, and it's too much work to make those files autogenerated when no one's going to use that feature.
mkdir all the directories to which we install files, not just some of them
Remove the N8x0-specific CFLAGS These should move to packaging.
Initial refactor of config file handling Move the config file locating code, the location #defines, and the parsing regexes into new files, so that they can be shared by the config UI.
Make "make install" install the /usr/bin/browser wrapper and dbus service too
Remove a redundant -Wall from CPPFLAGS
Commit a plain C reimplementation of browser-switchboard The C implementation has a ~2 second startup time advantage over the Python version, very noticeable when continuous_mode is disabled. For now, the config file format is incompatible with the Python implementation.