Votre Nom 2 years ago
parent
commit
36105343ce
3 changed files with 166 additions and 4 deletions
  1. 52 0
      build_bfgminer/step1.sh
  2. 96 0
      build_bfgminer/step2.sh
  3. 18 4
      make_environement.sh

+ 52 - 0
build_bfgminer/step1.sh

@@ -0,0 +1,52 @@
+#!/bin/bash
+echo -e "\e[93mWin32 Cross-compiler Builder v1.0:\e[0m"
+sudo apt-get update
+sudo apt-get upgrade -y
+sudo apt-get install -y lzip build-essential git autoconf autopoint bison flex gperf libtool libtool-bin python ruby scons unzip intltool p7zip-full libgtk2.0-dev libssl-dev -y
+sudo apt-get install -y lftp zip pv pixz upx
+sudo apt-get install -y samba
+cat <<'EOF'>> smb.conf
+[global]
+   workgroup = WORKGROUP
+   server string = %h server (Samba, Ubuntu)
+   log file = /var/log/samba/log.%m
+   max log size = 2000
+   logging = file
+   panic action = /usr/share/samba/panic-action %d
+   server role = standalone server
+   obey pam restrictions = yes
+   unix password sync = yes
+   passwd program = /usr/bin/passwd %u
+   pam password change = yes
+   map to guest = bad user
+   usershare allow guests = yes
+[Shared]
+        public = yes
+        delete readonly = yes
+        writeable = yes
+        path = /home/wareck/Bureau/win32_build/
+EOF
+sudo cp smb.conf /etc/samba/smb.conf
+sudo rm smb.conf
+sudo /etc/init.d/smbd restart
+if [ ! -f /home/wareck/Bureau/win32_build/ ]; then mkdir /home/wareck/Bureau/win32_build/;fi
+sudo chmod 777 /home/wareck/Bureau/win32_build/
+
+cd /opt
+sudo git clone https://github.com/mxe/mxe.git
+cd mxe
+sudo git reset --hard 64b283d64891348c92154b8d7eace6a9bff23411
+export MXE_DIR=/opt/mxe
+export MXE_TARGETS='i686-w64-mingw32.shared'
+sudo make -j 2 -C $MXE_DIR MXE_TARGETS="$MXE_TARGETS" curl pthreads pdcurses ncurses jansson libmicrohttpd libzip
+if ! grep "export PKG_CONFIG_PATH=/opt/mxe/usr/i686-w64-mingw32.shared/lib/pkgconfig/" ~/.profile >/dev/null
+then
+echo 'export PATH=/opt/mxe/usr/bin:$PATH' >> ~/.profile
+echo 'export PKG_CONFIG_PATH=/opt/mxe/usr/i686-w64-mingw32.shared/lib/pkgconfig/' >> ~/.profile
+fi
+export PATH=/opt/mxe/usr/bin:$PATH
+export PKG_CONFIG_PATH=/opt/mxe/usr/i686-w64-mingw32.shared/lib/pkgconfig/
+cd ~
+echo ""
+echo "Cross compilation environement ok."
+echo "Need reboot before step2"

+ 96 - 0
build_bfgminer/step2.sh

