0.1.0
Shlomi Fish ( https://www.shlomifish.org/ )
This document provides a specification for the functionality provided by version 0.2 of the Linus Module Builder - an automatic framework written in Perl 5 that builds a Linux kernel module and packages it for easy installation.
It aims to be the humble beginning of CLAN - The Comprehensive Linux Archive Network
This files contains the version of the module. It is present there for easy
retrieval by any scripts that may want it (i.e: `cat ver.txt`
)
This file is equivalent to Makefile.PL on CPAN packages but much more powerful.
Essentially all it includes is a perl use
statement for a common module
and calling its glboal function. It is exactly the same on all CLAN packages.
It is meant to build a package by hand, or by scripts. It is executable.
This file (whose name may eventually be shortened) includes functions and directives that control the building of the module. Stuff that are specified:
Regular C objects of the module
C objects that are preprocessed to include version information and other macros like that.
Targets that should be built by make as generic commands.
The category of the module
Currently not used but will be useful in more recent versions to resolve dependencies possible in more recent versions.
This contains special gcc flags that should be applied to the module to be compiled correctly. It is an ad-hoc solution until I figure out a way to fully build and process gcc command-lines (there might be a CPAN module for that...)
A list of architectures that this module can be built on. [ROOT]
indicates
that it can be built everywhere (at least theoretically).
This is a directory that contains the actual source files. I don't want to put them all directly in the CLAN package. It may contain a tree of files.
A file that contains a list of all the files in the package. Or maybe we should think of a better way to pack everything.
make_pack.pl
accepts several flags:
The architecture to which to build the binary assuming it is relevant. Accepts a standard kernel architecture (i386, sparc, sparc64, alpha, arm, uml-i386) etc.
What self-contained package to prepare.
Prepare a self contained package
Prepare and compile
Prepare compile, and install (may not be implemented yet)