Skip to content

Home News Screenshots Wiki Themes Bugtracker Members Logos Search
  You are not logged in Link icon Log in Link icon Join
You are here: Home » PicoGUI Wiki » BuildingAndConfiguring » wikipage_view

Log in
 

BuildingAndConfiguring

Note
This documentation is a little out of date. Any volunteers to update it?

There are a number of packages involved in PicoGUI. For most users, you'll want to build pgserver, cli_c, and a few programs from apps or even ports. In general, C programs depend on cli_c being built and installed while Perl programs will require cli_perl.

See also BuildingWithMinGW if you want to run a suitably defenestratable build.

  • Building and configuring pgserver
    • Prerequisites: JPEG and SDL libraries including headers. Can be disabled.
    • Prepare the environment by running ''./autogen.sh'' if you downloaded PicoGUI from CVS.
    • Run ''./configure'' to create the makefiles. There are some important ConfigurationOptions you might want to set. You might also consider how to set up the server for a CrossCompilation?.
    • Run ''make menuconfig'' and choose how to set your server up. Important settings:
      • Target system
        • ''Use UNIX sockets instead of TCP/IP'' If you select this, you must also specify ''--enable-unix-sockets'' when running configure for cli_c.
      • Debugging
        • ''Electric Fence malloc debugging'' Disable this if you don't have Electric Fence installed.
      • Fonts
        • ''Fixed 13 ja (Japanese Unicode)'' This font is ''huge''. Do not select it unless you intend to work on PicoGUI's Unicode support.
      • Input Drivers
        • ''Touchscreen calibration'' Enable this if you intend to use a touchscreen. So far only the Palmax driver uses this, and you won't be able to select that driver without enabling touchscreen calibration.
    • Build the pgserver with ''make''. You may run into errors with undefined references to something_regfunc; this is generally because of cross-dependencies between input and output drivers (for instance, ncurses, X11 and SDL all have one driver of each type - both must be enabled together).
    • Optionally, install with ''make install''. You can also run pgserver in place; it has no external dependencies, and can be told where to find its configuration using the flag ''-c pgserver.conf''.
    • NOTE: Now that cli_c and themetools don't have their own copy of the picogui headers, you'll need to install pgserver or just copy the headers to /usr/local/include to compile cli_c and themetools. There are probably some ./configure settings to work around this but MicahDowty? sucks at build systems...
    • Write an appropriate [pgserver.conf]?
  • Building and installing the C client library (cli_c)
    • Prepare the environment using ''./autogen.sh'' (only for code from CVS) .
    • Generate the makefiles using ''./configure''. Remember to add the option ''--enable-unix-sockets'' if you enabled them in the server, as the current version only supports either one or the other. You can use the CrossCompilation? options used for the server to configure the client.
    • Build the library by running ''make''
    • Install it by running ''make install'' as root.
    • Make sure that the library can be found:
      • Verify that /usr/local/lib is listed in /etc/ld.so.conf
      • Run ldconfig
  • Building and installing the theme file utilities (themetools)
    • Prepare the environment using ''./autogen.sh'' (only for code from CVS) .
    • Generate the makefiles using ''./configure''. If you want support for compiling OpenGL themes, you need to have the OpenGL headers installed, and add the ''--enable-opengl'' flag to ''./configure''.
    • Build the tools with ''make''
    • Install it by running ''make install'' as root.
    • You should now have ''themec'' and ''thdump'' binaries on your system (''themec'' works wrong on ARM)