TAR = mcpat
+BUILD_DIR ?= ../../build
+ODIR = $(BUILD_DIR)/mcpat
-.PHONY: dbg opt depend clean clean_dbg clean_opt
+.PHONY: all dbg opt clean clean_dbg clean_opt
all: opt
-dbg: $(TAR).mk obj_dbg
- @$(MAKE) TAG=dbg -C . -f $(TAR).mk
+dbg: $(TAR).mk $(ODIR)/obj_dbg
+ @$(MAKE) TAG=dbg ODIR=$(ODIR) -C . -f $(TAR).mk
-opt: $(TAR).mk obj_opt
- @$(MAKE) TAG=opt -C . -f $(TAR).mk
+opt: $(TAR).mk $(ODIR)/obj_opt
+ @$(MAKE) TAG=opt ODIR=$(ODIR) -C . -f $(TAR).mk
-obj_dbg:
- mkdir $@
+$(ODIR)/obj_dbg:
+ mkdir -p $@
-obj_opt:
- mkdir $@
+$(ODIR)/obj_opt:
+ mkdir -p $@
clean: clean_dbg clean_opt
-clean_dbg: obj_dbg
- @$(MAKE) TAG=dbg -C . -f $(TAR).mk clean
+clean_dbg: $(ODIR)/obj_dbg
+ @$(MAKE) TAG=dbg ODIR=$(ODIR) -C . -f $(TAR).mk clean
rm -rf $<
-clean_opt: obj_opt
- @$(MAKE) TAG=opt -C . -f $(TAR).mk clean
+clean_opt: $(ODIR)/obj_opt
+ @$(MAKE) TAG=opt ODIR=$(ODIR) -C . -f $(TAR).mk clean
rm -rf $<
wire.cc \
xmlParser.cc
-OBJS = $(patsubst %.cc,obj_$(TAG)/%.o,$(SRCS))
+OBJS = $(patsubst %.cc,$(ODIR)/obj_$(TAG)/%.o,$(SRCS))
-all: obj_$(TAG)/$(TARGET)
- cp -f obj_$(TAG)/$(TARGET) $(TARGET)
+all: $(ODIR)/obj_$(TAG)/$(TARGET)
+ cp -f $< $(ODIR)/$(TARGET)
-obj_$(TAG)/$(TARGET) : $(OBJS)
- $(CXX) $(OBJS) -o $@ $(INCS) $(CXXFLAGS) $(LIBS) -pthread
+$(ODIR)/obj_$(TAG)/$(TARGET) : $(OBJS)
+ $(CXX) $^ -o $@ $(INCS) $(CXXFLAGS) $(LIBS) -pthread
-#obj_$(TAG)/%.o : %.cc
-# $(CXX) -c $(CXXFLAGS) $(INCS) -o $@ $<
-
-obj_$(TAG)/%.o : %.cc
+$(ODIR)/obj_$(TAG)/%.o : %.cc
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
- -rm -f *.o $(TARGET)
+ -rm -f *.o $(ODIR)/$(TARGET)