37 lines
		
	
	
		
			957 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			957 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
TARGET  = mgos_i2c
 | 
						|
CC      = gcc
 | 
						|
# CFLAGS  = -g -O -Wall -Wextra -std=c89 -pedantic -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition
 | 
						|
CFLAGS  = -g -O2 -pedantic -Werror -Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition
 | 
						|
LINKER  = gcc
 | 
						|
LFLAGS  = -O -Wall -I. -lm
 | 
						|
 | 
						|
.PHONY: default all clean
 | 
						|
 | 
						|
default: $(TARGET)
 | 
						|
all: default
 | 
						|
 | 
						|
SRCDIR  = src
 | 
						|
INCDIR  = include
 | 
						|
OBJDIR  = build
 | 
						|
LIBDIR  = libs
 | 
						|
BINDIR  = .
 | 
						|
 | 
						|
SRCS     := $(shell find -L $(SRCDIR) $(LIBDIR) -type f -name '*.c')
 | 
						|
INCS     := $(shell find -L $(SRCDIR) $(LIBDIR) $(INCDIR) -type d -name 'include')
 | 
						|
INCFLAGS := $(patsubst %,-I %, $(INCS))
 | 
						|
OBJS     := $(patsubst %.c, build/%.o, $(SRCS))
 | 
						|
RM       = rm -f
 | 
						|
RMDIR    = rm -r -f
 | 
						|
 | 
						|
$(BINDIR)/$(TARGET): $(OBJS)
 | 
						|
	$(LINKER) $(OBJS) $(LFLAGS) -o $@
 | 
						|
 | 
						|
$(OBJS): $(OBJDIR)/%.o : %.c
 | 
						|
	@mkdir -p $(shell dirname $(OBJS))
 | 
						|
	$(CC) $(CFLAGS) $(INCFLAGS) -c $< -o $@
 | 
						|
 | 
						|
.PHONY: clean
 | 
						|
clean:
 | 
						|
	$(RMDIR) $(OBJDIR)
 | 
						|
	$(RM) $(BINDIR)/$(TARGET)
 |