Sponsored Content
Top Forums Shell Programming and Scripting Help understanding makefile: static pattern rules Post 302828629 by santiagorf on Wednesday 3rd of July 2013 12:43:59 AM
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!
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
DtMmdbBookGetTocObjectId(library call)									    DtMmdbBookGetTocObjectId(library call)

NAME
DtMmdbBookGetTocObjectId -- obtains the locator of a book's TOC section SYNOPSIS
#include <DtMmdb.h> DtMmdbHandle* DtMmdbBookGetTocObjectId( DtMmdbInfoRequest* request); DESCRIPTION
The DtMmdbBookGetTocObjectId function returns the object identifier of the specified book's TOC section. Use the DtMmdbFreeHandleList function to release the memory when the object identifier 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. RETURN VALUE
If DtMmdbBookGetTocObjectId completes successfully, it returns a pointer to the object identifier for the book's TOC section. If it fails, it returns a NULL pointer. EXAMPLE
The following shows how a DtMmdbBookGetTocObjectId call might be coded. DtMmdbInfoRequest request; request.bookcase_descriptor = DtMmdbGetBookCase(myInfoLibPtr, "myBase"); request.sequence_num = 1; DtMmdbBookGetTocObjectId(&request); SEE ALSO
TO BE SUPPLIED. DtMmdbBookGetTocObjectId(library call)
All times are GMT -4. The time now is 12:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy