# $Id$ # See also - file INSTALL has further notes about some of the parameters # in this file ##################### ### documentation ### ##################### # setting this to 1 makes the default docs dir include the current version no. DOCS_VERSION ?= 0 #the name of the default main-user-guide document HELPDOC ?= USAGE #the name of the default configuration help document CONFIGDOC ?= CONFIGURATION #################### ### misc options ### #################### #install desktop environment integration files XDG_INTEGRATION ?= 1 # gettext/internationalisation support # (is automatically turned off if you don't have gettext) I18N ?= 1 # setting this to 1 makes the default file-pane layout "horizontal" PANES_HORIZONTAL ?= 0 # setting this to 1 enables setting window-transparency for e2 # (i.e. independent of window-manager settings) # ignored unless built for gtk >= 2.12, so also need USE_LATEST=1 WITH_TRANSPARENCY ?= 0 # GLib and GTK+ by default assume that filenames are # encoded in utf-8 (or ascii which is compatible with utf-8). # The default value 0 supports on-demand conversion of # path/filename strings not in utf-8/ascii, but if you don't # need that, then setting it to 1 omits the conversions, # resulting in smaller code and faster operation # NOTE if you use names with non-utf-8 / non-ascii characters # (e.g. with german umlauts), you should also have set the # environment variable G_FILENAME_ENCODING and/or # G_BROKEN_FILENAMES. The INSTALL document has more # information on this. # UPDATE # this is deprecated. From 0.6.0, on-demand conversion always happens FILES_UTF8ONLY ?= 0 # setting this to 1 provides support for assistive-technologies, to facilitate # operation by users with impaired sense(s). Not yet fully implemented WITH_ASSIST ?= 0 # See comments in file INSTALL about the merits of various file-alteration # monitors which may be enabled by the following options. # setting this to 1 provides support for file-change monitoring using kernel # infrastructure if that's available, or normal polling if not available # NOTE only linux is supported at this time # kqueue-usage (on bsd) has been coded but not tested # (volunteer needed to test and finalise) # portevent-usage (on solaris) is a TODO # (volunteer needed to work on that) WITH_KERNELFAM ?= 0 # Enable NO MORE THAN ONE of these monitors. # setting this to 1 provides support (on linux) for file-change monitoring # using inotify if that's available, or normal polling if not available # this setting is ignored for operating systems other than linux ifeq ($(WITH_KERNELFAM), 1) USE_INOTIFY ?= 1 else USE_INOTIFY ?= 0 endif # setting this to 1 provides support (on linux) for file-change monitoring # using dnotify if that's available, or normal polling if not available # this setting is ignored for operating systems other than linux USE_DNOTIFY ?= 0 # setting this to 1 provides support for file-change monitoring # using FAM if that's available, or normal polling if not available USE_FAM ?= 0 # setting this to 1 provides support for file-change monitoring # using gamin if that's available, or normal polling if not available USE_GAMIN ?= 0 # Setting EDITOR_SPELLCHECK to 0/1 dis/enables spell-checking (using GtkSpell) # in the internal editor. # To build this you will need to have installed gtkspell and aspell development # files, and to run it, the speller library and the underlying aspell and its # dictionaries. # NOTE this capability needs either gtkspell >= 2.0.14, or a patched gtkspell # 2.0.11 to 2.0.13. The patch is available from emeFM2 website. EDITOR_SPELLCHECK ?= 0 # Setting WITH_CUSTOMMOUSE to 0/1 dis/enables user-configurable bindings for # pointer-device (mouse etc.) buttons and gestures WITH_CUSTOMMOUSE ?= 0 # Setting EXTRA_BINDINGS to 0/1 dis/enables keybindings for _specific_ types of # "transient" elements of the emelFM2 GUI, like edit-dialogs. In practice, to # make such bindings work, some extra functionality for the elements in # question must be enabled. As of now, such code has been done only for view, # edit and thumbnails dialogs, for evaluation and testing purposes EXTRA_BINDINGS ?= 0 # setting this to 0 causes a build to the minimum Gtk standard (v.2.6), # omitting (not much) different functionality applicable to the Gtk version of # the current build environment USE_LATEST ?= 1 # setting this to 1 utilises replacement code for command execution. It's known # to work reasonably for some (most ?) OS's, but needs further evaluation on linux 2.4 # (though if it's still a problem there, it's not fatal, just wasteful of CPU cycles) NEW_COMMAND ?= 0 # setting this to 1 enables HAL and dbus code, for detecting and responding to # added and removed volumes. # NOTE HAL is deprecated, to be superseded by devicekit-disks, see below. # Requires HAL, dbus and dbus-glib WITH_HAL ?= 0 # setting this to 1 enables UDisks/DeviceKit and dbus code, for detecting and # responding to added and removed volumes. Prefers udisks, but will fall back # to devicekit-disks if udisks is not available at runtime. # Requires udisks or devicekit-disks (maybe >= 009?), and dbus-glib WITH_DEVKIT ?= 0 # setting this to 1 enables a thumbnail viewer plugin. This uses libgimpthumb for # managing thumbnail-file cacheing in accord with freedesktop.org specification. # At least version 2.2 of that library is needed in order for the plugin to load # at runtime. Corresponding development files are needed for building the plugin WITH_THUMBS ?= 0 # DO NOT set this 1 UNLESS you've built and installed the 'bugfixed' shared version # of libgimpthumb (called libthumbs) available from http://emelfm2.net/wiki/OtherDownLoads # The default value causes code 'extracted' from that library to be included # directly in the plugin WITH_THUMBLIB ?= 0 # setting this to 1 enables a tracker-UI plugin. This uses shell commands to # interrogate tracker data, and so no external library is needed at runtime or # development file at build time (these may change if tracker's API is updated) WITH_TRACKER ?= 0 # setting this to 1 enables an Access-Control-List-management plugin. This uses # libacl - with a reasonably full (sort-of POSIX) API. # Corresponding development files are needed for building the plugin WITH_ACL ?= 0 # setting this to 1 enables policykit based action to run commands as super-user # privileges. Requires polkit, which in turn seems to need gio >= 2.22. WITH_POLKIT ?= 0 # setting this to 1 enables a plugin to support different namespaces (a.k.a. # VFS. It uses libgio capabilities, and so needs glib >= 2.16 # NOT YET FUNCTIONAL WITH_VFS ?= 0 # the namespaces plugin can, in principle, work with various backend vfs libraries. # Sofar only gvfs is enabled, and for that, a separate gvfs plugin is used. # NOT YET FUNCTIONAL WITH_GVFS ?= 0 # setting DEBUG to 0/1 turns off/on debugging messages and in-file data for debuggers DEBUG ?= 0 ############################ ### installation (where) ### ############################ TARGET = emelfm2 #as well as 'make' usage, all in-code uses of these paths assumes they're localised. #path variable(s) can safely be altered for installation, e.g. to specify a path for #packaging, like $BUILDROOT/usr/local ... PREFIX ?= /usr/local BIN_DIR ?= $(PREFIX)/bin LIB_DIR ?= $(PREFIX)/lib PLUGINS_DIR ?= $(LIB_DIR)/$(TARGET)/plugins #FIXME by default, apps should look for icons in $XDG_DATA_DIRS/icons and in # /usr/share/pixmaps (in that order). ICON_DIR ?= $(PREFIX)/share/pixmaps/$(TARGET) LOCALE_DIR ?= $(PREFIX)/share/locale MAN_DIR ?= $(PREFIX)/share/man/man1 # version-number suffix is appended to doc-path in main Makefile, if appropriate DOC_DIR ?= $(PREFIX)/share/doc/$(TARGET) #where to install emelfm2.desktop and emelfm2.applications #for desktop environment integration XDG_DESKTOP_DIR ?= $(PREFIX)/share/applications XDG_APPLICATION_DIR ?= $(PREFIX)/share/application-registry ######################### ### compilation (how) ### ######################### CC ?= gcc ifeq ($(DEBUG), 1) #additional CFLAGS (-g -O0) always added when in debug mode #CFLAGS ?= -Wall -Wextra -Wno-unused -Winline CFLAGS ?= -Wall -Winline else CFLAGS ?= -O2 -Wall #CFLAGS ?= -O3 -Wall -march=athlon-tbird -mtune=athlon-tbird #CFLAGS ?= -O3 -Wall -march=pentium -mtune=pentium4 endif #additional CFLAG (-Wl,--as-needed) added when linking main application #if using gcc >= 4.5, consider adding -flto to CLFAGS # setting this to 0 prevents stipping of symbols from built files STRIP ?= 1