# MAKEFILE SOURCE: # Author: yanick.rochon@gmail.com # Date : 2011-08-10 # project name (generate executable with this name) TARGET = pollux CC = gcc # compiling flags here CFLAGS = -std=c99 -I. LINKER = gcc -o # linking flags here LFLAGS = -Wall -I. -lm # change these to set the proper directories where each files should be SRCDIR = source OBJDIR = source BINDIR = . SOURCES := $(wildcard $(SRCDIR)/*.c) INCLUDES := $(wildcard $(SRCDIR)/*.h) OBJECTS := $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o) rm = rm -f $(BINDIR)/$(TARGET): $(OBJECTS) @$(LINKER) $@ $(OBJECTS) $(LFLAGS) @echo "Linking complete!" $(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c @$(CC) $(CFLAGS) -c $< -o $@ @echo "Compiled "$<" successfully!" .PHONEY: clean clean: @$(rm) $(OBJECTS) @echo "Cleanup complete!" .PHONEY: remove remove: clean @$(rm) $(BINDIR)/$(TARGET) @echo "Executable removed!"