-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
87 lines (66 loc) · 2.17 KB
/
Copy pathMakefile
File metadata and controls
87 lines (66 loc) · 2.17 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
86
87
UNAME := $(shell uname -s)
CC := gcc
CFLAGS := -Wall -Wextra -O2 -std=gnu99 -D_FILE_OFFSET_BITS=64 -DINCLUDE_BIT2MCS
LDFLAGS :=
ifeq ($(UNAME),Darwin)
CC := cc
CFLAGS += -D_DEFAULT_SOURCE -Wno-deprecated-declarations
LDFLAGS := -pthread
else ifeq ($(UNAME),Linux)
LDFLAGS := -pthread
else ifneq (,$(findstring MINGW,$(UNAME)))
CFLAGS += -DWINDOWS
LDFLAGS := -lws2_32 -liphlpapi -lpthread
endif
TARGET := m65defrag
BINDIR := bin
BUILD := build
BINARY := $(BINDIR)/$(TARGET)
LIB_DIR := lib
INC_DIR := $(LIB_DIR)/include
SRC_DIR := src
ETH_OBJS := \
$(BUILD)/lib/etherload/etherload_common.o \
$(BUILD)/lib/etherload/ethlet_dma_load.o \
$(BUILD)/lib/etherload/ethlet_echo.o \
$(BUILD)/lib/etherload/ethlet_all_done_basic2.o
LIB_OBJS := \
$(BUILD)/lib/mega65_ftp.o \
$(BUILD)/lib/m65common.o \
$(BUILD)/lib/logging.o \
$(BUILD)/lib/ftphelper_eth.o \
$(ETH_OBJS)
SRC_OBJS := \
$(BUILD)/src/m65ftp_lib.o \
$(BUILD)/src/m65defrag.o
LIB_STATIC := $(BUILD)/libm65ftp.a
.PHONY: all clean
all: $(BINARY)
$(BINARY): $(BINDIR) $(SRC_OBJS) $(LIB_STATIC)
$(CC) $(CFLAGS) $(SRC_OBJS) -o $@ $(LIB_STATIC) $(LDFLAGS)
$(BINDIR):
mkdir -p $@
$(LIB_STATIC): $(LIB_OBJS)
$(AR) rcs $@ $^
$(BUILD)/lib/%.o: $(LIB_DIR)/%.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -I$(INC_DIR) -c $< -o $@
$(BUILD)/lib/etherload/%.o: $(LIB_DIR)/etherload/%.c
@mkdir -p $(dir $@)
$(CC) -Wall -O2 -std=gnu99 -D_FILE_OFFSET_BITS=64 -DINCLUDE_BIT2MCS \
-I$(INC_DIR) -Wno-unused-parameter -c $< -o $@
$(BUILD)/lib/mega65_ftp.o: $(LIB_DIR)/mega65_ftp.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -DM65FTP_AS_LIB -I$(INC_DIR) \
-Wno-sign-compare -Wno-unused-parameter -Wno-maybe-uninitialized \
-Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation \
-Wno-stringop-overflow -Wno-unused-variable -c $< -o $@
$(BUILD)/lib/m65common.o: $(LIB_DIR)/m65common.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -I$(INC_DIR) \
-Wno-sign-compare -Wno-unused-parameter -Wno-maybe-uninitialized -Wno-format-overflow -c $< -o $@
$(BUILD)/src/%.o: $(SRC_DIR)/%.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -I$(SRC_DIR) -I$(LIB_DIR) -I$(INC_DIR) -c $< -o $@
clean:
rm -rf $(BINARY) $(BINDIR) $(BUILD)