Chapter 3. Build Framework

If you are coding your extension in C, you will have to build it at some point; this chapter will detail a simple way to do so. If you are coding your extension in Python, you can skip this chapter entirely.

To avoid autoconf/automake hell, you could simply code your extension in the existing epiphany-extensions framework (download the source from http://projects.gnome.org/epiphany/extensions.html). To do so:

  1. Run epiphany-extensions/tools/copy-template foo. This will copy the sample template into a new subdirectory in epiphany-extensions/extensions/.

  2. Edit epiphany-extensions/extensions/Makefile.am and add your SUBDIRS entry:

    if ENABLE_FOO_EXTENSION
    SUBDIRS += foo
    endif

    Also, add your extension to the end of the DIST_SUBDIRS line.

  3. Edit epiphany-extensions/configure.ac to add your own extension:

    • Add a line near the similar existing ones:

      AM_CONDITIONAL(ENABLE_FOO_EXTENSION, echo "$extensions" | egrep '(^|,)foo($|,)' > /dev/null)
    • Add extensions/foo/Makefile to the AC_OUTPUT call.

    • Add your extension to the all_extensions= line.

  4. If your extension will include strings which should be translated, edit epiphany-extensions/po/POTFILES.in and add extensions/foo/ephy-foo-extension.c. (No, the filename is not important.)

  5. Edit epiphany-extensions/extensions/foo/foo.xml.in.in to describe your extension.

Now all work will take place in the epiphany-extensions/extensions/foo/ directory. After coding is finished, run ./autogen.sh --enable-debug --enable-extensions=foo in the epiphany-extensions/ directory, then make and make install as root.