blob: 01e05463478495984f22a75bed3106c09834e17b [file] [log] [blame]
From ca25788e2563bad0d554deb9f4300d1e7d062825 Mon Sep 17 00:00:00 2001
From: Aurelian Zanoschi <aurelian17@gmail.com>
Date: Mon, 31 Jul 2017 20:25:15 +0300
Subject: [PATCH] Add initial cross compile support
---
devLib/Makefile | 54 +++++++++++++++++++++++++--------------------
examples/Gertboard/Makefile | 22 +++++++++++-------
examples/Makefile | 22 +++++++++++-------
examples/PiFace/Makefile | 22 +++++++++++-------
examples/PiGlow/Makefile | 4 ++--
examples/q2w/Makefile | 4 ++--
gpio/Makefile | 29 ++++++++++++------------
wiringPi/Makefile | 52 ++++++++++++++++++++++++-------------------
8 files changed, 120 insertions(+), 89 deletions(-)
diff --git a/devLib/Makefile b/devLib/Makefile
index cf665d6..040c03a 100644
--- a/devLib/Makefile
+++ b/devLib/Makefile
@@ -31,15 +31,19 @@ ifneq ($V,1)
Q ?= @
endif
-STATIC=libwiringPiDev.a
-DYNAMIC=libwiringPiDev.so.$(VERSION)
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
-#DEBUG = -g -O0
-DEBUG = -O2
-CC = gcc
-INCLUDE = -I.
-DEFS = -D_GNU_SOURCE
-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
+BASE_NAME=libwiringPiDev
+STATIC=$(BASE_NAME).a
+DYNAMIC=$(BASE_NAME).so.$(VERSION)
+
+#DEBUG ?= -g -O0
+DEBUG ?= -O2
+CC ?= gcc
+INCLUDE ?= -I.
+DEFS ?= -D_GNU_SOURCE
+CFLAGS ?= $(DEBUG) $(DEFS) -Wformat=2 -Wall -Winline $(INCLUDE) -pipe -fPIC
LIBS =
@@ -68,16 +72,16 @@ $(STATIC): $(OBJ)
$(DYNAMIC): $(OBJ)
$Q echo "[Link (Dynamic)]"
- $Q $(CC) -shared -Wl,-soname,libwiringPiDev.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPiDev.so.$(VERSION) -lpthread $(OBJ)
+ $Q $(CC) -shared $(LDFLAGS) -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so -lpthread $(OBJ)
.c.o:
$Q echo [Compile] $<
- $Q $(CC) -c $(CFLAGS) $< -o $@
+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
.PHONY: clean
clean:
$Q echo "[Clean]"
- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPiDev.*
+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
.PHONY: tags
tags: $(SRC)
@@ -88,22 +92,22 @@ tags: $(SRC)
.PHONY: install
install: $(DYNAMIC)
$Q echo "[Install Headers]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
+ $Q install -m 0755 -d $(INCLUDE_DIR)
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
$Q echo "[Install Dynamic Lib]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
- $Q install -m 0755 libwiringPiDev.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION)
- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPiDev.so.$(VERSION) $(DESTDIR)/lib/libwiringPiDev.so
- $Q $(LDCONFIG)
+ $Q install -m 0755 -d $(LIB_DIR)
+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
.PHONY: install-static
install-static: $(STATIC)
$Q echo "[Install Headers]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
+ $Q install -m 0755 -d $(INCLUDE_DIR)
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
$Q echo "[Install Static Lib]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
- $Q install -m 0755 libwiringPiDev.a $(DESTDIR)$(PREFIX)/lib
+ $Q install -m 0755 -d $(LIB_DIR)
+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
.PHONY: install-deb
install-deb: $(DYNAMIC)
@@ -118,9 +122,11 @@ install-deb: $(DYNAMIC)
.PHONY: uninstall
uninstall:
$Q echo "[UnInstall]"
- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPiDev.*
- $Q $(LDCONFIG)
+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
+ $Q rm -f $(LIB_DIR)/$(STATIC)
+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
.PHONY: depend
diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile
index 1939ad6..98d1415 100644
--- a/examples/Gertboard/Makefile
+++ b/examples/Gertboard/Makefile
@@ -9,14 +9,20 @@ ifneq ($V,1)
Q ?= @
endif
-#DEBUG = -g -O0
-DEBUG = -O3
-CC = gcc
-INCLUDE = -I/usr/local/include
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS = -L/usr/local/lib
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
+DESTDIR?=/usr
+PREFIX?=/local
+
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+
+#DEBUG ?= -g -O0
+DEBUG ?= -O3
+CC ?= gcc
+INCLUDE ?= -I$(INCLUDE_DIR)
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+
+LDFLAGS ?= -L$(LIB_DIR)
+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
# Should not alter anything below this line
###############################################################################
diff --git a/examples/Makefile b/examples/Makefile
index 6d87885..8623816 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -26,14 +26,20 @@ ifneq ($V,1)
Q ?= @
endif
-#DEBUG = -g -O0
-DEBUG = -O3
-CC = gcc
-INCLUDE = -I/usr/local/include
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS = -L/usr/local/lib
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt
+DESTDIR?=/usr
+PREFIX?=/local
+
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+
+#DEBUG ?= -g -O0
+DEBUG ?= -O3
+CC ?= gcc
+INCLUDE ?= -I$(INCLUDE_DIR)
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+
+LDFLAGS ?= -L$(LIB_DIR)
+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt
# Should not alter anything below this line
###############################################################################
diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile
index f937c14..ad030b3 100644
--- a/examples/PiFace/Makefile
+++ b/examples/PiFace/Makefile
@@ -26,14 +26,20 @@ ifneq ($V,1)
Q ?= @
endif
-#DEBUG = -g -O0
-DEBUG = -O3
-CC = gcc
-INCLUDE = -I/usr/local/include
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS = -L/usr/local/lib
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
+DESTDIR?=/usr
+PREFIX?=/local
+
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+
+#DEBUG ?= -g -O0
+DEBUG ?= -O3
+CC ?= gcc
+INCLUDE ?= -I$(INCLUDE_DIR)
+CFLAGS ?= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+
+LDFLAGS ?= -L$(LIB_DIR)
+LDLIBS ?= -lwiringPi -lwiringPiDev -lpthread -lm
# Should not alter anything below this line
###############################################################################
diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile
index f182db7..d1ea74f 100644
--- a/examples/PiGlow/Makefile
+++ b/examples/PiGlow/Makefile
@@ -29,10 +29,10 @@ endif
#DEBUG = -g -O0
DEBUG = -O3
CC = gcc
-INCLUDE = -I/usr/local/include
+INCLUDE = -I../wiringPi -I../wiringPiDev
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-LDFLAGS = -L/usr/local/lib
+LDFLAGS = -L../wiringPi -L../wiringPiDev
LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
# Should not alter anything below this line
diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile
index 8f773bf..14aa6e4 100644
--- a/examples/q2w/Makefile
+++ b/examples/q2w/Makefile
@@ -29,10 +29,10 @@ endif
#DEBUG = -g -O0
DEBUG = -O3
CC = gcc
-INCLUDE = -I/usr/local/include
+INCLUDE = -I../wiringPi -I../devLib
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-LDFLAGS = -L/usr/local/lib
+LDFLAGS = -L../wiringPi -L../devLib
LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
###############################################################################
diff --git a/gpio/Makefile b/gpio/Makefile
index f41a005..22753ee 100644
--- a/gpio/Makefile
+++ b/gpio/Makefile
@@ -30,13 +30,17 @@ ifneq ($V,1)
Q ?= @
endif
-#DEBUG = -g -O0
-DEBUG = -O2
-CC = gcc
-INCLUDE = -I$(DESTDIR)$(PREFIX)/include
-CFLAGS = $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+BIN_DIR?=$(DESTDIR)$(PREFIX)/bin
-LDFLAGS = -L$(DESTDIR)$(PREFIX)/lib
+#DEBUG ?= -g -O0
+DEBUG ?= -O2
+CC ?= gcc
+INCLUDE ?= -I$(INCLUDE_DIR)
+CFLAGS ?= $(DEBUG) -Wall -Wextra $(INCLUDE) -Winline -pipe
+
+LDFLAGS ?= -L$(LIB_DIR)
LIBS = -lwiringPi -lwiringPiDev -lpthread -lrt -lm -lcrypt
# May not need to alter anything below this line
@@ -72,13 +76,10 @@ tags: $(SRC)
.PHONY: install
install: gpio
$Q echo "[Install]"
- $Q cp gpio $(DESTDIR)$(PREFIX)/bin
-ifneq ($(WIRINGPI_SUID),0)
- $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio
- $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio
-endif
- $Q mkdir -p $(DESTDIR)$(PREFIX)/man/man1
- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/man/man1
+ $Q install -d $(BIN_DIR)
+ $Q install -m 4755 -o root -g root gpio $(BIN_DIR)
+ $Q install -d $(DESTDIR)$(PREFIX)/share/man/man1
+ $Q install -m 644 -o root -g root gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
.PHONY: install-deb
install-deb: gpio
@@ -91,7 +92,7 @@ install-deb: gpio
.PHONY: uninstall
uninstall:
$Q echo "[UnInstall]"
- $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio
+ $Q rm -f $(BIN_DIR)/gpio
$Q rm -f $(DESTDIR)$(PREFIX)/man/man1/gpio.1
.PHONY: depend
diff --git a/wiringPi/Makefile b/wiringPi/Makefile
index e1868b9..750d290 100644
--- a/wiringPi/Makefile
+++ b/wiringPi/Makefile
@@ -25,21 +25,25 @@ VERSION=$(shell cat ../VERSION)
DESTDIR?=/usr
PREFIX?=/local
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+
LDCONFIG?=ldconfig
ifneq ($V,1)
Q ?= @
endif
-STATIC=libwiringPi.a
-DYNAMIC=libwiringPi.so.$(VERSION)
+BASE_NAME=libwiringPi
+STATIC=$(BASE_NAME).a
+DYNAMIC=$(BASE_NAME).so.$(VERSION)
-#DEBUG = -g -O0
-DEBUG = -O2
-CC = gcc
-INCLUDE = -I.
+#DEBUG ?= -g -O0
+DEBUG ?= -O2
+CC ?= gcc
+INCLUDE ?= -I.
DEFS = -D_GNU_SOURCE
-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC
+CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Winline -pipe -fPIC
LIBS = -lm -lpthread -lrt -lcrypt
@@ -78,17 +82,17 @@ $(STATIC): $(OBJ)
$(DYNAMIC): $(OBJ)
$Q echo "[Link (Dynamic)]"
- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(LIBS) $(OBJ)
+ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(OBJ) $(LIBS)
.c.o:
$Q echo [Compile] $<
- $Q $(CC) -c $(CFLAGS) $< -o $@
+ $Q $(CC) $(CFLAGS) $(LIBS) -c $< -o $@
.PHONY: clean
clean:
$Q echo "[Clean]"
- $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak libwiringPi.*
+ $Q rm -f $(OBJ) $(OBJ_I2C) *~ core tags Makefile.bak $(BASE_NAME).so* $(BASE_NAME).a
.PHONY: tags
tags: $(SRC)
@@ -99,22 +103,22 @@ tags: $(SRC)
.PHONY: install
install: $(DYNAMIC)
$Q echo "[Install Headers]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
+ $Q install -m 0755 -d $(INCLUDE_DIR)
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
$Q echo "[Install Dynamic Lib]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
- $Q install -m 0755 libwiringPi.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION)
- $Q ln -sf $(DESTDIR)$(PREFIX)/lib/libwiringPi.so.$(VERSION) $(DESTDIR)/lib/libwiringPi.so
- $Q $(LDCONFIG)
+ $Q install -m 0755 -d $(LIB_DIR)
+ $Q install -m 0755 $(BASE_NAME).so $(LIB_DIR)/$(DYNAMIC)
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
.PHONY: install-static
install-static: $(STATIC)
$Q echo "[Install Headers]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
+ $Q install -m 0755 -d $(INCLUDE_DIR)
+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
$Q echo "[Install Static Lib]"
- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
- $Q install -m 0755 libwiringPi.a $(DESTDIR)$(PREFIX)/lib
+ $Q install -m 0755 -d $(LIB_DIR)
+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
.PHONY: install-deb
install-deb: $(DYNAMIC)
@@ -129,9 +133,11 @@ install-deb: $(DYNAMIC)
.PHONY: uninstall
uninstall:
$Q echo "[UnInstall]"
- $Q cd $(DESTDIR)$(PREFIX)/include/ && rm -f $(HEADERS)
- $Q cd $(DESTDIR)$(PREFIX)/lib/ && rm -f libwiringPi.*
- $Q $(LDCONFIG)
+ $Q cd $(INCLUDE_DIR) && rm -f $(HEADERS)
+ $Q rm -f $(LIB_DIR)/$(STATIC)
+ $Q rm -f $(LIB_DIR)/$(DYNAMIC)
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so
+ $Q rm -f $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
.PHONY: depend
--
2.7.4