---
name: "scanfile"
section: "5"
platform: "linux"
package: "pmk"
version: "0.10.4-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/scanfile/5"
---

# scanfile(5)

pmkscan specification file

## NAME

**scanfile** – pmkscan specification file

## DESCRIPTION

**scanfile** is a file containing specifications that defines which sources are to be scanned and what to generate from the resulting data.

## SYNTAX

See pmksyntax.5 to have an overview of the basic syntax of scanfiles.

## COMMANDS

The available commands are the following :

- **GEN\_PMKFILE**

  This command specify a zone to scan and generate a pmkfile.

  Arguments:

  - CFGNAME

    type is 'quoted', give the name of the template config file to use instead of the default one.

  - DIRECTORY

    type is 'quoted', define the zone directory to scan.

  - DISCARD

    type is 'list', list of directories to discard in recursive mode.

  - EXTRATAG

    type is 'list', list of extra tags to add in template files.

  - RECURSE

    type is 'bool', enable recursive scanning, default is FALSE.

  - UNIQUE

    type is 'bool', enable unique resulting file instead of one for each directory. This is actually the default and only one method available (work in progress).

    For example:

    ```
    GEN_PMKFILE {
    	DIRECTORY = "."
    	RECURSE = TRUE
    	DISCARD = ("samples", "doc", "data", "man")
    	UNIQUE = TRUE
    }
    ```

- **GEN\_MAKEFILE**

  This command specify a zone to scan and generate a makefile.

  Arguments:

  - DIRECTORY

    type is 'quoted', define the zone directory to scan.

  - DISCARD

    type is 'list', list of directories to discard in recursive mode.

  - EXTRATAG

    type is 'list', list of extra tags to add in template files.

  - MKFNAME

    type is 'quoted', give the name of the template makefile to use instead of the default one.

  - RECURSE

    type is 'bool', enable recursive scanning, default is FALSE.

  - UNIQUE

    type is 'bool', enable unique resulting file instead of one for each directory. This is actually the default and only one method available (work in progress).

    For example:

    ```
    GEN_MAKEFILE {
    	DIRECTORY = "."
    	RECURSE = TRUE
    	DISCARD = ("samples", "doc", "tests")
    	MKFNAME = "Makefile.pmk"
    	UNIQUE = TRUE
    }
    ```

- **GEN\_ZONE**

  This command specify a zone to scan and what to generate.

  Arguments:

  - CFGNAME

    type is 'quoted', give the name of the template config file to use instead of the default one.

  - DIRECTORY

    type is 'quoted', define the zone directory to scan.

  - DISCARD

    type is 'list', list of directories to discard in recursive mode.

  - EXTRATAG

    type is 'list', list of extra tags to add in template files.

  - PMKFILE

    type is 'bool', enable generation of a pmkfile

  - MAKEFILE

    type is 'bool', enable generation of a makefile

  - MKFNAME

    type is 'quoted', give the name of the template makefile to use instead of the default one.

  - RECURSE

    type is 'bool', enable recursive scanning, default is FALSE.

  - UNIQUE

    type is 'bool', enable unique resulting file instead of one for each directory. This is actually the default and only one method available (work in progress).

    For example:

    ```
    GEN_ZONE(main) {
    	DIRECTORY = "."
    	RECURSE = TRUE
    	DISCARD = ("samples", "doc", "tests")
    	PMKFILE = TRUE
    	MAKEFILE = TRUE
    	MKFNAME = "Makefile.pmk"
    	UNIQUE = TRUE
    }
    ```

- **DEF\_LIB**

  This command define library attributes.

  Arguments:

  - NAME

    type is 'quoted', give the name of the library.

  - VMAJ

    type is 'quoted', give the major version of the library.

  - VMIN

    type is 'quoted', give the minor version of the library.

  - LINKER

    type is 'quoted', define the relative language of the linker to be used.

  - SOURCES

    type is 'list', list of the main sources which objects must be linked in the library.

  - HEADERS

    type is 'list', list of library headers to be installed.

    For example:

    ```
    DEFINE_LIB {
    	NAME = "testc"
    	VMAJ = "1"
    	VMIN = "3"
    	LINKER = "C"
    	SOURCES = ("libtest.c")
    	HEADERS = ("libtest.h")
    }
    ```

## SEE ALSO

[pmkscan(1)](/pmkscan/1.md), [pmkfile(5)](/pmkfile/5.md)
