Clean up linux Makefile

* Compiler now used to generate dependencies via -MM
* Object files are put into .obj folder rather than loose next to the
  source files
This commit is contained in:
baldurk
2014-09-10 18:20:22 +01:00
parent 48748936ba
commit 2735de8b9a
4 changed files with 46 additions and 27 deletions
+13 -7
View File
@@ -8,22 +8,28 @@ MACROS=-DLINUX \
CFLAGS=-c -Wall -Werror -fPIC $(MACROS) -I../renderdoc/
CPPFLAGS=-std=c++11 -g -Wno-unused -Wno-unknown-pragmas -Wno-reorder
LDFLAGS=-L../renderdoc -lrenderdoc -lGL
OBJDIR=.obj
OBJECTS=renderdoccmd.o renderdoccmd_linux.o
.PHONY: all
all: bin/renderdoccmd
%.o: %.cpp
$(OBJDIR)/%.o: %.cpp
@mkdir -p $$(dirname $@)
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $*.cpp > $(OBJDIR)/$*.d
%.o: %.c
$(OBJDIR)/%.o: %.c
@mkdir -p $$(dirname $@)
$(CC) $(CFLAGS) -c -o $@ $<
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $*.c > $(OBJDIR)/$*.d
../renderdoc/librenderdoc.so:
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(SHADERS) $(OBJECTS))
bin/renderdoccmd: $(OBJECTS) $(SOURCES) ../renderdoc/librenderdoc.so
bin/renderdoccmd: $(OBJDIR_OBJECTS) ../renderdoc/librenderdoc.so
mkdir -p bin/
g++ -o bin/renderdoccmd $(OBJECTS) $(LDFLAGS)
g++ -o bin/renderdoccmd $(OBJDIR_OBJECTS) $(LDFLAGS)
.PHONY: clean
clean:
find -type f -iname \*.o -exec rm '{}' \;
rm -f bin/renderdoccmd
rm -rf bin/renderdoccmd $(OBJDIR)