MrDuk
MrDuk

Reputation: 18322

How to change my makefile to build into a separate folder

I have the following makefile:

CC=g++
CCOPTS=-Wall -Wextra -g

OBJS = manager.o tcpcon.o
TARGETS = manager

.PHONY: all clean

$(TARGETS) : $(OBJS)
    $(CC) -o $@ $^ $(CFLAGS) $(LIBS)

all: $(TARGETS) $(OBJS)

clean:
    rm -f $(TARGETS) $(OBJS)

%: %.cpp
    $(CC) $(CCOPTS) -o $@ $<

Is there a way I can make my .o and bin files be built into a directory called build? I tried going through some tutorials, but I guess I just don't fully understand makefiles..

Upvotes: 1

Views: 172

Answers (1)

Beta
Beta

Reputation: 99154

Don't feel too bad; I'm not sure anyone fully understands makefiles.

BUILD_DIR = build

OBJS = $(BUILD_DIR)/manager.o $(BUILD_DIR)/tcpcon.o
TARGETS = $(BUILD_DIR)/manager

...

$(BUILD_DIR)/%.o: %.cpp
    $(CC) -c $(CCOPTS) -o $@ $<

Upvotes: 2

Related Questions