Managing projects with GNU make:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Beijing
O'Reilly
2005
|
Ausgabe: | 3. ed., compl. rev. and updated |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis Klappentext |
Beschreibung: | XVIII, 280 S. graph. Darst. 24 cm |
ISBN: | 0596006101 9780596006105 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV020866224 | ||
003 | DE-604 | ||
005 | 20130109 | ||
007 | t | ||
008 | 051111s2005 cc d||| |||| 00||| eng d | ||
010 | |a 2005298162 | ||
015 | |a GBA486888 |2 dnb | ||
020 | |a 0596006101 |9 0-596-00610-1 | ||
020 | |a 9780596006105 |9 978-0-596-00610-5 | ||
035 | |a (OCoLC)57187724 | ||
035 | |a (DE-599)BVBBV020866224 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a cc |c CN | ||
049 | |a DE-898 |a DE-703 |a DE-2070s | ||
050 | 0 | |a QA76.76.U84 | |
082 | 0 | |a 005.13 |2 22 | |
084 | |a ST 261 |0 (DE-625)143633: |2 rvk | ||
100 | 1 | |a Mecklenburg, Robert |e Verfasser |4 aut | |
245 | 1 | 0 | |a Managing projects with GNU make |c Robert Mecklenburg |
250 | |a 3. ed., compl. rev. and updated | ||
264 | 1 | |a Beijing |b O'Reilly |c 2005 | |
300 | |a XVIII, 280 S. |b graph. Darst. |c 24 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
630 | 0 | 4 | |a GNU Emacs |
630 | 0 | 4 | |a Make (Computer file) |
650 | 4 | |a Utilities (Computer programs) | |
650 | 0 | 7 | |a make |0 (DE-588)4334388-0 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a GNU |g Software |0 (DE-588)4405655-2 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a GNU |g Software |0 (DE-588)4405655-2 |D s |
689 | 0 | 1 | |a make |0 (DE-588)4334388-0 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bayreuth |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
856 | 4 | 2 | |m Digitalisierung UB Bayreuth |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |3 Klappentext |
999 | |a oai:aleph.bib-bvb.de:BVB01-014188044 |
Datensatz im Suchindex
_version_ | 1804134589548986368 |
---|---|
adam_text | Table of
Contents
Foreword
................................................................xi
Preface
................................................................ xiii
Part I. Basic Concepts
1.
How to Write a Simple Makefile
...................................... 3
Targets and Prerequisites
4
Dependency Checking
6
Minimizing Rebuilds
7
Invoking make
7
Basic Makefile Syntax
8
2.
Rules
............................................................. 10
Explicit Rules
10
Variables
16
Finding Files with
VP
ΑΤΗ
and vpath
17
Pattern Rules
21
The Implicit Rules Database
25
Special Targets
30
Automatic Dependency Generation
31
Managing Libraries
34
3.
Variables and Macros
............................................... 41
What Variables Are Used For
42
Variable Types
43
Macros
45
When Variables Are Expanded
47
Target- and Pattern-Specific Variables
50
Where Variables Come From
51
Conditional and include Processing
54
Standard make Variables
57
4.
Functions
......................................................... 61
User-Defined Functions
61
Built-in Functions
64
Advanced User-Defined Functions
80
5.
Commands
.......................................................88
Parsing Commands
88
Which Shell to Use
96
Empty Commands
97
Command Environment
98
Evaluating Commands
99
Command-Line Limits
100
Part II. Advanced and Specialized Topics
6.
Managing Large Projects
..........................................107
Recursive make
108
Nonrecursive make
117
Components of Large Systems
124
Fiiesystem Layout
126
Automating Builds and Testing 1
28
7.
Portable Makefiles
................................................129
Portability Issues
130
Cygwin
131
Managing Programs and Files
134
Working with Nonportable Tools
137
Automake 139
8.
С
and
C++.......................................................141
Separating Source and
Binan.·
141
Read-Only Source
149
Dependency Generation
149
viii
I Table of Contents
Supporting Multiple Binary Trees
154
Partial Source Trees
156
Reference Builds, Libraries, and Installers
157
9.
Java
............................................................. 159
Alternatives to make
160
A Generic Java Makefile
164
Compilingjava
168
Managing Jars
175
Reference Trees and Third-Party Jars
177
Enterprise JavaBeans
178
10.
Improving the Performance of make
................................ 182
Benchmarking
182
Identifying and Handling Bottlenecks
186
Parallel make
190
Distributed make
194
11.
Example Makefiles
................................................ 196
The Book Makefile
196
The Linux Kernel Makefile
218
12.
Debugging Makefiles
............................................. 229
Debugging Features of make
229
Writing Code for Debugging
236
Common Error Messages
241
Partili.
Appendixes
A. Running make
................................................... 249
B. The Outer Limits
.................................................. 252
С
GNU Free Documentation License
—
GNU Project
—
Free Software
Foundation (FSF)
................................................. 263
Index
................................................................. 271
Table of Contents
Unix Programming
r®
O REILLY
Managing Projects with GNU Make
The utility simply known as make is one of the most enduring features of both Unix
and other operating systems. First invented in the
1970s,
make still turns up to this day
as the central engine in most programming projects; it even builds the Linux kernel. In
the third edition of the classic Managing Projects with make, you will learn why this
utility continues to hold its top position in project build software, despite many younger competitors.
The premise behind make is simple: after you change source files and want to rebuild your
program or other output files, make checks timestamps to see what has changed and rebuilds just
what you need, without wasting time rebuilding other files. But on top of this simple principle,
make layers a rich collection of options that lets you manipulate multiple directories, build different
versions ot programs for different platforms, and customize your builds in other ways.
This edition focuses on the GNU version of make, which has deservedly become the industry
standard. GNU make contains powerful extensions that are fully explored in this book. GNU make
is also popular because it is free software and provides a version for almost every platform,
including a version for Microsoft Windows, as part of the free Cygwin project.
Robert Mecklenburg, author of the third edition, has used make for decades with a variety of plat¬
forms and languages. In this book, he zealously lays out how to get your builds to be as efficient
as possible, reduce maintenance, avoid errors, and thoroughly understand what make is doing.
Chapters on
C++
and Java provide makefile entries optimized for projects in those languages. The
author even includes a discussion of the makefile used to build this bcxjk.
oreilly.com
US
$39.99
CAN
$45.99
ISBN:
978-0-596-00610-5
53999
9
780596 006105
|
adam_txt |
Table of
Contents
Foreword
.xi
Preface
. xiii
Part I. Basic Concepts
1.
How to Write a Simple Makefile
. 3
Targets and Prerequisites
4
Dependency Checking
6
Minimizing Rebuilds
7
Invoking make
7
Basic Makefile Syntax
8
2.
Rules
. 10
Explicit Rules
10
Variables
16
Finding Files with
VP
ΑΤΗ
and vpath
17
Pattern Rules
21
The Implicit Rules Database
25
Special Targets
30
Automatic Dependency Generation
31
Managing Libraries
34
3.
Variables and Macros
. 41
What Variables Are Used For
42
Variable Types
43
Macros
45
When Variables Are Expanded
47
Target- and Pattern-Specific Variables
50
Where Variables Come From
51
Conditional and include Processing
54
Standard make Variables
57
4.
Functions
. 61
User-Defined Functions
61
Built-in Functions
64
Advanced User-Defined Functions
80
5.
Commands
.88
Parsing Commands
88
Which Shell to Use
96
Empty Commands
97
Command Environment
98
Evaluating Commands
99
Command-Line Limits
100
Part II. Advanced and Specialized Topics
6.
Managing Large Projects
.107
Recursive make
108
Nonrecursive make
117
Components of Large Systems
124
Fiiesystem Layout
126
Automating Builds and Testing 1
28
7.
Portable Makefiles
.129
Portability Issues
130
Cygwin
131
Managing Programs and Files
134
Working with Nonportable Tools
137
Automake 139
8.
С
and
C++.141
Separating Source and
Binan.·
141
Read-Only Source
149
Dependency Generation
149
viii
I Table of Contents
Supporting Multiple Binary Trees
154
Partial Source Trees
156
Reference Builds, Libraries, and Installers
157
9.
Java
. 159
Alternatives to make
160
A Generic Java Makefile
164
Compilingjava
168
Managing Jars
175
Reference Trees and Third-Party Jars
177
Enterprise JavaBeans
178
10.
Improving the Performance of make
. 182
Benchmarking
182
Identifying and Handling Bottlenecks
186
Parallel make
190
Distributed make
194
11.
Example Makefiles
. 196
The Book Makefile
196
The Linux Kernel Makefile
218
12.
Debugging Makefiles
. 229
Debugging Features of make
229
Writing Code for Debugging
236
Common Error Messages
241
Partili.
Appendixes
A. Running make
. 249
B. The Outer Limits
. 252
С
GNU Free Documentation License
—
GNU Project
—
Free Software
Foundation (FSF)
. 263
Index
. 271
Table of Contents
Unix Programming
r®
O'REILLY'
Managing Projects with GNU Make
The utility simply known as make is one of the most enduring features of both Unix
and other operating systems. First invented in the
1970s,
make still turns up to this day
as the central engine in most programming projects; it even builds the Linux kernel. In
the third edition of the classic Managing Projects with make, you will learn why this
utility continues to hold its top position in project build software, despite many younger competitors.
The premise behind make is simple: after you change source files and want to rebuild your
program or other output files, make checks timestamps to see what has changed and rebuilds just
what you need, without wasting time rebuilding other files. But on top of this simple principle,
make layers a rich collection of options that lets you manipulate multiple directories, build different
versions ot programs for different platforms, and customize your builds in other ways.
This edition focuses on the GNU version of make, which has deservedly become the industry
standard. GNU make contains powerful extensions that are fully explored in this book. GNU make
is also popular because it is free software and provides a version for almost every platform,
including a version for Microsoft Windows, as part of the free Cygwin project.
Robert Mecklenburg, author of the third edition, has used make for decades with a variety of plat¬
forms and languages. In this book, he zealously lays out how to get your builds to be as efficient
as possible, reduce maintenance, avoid errors, and thoroughly understand what make is doing.
Chapters on
C++
and Java provide makefile entries optimized for projects in those languages. The
author even includes a discussion of the makefile used to build this bcxjk.
oreilly.com
US
$39.99
CAN
$45.99
ISBN:
978-0-596-00610-5
53999
9
"780596"006105 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Mecklenburg, Robert |
author_facet | Mecklenburg, Robert |
author_role | aut |
author_sort | Mecklenburg, Robert |
author_variant | r m rm |
building | Verbundindex |
bvnumber | BV020866224 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.U84 |
callnumber-search | QA76.76.U84 |
callnumber-sort | QA 276.76 U84 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 261 |
ctrlnum | (OCoLC)57187724 (DE-599)BVBBV020866224 |
dewey-full | 005.13 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.13 |
dewey-search | 005.13 |
dewey-sort | 15.13 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 3. ed., compl. rev. and updated |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01854nam a2200469zc 4500</leader><controlfield tag="001">BV020866224</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20130109 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">051111s2005 cc d||| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2005298162</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBA486888</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0596006101</subfield><subfield code="9">0-596-00610-1</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780596006105</subfield><subfield code="9">978-0-596-00610-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)57187724</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV020866224</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">cc</subfield><subfield code="c">CN</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-898</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-2070s</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.U84</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 261</subfield><subfield code="0">(DE-625)143633:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Mecklenburg, Robert</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Managing projects with GNU make</subfield><subfield code="c">Robert Mecklenburg</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. ed., compl. rev. and updated</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2005</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVIII, 280 S.</subfield><subfield code="b">graph. Darst.</subfield><subfield code="c">24 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="630" ind1="0" ind2="4"><subfield code="a">GNU Emacs</subfield></datafield><datafield tag="630" ind1="0" ind2="4"><subfield code="a">Make (Computer file)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Utilities (Computer programs)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">make</subfield><subfield code="0">(DE-588)4334388-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">GNU</subfield><subfield code="g">Software</subfield><subfield code="0">(DE-588)4405655-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">GNU</subfield><subfield code="g">Software</subfield><subfield code="0">(DE-588)4405655-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">make</subfield><subfield code="0">(DE-588)4334388-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bayreuth</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bayreuth</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Klappentext</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014188044</subfield></datafield></record></collection> |
id | DE-604.BV020866224 |
illustrated | Illustrated |
index_date | 2024-07-02T13:24:28Z |
indexdate | 2024-07-09T20:27:01Z |
institution | BVB |
isbn | 0596006101 9780596006105 |
language | English |
lccn | 2005298162 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014188044 |
oclc_num | 57187724 |
open_access_boolean | |
owner | DE-898 DE-BY-UBR DE-703 DE-2070s |
owner_facet | DE-898 DE-BY-UBR DE-703 DE-2070s |
physical | XVIII, 280 S. graph. Darst. 24 cm |
publishDate | 2005 |
publishDateSearch | 2005 |
publishDateSort | 2005 |
publisher | O'Reilly |
record_format | marc |
spelling | Mecklenburg, Robert Verfasser aut Managing projects with GNU make Robert Mecklenburg 3. ed., compl. rev. and updated Beijing O'Reilly 2005 XVIII, 280 S. graph. Darst. 24 cm txt rdacontent n rdamedia nc rdacarrier GNU Emacs Make (Computer file) Utilities (Computer programs) make (DE-588)4334388-0 gnd rswk-swf GNU Software (DE-588)4405655-2 gnd rswk-swf GNU Software (DE-588)4405655-2 s make (DE-588)4334388-0 s DE-604 Digitalisierung UB Bayreuth application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis Digitalisierung UB Bayreuth application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA Klappentext |
spellingShingle | Mecklenburg, Robert Managing projects with GNU make GNU Emacs Make (Computer file) Utilities (Computer programs) make (DE-588)4334388-0 gnd GNU Software (DE-588)4405655-2 gnd |
subject_GND | (DE-588)4334388-0 (DE-588)4405655-2 |
title | Managing projects with GNU make |
title_auth | Managing projects with GNU make |
title_exact_search | Managing projects with GNU make |
title_exact_search_txtP | Managing projects with GNU make |
title_full | Managing projects with GNU make Robert Mecklenburg |
title_fullStr | Managing projects with GNU make Robert Mecklenburg |
title_full_unstemmed | Managing projects with GNU make Robert Mecklenburg |
title_short | Managing projects with GNU make |
title_sort | managing projects with gnu make |
topic | GNU Emacs Make (Computer file) Utilities (Computer programs) make (DE-588)4334388-0 gnd GNU Software (DE-588)4405655-2 gnd |
topic_facet | GNU Emacs Make (Computer file) Utilities (Computer programs) make GNU Software |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014188044&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT mecklenburgrobert managingprojectswithgnumake |