Pierre
Pierre

Reputation: 35276

GNU-make: remove first directories

I'd like to simplify the following GNU make rules:

lib/dir1/org/eclipse/jetty/jetty-http/9.3.0.M2/jetty-http-9.3.0.M2.jar:
        mkdir -p $(dir $@) && curl -o $@ "http://central.maven.org/maven2/org/eclipse/jetty/jetty-http/9.3.0.M2/jetty-http-9.3.0.M2.jar"

lib/dir1/org/eclipse/jetty/jetty-util/9.3.0.M2/jetty-util-9.3.0.M2.jar:
        mkdir -p $(dir $@) && curl -o $@ "http://central.maven.org/maven2/org/eclipse/jetty/jetty-util/9.3.0.M2/jetty-util-9.3.0.M2.jar"

lib/dir1/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:
        mkdir -p $(dir $@) && curl -o $@ "http://central.maven.org/maven2/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar"

lib/dir1/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar:
        mkdir -p $(dir $@) && curl -o $@ "http://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar"

how can I remove the prefix 'lib/dir1' in the curl URL to get a simple rule like:

$(addsuffix lib/dir1/,org/eclipse/jetty/jetty-http/9.3.0.M2/jetty-http-9.3.0.M2.jar org/eclipse/jetty/jetty-util/9.3.0.M2/jetty-util-9.3.0.M2.jar javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar  org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar):
    mkdir -p $(dir $@) && curl -o $@ \
     "http://central.maven.org/maven2/$(something $@)"

something like 'substring-after'...

Upvotes: 0

Views: 690

Answers (1)

MadScientist
MadScientist

Reputation: 100956

Doesn't $(patsubst lib/dir1/%,%,$@) work?

Upvotes: 3

Related Questions