This commit is contained in:
27
Makefile.am
27
Makefile.am
@@ -1,5 +1,6 @@
|
|||||||
AUTOMAKE_OPTIONS = subdir-objects
|
AUTOMAKE_OPTIONS = subdir-objects
|
||||||
|
|
||||||
|
# Bedingte Optionen für Jansson
|
||||||
if WANT_JANSSON
|
if WANT_JANSSON
|
||||||
JANSSON_INCLUDES = @JANSSON_CFLAGS@
|
JANSSON_INCLUDES = @JANSSON_CFLAGS@
|
||||||
else
|
else
|
||||||
@@ -15,22 +16,18 @@ bin_PROGRAMS = nolambocoin-miner
|
|||||||
dist_man_MANS = nolambocoin-miner.1
|
dist_man_MANS = nolambocoin-miner.1
|
||||||
|
|
||||||
nolambocoin-miner_SOURCES = \
|
nolambocoin-miner_SOURCES = \
|
||||||
elist.h miner.h compat.h \
|
cpu-miner.c util.c sha2.c \
|
||||||
cpu-miner.c util.c \
|
|
||||||
sha2.c \
|
|
||||||
yespower-1.0.1/sha256.c yespower-1.0.1/yespower-opt.c \
|
yespower-1.0.1/sha256.c yespower-1.0.1/yespower-opt.c \
|
||||||
YespowerSugar.c \
|
YespowerSugar.c YespowerIso.c YespowerNull.c \
|
||||||
YespowerIso.c \
|
YespowerUrx.c YespowerLitb.c YespowerIots.c \
|
||||||
YespowerNull.c \
|
YespowerItc.c YespowerYtn.c \
|
||||||
YespowerUrx.c \
|
yespower-1.0.1-power2b/sha256-p2b.c yespower-1.0.1-power2b/yespower-opt-p2b.c \
|
||||||
YespowerLitb.c \
|
yespower-1.0.1-power2b/blake2b.c YespowerMbc.c \
|
||||||
YespowerIots.c \
|
YespowerARM.c version.h
|
||||||
YespowerItc.c \
|
|
||||||
YespowerYtn.c \
|
# Entferne Header-Dateien aus SOURCES und definiere sie separat
|
||||||
yespower-1.0.1-power2b/sha256-p2b.c yespower-1.0.1-power2b/yespower-opt-p2b.c yespower-1.0.1-power2b/blake2b.c \
|
include_HEADERS = \
|
||||||
YespowerMbc.c \
|
elist.h miner.h compat.h
|
||||||
YespowerARM.c \
|
|
||||||
version.h
|
|
||||||
|
|
||||||
AM_CPPFLAGS = $(JANSSON_INCLUDES) -I$(top_srcdir)/compat/jansson @PTHREAD_CFLAGS@
|
AM_CPPFLAGS = $(JANSSON_INCLUDES) -I$(top_srcdir)/compat/jansson @PTHREAD_CFLAGS@
|
||||||
|
|
||||||
|
|||||||
4
build.sh
4
build.sh
@@ -2,6 +2,10 @@
|
|||||||
make distclean || echo clean
|
make distclean || echo clean
|
||||||
rm -f config.status
|
rm -f config.status
|
||||||
|
|
||||||
|
sudo chmod +x autogen.sh
|
||||||
|
cd share
|
||||||
|
sudo chmod +x genbuild.sh
|
||||||
|
cd ..
|
||||||
# BUILD
|
# BUILD
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure CFLAGS="-Wall -O2 -fomit-frame-pointer"
|
./configure CFLAGS="-Wall -O2 -fomit-frame-pointer"
|
||||||
|
|||||||
150
build_nolambocoin_miner.sh
Normal file
150
build_nolambocoin_miner.sh
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# build.sh - Ein Skript zur Automatisierung des Build- und Installationsprozesses für Nolambocoin Miner
|
||||||
|
|
||||||
|
# Funktionen zur Anzeige von Nachrichten
|
||||||
|
function echo_info {
|
||||||
|
echo -e "\e[34m[INFO]\e[0m $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function echo_success {
|
||||||
|
echo -e "\e[32m[SUCCESS]\e[0m $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function echo_error {
|
||||||
|
echo -e "\e[31m[ERROR]\e[0m $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Überprüfen der Abhängigkeiten
|
||||||
|
function check_dependencies {
|
||||||
|
echo_info "Überprüfe erforderliche Abhängigkeiten..."
|
||||||
|
|
||||||
|
local dependencies=("autoconf" "automake" "libcurl4-openssl-dev" "libjansson-dev" "build-essential" "pkg-config")
|
||||||
|
|
||||||
|
for dep in "${dependencies[@]}"; do
|
||||||
|
if ! dpkg -s "$dep" &> /dev/null; then
|
||||||
|
echo_error "Abhängigkeit fehlt: $dep"
|
||||||
|
echo_info "Bitte installieren Sie fehlende Abhängigkeiten mit folgendem Befehl:"
|
||||||
|
echo_info "sudo apt-get install ${dependencies[@]}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo_success "Alle erforderlichen Abhängigkeiten sind installiert."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialisieren der Autotools
|
||||||
|
function initialize_autotools {
|
||||||
|
echo_info "Initialisiere Autotools..."
|
||||||
|
|
||||||
|
if ! autoreconf -i; then
|
||||||
|
echo_error "Fehler beim Ausführen von autoreconf."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_success "Autotools erfolgreich initialisiert."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Konfigurieren des Projekts
|
||||||
|
function configure_project {
|
||||||
|
echo_info "Konfiguriere das Projekt..."
|
||||||
|
|
||||||
|
if ! ./configure; then
|
||||||
|
echo_error "Fehler beim Ausführen von ./configure."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_success "Projekt erfolgreich konfiguriert."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Kompilieren des Projekts
|
||||||
|
function compile_project {
|
||||||
|
echo_info "Kompiliere das Projekt..."
|
||||||
|
|
||||||
|
if ! make -j$(nproc); then
|
||||||
|
echo_error "Fehler beim Ausführen von make."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_success "Projekt erfolgreich kompiliert."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Installieren des Projekts
|
||||||
|
function install_project {
|
||||||
|
echo_info "Installiere das Projekt..."
|
||||||
|
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo_error "Installation erfordert Root-Rechte. Bitte führen Sie das Skript mit sudo aus."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! make install; then
|
||||||
|
echo_error "Fehler beim Ausführen von make install."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_success "Projekt erfolgreich installiert."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Bereinigung des Build-Verzeichnisses
|
||||||
|
function clean_project {
|
||||||
|
echo_info "Bereinige das Projekt..."
|
||||||
|
|
||||||
|
if ! make clean; then
|
||||||
|
echo_error "Fehler beim Ausführen von make clean."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_success "Projekt erfolgreich bereinigt."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Anzeige der Nutzung des Skripts
|
||||||
|
function show_help {
|
||||||
|
echo "Usage: ./build.sh [options]"
|
||||||
|
echo ""
|
||||||
|
echo "Options:"
|
||||||
|
echo " --build Konfiguriert und kompiliert das Projekt."
|
||||||
|
echo " --install Installiert das Projekt nach dem Kompilieren."
|
||||||
|
echo " --clean Bereinigt die Build-Dateien."
|
||||||
|
echo " --help Zeigt diese Hilfe an."
|
||||||
|
echo ""
|
||||||
|
echo "Beispiele:"
|
||||||
|
echo " ./build.sh --build"
|
||||||
|
echo " sudo ./build.sh --install"
|
||||||
|
echo " ./build.sh --clean"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hauptfunktion zur Verarbeitung der Skript-Argumente
|
||||||
|
function main {
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
show_help
|
||||||
|
fi
|
||||||
|
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $arg in
|
||||||
|
--build)
|
||||||
|
check_dependencies
|
||||||
|
initialize_autotools
|
||||||
|
configure_project
|
||||||
|
compile_project
|
||||||
|
;;
|
||||||
|
--install)
|
||||||
|
install_project
|
||||||
|
;;
|
||||||
|
--clean)
|
||||||
|
clean_project
|
||||||
|
;;
|
||||||
|
--help)
|
||||||
|
show_help
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo_error "Unbekannte Option: $arg"
|
||||||
|
show_help
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Aufruf der Hauptfunktion mit allen übergebenen Argumenten
|
||||||
|
main "$@"
|
||||||
@@ -1,18 +1,19 @@
|
|||||||
|
noinst_LIBRARIES = libjansson.a
|
||||||
|
|
||||||
noinst_LIBRARIES = libjansson.a
|
libjansson_a_SOURCES = \
|
||||||
|
dump.c \
|
||||||
|
hashtable.c \
|
||||||
|
load.c \
|
||||||
|
strbuffer.c \
|
||||||
|
utf.c \
|
||||||
|
value.c
|
||||||
|
|
||||||
libjansson_a_SOURCES = \
|
noinst_HEADERS = \
|
||||||
config.h \
|
config.h \
|
||||||
dump.c \
|
hashtable.h \
|
||||||
hashtable.c \
|
jansson.h \
|
||||||
hashtable.h \
|
jansson_private.h \
|
||||||
jansson.h \
|
strbuffer.h \
|
||||||
jansson_private.h \
|
utf.h \
|
||||||
load.c \
|
util.h
|
||||||
strbuffer.c \
|
|
||||||
strbuffer.h \
|
|
||||||
utf.c \
|
|
||||||
utf.h \
|
|
||||||
util.h \
|
|
||||||
value.c
|
|
||||||
|
|
||||||
|
|||||||
84
configure.ac
84
configure.ac
@@ -1,16 +1,25 @@
|
|||||||
AC_INIT([nolambocoin-miner], [1.0])
|
|
||||||
|
|
||||||
AC_PREREQ([2.59c])
|
AC_PREREQ([2.59c])
|
||||||
AC_CONFIG_SRCDIR([cpu-miner.c])
|
AC_INIT([nolambocoin-miner], [1.0])
|
||||||
AM_INIT_AUTOMAKE([foreign])
|
AM_INIT_AUTOMAKE([foreign])
|
||||||
|
|
||||||
|
AC_CONFIG_SRCDIR([cpu-miner.c])
|
||||||
AC_CONFIG_HEADERS([cpuminer-config.h])
|
AC_CONFIG_HEADERS([cpuminer-config.h])
|
||||||
|
|
||||||
dnl Make sure anyone changing configure.ac/Makefile.am has a clue
|
# Füge die Makefile-Konfiguration hinzu
|
||||||
|
AC_CONFIG_FILES([Makefile
|
||||||
|
compat/Makefile
|
||||||
|
compat/jansson/Makefile
|
||||||
|
])
|
||||||
|
|
||||||
|
# Lade pkg-config Makros
|
||||||
|
PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
EXTERNAL_CFLAGS="$CFLAGS"
|
EXTERNAL_CFLAGS="$CFLAGS"
|
||||||
|
|
||||||
dnl Checks for programs
|
# Checks for programs
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_GCC_TRADITIONAL
|
AC_PROG_GCC_TRADITIONAL
|
||||||
AM_PROG_CC_C_O
|
AM_PROG_CC_C_O
|
||||||
@@ -18,12 +27,12 @@ AM_PROG_AS
|
|||||||
AC_PROG_RANLIB
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
if test -n "$EXTERNAL_CFLAGS"; then
|
if test -n "$EXTERNAL_CFLAGS"; then
|
||||||
CFLAGS="$EXTERNAL_CFLAGS"
|
CFLAGS="$EXTERNAL_CFLAGS"
|
||||||
else
|
else
|
||||||
CFLAGS='-Wall -O2 -fomit-frame-pointer'
|
CFLAGS='-Wall -O2 -fomit-frame-pointer'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl Checks for header files
|
# Checks for header files
|
||||||
AC_CHECK_HEADERS([sys/endian.h sys/param.h syslog.h sys/sysctl.h])
|
AC_CHECK_HEADERS([sys/endian.h sys/param.h syslog.h sys/sysctl.h])
|
||||||
|
|
||||||
AC_CHECK_DECLS([be32dec, le32dec, be32enc, le32enc], [],
|
AC_CHECK_DECLS([be32dec, le32dec, be32enc, le32enc], [],
|
||||||
@@ -38,54 +47,35 @@ AC_CHECK_DECLS([be32dec, le32dec, be32enc, le32enc], [],
|
|||||||
AC_FUNC_ALLOCA
|
AC_FUNC_ALLOCA
|
||||||
AC_CHECK_FUNCS([getopt_long])
|
AC_CHECK_FUNCS([getopt_long])
|
||||||
|
|
||||||
dnl Pthread Flags
|
# Pthread Flags
|
||||||
AC_CHECK_LIB([pthread], [pthread_create],
|
AC_CHECK_LIB([pthread], [pthread_create],
|
||||||
[PTHREAD_LIBS="-lpthread"],
|
[PTHREAD_LIBS="-lpthread"],
|
||||||
[AC_MSG_ERROR([pthread library not found.])])
|
[AC_MSG_ERROR([pthread library not found.])])
|
||||||
AC_SUBST([PTHREAD_LIBS])
|
AC_SUBST([PTHREAD_LIBS])
|
||||||
|
|
||||||
AC_CHECK_FLAGS([-pthread],
|
# Ersetze AC_CHECK_FLAGS durch AC_COMPILE_IFELSE
|
||||||
[PTHREAD_CFLAGS="-pthread"],
|
AC_MSG_CHECKING([whether -pthread flag is supported])
|
||||||
[PTHREAD_CFLAGS=""])
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
|
||||||
|
[PTHREAD_CFLAGS="-pthread"],
|
||||||
|
[PTHREAD_CFLAGS=""])
|
||||||
|
AC_MSG_RESULT([$PTHREAD_CFLAGS])
|
||||||
AC_SUBST([PTHREAD_CFLAGS])
|
AC_SUBST([PTHREAD_CFLAGS])
|
||||||
|
|
||||||
dnl WS2 Libraries (Windows)
|
# WS2 Libraries (Windows)
|
||||||
WS2_LIBS=""
|
WS2_LIBS=""
|
||||||
have_win32=false
|
have_win32=false
|
||||||
|
|
||||||
# Conditional builds for all platforms
|
# Plattform-Erkennung
|
||||||
case $target in
|
|
||||||
*-*-mingw*)
|
|
||||||
have_win32=true
|
|
||||||
WS2_LIBS="-lws2_32"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
AC_SUBST([WS2_LIBS])
|
|
||||||
|
|
||||||
dnl Checks for libcurl
|
|
||||||
PKG_CHECK_MODULES([CURL], [libcurl], [], [AC_MSG_ERROR([libcurl is required but not installed.])])
|
|
||||||
AC_SUBST([CURL_CFLAGS])
|
|
||||||
AC_SUBST([CURL_LIBS])
|
|
||||||
|
|
||||||
dnl Checks for jansson
|
|
||||||
PKG_CHECK_MODULES([JANSSON], [jansson], [], [AC_MSG_ERROR([jansson is required but not installed.])])
|
|
||||||
AC_SUBST([JANSSON_CFLAGS])
|
|
||||||
AC_SUBST([JANSSON_LIBS])
|
|
||||||
|
|
||||||
dnl Platform Detection
|
|
||||||
AC_MSG_CHECKING([for target platform])
|
|
||||||
|
|
||||||
UNAME_S=`uname -s`
|
UNAME_S=`uname -s`
|
||||||
UNAME_M=`uname -m`
|
UNAME_M=`uname -m`
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for target platform])
|
||||||
AC_MSG_RESULT([$UNAME_S $UNAME_M])
|
AC_MSG_RESULT([$UNAME_S $UNAME_M])
|
||||||
|
|
||||||
case "$UNAME_S" in
|
case "$UNAME_S" in
|
||||||
Linux*)
|
Linux*)
|
||||||
case "$UNAME_M" in
|
case "$UNAME_M" in
|
||||||
armv7l*|armv8*|aarch64*)
|
armv7l*|armv8*|aarch64*)
|
||||||
# Allgemeine Raspberry Pi Erkennung ohne spezifische Modelle
|
|
||||||
if grep -q "Raspberry Pi" /proc/device-tree/model 2>/dev/null; then
|
if grep -q "Raspberry Pi" /proc/device-tree/model 2>/dev/null; then
|
||||||
AC_DEFINE([TARGET_RASPBERRY_PI], [1], [Define to 1 if compiling for Raspberry Pi])
|
AC_DEFINE([TARGET_RASPBERRY_PI], [1], [Define to 1 if compiling for Raspberry Pi])
|
||||||
AM_CONDITIONAL([TARGET_RASPBERRY_PI], [true])
|
AM_CONDITIONAL([TARGET_RASPBERRY_PI], [true])
|
||||||
@@ -143,12 +133,20 @@ esac
|
|||||||
|
|
||||||
AM_CONDITIONAL([WANT_JANSSON], [true])
|
AM_CONDITIONAL([WANT_JANSSON], [true])
|
||||||
|
|
||||||
AC_SUBST(JANSSON_CFLAGS)
|
# Checks für libcurl
|
||||||
AC_SUBST(JANSSON_LIBS)
|
PKG_CHECK_MODULES([CURL], [libcurl >= 7.0], [],
|
||||||
AC_SUBST(CURL_CFLAGS)
|
[AC_MSG_ERROR([libcurl is required but not installed.])])
|
||||||
AC_SUBST(CURL_LIBS)
|
|
||||||
AC_SUBST(PTHREAD_CFLAGS)
|
# Checks für jansson
|
||||||
AC_SUBST(PTHREAD_LIBS)
|
PKG_CHECK_MODULES([JANSSON], [jansson >= 2.0], [],
|
||||||
AC_SUBST(WS2_LIBS)
|
[AC_MSG_ERROR([jansson is required but not installed.])])
|
||||||
|
|
||||||
|
AC_SUBST([JANSSON_CFLAGS])
|
||||||
|
AC_SUBST([JANSSON_LIBS])
|
||||||
|
AC_SUBST([CURL_CFLAGS])
|
||||||
|
AC_SUBST([CURL_LIBS])
|
||||||
|
AC_SUBST([PTHREAD_CFLAGS])
|
||||||
|
AC_SUBST([PTHREAD_LIBS])
|
||||||
|
AC_SUBST([WS2_LIBS])
|
||||||
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
Reference in New Issue
Block a user