help-make
[Top][All Lists]
Advanced

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

help with prerequisites


From: Polder, Matthew J
Subject: help with prerequisites
Date: Tue, 07 Sep 2010 15:40:29 -0400

I'm trying to use the patsubst function in my makefile. I have a directory with 
the following in it:

Makefile
src/apple.cpp
objs/release
bin/

and here is the Makefile:

TARGET = test
SRC = apple.cpp
VPATH = src
SRC_DIR = src

CC = g++
OBJ_RELEASE_DIR = release
OBJ_DIR = ../$(TARGET)/objs
BIN_DIR = bin

OBJS = $(patsubst %.cpp,$(OBJ_DIR)/$(OBJ_RELEASE_DIR)/%.o,$(SRC))

all:
     $(MAKE) $(BIN_DIR)/$(TARGET)

$(OBJS): $(patsubst %.o,%.cpp,$(notdir $@))
     $(CC) -c $^ -o $@
     $(CC) -c $(SRC_DIR)/$(*F).cpp -o $@

$(BIN_DIR)/$(TARGET): $(OBJS)
     $(CC) $(OBJS) -o $@


The first rule for $(OBJS) doesn't work; the second works only because of an 
implicit rule match (not because of what I'm trying to do). The problem with 
that is it only works if I do a make clean and then build everything (i.e. I 
have multiple cpp files I'm dependent on). It doesn't detect if a single source 
file is newer than it's associated object file.

I'm using GNU make 3.81 on Solaris, but get the same problems on Red Hat linux. 
Any help would be appreciated.


reply via email to

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