fixed make
[physics.git] / src / Makefile
index 1ebf227..342a14e 100644 (file)
@@ -14,7 +14,7 @@ WORKINGDIR  := ..
 TARGETNAME  := run_physics
 TARGET      := ${WORKINGDIR}/${TARGETNAME}
 
-SRCS := # simply to keep every line below the same
+SRCS := # := start
 
 DIRS := # := start
 DIRS += .
@@ -35,6 +35,8 @@ DEPSDIR := ../deps/
 DEPS    := ${SRCS:.cpp=.d}
 DEPS    := $(addprefix ${DEPSDIR},${DEPS})
 
+BLDDIRS := $(addprefix ${DEPSDIR},${DIRS}) $(addprefix ${OBJSDIR},${DIRS})
+
 
 VERBOSE := 0
 
@@ -53,17 +55,22 @@ endif
 .PHONY: all
 all: ${TARGET}
 
+# how to link the main target
 ${TARGET}: ${OBJS}
        ${Q1}echo "${CXX}: $@"
        ${Q2}${CXX} ${CXXFLAGS} -o $@ $^ ${LIBS}
 
+# how to make a directory
+${BLDDIRS}:
+       ${Q2}mkdir -p $@
+
 # rule to make a depend file from a .cpp
-${DEPSDIR}%.d: %.cpp
+${DEPSDIR}%.d: %.cpp | ${BLDDIRS}
        ${Q1}echo "DEP: $@"
        ${Q2}${CXX} -MM ${CXXFLAGS} $< | sed 's,\(^.*\):,${OBJSDIR}\1 $@:,' > $@
 
 # rule to make an object file from a .cpp
-${OBJSDIR}%.o: %.cpp
+${OBJSDIR}%.o: %.cpp | ${BLDDIRS}
        ${Q1}echo "${CXX}: $@"
        ${Q2}${CXX} ${CXXFLAGS} -c -o $@ $<
 
@@ -120,7 +127,7 @@ cgdb: all
 
 .PHONY: val
 val: all
-       cd ${WORKINGDIR}; valgrind ${VALFLAGS} ${TARGETNAME}
+       cd ${WORKINGDIR}; valgrind ${VALFLAGS} ./${TARGETNAME}
 
 .PHONY: prof
 prof: run