# GNU/Linux specific Make directives. # Declare tools. SHELL = /bin/sh CC = cc LD = cc ECHO = @echo CFLAGS = -std=c99 -Wall -Wextra -O0 -ggdb3 -Wno-unused-variable -Wno-unused-parameter LDFLAGS = EXECUTABLE = bmp180_rpi SOURCES = main.c OBJECTS = $(SOURCES:.c=.o) CLEANFILES = main.o # To get a fully verbose make output do declare 'AT' at the command line like so: 'make AT='. # By default AT is undefined and thus assigned the string '@' which suppresses output from commands. AT ?= @ # Colors and efects ####################################### NORMAL = \033[m FG_DKGREEN = \033[32;7m FG_YELLOW = \033[33;7m FG_BLUE = \033[34;7m FG_REDFULL = \033[31;7m ########################################## .SUFFIXES: .c .o .PHONY: clean # Compile all: clean $(EXECUTABLE) .c.o: $(ECHO) "[$(FG_BLUE)COMPILING$(NORMAL)] $@" $(AT) $(CC) $(CFLAGS) -o $*.o -c $< $(EXECUTABLE): $(OBJECTS) $(ECHO) "[$(FG_YELLOW)LINKING$(NORMAL)] $(EXECUTABLE)" $(AT) $(LD) $(LDFLAGS) $(OBJECTS) -o $(EXECUTABLE) $(ECHO) "[$(FG_DKGREEN)SUCCESS$(NORMAL)] Run ./$(EXECUTABLE) to start your aplication, Enjoy :)" clean: $(ECHO) "[$(FG_REDFULL)CLEANED$(NORMAL)] $(CLEANFILES)" $(AT) rm -rf $(CLEANFILES)