# 14.4. Setting File Installation Properties

As the above explained where KDE applications should place their files and how to access them at runtime, the following will explain how to set the file properties correctly to ensure the files get installed at the right place. The Makefiles support a set of macros to install your files into the KDE File System and which have to be used for setting the file installation properties.

To set the properties, open your project and select "Project"-"File Properties" which opens the File Properties dialog. The file properties are displayed if you select a filename currently included in the project. First of all, a file has a type property, which can be one of the following:

- HEADER: specifies a file as a header file

- SOURCE: specifies a file as a source file

- SCRIPT: specifies a file as a script file

- DATA: specifies a file as a data file that usually gets installed like pixmaps or HTML documentation files

- PO: specifies a file as a translation file

- KDEV&_;DIALOG: specifies a file as a dialog file to be interpreted by the dialog library

Further, a file is included in the project, if "Include in Distribution" is checked. This ensures that the file is included in the distribution tarball or package.

If a file has to be installed, you have to enable "Install". This will allow setting the Installation path for the selected file, where the filename is already inserted.

Now, as said above, the Makefile already is capable of a set of macros for the KDE File System Standard. These are used to set the installation path and ensure that the files actually will land in the KDE file system and not somewhere else. Macros that can be used, have to be embraced in round brackets and are marked with the dollar sign in front of the macro. When configure builds the Makefiles on the end-user's system, it will determine values for these macros that match the real directory name and will expand the Makefile.am macro towards the actual destination.

When looking a standard KDE application project, you will see on the file property of your `index.html` file that it already uses a macro to determine where it should go:

$(kde&_;htmldir)/en/kscribble/index.html

This says, that make should install the file index.html in the kde-html directory, subdirectory en for English, the application subdirectory and the filename. You could as well use another filename if you like to rename the file on the installation destination.

For the destination of your binary you currently have to edit the project's Makefile.am if your destination should be different form the "Applications" section of kpanel:

APPSDIR = $(kde&_;appsdir)/Applications

Possible values are (as the KDE-File System Standard says):

- Applications

- Games

- Graphics

- Internet

- Multimedia

- Settings

- System

- Utilities

Setting no directory will end your applnk directly in kpanel's root.

The following list contains the macros that can be used in the installation setup for files:

     kde_htmldir       Where your docs should go to. (contains lang subdirs)
     kde_appsdir       Where your application file (.kdelnk) should go to.
     kde_icondir       Where your icon should go to.
     kde_minidir       Where your mini icon should go to.
     kde_datadir       Where you install application data. (Use a subdir)
     kde_locale        Where translation files should go to.(contains lang subdirs)
     kde_cgidir        Where cgi-bin executables should go to.
     kde_confdir       Where config files should go to.
     kde_mimedir       Where mimetypes should go to.
     kde_toolbardir    Where general toolbar icons should go to.
     kde_wallpaperdir  Where general wallpapers should go to.

Use these macros in conjunction with the according necessary subdirectories and the filename for setting the installation properties. By default, the currently created HTML documentation files, the kdelnk file, Icon, Miniicon and the translation files (also newly create ones) are already set up for their destination; therefore you don't have to make any changes for your default installation routine that has been set up by the application wizard of KDevelop.