]> git.sesse.net Git - stockfish/commitdiff
Fix Makefile for incorrect nnue file
authorTomasz Sobczyk <tomasz.sobczyk1997@gmail.com>
Mon, 7 Aug 2023 11:11:09 +0000 (13:11 +0200)
committerStéphane Nicolet <Stephane.Nicolet@u-paris2.fr>
Fri, 11 Aug 2023 17:20:29 +0000 (19:20 +0200)
If an incorrect network file is present at the start of the compilation stage, the
Makefile script now correctly removes it before trying to download a clean version.

closes https://github.com/official-stockfish/Stockfish/pull/4726

No functional change

src/Makefile

index 8811d15e8689689bd4273ff5bd6d3acb4fb79869..c7e059ea925ef5e1fdbd182ac7a4853bc157f5f0 100644 (file)
@@ -869,42 +869,6 @@ install:
 clean: objclean profileclean
        @rm -f .depend *~ core
 
-# evaluation network (nnue)
-net:
-       $(eval nnuenet := $(shell grep EvalFileDefaultName evaluate.h | grep define | sed 's/.*\(nn-[a-z0-9]\{12\}.nnue\).*/\1/'))
-       @echo "Default net: $(nnuenet)"
-       $(eval nnuedownloadurl1 := https://tests.stockfishchess.org/api/nn/$(nnuenet))
-       $(eval nnuedownloadurl2 := https://github.com/official-stockfish/networks/raw/master/$(nnuenet))
-       $(eval curl_or_wget := $(shell if hash curl 2>/dev/null; then echo "curl -skL"; elif hash wget 2>/dev/null; then echo "wget -qO-"; fi))
-       @if [ "x$(curl_or_wget)" = "x" ]; then \
-           echo "Neither curl nor wget is installed. Install one of these tools unless the net has been downloaded manually"; \
-        fi
-       $(eval shasum_command := $(shell if hash shasum 2>/dev/null; then echo "shasum -a 256 "; elif hash sha256sum 2>/dev/null; then echo "sha256sum "; fi))
-       @if [ "x$(shasum_command)" = "x" ]; then \
-            echo "shasum / sha256sum not found, skipping net validation"; \
-        fi
-       @for nnuedownloadurl in "$(nnuedownloadurl1)" "$(nnuedownloadurl2)"; do \
-          if test -f "$(nnuenet)"; then \
-             echo "$(nnuenet) available."; \
-          else \
-             if [ "x$(curl_or_wget)" != "x" ]; then \
-                 echo "Downloading $${nnuedownloadurl}"; $(curl_or_wget) $${nnuedownloadurl} > $(nnuenet);\
-              else \
-                 echo "No net found and download not possible"; exit 1;\
-             fi; \
-          fi; \
-          if [ "x$(shasum_command)" != "x" ]; then \
-             if [ "$(nnuenet)" != "nn-"`$(shasum_command) $(nnuenet) | cut -c1-12`".nnue" ]; then \
-                echo "Removing failed download"; rm -f $(nnuenet); \
-             else \
-                echo "Network validated"; break; \
-             fi; \
-          fi; \
-       done
-       @if ! test -f "$(nnuenet)"; then \
-           echo "Failed to download $(nnuenet)."; \
-       fi
-
 # clean binaries and objects
 objclean:
        @rm -f stockfish stockfish.exe *.o ./syzygy/*.o ./nnue/*.o ./nnue/features/*.o
@@ -919,6 +883,53 @@ profileclean:
        @rm -f stockfish.res
        @rm -f ./-lstdc++.res
 
+# set up shell variables for the net stuff
+netvariables:
+       $(eval nnuenet := $(shell grep EvalFileDefaultName evaluate.h | grep define | sed 's/.*\(nn-[a-z0-9]\{12\}.nnue\).*/\1/'))
+       $(eval nnuedownloadurl1 := https://tests.stockfishchess.org/api/nn/$(nnuenet))
+       $(eval nnuedownloadurl2 := https://github.com/official-stockfish/networks/raw/master/$(nnuenet))
+       $(eval curl_or_wget := $(shell if hash curl 2>/dev/null; then echo "curl -skL"; elif hash wget 2>/dev/null; then echo "wget -qO-"; fi))
+       $(eval shasum_command := $(shell if hash shasum 2>/dev/null; then echo "shasum -a 256 "; elif hash sha256sum 2>/dev/null; then echo "sha256sum "; fi))
+
+# evaluation network (nnue)
+net: netvariables
+       @echo "Default net: $(nnuenet)"
+       @if [ "x$(curl_or_wget)" = "x" ]; then \
+           echo "Neither curl nor wget is installed. Install one of these tools unless the net has been downloaded manually"; \
+       fi
+       @if [ "x$(shasum_command)" = "x" ]; then \
+        echo "shasum / sha256sum not found, skipping net validation"; \
+    elif test -f "$(nnuenet)"; then \
+           if [ "$(nnuenet)" != "nn-"`$(shasum_command) $(nnuenet) | cut -c1-12`".nnue" ]; then \
+               echo "Removing invalid network"; rm -f $(nnuenet); \
+           fi; \
+       fi;
+       @for nnuedownloadurl in "$(nnuedownloadurl1)" "$(nnuedownloadurl2)"; do \
+               if test -f "$(nnuenet)"; then \
+               echo "$(nnuenet) available : OK"; break; \
+               else \
+               if [ "x$(curl_or_wget)" != "x" ]; then \
+                               echo "Downloading $${nnuedownloadurl}"; $(curl_or_wget) $${nnuedownloadurl} > $(nnuenet);\
+                       else \
+                               echo "No net found and download not possible"; exit 1;\
+               fi; \
+               fi; \
+               if [ "x$(shasum_command)" != "x" ]; then \
+               if [ "$(nnuenet)" != "nn-"`$(shasum_command) $(nnuenet) | cut -c1-12`".nnue" ]; then \
+                               echo "Removing failed download"; rm -f $(nnuenet); \
+               fi; \
+               fi; \
+       done
+       @if ! test -f "$(nnuenet)"; then \
+           echo "Failed to download $(nnuenet)."; \
+       fi;
+       @if [ "x$(shasum_command)" != "x" ]; then \
+               if [ "$(nnuenet)" = "nn-"`$(shasum_command) $(nnuenet) | cut -c1-12`".nnue" ]; then \
+                       echo "Network validated"; break; \
+               fi; \
+       fi; \
+
+# default target
 default:
        help