@@ -0,0 +1,96 @@
+#!/bin/bash
+sudo chmod -R 777 /opt/mxe/usr/i686-w64-mingw32.shared/
+if [ ! -d /home/wareck/bfgminer ]
+then
+cd /home/wareck
+git clone https://github.com/wareck/bfgminer.git
+fi
+if [ ! -d /home/wareck/libraries ]
+then
+mkdir /home/wareck/libraries
+else
+rm -r /home/wareck/libraries
+mkdir /home/wareck/libraries
+fi
+
+cd /home/wareck/libraries
+wget https://github.com/troydhanson/uthash/archive/master.zip -O uthash.zip
+unzip uthash.zip
+cp /home/wareck/libraries/uthash-master/src/* /opt/mxe/usr/i686-w64-mingw32.shared/include
+
+cd /home/wareck/libraries
+wget https://github.com/downloads/libevent/libevent/libevent-2.0.10-stable.tar.gz
+tar xvfz libevent-2.0.10-stable.tar.gz
+
+cd /home/wareck/libraries/libevent-2.0.10-stable
+./autogen.sh
+CFLAGS="-O2 -msse2" ./configure --host=i686-w64-mingw32.shared --enable-shared --disable-openssl --disable-debug-mode --prefix=/opt/mxe/usr/i686-w64-mingw32.shared/
+make
+make install
+
+cd /home/wareck/libraries
+wget -c https://github.com/libusb/hidapi/archive/refs/tags/hidapi-0.13.1.zip
+unzip hidapi-0.13.1.zip
+cd hidapi-hidapi-0.13.1
+./bootstrap
+CFLAGS="-O2 -msse2" ./configure --host=i686-w64-mingw32.shared --prefix=/opt/mxe/usr/i686-w64-mingw32.shared/
+make
+make install
+
+cd /home/wareck/libraries
+wget -c https://github.com/libusb/libusb/releases/download/v1.0.26/libusb-1.0.26.tar.bz2
+tar xvfj libusb-1.0.26.tar.bz2
+cd libusb-1.0.26
+CFLAGS="-O2 -msse2" ./configure --host=i686-w64-mingw32.shared --disable-static --prefix=/opt/mxe/usr/i686-w64-mingw32.shared/
+make
+make install
+
+cd /home/wareck/libraries
+wget -c https://github.com/Karlson2k/libmicrohttpd/releases/download/v0.9.75/libmicrohttpd-0.9.75.tar.gz
+tar xvfz libmicrohttpd-0.9.75.tar.gz
+cd libmicrohttpd-0.9.75
+CFLAGS="-O2 -msse2" ./configure --host=i686-w64-mingw32.shared --prefix=/opt/mxe/usr/i686-w64-mingw32.shared/
+make
+make install
+
+
+cd /home/wareck/
+git clone https://github.com/wareck/bfgminer.git
+cd bfgminer
+git submodule init
+git submodule update
+
+function build_ {
+cd /home/wareck/bfgminer/
+autoreconf -fi
+CFLAGS="-O2 -msse2" ./configure --host=i686-w64-mingw32.shared --disable-static --enable-scrypt --enable-futurebit --disable-other-drivers
+make
+}
+
+function copy_dll {
+cd /home/wareck/bfgminer/
+if [ ! -d /home/wareck/Bureau/win32_build/bfgminer/ ];then mkdir /home/wareck/Bureau/win32_build/bfgminer/;fi
+cp bfgminer.exe /home/wareck/Bureau/win32_build/bfgminer/
+cp /home/wareck/bfgminer/libbase58/.libs/libbase58-0.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /home/wareck/bfgminer/libblkmaker/.libs/libblkmaker-0.1-8.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /home/wareck/bfgminer/libblkmaker/.libs/libblkmaker_jansson-0.1-8.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libcurl-4.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libevent-2-0-5.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libjansson-4.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libmicrohttpd-12.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libncurses5.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libwinpthread-1.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libusb-1.0.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libidn2-0.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libssh2-1.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libgcc_s_sjlj-1.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libintl-8.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libunistring-2.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libgcrypt-20.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libiconv-2.dll /home/wareck/Bureau/win32_build/bfgminer/
+cp /opt/mxe/usr/i686-w64-mingw32.shared/bin/libgpg-error-0.dll /home/wareck/Bureau/win32_build/bfgminer/
+}
+
+build_
+copy_dll
+

+ 18 - 4
make_environement.sh

@@ -1,5 +1,5 @@
 #!/bin/bash
 #!/bin/bash
-echo -e "\e[93mWin32 Cross-compiler Builder v1.0:\e[0m"
+echo -e "\e[93mWin32 Cross-compiler Builder v2.0:\e[0m"
 sudo apt-get update
 sudo apt-get update
 sudo apt-get upgrade -y
 sudo apt-get upgrade -y
 sudo apt-get install -y lzip build-essential git autoconf autopoint bison flex gperf libtool libtool-bin python ruby scons unzip intltool p7zip-full libgtk2.0-dev libssl-dev -y
 sudo apt-get install -y lzip build-essential git autoconf autopoint bison flex gperf libtool libtool-bin python ruby scons unzip intltool p7zip-full libgtk2.0-dev libssl-dev -y
@@ -29,15 +29,29 @@ EOF
 sudo cp smb.conf /etc/samba/smb.conf
 sudo cp smb.conf /etc/samba/smb.conf
 sudo rm smb.conf
 sudo rm smb.conf
 sudo /etc/init.d/smbd restart
 sudo /etc/init.d/smbd restart
+if [ ! -d /home/wareck/Bureau/win32_build/ ]; then mkdir /home/wareck/Bureau/win32_build/;fi
 sudo chmod 777 /home/wareck/Bureau/win32_build/
 sudo chmod 777 /home/wareck/Bureau/win32_build/
 
 
 cd /opt
 cd /opt
 sudo git clone https://github.com/mxe/mxe.git
 sudo git clone https://github.com/mxe/mxe.git
 cd mxe
 cd mxe
 sudo git reset --hard 64b283d64891348c92154b8d7eace6a9bff23411
 sudo git reset --hard 64b283d64891348c92154b8d7eace6a9bff23411
-export MXE_DIR=/opt/mxe
-export MXE_TARGETS='i686-w64-mingw32.static'
-sudo make -j 5 -C $MXE_DIR MXE_TARGETS="$MXE_TARGETS" curl pthreads pdcurses ncurses libusb1 jansson libevent libmicrohttpd libzip
+
+echo -e " "
+read -r -p "Installer le pack shared (bfgminer) ? [y/N] " response
+case "$response" in
+    [yY][eE][sS]|[yY])
+	export MXE_DIR=/opt/mxe
+	export MXE_TARGETS='i686-w64-mingw32.static i686-w64-mingw32.shared'
+	sudo make -j 4 -C $MXE_DIR MXE_TARGETS="$MXE_TARGETS" curl pthreads pdcurses ncurses jansson libzip libusb
+        ;;
+    *)
+	export MXE_DIR=/opt/mxe
+	export MXE_TARGETS='i686-w64-mingw32.static'
+	sudo make -j 5 -C $MXE_DIR MXE_TARGETS="$MXE_TARGETS" curl pthreads pdcurses ncurses libusb1 jansson libzip
+        ;;
+esac
+
 if ! grep "export PKG_CONFIG_PATH=/opt/mxe/usr/i686-w64-mingw32.static/lib/pkgconfig/" ~/.profile >/dev/null
 if ! grep "export PKG_CONFIG_PATH=/opt/mxe/usr/i686-w64-mingw32.static/lib/pkgconfig/" ~/.profile >/dev/null
 then
 then
 echo 'export PATH=/opt/mxe/usr/bin:$PATH' >> ~/.profile
 echo 'export PATH=/opt/mxe/usr/bin:$PATH' >> ~/.profile