ext: Redirect McPAT object files
authorYasuko Eckert <yasuko.eckert@amd.com>
Tue, 3 Jun 2014 20:32:29 +0000 (13:32 -0700)
committerYasuko Eckert <yasuko.eckert@amd.com>
Tue, 3 Jun 2014 20:32:29 +0000 (13:32 -0700)
All object files and McPAT binaries are moved to directory gem5/build/mcpat/
rather than creating them locally.

ext/mcpat/makefile
ext/mcpat/mcpat.mk

index 27f213fa5b7ed961354dec25aed8274bccc124c0..f5af29e740fed5bfa62c113ce7a63c51a13e10ad 100644 (file)
@@ -1,28 +1,30 @@
 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 $<
 
index 9aacbe0e6428fce5450bd12fe1d4550f713757a7..1e27dcde0dabcb412fba66b461f18ad8f89218bb 100644 (file)
@@ -61,21 +61,18 @@ SRCS  = \
   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)