summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2019-01-24 07:31:07 -0500
committerSolomon Peachy <pizza@shaftnet.org>2019-01-25 12:58:18 +0100
commit07084f62c40d3197f3a11ac4e5fbe3b923e9ae1e (patch)
tree89eaf3845056d5c4b0b8e86799f4bb6602e6ab03
parent96052373490095cd02fca7eb6ccdcfabe6403803 (diff)
downloadrockbox-07084f62c40d3197f3a11ac4e5fbe3b923e9ae1e.tar.gz
rockbox-07084f62c40d3197f3a11ac4e5fbe3b923e9ae1e.zip
Fix host build of mkimxboot, mknwzboot, nwztools, and rbutil with crypto++
Necessary to get working builds on my Fedora 29 system. Change-Id: Ia6232427c959629ade9a85fc412738f688facedb
-rw-r--r--rbutil/mkimxboot/Makefile12
-rw-r--r--rbutil/mknwzboot/Makefile18
-rw-r--r--rbutil/rbutilqt/rbutilqt.pro4
-rw-r--r--utils/nwztools/upgtools/Makefile20
-rw-r--r--utils/nwztools/upgtools/md5.cpp5
-rw-r--r--utils/nwztools/upgtools/mg.cpp8
6 files changed, 53 insertions, 14 deletions
diff --git a/rbutil/mkimxboot/Makefile b/rbutil/mkimxboot/Makefile
index b584084811..9ad21a1966 100644
--- a/rbutil/mkimxboot/Makefile
+++ b/rbutil/mkimxboot/Makefile
@@ -6,17 +6,26 @@
# \/ \/ \/ \/ \/
# We use the SB code available in the Rockbox utils/sbtools directory
+
IMXTOOLS_DIR=../../utils/imxtools/sbtools/
CFLAGS += -I$(IMXTOOLS_DIR) -Wall
# std=gnu99 is required by MinGW on Windows (c99 is sufficient for Linux / MXE)
CFLAGS += -std=gnu99 -g -O3
+# Location to pkg-config binary.
+PKGCONFIG := pkg-config
+
# Distros could use different names for the crypto library. We try a list
# of candidate names, only one of them should be the valid one.
-PKGCONFIG := $(CROSS)pkg-config
LIBCRYPTO_NAMES = libcryptopp libcrypto++ cryptopp crypto++
+
$(foreach l,$(LIBCRYPTO_NAMES),\
$(eval LDOPTS += $(shell $(PKGCONFIG) --silence-errors --libs $(l))))
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval CFLAGS += $(shell $(PKGCONFIG) --silence-errors --cflags $(l))))
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval CXXFLAGS += $(shell $(PKGCONFIG) --silence-errors --cflags $(l))))
+LDOPTS += -lpthread
OUTPUT = mkimxboot
@@ -34,4 +43,3 @@ include ../libtools.make
# explicit dependencies on dualboot.{c,h} and mkimxboot.h
$(OBJDIR)mkimxboot.o: dualboot.h dualboot.c mkimxboot.c mkimxboot.h
$(OBJDIR)main.o: dualboot.h dualboot.c main.c mkimxboot.h
-
diff --git a/rbutil/mknwzboot/Makefile b/rbutil/mknwzboot/Makefile
index fd80106b83..3cbb2ef9dd 100644
--- a/rbutil/mknwzboot/Makefile
+++ b/rbutil/mknwzboot/Makefile
@@ -12,7 +12,21 @@ CFLAGS += -I$(UPGTOOLS_DIR) -Wall
CFLAGS += -std=gnu99 -g -O3
# dependencies
# FIXME make it work for windows and maybe embed crypto++
-LDOPTS += `pkg-config --libs libcrypto++`
+
+# Location to pkg-config binary.
+PKGCONFIG := pkg-config
+
+# Distros could use different names for the crypto library. We try a list
+# of candidate names, only one of them should be the valid one.
+LIBCRYPTO_NAMES = libcryptopp libcrypto++ cryptopp crypto++
+
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval LDOPTS += $(shell $(PKGCONFIG) --silence-errors --libs $(l))))
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval CFLAGS += $(shell $(PKGCONFIG) --silence-errors --cflags $(l))))
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval CXXFLAGS += $(shell $(PKGCONFIG) --silence-errors --cflags $(l))))
+LDOPTS += -lpthread
OUTPUT = mknwzboot
@@ -23,7 +37,7 @@ LIBSOURCES := mknwzboot.c install_script.c uninstall_script.c \
# inputs for binary only
SOURCES := $(LIBSOURCES) main.c
# dependencies for binary
-EXTRADEPS :=
+EXTRADEPS :=
include ../libtools.make
diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro
index 0b1f5fde54..745d9887b5 100644
--- a/rbutil/rbutilqt/rbutilqt.pro
+++ b/rbutil/rbutilqt/rbutilqt.pro
@@ -135,6 +135,9 @@ for(rblib, RBLIBS) {
LIBS += -l$$rblib
}
+# We need libcrypto++
+LIBS += -lcryptopp
+
# on win32 libz is linked implicitly.
!win32 {
LIBS += -lz
@@ -264,4 +267,3 @@ unix {
include(rbutilqt.pri)
include(quazip/quazip.pri)
include(logger/logger.pri)
-
diff --git a/utils/nwztools/upgtools/Makefile b/utils/nwztools/upgtools/Makefile
index fcfc889ae6..046eb1a1a9 100644
--- a/utils/nwztools/upgtools/Makefile
+++ b/utils/nwztools/upgtools/Makefile
@@ -3,9 +3,23 @@ CC=gcc
CXX=g++
LD=g++
PROFILE=
-CFLAGS=-g $(PROFILE) -std=c99 -Wall $(DEFINES) `pkg-config --cflags libcrypto++`
-CXXFLAGS=-g $(PROFILE) -Wall $(DEFINES) `pkg-config --cflags libcrypto++`
-LDFLAGS=$(PROFILE) `pkg-config --libs libcrypto++` -lpthread
+PKGCONFIG := $(CROSS)pkg-config
+
+# Distros could use different names for the crypto library. We try a list
+# of candidate names, only one of them should be the valid one.
+LIBCRYPTO_NAMES = libcryptopp libcrypto++ cryptopp crypto++
+
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval LDOPTS += $(shell $(PKGCONFIG) --silence-errors --libs $(l))))
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval CFLAGS += $(shell $(PKGCONFIG) --silence-errors --cflags $(l))))
+$(foreach l,$(LIBCRYPTO_NAMES),\
+ $(eval CXXFLAGS += $(shell $(PKGCONFIG) --silence-errors --cflags $(l))))
+
+CXXFLAGS=-g $(PROFILE) -Wall $(DEFINES)
+CFLAGS=-g $(PROFILE) -Wall -std=c99 $(DEFINES)
+LDFLAGS=$(PROFILE) $(LDOPTS) -lpthread
+
BINS=upgtool
all: $(BINS)
diff --git a/utils/nwztools/upgtools/md5.cpp b/utils/nwztools/upgtools/md5.cpp
index 3b0c2358e4..3d453da409 100644
--- a/utils/nwztools/upgtools/md5.cpp
+++ b/utils/nwztools/upgtools/md5.cpp
@@ -21,11 +21,12 @@
#include "md5.h"
/* MD5 is considered insecure by crypto++ */
#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
-#include <crypto++/md5.h>
+#include <cryptopp/cryptlib.h>
+#include <cryptopp/md5.h>
using namespace CryptoPP::Weak;
void MD5_CalculateDigest(void *digest, const void *input, size_t length)
{
- MD5().CalculateDigest((byte *)digest, (const byte *)input, length);
+ MD5().CalculateDigest((CryptoPP::byte *)digest, (const CryptoPP::byte *)input, length);
}
diff --git a/utils/nwztools/upgtools/mg.cpp b/utils/nwztools/upgtools/mg.cpp
index 79039702db..66566770f9 100644
--- a/utils/nwztools/upgtools/mg.cpp
+++ b/utils/nwztools/upgtools/mg.cpp
@@ -19,10 +19,10 @@
*
****************************************************************************/
#include "mg.h"
-#include <crypto++/cryptlib.h>
-#include <crypto++/modes.h>
-#include <crypto++/des.h>
-#include <crypto++/aes.h>
+#include <cryptopp/cryptlib.h>
+#include <cryptopp/modes.h>
+#include <cryptopp/des.h>
+#include <cryptopp/aes.h>
#include <stdio.h>
using namespace CryptoPP;