summaryrefslogtreecommitdiff
path: root/dev-embedded/sunxi-tools/files/sunxi-tools-1.4.1-respect-user-supplied-cflags.patch
blob: faa2ae606bea6833855b06be1e258d72dc750acc (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
From 95d40f8fcfd97890c270d2987bd845c7a6bac428 Mon Sep 17 00:00:00 2001
From: Bernhard Nortmann <bernhard.nortmann@web.de>
Date: Sat, 29 Oct 2016 18:32:00 +0200
Subject: [PATCH] Makefile: Ensure that user-supplied CFLAGS get respected

Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de>
---
 .travis.yml |  2 +-
 Makefile    | 53 ++++++++++++++++++++++++++++-------------------------
 2 files changed, 29 insertions(+), 26 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 47aa891..c843fba 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,7 +4,7 @@ sudo: false
 language: c
 
 # treat all warnings as errors
-env: EXTRA_CFLAGS=-Werror
+env: CFLAGS=-Werror
 
 os:
   - linux
diff --git a/Makefile b/Makefile
index 6e0471b..12f121c 100644
--- a/Makefile
+++ b/Makefile
@@ -17,21 +17,21 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 CC ?= gcc
-CFLAGS = -g -O0 -Wall -Wextra $(EXTRA_CFLAGS)
-CFLAGS += -std=c99 $(DEFINES)
-CFLAGS += -Iinclude/
+DEFAULT_CFLAGS := -g -O0 -Wall -Wextra -std=c99
 
-DEFINES = -D_POSIX_C_SOURCE=200112L
+DEFAULT_CFLAGS += -D_POSIX_C_SOURCE=200112L
 # Define _BSD_SOURCE, necessary to expose all endian conversions properly.
 # See http://linux.die.net/man/3/endian
-DEFINES += -D_BSD_SOURCE
+DEFAULT_CFLAGS += -D_BSD_SOURCE
 # glibc 2.20+ also requires _DEFAULT_SOURCE
-DEFINES += -D_DEFAULT_SOURCE
+DEFAULT_CFLAGS += -D_DEFAULT_SOURCE
 ifeq (NetBSD,$(OS))
 # add explicit _NETBSD_SOURCE, see https://github.com/linux-sunxi/sunxi-tools/pull/22
-DEFINES += -D_NETBSD_SOURCE
+DEFAULT_CFLAGS += -D_NETBSD_SOURCE
 endif
 
+DEFAULT_CFLAGS += -Iinclude/
+
 # Tools useful on host and target
 TOOLS = sunxi-fexc sunxi-bootinfo sunxi-fel sunxi-nand-part
 
@@ -49,6 +49,7 @@ MISC_TOOLS = phoenix_info sunxi-nand-image-builder
 BINFILES = fel-pio.bin jtag-loop.sunxi fel-sdboot.sunxi uart0-helloworld-sdboot.sunxi
 
 CROSS_COMPILE ?= arm-none-eabi-
+CROSS_CC ?= $(CROSS_COMPILE)gcc
 MKSUNXIBOOT ?= mksunxiboot
 
 DESTDIR ?=
@@ -110,24 +111,26 @@ LIBUSB_CFLAGS ?= `pkg-config --cflags $(LIBUSB)`
 LIBUSB_LIBS ?= `pkg-config --libs $(LIBUSB)`
 ifeq ($(OS),Windows_NT)
 	# Windows lacks mman.h / mmap()
-	DEFINES += -DNO_MMAP
+	DEFAULT_CFLAGS += -DNO_MMAP
 	# portable_endian.h relies on winsock2
 	LIBS += -lws2_32
 endif
 
+HOST_CFLAGS = $(DEFAULT_CFLAGS) $(CFLAGS)
+
 sunxi-fel: fel.c fel-to-spl-thunk.h progress.c progress.h
-	$(CC) $(CFLAGS) $(LIBUSB_CFLAGS) $(LDFLAGS) -o $@ $(filter %.c,$^) $(LIBS) $(LIBUSB_LIBS)
+	$(CC) $(HOST_CFLAGS) $(LIBUSB_CFLAGS) $(LDFLAGS) -o $@ $(filter %.c,$^) $(LIBS) $(LIBUSB_LIBS)
 
 sunxi-nand-part: nand-part-main.c nand-part.c nand-part-a10.h nand-part-a20.h
-	$(CC) $(CFLAGS) -c -o nand-part-main.o nand-part-main.c
-	$(CC) $(CFLAGS) -c -o nand-part-a10.o nand-part.c -D A10
-	$(CC) $(CFLAGS) -c -o nand-part-a20.o nand-part.c -D A20
+	$(CC) $(HOST_CFLAGS) -c -o nand-part-main.o nand-part-main.c
+	$(CC) $(HOST_CFLAGS) -c -o nand-part-a10.o nand-part.c -D A10
+	$(CC) $(HOST_CFLAGS) -c -o nand-part-a20.o nand-part.c -D A20
 	$(CC) $(LDFLAGS) -o $@ nand-part-main.o nand-part-a10.o nand-part-a20.o $(LIBS)
 
 sunxi-%: %.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(filter %.c,$^) $(LIBS)
+	$(CC) $(HOST_CFLAGS) $(LDFLAGS) -o $@ $(filter %.c,$^) $(LIBS)
 phoenix_info: phoenix_info.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
+	$(CC) $(HOST_CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
 
 %.bin: %.elf
 	$(CROSS_COMPILE)objcopy -O binary $< $@
@@ -143,39 +146,39 @@ ARM_ELF_FLAGS += -mno-thumb-interwork -fno-stack-protector -fno-toplevel-reorder
 ARM_ELF_FLAGS += -Wstrict-prototypes -Wno-format-nonliteral -Wno-format-security
 
 fel-pio.elf: fel-pio.c fel-pio.lds
-	$(CROSS_COMPILE)gcc  -g  $(ARM_ELF_FLAGS)  $< -nostdlib -o $@ -T fel-pio.lds
+	$(CROSS_CC) -g $(ARM_ELF_FLAGS) $< -nostdlib -o $@ -T fel-pio.lds
 
 fel-pio.nm: fel-pio.elf
 	$(CROSS_COMPILE)nm $< | grep -v " _" >$@
 
 jtag-loop.elf: jtag-loop.c jtag-loop.lds
-	$(CROSS_COMPILE)gcc  -g  $(ARM_ELF_FLAGS)  $< -nostdlib -o $@ -T jtag-loop.lds -Wl,-N
+	$(CROSS_CC) -g $(ARM_ELF_FLAGS) $< -nostdlib -o $@ -T jtag-loop.lds -Wl,-N
 
 fel-sdboot.elf: fel-sdboot.S fel-sdboot.lds
-	$(CROSS_COMPILE)gcc  -g  $(ARM_ELF_FLAGS)  $< -nostdlib -o $@ -T fel-sdboot.lds -Wl,-N
+	$(CROSS_CC) -g $(ARM_ELF_FLAGS) $< -nostdlib -o $@ -T fel-sdboot.lds -Wl,-N
 
 uart0-helloworld-sdboot.elf: uart0-helloworld-sdboot.c uart0-helloworld-sdboot.lds
-	$(CROSS_COMPILE)gcc  -g  $(ARM_ELF_FLAGS)  $< -nostdlib -o $@ -T uart0-helloworld-sdboot.lds -Wl,-N
+	$(CROSS_CC) -g $(ARM_ELF_FLAGS) $< -nostdlib -o $@ -T uart0-helloworld-sdboot.lds -Wl,-N
 
 boot_head_sun3i.elf: boot_head.S boot_head.lds
-	$(CROSS_COMPILE)gcc  -g  $(ARM_ELF_FLAGS)  $< -nostdlib -o $@ -T boot_head.lds -Wl,-N -DMACHID=0x1094
+	$(CROSS_CC) -g $(ARM_ELF_FLAGS) $< -nostdlib -o $@ -T boot_head.lds -Wl,-N -DMACHID=0x1094
 
 boot_head_sun4i.elf: boot_head.S boot_head.lds
-	$(CROSS_COMPILE)gcc  -g  $(ARM_ELF_FLAGS)  $< -nostdlib -o $@ -T boot_head.lds -Wl,-N -DMACHID=0x1008
+	$(CROSS_CC) -g $(ARM_ELF_FLAGS) $< -nostdlib -o $@ -T boot_head.lds -Wl,-N -DMACHID=0x1008
 
 boot_head_sun5i.elf: boot_head.S boot_head.lds
-	$(CROSS_COMPILE)gcc  -g  $(ARM_ELF_FLAGS)  $< -nostdlib -o $@ -T boot_head.lds -Wl,-N -DMACHID=0x102A
+	$(CROSS_CC) -g $(ARM_ELF_FLAGS) $< -nostdlib -o $@ -T boot_head.lds -Wl,-N -DMACHID=0x102A
 
 sunxi-bootinfo: bootinfo.c
 
 # target tools
-TARGET_CFLAGS = -g -O0 -Wall -Wextra -std=c99 $(DEFINES) -Iinclude/ -static
+TARGET_CFLAGS = $(DEFAULT_CFLAGS) -static $(CFLAGS)
 sunxi-pio: pio.c
-	$(CROSS_COMPILE)gcc $(TARGET_CFLAGS) -o $@ $<
+	$(CROSS_CC) $(TARGET_CFLAGS) -o $@ $<
 sunxi-meminfo: meminfo.c
-	$(CROSS_COMPILE)gcc $(TARGET_CFLAGS) -o $@ $<
+	$(CROSS_CC) $(TARGET_CFLAGS) -o $@ $<
 sunxi-script_extractor: script_extractor.c
-	$(CROSS_COMPILE)gcc $(TARGET_CFLAGS) -o $@ $<
+	$(CROSS_CC) $(TARGET_CFLAGS) -o $@ $<
 
 version.h:
 	@./autoversion.sh > $@
-- 
2.32.0