| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- LIB = periphery.a
- SRCS = src/gpio.c src/led.c src/pwm.c src/spi.c src/i2c.c src/mmio.c src/serial.c src/version.c
- SRCDIR = src
- OBJDIR = obj
- TEST_PROGRAMS = $(basename $(wildcard tests/*.c))
- ###########################################################################
- OBJECTS = $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SRCS))
- GPIO_CDEV_SUPPORT := $(shell ! echo "\#include <linux/gpio.h>" | $(CC) -E - >/dev/null 2>&1; echo $$?)
- COMMIT_ID := $(shell git describe --abbrev --always --tags --dirty 2>/dev/null || echo "")
- OPT ?= -O3
- CFLAGS += -std=gnu99 -pedantic
- CFLAGS += $(OPT)
- CFLAGS += -Wall -Wextra -Wno-stringop-truncation $(DEBUG) -fPIC
- CFLAGS += -DPERIPHERY_VERSION_COMMIT=\"$(COMMIT_ID)\" -DPERIPHERY_GPIO_CDEV_SUPPORT=$(GPIO_CDEV_SUPPORT)
- LDFLAGS +=
- ifdef CROSS_COMPILE
- CC = $(CROSS_COMPILE)gcc
- AR = $(CROSS_COMPILE)ar
- endif
- ###########################################################################
- .PHONY: all
- all: $(LIB)
- .PHONY: tests
- tests: $(TEST_PROGRAMS)
- .PHONY: clean
- clean:
- rm -rf $(LIB) $(OBJDIR) $(TEST_PROGRAMS)
- ###########################################################################
- tests/%: tests/%.c $(LIB)
- $(CC) $(CFLAGS) $(LDFLAGS) $< $(LIB) -o $@ -lpthread
- ###########################################################################
- $(OBJECTS): | $(OBJDIR)
- $(OBJDIR):
- mkdir $(OBJDIR)
- $(LIB): $(OBJECTS)
- $(AR) rcs $(LIB) $(OBJECTS)
- $(OBJDIR)/%.o: $(SRCDIR)/%.c
- $(CC) $(CFLAGS) $(LDFLAGS) -c $< -o $@
|