title: Why do I get an "Unterminated quoted string" error?
body: <p>This is my makefile for a particular C++ project, but when I run <code>make all</code>, I get:</p>
  
  <pre><code>/bin/sh: 1: Syntax error: Unterminated quoted string
  Makefile:28: recipe for target '"system' failed
  make: *** ["system] Error 2
  </code></pre>
  
  <p>When I change <code>exe</code> to something with no spaces, it works fine.</p>
  
  <p>EDIT #1: The reason I used quotes was so I could use spaces in the output file name.</p>
  
  <hr>
  
  <pre><code>cc = g++
  
  exe = "system software version 1.0"
  src_dir = src
  obj_dir = obj
  
  src = $(wildcard $(src_dir)/*.cpp)
  obj = $(patsubst $(src_dir)/%.cpp, $(obj_dir)/%.o, $(src))
  
  
  libs = -lallegro -lallegro_primitives
  
  include_paths = -I "include" -I "~/allegro5/include/"
  
  lib_paths = -L "/usr/lib/"
  
  flags = -Wall -Wextra -Wpedantic -g -std=c++14
  
  
  
  
  all: $(exe)
  
  play: all
      $(exe)
  
  $(exe): $(obj)
      $(cc) $(lib_paths) $^ $(libs) -o $@
  
  compile_only: $(obj)
  
  $(obj_dir)/%.o: $(src_dir)/%.cpp
      $(cc) $(flags) $(include_paths) -c $^ -o $@
  
  clean:
      rm -f $(obj_dir)/*.o
  
  build: all
  
  rebuild: clean build
  
  .PHONY: all clean rebuild
  </code></pre>