[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: implicit rule for relative paths?
From: |
Toomas Rosin |
Subject: |
Re: implicit rule for relative paths? |
Date: |
Mon, 21 Oct 2002 01:08:53 +0300 (EEST) |
Hello,
Any ideas on how I can handle all relative paths?
If you do not insist on using implicit rules, try using `patsubst' and
`filter', like this:
relative = $(filter $(patsubst /%,%,$1),$1)
all-targets += /abso/lute rela/tive /ab/so/lu/te re/la/ti/ve
relative-targets = $(call relative,$(all-targets))
absolute-targets = $(filter-out $(relative-targets),$(all-targets))
$(absolute-targets):
@echo in rule for absolute targets
$(relative-targets):
@echo in rule for relative targets
list:
@echo absolute targets: $(absolute-targets)
@echo relative targets: $(relative-targets)
%:
@echo target \"address@hidden" is $(if $(call
absolute,$@),absolute,relative)
A sample session:
address@hidden:~ $ make list
absolute targets: /abso/lute /ab/so/lu/te
relative targets: rela/tive re/la/ti/ve
address@hidden:~ $ make /abso/lute
in rule for absolute targets
address@hidden:~ $ make rela/tive
in rule for relative targets
address@hidden:~ $ make /foo
target "/foo" is absolute
address@hidden:~ $ make bar
target "bar" is relative
address@hidden:~ $
Peace,
Toomas.