diff --git a/Makefile b/Makefile index 6e0b709..8110cea 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ TARGET = mgos_i2c CC = gcc -CFLAGS = -g -O -Wall -I include/ +CFLAGS = -g -O -Wall LINKER = gcc LFLAGS = -O -Wall -I. -lm @@ -12,21 +12,24 @@ all: default SRCDIR = src INCDIR = include OBJDIR = build +LIBDIR = libs BINDIR = . -SOURCES := $(wildcard $(SRCDIR)/*.c) -INCLUDES := $(wildcard $(SRCDIR)/*.h) -OBJECTS := $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o) +SRCS := $(shell find $(SRCDIR) $(LIBDIR) -type f -name '*.c') +INCS := $(shell find $(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 $@ -$(BINDIR)/$(TARGET): $(OBJECTS) - $(LINKER) $(OBJECTS) $(LFLAGS) -o $@ - -$(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c - $(CC) $(CFLAGS) -c $< -o $@ +$(OBJS): $(OBJDIR)/%.o : %.c + @mkdir -p $(shell dirname $(OBJS)) + $(CC) $(CFLAGS) $(INCFLAGS) -c $< -o $@ .PHONY: clean clean: - $(RM) $(OBJECTS) + $(RMDIR) $(OBJDIR) $(RM) $(BINDIR)/$(TARGET) diff --git a/include/mgos_barometer.h b/libs/mgos_barometer/include/mgos_barometer.h similarity index 100% rename from include/mgos_barometer.h rename to libs/mgos_barometer/include/mgos_barometer.h diff --git a/src/mgos_barometer.c b/libs/mgos_barometer/src/mgos_barometer.c similarity index 100% rename from src/mgos_barometer.c rename to libs/mgos_barometer/src/mgos_barometer.c diff --git a/src/mgos_barometer_bme280.c b/libs/mgos_barometer/src/mgos_barometer_bme280.c similarity index 100% rename from src/mgos_barometer_bme280.c rename to libs/mgos_barometer/src/mgos_barometer_bme280.c diff --git a/src/mgos_barometer_bme280.h b/libs/mgos_barometer/src/mgos_barometer_bme280.h similarity index 100% rename from src/mgos_barometer_bme280.h rename to libs/mgos_barometer/src/mgos_barometer_bme280.h diff --git a/src/mgos_barometer_internal.h b/libs/mgos_barometer/src/mgos_barometer_internal.h similarity index 100% rename from src/mgos_barometer_internal.h rename to libs/mgos_barometer/src/mgos_barometer_internal.h diff --git a/src/mgos_barometer_mpl115.c b/libs/mgos_barometer/src/mgos_barometer_mpl115.c similarity index 100% rename from src/mgos_barometer_mpl115.c rename to libs/mgos_barometer/src/mgos_barometer_mpl115.c diff --git a/src/mgos_barometer_mpl115.h b/libs/mgos_barometer/src/mgos_barometer_mpl115.h similarity index 100% rename from src/mgos_barometer_mpl115.h rename to libs/mgos_barometer/src/mgos_barometer_mpl115.h diff --git a/src/mgos_barometer_mpl3115.c b/libs/mgos_barometer/src/mgos_barometer_mpl3115.c similarity index 100% rename from src/mgos_barometer_mpl3115.c rename to libs/mgos_barometer/src/mgos_barometer_mpl3115.c diff --git a/src/mgos_barometer_mpl3115.h b/libs/mgos_barometer/src/mgos_barometer_mpl3115.h similarity index 100% rename from src/mgos_barometer_mpl3115.h rename to libs/mgos_barometer/src/mgos_barometer_mpl3115.h