#-----Macros--------------------------------- CXX = gcc CXXFLAGS = -O3 #-----Final product---------------------- PRODUCT = foobar #-----File Location---------------------- SRCDST = src OBJDST = obj EXEDST = exe #-----File List---------------------- SRC = $(foreach dir,$(SRCDST),$(wildcard $(dir)/*.c)) OBJ = $(addsuffix .o, $(basename $(subst ${SRCDST},${OBJDST},${SRC}))) #-----Base rules--------------------------------- obj/%.o : src/%.c $(CXX) $(CXXFLAGS) -c $< -o $@ #-----Main rule--------------------------------- all: $(OBJ) $(CXX) $(CXXFLAGS) -o ${EXEDST}/${PRODUCT} $(OBJ) #-----Other stuff---------------------------- depend: makedepend $(CXXFLAGS) -Y $(SRC) clean: rm -f $(OBJ) rm -f ${EXEDST}/${PRODUCT}
|