2024-05-14 02:14:13 +02:00

51 lines
1.2 KiB
Makefile

CC = gcc
INCLUDES = -Iinclude
CFLAGS = -Wall -Wpedantic -std=c90
BINDIR = build
OBJDIR = build/obj
SOURCES = \
src/vn/conv.c \
src/vn/error.c \
src/vn/error_detection.c \
src/vn/sensors.c \
src/vn/util.c \
src/vn/math/matrix.c \
src/vn/math/vector.c \
src/vn/protocol/spi.c \
src/vn/protocol/upack.c \
src/vn/protocol/upackf.c \
src/vn/sensors/compositedata.c \
src/vn/sensors/ezasyncdata.c \
src/vn/sensors/searcher.c \
src/vn/xplat/criticalsection.c \
src/vn/xplat/event.c \
src/vn/xplat/serialport.c \
src/vn/xplat/thread.c \
src/vn/xplat/time.c
# Set the object file names, with the source directory stripped
# from the path, and the build path prepended in its place
OBJECTS = $(SOURCES:src/%.c=$(OBJDIR)/%.o)
all: dirs lib
lib: libvnc.a
libvnc.a: $(OBJECTS)
ar -cvq $(BINDIR)/libvnc.a $(OBJECTS)
# Create the directories used in the build
.PHONY: dirs
dirs:
@mkdir -p $(BINDIR)
@mkdir -p $(OBJDIR)
@mkdir -p $(dir $(OBJECTS))
$(OBJDIR)/%.o: src/%.c
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
clean:
rm -f $(BINDIR)/libvnc.a
rm -f $(OBJECTS)