82286 packages online


No screenshot available
Short:controls the generation of executable
Uploader:dmx404 gmail com (DMX)
Requires:ixemul.library v48+
Download: - View contents

- Corrected formatting error.

GNU Make

GNU Make is a tool which controls the generation of executables and other
non-source files of a program from the program's source files.

Make gets its knowledge of how to build your program from a file called the
makefile, which lists each of the non-source files and how to compute it from
other files. When you write a program, you should write a makefile for it, so
that it is possible to use Make to build and install the program.

Capabilities of Make

    Make enables the end user to build and install your package without
    knowing the details of how that is done -- because these details are
    recorded in the makefile that you supply.

    Make figures out automatically which files it needs to update, based on
    which source files have changed. It also automatically determines the
    proper order for updating files, in case one non-source file depends on
    another non-source file.

    As a result, if you change a few source files and then run Make, it does
    not need to recompile all of your program. It updates only those
    non-source files that depend directly or indirectly on the source files
    that you changed.

    Make is not limited to any particular language. For each non-source file
    in the program, the makefile specifies the shell commands to compute it.
    These shell commands can run a compiler to produce an object file, the
    linker to produce an executable, ar to update a library, or TeX or
    Makeinfo to format documentation.

    Make is not limited to building a package. You can also use Make to
    control installing or deinstalling a package, generate tags tables for
    it, or anything else you want to do often enough to make it worth while
    writing down how to do it.

Make Rules and Targets

A rule in the makefile tells Make how to execute a series of commands in
order to build a target file from source files. It also specifies a list of
dependencies of the target file. This list should include all files (whether
source files or other targets) which are used as inputs to the commands in
the rule.

Here is what a simple rule looks like:

target:   dependencies ...

When you run Make, you can specify particular targets to update; otherwise,
Make updates the first target listed in the makefile. Of course, any other
target files needed as input for generating these targets must be updated

Make uses the makefile to figure out which target files ought to be brought
up to date, and then determines which of them actually need to be updated.
If a target file is newer than all of its dependencies, then it is already up
to date, and it does not need to be regenerated. The other target files do
need to be updated, but in the right order: each target file must be
regenerated before it is used in regenerating other targets.

Advantages of GNU Make

GNU Make has many powerful features for use in makefiles, beyond what other
Make versions have. It can also regenerate, use, and then delete intermediate
files which need not be saved.

GNU Make also has a few simple features that are very convenient. For
example, the -o file option which says ``pretend that source file file has
not changed, even though it has changed.'' This is extremely useful when you
add a new macro to a header file. Most versions of Make will assume they must
therefore recompile all the source files that use the header file; but GNU
Make gives you a way to avoid the recompilation, in the case where you know
your change to the header file does not require it.

However, the most important difference between GNU Make and most versions of
Make is that GNU Make is free software.

Contents of dev/c/make421.lha
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                92006  168164  54.7% -lh5- 6666 Jul  8 13:36 bin/make
[unknown]                 1488    2975  50.0% -lh5- 1c02 Feb 28  2016 authors
[unknown]                18118   46815  38.7% -lh5- 9d7a Jun 10  2016 ChangeLog
[unknown]                12641   35147  36.0% -lh5- 7994 Jan 13  2013 copying
[unknown]                 3600    9273  38.8% -lh5- c0cc Jan 13  2013 install
[unknown]                 8304   23432  35.4% -lh5- 9802 Jun 10  2016 doc/fdl.texi
[unknown]                15764   47524  33.2% -lh5- 2c81 Jun 10  2016 doc/make-stds.texi
[unknown]                 2619    6129  42.7% -lh5- b97f Jun 10  2016 doc/
[unknown]                99359  305787  32.5% -lh5- 1472 Jun 10  2016 doc/
[unknown]                82781  298364  27.7% -lh5- f6cb Jun 10  2016 doc/
[unknown]               153971  488336  31.5% -lh5- 088f May 21  2016 doc/make.texi
[unknown]                   66      91  72.5% -lh5- 2f57 Jun 10  2016 doc/stamp-vti
[unknown]                   66      91  72.5% -lh5- 2f57 Jun 10  2016 doc/version.texi
[unknown]                 2976    6805  43.7% -lh5- 37b4 Jun 10  2016 readme
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        14 files  493759 1438933  34.3%            Jul 14 21:30

Aminet © 1992-2018 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>