title: syntax error near unexpected token `newline'
body: <p>After compiling some code using a <code>Makefile</code> I get this when I try to run it:</p>
  
  <pre><code>$ ./libbookgui.a
  ./libbookgui.a: line 1: syntax error near unexpected token `newline'
  ./libbookgui.a: line 1: `!&lt;arch&gt;'
  </code></pre>
  
  <p>The <code>Makefile</code> has the following contents. </p>
  
  <pre><code>INCLUDES = -I"$(FLTK)"
  LIBS     = -lstdc++
  CXXFLAGS = $(INCLUDES) -Wall -time -O3 -DNDEBUG -Wno-deprecated
  LIBFLAGS = 
  AR       = ar
  
  .SUFFIXES: .cpp .o
  
  # Create a list of source files.
  SOURCES  = $(shell ls *.cpp)
  # Create a list of object files from the source file lists.
  OBJECTS = ${SOURCES:.cpp=.o}     
  # Create a list of targets.
  TARGETS = libbookgui.a
  
  # Build all targets by default
  all:    $(TARGETS)
  
  %.a: $(OBJECTS)
      $(AR) rcs $@ $(OBJECTS)
  
  # A rule to build .o file out of a .cpp file
  %.o: %.cpp 
      $(CXX) $(CXXFLAGS) -o $@ -c $&lt;
  
  # A rule to clean all the intermediates and targets
  clean:  
      rm -rf $(TARGETS) $(OBJECTS) *.out *.stackdump
  </code></pre>
  
  <p>I see that it has the line <code>TARGETS = libbookgui.a</code> and the compiler doesn't return any errors it just creates the <code>.a</code> file.</p>
  
  <p>Any ideas?</p>