title: Cygwin - Makefile-error: recipe for target `main.o' failed
body: <p>I am currently failing to write a good makefile and don't know the reason why..  -.-</p>
  
  <p>This is my main.c:</p>
  
  <pre><code>#include &lt;windows.h&gt;
  #include &lt;stdio.h&gt;
  
  int main(int argc, char *argv[])
  { 
     printf("MEEEEEP");
     return (0);
  }
  </code></pre>
  
  <p>This is my makefile:</p>
  
  <pre><code># make SYSTEM= OS= ENVIRONMENT=
  # Binaries to use
  ifeq ($(ENVIRONMENT),MINGW)
    CXX   = i686-pc-mingw32-g++
  else
    CXX   = g++
  endif
  REMOVE  = rm -vf
  
  RC      = windres
  EXE     = .exe
  
  #############################################################
  # Info
  
  ifeq ($(CXX),g++)
  INFO_CXX = g++ -dumpversion; g++ -dumpmachine
  endif
  
  #############################################################
  # Flags
  
  DEBUG = -DDEBUG -g
  OPTIMIZATION = -O2 #-Winline -finline-functions
  
  CFLAGS = -Wall -Wextra -W -static $(DEBUG) $(OPTIMIZATION) -D$(SYSTEM) -D$(OS) -D$(ENVIRONMENT) $(PRGFLAGS)
  
  ifeq ($(SYSTEM),I686)
    CFLAGS   += -m32
  
    ifeq ($(OS),WIN32)
      CFLAGS += -D_WIN32 
    endif
  
    ifeq ($(ENVIRONMENT),MINGW)
      CFLAGS += -fexceptions 
    endif
  endif
  
   LFLAGS    = 
  
  #############################################################
  # Files
  
  CFILES      = main.c
  OBJS        = ${CFILES:.c=.o}
  
  #############################################################
  # Include
  
  INCLUDES      = -I.
  
  #############################################################
  # Library
  
  LIBRARIES     = 
  
  #############################################################
  # Targets
  .PHONY: all
  all:    
      @echo == Standard build: make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW
      @echo
      @echo 
      make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW gyro
  
  #############################################################
  # Implicit rules and filename extensions... 
  .SUFFIXES: .h .o .c
  
  .c.o:     %.h
        @echo Compiling $&lt; for $(SYSTEM) $(OS) $(ENVIRONMENT) ...
        @echo MEEP
        $(CXX) $(CFLAGS) $(INCLUDES) -c $&lt; -o $@
        @echo MEEP2
  
  #############################################################
  # Target rules
  gyro: $(OBJS)
        @echo Building software for $(SYSTEM) ...
        @echo
        $(CXX) $(CFLAGS) $(LFLAGS) -o $@$(EXE) $(OBJS) $(LIBRARIES)
  
  #############################################################
  # Clean
  .PHONY: clean
  clean:
      $(REMOVE) $(OBJS)
  
  
  #############################################################
  # Info
  .PHONY: info
  info:
      @echo 
      @echo Information about C++ Compiler/Linker:
      @echo 
      $(INFO_CXX)
  </code></pre>
  
  <p>When i type in make gyro,
  i receive the output:</p>
  
  <pre><code>Compiling main.c for Windows_NT ...
  MEEP
  g++ -Wall -Wextra -W -static -DDEBUG -g -O2  -D -DWindows_NT -D  -I. -c main.c -o     main.o
  makeNew.mak:83: recipe for target `main.o' failed
  make: *** [main.o] Error 1
  </code></pre>
  
  <p>But Line number 83 is behind .c.o:     %.h. And i don’t understand why.
  Does anyone have a solution for me? </p>