forked from vdudouyt/stm8flash
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
86 lines (70 loc) · 1.92 KB
/
Copy pathmakefile
File metadata and controls
86 lines (70 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# stm8flash makefile
#
# Multiplatform support
# - Linux (x86, Raspian)
# - MacOS (Darwin)
# - Windows (e.g. mingw-w64-x86 with libusb1.0)
include version.mk
GIT_VERSION=$(firstword $(subst ., ,$(shell git log -1 --format="%<(10,trunc)%H")))$(shell git diff --quiet || echo '-dirty')
PLATFORM?=$(shell uname -s)
DEFINES+=-DVER_NAME=$(NAME)
DEFINES+=-DVER_MAJOR=$(MAJOR)
DEFINES+=-DVER_MINOR=$(MINOR)
DEFINES+=-DVER_PATCH=$(PATCH)
DEFINES+=-DGIT_VERSION=$(GIT_VERSION)
BIN=bin
SRC=src
INSTALLDIR=/usr/local/bin
SRCS=
SRCS+=stlinkv2.c
SRCS+=binary.c
SRCS+=ihex.c
SRCS+=main.c
SRCS+=srec.c
SRCS+=stm8.c
SRCS+=region.c
SRCS+=parts-db.c
PROG=stm8flash
OBJS=$(addprefix $(BIN)/, $(addsuffix .o, $(SRCS)))
OUTPUT=$(BIN)/$(PROG)$(PROG_SUFFIX)
# Pass LIBUSB_QUIET=anything to Make to silence debug output from libusb.
ifneq (,$(strip $(LIBUSB_QUIET)))
BASE_CFLAGS += -DSTM8FLASH_LIBUSB_QUIET
endif
ifeq ($(PLATFORM),Linux)
LIBS=`pkg-config --libs libusb-1.0`
LIBUSB_CFLAGS=`pkg-config --cflags libusb-1.0`
PROG_SUFFIX=
else ifeq ($(PLATFORM),Darwin)
LIBS=$(shell pkg-config --libs libusb-1.0)
LIBUSB_CFLAGS=$(shell pkg-config --cflags libusb-1.0)
#MacOSSDK=$(shell xcrun --show-sdk-path)
#BASE_CFLAGS += -I$(MacOSSDK)/usr/include/ -I$(MacOSSDK)/usr/include/sys -I$(MacOSSDK)/usr/include/machine
PROG_SUFFIX=
else ifeq ($(PLATFORM),FreeBSD)
LIBS=`pkg-config --libs libusb-1.0`
LIBUSB_CFLAGS=`pkg-config --cflags libusb-1.0`
PROG_SUFFIX=
else
# Generic case is Windows
DEFINES+=-D_WIN32
LIBS= -lusb-1.0
LIBUSB_CFLAGS=
CC ?= gcc
PROG_SUFFIX=.exe
endif
.PHONY: all release debug clean install
bin/%.c.o:src/%.c
@mkdir -p $(dir $@)
$(CC) --std=gnu99 -Wall -O1 $(DEFINES) -c $< -o $@ $(LIBUSB_CFLAGS)
all: $(OUTPUT)
@echo SUCCESS $(GIT_VERSION)
$(OUTPUT): $(OBJS)
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) $^ $(LIBS) -o $@
$(OBJS): $(wildcard $(SRC)/*.h)
clean:
rm -rf $(BIN)
install:
mkdir -p $(INSTALLDIR)
cp $(OUTPUT) $(INSTALLDIR)