[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

1.5 Configuration

GNUstep supports arbitrary filesystem layouts to map the locations in the various domains to directories on the filesystem.

When you run gnustep-make's ./configure program you can use the --with-layout=xxx flag to select the filesystem layout that you prefer (choosing between the ones in the FilesystemLayouts directory, or creating your own in there!).

For most users, this is all they need to know.

In this section we'll go more into the details of how the filesystem layout system internally works; this is only useful if you need to do something advanced with it, typically because you have multiple GNUstep installations or you are trying to do some custom packaging of GNUstep.

The filesystem layout is determined by the GNUstep configuration file (or if that is not present, by default values built into the GNUstep make and base packages when they were configured and built).

The location of the GNUstep configuration file is built in to the make and base packages when they are configured using the --with-config-file option to the configure script. The path specified must be an absolute one for the make package, but may also be a path relative to the location of the base library itsself (as dynamically linked into applications) for the base package.

However, the location of the configuration file may also be specified using the GNUSTEP_CONFIG_FILE environment variable, overriding the value built in to the package, at any time when using the make package to build or install software. Support for the environment variable may also be enabled for the make package when its configure script is run.

The GNUSTEP_CONFIG_FILE environment variable is particularly useful if you have multiple installations and need to easily switch between them.

1.5.1 File Format  
1.5.2 Windows (MINGW)  

1.5.1 File Format

By default, the configuration file is called GNUstep.conf and exists in /etc/GNUstep on a Unix-like system. This file is in a format suitable for being 'sourced' by the standard unix (Bourne) shell, consisting of lines of the form key=value, comments (everything on a line from the first hash (#) onwards), or blank lines.

This is very convenient on unix-like systems, but needs care for windows users. If a value contains whitespace or backslash characters (or the hash which would start a comment) it needs to be quoted by enclosing the whole value in single or double quotes. An alternative for values containing backslashes (the norm for a windows path) is to double up each backslash in an unquoted value.

The valid values for the keys in the GNUstep configuration file are documented in the GNUstep.conf file itself. Please check the file in your gnustep-make distribution for an up-to-date list of all the variables that you can change with explanations of what they do.

1.5.2 Windows (MINGW)

On ms-windows, for software development, you are likely to want to have an extra configuration file. This is because of the limitations of the make program (used to build and install software).

Basically the issue is that the make package doesn't really like the colons and backslashes in windows paths (using them is error prone) and can't tolerate whitespace in file names. So you want to do all the building in a unix-style environment using only unix-style paths.

On MSYS/MinGW this is done naturally by using the standard unix-style /etc/GNUstep/GNUstep.conf config file, where the location is inside the MSYS unix-style emulation system. This is what is normally done by gnustep-make, so there is nothing special you need to do here.

On the other hand, the base library (and all applications since they are built using it) wants to work with native windows paths so that applications behave naturally as far as the end users are concerned, and therefore needs a configuration file containing windows-style paths rather than unix-like ones.

So, you need a different config file to be used by gnustep-base at runtime. And this is enabled by default -- in fact gnustep-base will use ./GNUstep.conf as config file on MinGW, where the location is relative to the location of the gnustep-base.dll.

In other words, gnustep-make will use C:/xxx/etc/GNUstep/GNUstep.conf (where 'xxx' is the MSYS installation path), while gnustep-base will use a GNUstep.conf file in the same directory as the gnustep-base.dll.

This ./GNUstep.conf file normally does not even exist; gnustep-base's ./configure will hardcode into gnustep-base.dll relative paths to all resources (relative from the installation location of gnustep-base.dll). If you modify the filesystem layout or relocate gnustep-base.dll, you should add a GNUstep.conf file with gnustep-base.dll that contains the relative locations of the directories (relative to the location of gnustep-base.dll).

It is recommended that this ./GNUstep.conf always contains relative paths to make relocation easier.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Adam Fedor on January, 1 2008 using texi2html