help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Getting the relative pathname of an included makefile


From: Stephan Beal
Subject: Re: Getting the relative pathname of an included makefile
Date: Wed, 8 Feb 2012 18:09:57 +0100

On Wed, Feb 8, 2012 at 2:53 PM, Mason <address@hidden> wrote:

> [ Please CC replies to my address. ]
>

That violates one of the prime rules of list etiquette, but
i'll accommodate it this once...


> DIR := $(DIRECTORY_OF_THIS_MAKEFILE_RELATIVE_TO_ROOT) # e.g. src/tata
> LIST := x.c y.c
> SRC += $(LIST:%=$(DIR)/%)
>

What i do for such a case is something like:

First, all of my subdirs include the top-level config/common makefile, like
so:

include ../../config.make

and that file has a snippet like:

CONFIG.MAKEFILE := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
$(CONFIG.MAKEFILE):
TOP_SRCDIR_REL := $(dir $(CONFIG.MAKEFILE))
TOP_SRCDIR_REL := $(patsubst %/,%,$(TOP_SRCDIR_REL))# horrible kludge
TOP_SRCDIR := $(realpath $(TOP_SRCDIR_REL))
TOP_INCDIR := $(TOP_SRCDIR_REL)/include
INCLUDES += -I. -I$(TOP_INCDIR)
CPPFLAGS += $(INCLUDES)


Then TOP_SRCDIR_REL is the relative path to the top dir (where the common
makefile lives (in my case named "config.make")) and some other vars are
set up based on that.

There is quite possibly a more elegant solution out there somewhere, though.

-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal


reply via email to

[Prev in Thread] Current Thread [Next in Thread]