blob: ed47fab8186fcc7c030fed1b53eab923467e7e0b [file] [log] [blame]
Patrick Williams8b8bc412016-08-17 15:02:23 -05001From 6d85e6cc3ab97c3f060e5e0a8e3f1945a14c86ba Mon Sep 17 00:00:00 2001
2From: Gianfranco Costamagna <gianfranco.costamagna@abinsula.com>
3Date: Mon, 12 Oct 2015 12:15:51 +0200
4Subject: [PATCH] Add initial cross compile support (rebase from Petter Mabรคcker <petter@technux.se> version)
5
6---
7 devLib/Makefile | 54 ++++++++++++++++++++++++-------------------
8 examples/Gertboard/Makefile | 22 +++++++++++-------
9 examples/Makefile | 22 +++++++++++-------
10 examples/PiFace/Makefile | 22 +++++++++++-------
11 examples/PiGlow/Makefile | 4 ++--
12 examples/q2w/Makefile | 4 ++--
13 gpio/Makefile | 29 ++++++++++++-----------
14 wiringPi/Makefile | 50 +++++++++++++++++++++------------------
15 8 files changed, 119 insertions(+), 88 deletions(-)
16
17diff --git a/devLib/Makefile b/devLib/Makefile
18index 0fb0033..cbea759 100644
19--- a/devLib/Makefile
20+++ b/devLib/Makefile
21@@ -31,15 +31,19 @@ ifneq ($V,1)
22 Q ?= @
23 endif
24
25-STATIC=libwiringPiDev.a
26-DYNAMIC=libwiringPiDev.so.$(VERSION)
27+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
28+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
29
30-#DEBUG = -g -O0
31-DEBUG = -O2
32-CC = gcc
33-INCLUDE = -I.
34-DEFS = -D_GNU_SOURCE
35-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
36+BASE_NAME=libwiringPiDev
37+STATIC=$(BASE_NAME).a
38+DYNAMIC=$(BASE_NAME).so.$(VERSION)
39+
40+#DEBUG ?= -g -O0
41+DEBUG ?= -O2
42+CC ?= gcc
43+INCLUDE ?= -I.
44+DEFS ?= -D_GNU_SOURCE
45+CFLAGS ?= $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
46
47 LIBS =
48
49@@ -66,16 +70,16 @@ $(STATIC): $(OBJ)
50
51 $(DYNAMIC): $(OBJ)
52 $Q echo "[Link (Dynamic)]"
53- $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ)
54+ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
55
56 .c.o:
57 $Q echo [Compile] $<
58- $Q $(CC) -c $(CFLAGS) $< -o $@
59+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
60
61 .PHONY: clean
62 clean:
63 $Q echo "[Clean]"
64- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPiDev.*
65+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
66
67 .PHONY: tags
68 tags: $(SRC)
69@@ -86,22 +90,22 @@ tags: $(SRC)
70 .PHONY: install
71 install: $(DYNAMIC)
72 $Q echo "[Install Headers]"
73- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
74- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
75+ $Q install -m 0755 -d $(INCLUDE_DIR)
76+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
77 $Q echo "[Install Dynamic Lib]"
78- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
79- $Q install -m 0755 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION)
80- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so
81- $Q $(LDCONFIG)
82+ $Q install -m 0755 -d $(LIB_DIR)
83+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
84+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
85+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
86
87 .PHONY: install-static
88 install-static: $(STATIC)
89 $Q echo "[Install Headers]"
90- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
91- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
92+ $Q install -m 0755 -d $(INCLUDE_DIR)
93+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
94 $Q echo "[Install Static Lib]"
95- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
96- $Q install -m 0755 libwiringPiDev.a $(DESTDIR)$(PREFIX)/lib
97+ $Q install -m 0755 -d $(LIB_DIR)
98+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
99
100 .PHONY: install-deb
101 install-deb: $(DYNAMIC)
102@@ -116,9 +120,11 @@ install-deb: $(DYNAMIC)
103 .PHONY: uninstall
104 uninstall:
105 $Q echo "[UnInstall]"
106- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
107- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPiDev.*
108- $Q $(LDCONFIG)
109+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
110+ $Q rm -f $(LIB_DIR)/$(STATIC)
111+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
112+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
113+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
114
115
116 .PHONY: depend
117diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile
118index 1939ad6..98d1415 100644
119--- a/examples/Gertboard/Makefile
120+++ b/examples/Gertboard/Makefile
121@@ -9,14 +9,20 @@ ifneq ($V,1)
122 Q ?= @
123 endif
124
125-#DEBUG = -g -O0
126-DEBUG = -O3
127-CC = gcc
128-INCLUDE = -I/usr/local/include
129-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
130-
131-LDFLAGS = -L/usr/local/lib
132-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
133+DESTDIR?=/usr
134+PREFIX?=/local
135+
136+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
137+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
138+
139+#DEBUG ?= -g -O0
140+DEBUG ?= -O3
141+CC ?= gcc
142+INCLUDE ?= -I$(INCLUDE_DIR)
143+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
144+
145+LDFLAGS ?= -L$(LIB_DIR)
146+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
147
148 # Should not alter anything below this line
149 ###############################################################################
150diff --git a/examples/Makefile b/examples/Makefile
151index e6b9b71..931b167 100644
152--- a/examples/Makefile
153+++ b/examples/Makefile
154@@ -26,14 +26,20 @@ ifneq ($V,1)
155 Q ?= @
156 endif
157
158-#DEBUG = -g -O0
159-DEBUG = -O3
160-CC = gcc
161-INCLUDE = -I/usr/local/include
162-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
163-
164-LDFLAGS = -L/usr/local/lib
165-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
166+DESTDIR?=/usr
167+PREFIX?=/local
168+
169+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
170+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
171+
172+#DEBUG ?= -g -O0
173+DEBUG ?= -O3
174+CC ?= gcc
175+INCLUDE ?= -I$(INCLUDE_DIR)
176+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
177+
178+LDFLAGS ?= -L$(LIB_DIR)
179+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
180
181 # Should not alter anything below this line
182 ###############################################################################
183diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile
184index 4685adc..cfaf902 100644
185--- a/examples/PiFace/Makefile
186+++ b/examples/PiFace/Makefile
187@@ -26,14 +26,20 @@ ifneq ($V,1)
188 Q ?= @
189 endif
190
191-#DEBUG = -g -O0
192-DEBUG = -O3
193-CC = gcc
194-INCLUDE = -I/usr/local/include
195-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
196-
197-LDFLAGS = -L/usr/local/lib
198-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
199+DESTDIR?=/usr
200+PREFIX?=/local
201+
202+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
203+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
204+
205+#DEBUG ?= -g -O0
206+DEBUG ?= -O3
207+CC ?= gcc
208+INCLUDE ?= -I$(INCLUDE_DIR)
209+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
210+
211+LDFLAGS ?= -L$(LIB_DIR)
212+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
213
214 # Should not alter anything below this line
215 ###############################################################################
216diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile
217index acd4818..dabd64e 100644
218--- a/examples/PiGlow/Makefile
219+++ b/examples/PiGlow/Makefile
220@@ -29,10 +29,10 @@ endif
221 #DEBUG = -g -O0
222 DEBUG = -O3
223 CC = gcc
224-INCLUDE = -I/usr/local/include
225+INCLUDE = -I../wiringPi -I../wiringPiDev
226 CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
227
228-LDFLAGS = -L/usr/local/lib
229+LDFLAGS = -L../wiringPi -L../wiringPiDev
230 LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
231
232 # Should not alter anything below this line
233diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile
234index 6f50fa0..c5e9f6e 100644
235--- a/examples/q2w/Makefile
236+++ b/examples/q2w/Makefile
237@@ -29,10 +29,10 @@ endif
238 #DEBUG = -g -O0
239 DEBUG = -O3
240 CC = gcc
241-INCLUDE = -I/usr/local/include
242+INCLUDE = -I../wiringPi -I../devLib
243 CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
244
245-LDFLAGS = -L/usr/local/lib
246+LDFLAGS = -L../wiringPi -L../devLib
247 LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
248
249 ###############################################################################
250diff --git a/gpio/Makefile b/gpio/Makefile
251index 7dcd090..83ec454 100644
252--- a/gpio/Makefile
253+++ b/gpio/Makefile
254@@ -30,13 +30,17 @@ ifneq ($V,1)
255 Q ?= @
256 endif
257
258-#DEBUG = -g -O0
259-DEBUG = -O2
260-CC = gcc
261-INCLUDE = -I$(DESTDIR)$(PREFIX)/include
262-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
263+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
264+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
265+BIN_DIR?=$(DESTDIR)$(PREFIX)/bin
266
267-LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib
268+#DEBUG ?= -g -O0
269+DEBUG ?= -O2
270+CC ?= gcc
271+INCLUDE ?= -I$(INCLUDE_DIR)
272+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
273+
274+LDFLAGS ?= -L$(LIB_DIR)
275 LIBS = -lwiringPi -lwiringPiDev -lpthread
276
277 # May not need to alter anything below this line
278@@ -72,13 +76,10 @@ tags: $(SRC)
279 .PHONY: install
280 install: gpio
281 $Q echo "[Install]"
282- $Q cp gpio $(DESTDIR)$(PREFIX)/bin
283-ifneq ($(WIRINGPI_SUID),0)
284- $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio
285- $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio
286-endif
287- $Q mkdir -p $(DESTDIR)$(PREFIX)/man/man1
288- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/man/man1
289+ $Q install -d $(BIN_DIR)
290+ $Q install -m 4755 -o root -g root gpio $(BIN_DIR)
291+ $Q install -d $(DESTDIR)$(PREFIX)/share/man/man1
292+ $Q install -m 644 -o root -g root gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
293
294 .PHONY: install-deb
295 install-deb: gpio
296@@ -89,7 +90,7 @@ install-deb: gpio
297 .PHONY: uninstall
298 uninstall:
299 $Q echo "[UnInstall]"
300- $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio
301+ $Q rm -f $(BIN_DIR)/gpio
302 $Q rm -f $(DESTDIR)$(PREFIX)/man/man1/gpio.1
303
304 .PHONY: depend
305diff --git a/wiringPi/Makefile b/wiringPi/Makefile
306index 6bbcc5d..5355b74 100644
307--- a/wiringPi/Makefile
308+++ b/wiringPi/Makefile
309@@ -25,19 +25,23 @@ VERSION=$(shell cat ../VERSION)
310 DESTDIR?=/usr
311 PREFIX?=/local
312
313+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
314+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
315+
316 LDCONFIG?=ldconfig
317
318 ifneq ($V,1)
319 Q ?= @
320 endif
321
322-STATIC=libwiringPi.a
323-DYNAMIC=libwiringPi.so.$(VERSION)
324+BASE_NAME=libwiringPi
325+STATIC=$(BASE_NAME).a
326+DYNAMIC=$(BASE_NAME).so.$(VERSION)
327
328-#DEBUG = -g -O0
329-DEBUG = -O2
330-CC = gcc
331-INCLUDE = -I.
332+#DEBUG ?= -g -O0
333+DEBUG ?= -O2
334+CC ?= gcc
335+INCLUDE ?= -I.
336 DEFS = -D_GNU_SOURCE
337 CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
338
339@@ -89,17 +93,17 @@ $(STATIC): $(OBJ)
340
341 $(DYNAMIC): $(OBJ)
342 $Q echo "[Link (Dynamic)]"
343- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) -lpthread $(OBJ)
344+ $Q $(CC) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
345
346 .c.o:
347 $Q echo [Compile] $<
348- $Q $(CC) -c $(CFLAGS) $< -o $@
349+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
350
351
352 .PHONY: clean
353 clean:
354 $Q echo "[Clean]"
355- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.*
356+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
357
358 .PHONY: tags
359 tags: $(SRC)
360@@ -110,22 +114,22 @@ tags: $(SRC)
361 .PHONY: install
362 install: $(DYNAMIC)
363 $Q echo "[Install Headers]"
364- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
365- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
366+ $Q install -m 0755 -d $(INCLUDE_DIR)
367+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
368 $Q echo "[Install Dynamic Lib]"
369- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
370- $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION)
371- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so
372- $Q $(LDCONFIG)
373+ $Q install -m 0755 -d $(LIB_DIR)
374+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
375+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
376+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
377
378 .PHONY: install-static
379 install-static: $(STATIC)
380 $Q echo "[Install Headers]"
381- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
382- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
383+ $Q install -m 0755 -d $(INCLUDE_DIR)
384+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
385 $Q echo "[Install Static Lib]"
386- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
387- $Q install -m 0755 libwiringPi.a $(DESTDIR)$(PREFIX)/lib
388+ $Q install -m 0755 -d $(LIB_DIR)
389+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
390
391 .PHONY: install-deb
392 install-deb: $(DYNAMIC)
393@@ -140,9 +144,11 @@ install-deb: $(DYNAMIC)
394 .PHONY: uninstall
395 uninstall:
396 $Q echo "[UnInstall]"
397- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
398- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.*
399- $Q $(LDCONFIG)
400+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
401+ $Q rm -f $(LIB_DIR)/$(STATIC)
402+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
403+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
404+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
405
406
407 .PHONY: depend
408--
4092.1.4
410