51 lines
1.2 KiB
Makefile
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)
|