37 lines
1010 B
Makefile
37 lines
1010 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' | egrep -v 'deps/|build/' )
|
|
INCS := $(shell find -L $(SRCDIR) $(LIBDIR) $(INCDIR) -type d -name 'include'| egrep -v 'deps/|build/' )
|
|
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)
|