Help understanding makefile: static pattern rules


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help understanding makefile: static pattern rules
Prev   Next
# 1  
Old 07-03-2013
Help understanding makefile: static pattern rules

Hi all,
I'm reading the GNU Make book I cannot understand the following syntax from the book.


Code:
objects = foo.o bar.o

all : $(objects)
$(objects) : %.o : %.c
	$(CC) -c $(CFLAGS) $< -o  $@

If I run:
Code:
make

, I get the output:

Code:
cc  -c foo.c
cc  -o foo   foo.o

I think I understand that line $(objects) : %.o : %.c produces line cc -c foo.c when the target is foo.o. This is because
$(objects) : %.o : %.c is converted into foo.o : foo.c right?

But I cannot see the process that produces the second line: cc -o foo foo.o.

any help would be much appreciated!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Help understanding a line in makefile

I have a big makefile that I am trying to get my head around, this line is what is confusing me. LDFLAGS = -Wl,-rpath-link,$(SYSROOT)/lib/arm-linux-gnueabihf,-rpath-link,$(SYSROOT)/usr/lib/arm-linux-gnueabihf --sysroot=$(SYSROOT) -L$(SYSROOT)/lib -L$(SYSROOT)/usr/lib... (5 Replies)
Discussion started by: sesefsefs
5 Replies

2. Programming

Need help changing a makefile to static linking

Hi all, I'm having a hard time compiling a plugin (softhddevice) for the video disk recorder software (vdr). Unfortunately the last official version of the plugin was published back in 2013 and even worse it has to be compiled against ffmpeg. The last working version of ffmpeg was 2.8.x,... (0 Replies)
Discussion started by: ACorner
0 Replies

3. Shell Programming and Scripting

Understanding pattern matching used in a grep command

I have the following code. I want to remove the --sort=num/num/... and am using grep to exclude it as shown below: I have a bit of problem figuring out the use of - at the front echo "--sort=4/5/6" | grep -ivE '-((sort|group)=+/+(/+)*)$' Now suppose I want to remove --quiet I can... (7 Replies)
Discussion started by: kristinu
7 Replies

4. Programming

Even the Static cURL Library Isn't Static

I'm writing a program which uses curl to be run on Linux PCs which will be used by a number of different users. I cannot make the users all install curl on their individual machines, so I have tried to link curl in statically, rather than using libcurl.so. I downloaded the source and created a... (8 Replies)
Discussion started by: BrandonShw
8 Replies

5. Programming

Static and Shared Library in Makefile

I am having a devil of a time with a very simple make file. The program needs two shared and one static library. If I link the shared libraries only like below the mysql test app works ... (1 Reply)
Discussion started by: jadsys
1 Replies

6. Programming

Adding a Static Library (libtimer.a) to the Makefile

Hi, The following is my Makefile, I wanted to add a staic library named libtimer.a. I'm using the following Makefile. Please let me know how to add this static library: Makefile:- It produces "usbserial" executable. Thanks, S (1 Reply)
Discussion started by: suryaemlinux
1 Replies

7. IP Networking

I need HELP to Set up Coyote Linux router with 1 static IP & 64 internal static IP

hello, i need help on setting my coyote linux, i've working on this for last 5 days, can't get it to work. I've been posting this message to coyote forum, and other linux forum, but haven't get any answer yet. Hope someone here can help me...... please see my attached picture first. ... (0 Replies)
Discussion started by: dlwoaud
0 Replies

8. Shell Programming and Scripting

How to change a Makefile from building static library to shared library?

Hi: I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library) Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies

9. UNIX for Advanced & Expert Users

Priority of rules in Makefile!!!

Consider in a makefile i have the target defined as: pgm: a.o b.o cmd; To build .o, 2 rules are defind .pc.o: cmds .c.o: cmds My question is which rule will take priority for compiling a.o and b.o when the target pgm is built. Despite the positoning of the 2 rules, .c.o... (1 Reply)
Discussion started by: quintet
1 Replies

10. Programming

Understanding this Makefile

I have this program which has lots of source files in the directories src src/dir1 src/dir2 src/dir3... and so on I am trying to understand the following Makefile: CC = gcc CFLAGS= -g -c -D_REENTRANT SOURCES = src/main.c src/dir1/a.c src/dir1/b.c src/dir2/x.c src/dir2/y.c ...and so on... (5 Replies)
Discussion started by: the_learner
5 Replies
Login or Register to Ask a Question
DtMmdbBookGetTabList(library call)										DtMmdbBookGetTabList(library call)

NAME
DtMmdbBookGetTabList -- obtains the list of tab sections in a book SYNOPSIS
#include <DtMmdb.h> DtMmdbHandle** DtMmdbBookGetTabList( DtMmdbInfoRequest* request, unsigned int* length); DESCRIPTION
The DtMmdbBookGetTabList function returns the list of tab sections for the specified book object. It returns the list in a NULL-terminated array. Use the DtMmdbFreeHandleList function to release the memory when the array is no longer needed. Table lookup is involved when the identifier is specified by either the primary_oid or sequence_num field. ARGUMENTS
request Specifies the bookcase in the bookcase descriptor field, as well as a valid value in the primary_oid, the secondary_oid, or the sequence_num field. The primary_oid represents the DtInfo Database object identifier of the TOC section; the secondary_oid rep- resents the object identifier of the book itself; and the sequence_num represents the sequence number of the book within the bookcase (0 based). If more than one of these fields have a valid value, the order of precedence is: primary_oid, secondary_oid, and, last, sequence_num. length Specifies the variable to receive the length of the returned list of sections, if the returned pointer to the list is not NULL. RETURN VALUE
If DtMmdbBookGetTabList completes successfully, it returns a pointer to the list of sections for the book. If it fails, it returns a NULL pointer. EXAMPLE
None. SEE ALSO
TO BE SUPPLIED. DtMmdbBookGetTabList(library call)