NM file layout
The NM files contain all needed information to build and provide packages with the pakfire builder.
The file extension nm has some historical reasons. In the past the build system wasn't directly integrated into pakfire. It was shipped as a stand allone system called "Naoki" and NM stands for Naoki Makefile. After integration of Naoki into pakfire, to share code we decided to keep the old nm extension.
Overview
Every NM file is splitted into tree seperate parts or blocks, which contain a lot of Basic, Build and Packaging information.
|
Header | The Header contains all basic information about a package |
|
Build | This part contains build information and commands |
|
Packages | This section contains everything to generate the final packages |
A typically NM file looks like the following example:
###############################################################################
# IPFire.org - An Open Source Firewall Solution #
# Copyright (C) - IPFire Development Team <info@ipfire.org> #
###############################################################################
name = flex
version = 2.5.35
release = 3
groups = Development/Tools
url = http://flex.sourceforge.net/
license = BSD
summary = A tool for creating scanners (text pattern recognizers).
description
The flex program generates scanners. Scanners are programs which can \
recognize lexical patterns in text. Flex takes pairs of regular \
expressions and C code as input and generates a C source file as \
output. The output file is compiled and linked with a library to \
produce an executable. The executable searches through its input for \
occurrences of the regular expressions. When a match is found, it \
executes the corresponding C code. Flex was designed to work with \
both Yacc and Bison, and is used by many programs as part of their \
build process.
end
source_dl =
sources = %{thisapp}.tar.bz2
build
requires
bison
gcc-c++
m4
end
keep_libraries = /usr/lib/libfl_pic.a
configure_options += \
--mandir=/usr/share/man
test
make check
end
install_cmds
echo "#!/bin/sh" > %{BUILDROOT}/usr/bin/lex
echo "exec /usr/bin/flex -l \"$$@\"" >> %{BUILDROOT}/usr/bin/lex
chmod 755 %{BUILDROOT}/usr/bin/lex
end
end
packages
package %{name}
requires = m4
end
package %{name}-devel
template DEVEL
end
end