44cd " $( dirname " $0 " ) "
55echo " entering $( pwd) "
66
7- jplatform64=$( ./jplatform64.sh)
7+ unameop=$( uname -o || uname -s)
8+ eval " $( ./jplatform64.sh) "
9+ jplatform64=" $jplatform " /" $j64x "
810
911if [ " " = " $CFLAGS " ]; then
1012 # OPTLEVEL will be merged back into CFLAGS, further down
@@ -88,16 +90,22 @@ case "$jplatform64" in
8890 macmin=" -arch x86_64 -mmacosx-version-min=10.6"
8991 fi
9092 ;;
91- openbsd/* ) make=gmake ;;
93+ openbsd/* )
94+ NO_SHA_ASM=1
95+ make=gmake
96+ ;;
9297 freebsd/* ) make=gmake ;;
9398 wasm* )
9499 USE_OPENMP=0
95100 LDTHREAD=" -pthread "
96101 NO_SHA_ASM=1
97- USE_OPENMP=0
98102 USE_PYXES=0
99103 ;;
100104esac
105+ case " $j64x " in
106+ j32* ) USE_PYXES=" ${USE_PYXES:= 0} " ;;
107+ * ) USE_PYXES=" ${USE_PYXES:= 1} " ;;
108+ esac
101109make=" ${make:= make} "
102110
103111CC=${CC-" $( which cc clang gcc 2> /dev/null | head -n1 | xargs basename) " }
@@ -243,31 +251,34 @@ if [ $USE_BOXEDSPARSE -eq 1 ]; then
243251 common=" $common -DBOXEDSPARSE"
244252fi
245253
246- USE_PYXES=" ${USE_PYXES:= 1} "
247254if [ $USE_PYXES -eq 1 ]; then
248- case " $jplatform64 " in
249- windows/j32* )
250- common=" $common -DPYXES=1 -I../../../../pthreads4w/include"
251- LDTHREAD=" ../../../../pthreads4w/lib/pthreadVC3-w32.lib "
252- ;;
253- windows/j64arm)
254- common=" $common -DPYXES=1 -I../../../../pthreads4w/include"
255- LDTHREAD=" ../../../../pthreads4w/lib/pthreadVC3-arm64.lib "
256- ;;
257- windows/* )
258- common=" $common -DPYXES=1 -I../../../../pthreads4w/include"
259- LDTHREAD=" ../../../../pthreads4w/lib/pthreadVC3.lib "
260- ;;
261- * )
262- common=" $common -DPYXES=1"
263- LDTHREAD=" -pthread "
264- ;;
255+ case " $jplatform64 " in
256+ windows/j32* )
257+ common=" $common -DPYXES=1 -I../../../../pthreads4w/include"
258+ LDTHREAD=" ../../../../pthreads4w/lib/pthreadVC3-w32.lib "
259+ ;;
260+ windows/j64arm)
261+ common=" $common -DPYXES=1 -I../../../../pthreads4w/include"
262+ LDTHREAD=" ../../../../pthreads4w/lib/pthreadVC3-arm64.lib "
263+ ;;
264+ windows/* )
265+ common=" $common -DPYXES=1 -I../../../../pthreads4w/include"
266+ LDTHREAD=" ../../../../pthreads4w/lib/pthreadVC3.lib "
267+ ;;
268+ * )
269+ common=" $common -DPYXES=1"
270+ LDTHREAD=" -pthread "
271+ ;;
272+ esac
273+ case " $j64x " in
274+ j32* ) USE_NORMAH8=1 ;;
275+ * ) USE_NORMAH8=" ${USE_NORMAH8:= 0} " ;;
265276 esac
266277else
267278 common=" $common -DPYXES=0"
279+ USE_NORMAH8=" ${USE_NORMAH8:= 0} "
268280fi
269281
270- USE_NORMAH8=" ${USE_NORMAH8:= 0} "
271282if [ $USE_NORMAH8 -eq 1 ]; then
272283 common=" $common -DNORMAH8=1"
273284else
@@ -759,7 +770,7 @@ case $jplatform64 in
759770 TARGET=jamalgam
760771 # faster, but sse2 not available for 32-bit amd cpu
761772 # sse does not support mfpmath=sse in 32-bit gcc
762- CFLAGS=" $common -Wno-psabi -Wno-incompatible-pointer-types $DOLECOM -m32 -msse2 -mfpmath=sse -D_FILE_OFFSET_BITS=64 -D_WIN32 "
773+ CFLAGS=" $common -Wno-psabi -Wno-incompatible-pointer-types -m32 -msse2 -mfpmath=sse -fno-finite-math-only $DOLECOM -D_FILE_OFFSET_BITS=64 -D_WIN32 "
763774 # slower, use 387 fpu and truncate extra precision
764775 # CFLAGS="$common -m32 -ffloat-store "
765776 CPPFLAGS=" -fPIC $OPTLEVEL -falign-functions=4 -fvisibility=hidden -Wno-psabi $DOLECOM -m32 -msse2 -mfpmath=sse -D_FILE_OFFSET_BITS=64 -D_JDLL -D_WIN32 "
@@ -786,7 +797,7 @@ case $jplatform64 in
786797 fi
787798 WINDRES=" ${WINDRES:= windres} "
788799 TARGET=j.dll
789- CFLAGS=" $common -march=armv8-a+crc -Wno-incompatible-pointer-types -DNO_SHA_ASM $DOLECOM -D_FILE_OFFSET_BITS=64 -D_JDLL -D_WIN32 -D_WIN64 "
800+ CFLAGS=" $common -march=armv8-a+crc -Wno-incompatible-pointer-types -fno-finite-math-only - DNO_SHA_ASM $DOLECOM -D_FILE_OFFSET_BITS=64 -D_JDLL -D_WIN32 -D_WIN64 "
790801 CPPFLAGS=" -fPIC $OPTLEVEL -falign-functions=4 -fvisibility=hidden $DOLECOM -D_FILE_OFFSET_BITS=64 -D_JDLL -D_WIN32 -D_WIN64 "
791802 LDFLAGS=" -shared -Wl,--enable-stdcall-fixup -lm -static-libgcc -static-libstdc++ -lole32 -ladvapi32 -loleaut32 -lsynchronization -luuid $LDTHREAD $LDOPENMP "
792803 if [ $jolecom -eq 1 ]; then
@@ -811,7 +822,7 @@ case $jplatform64 in
811822 fi
812823 WINDRES=" ${WINDRES:= windres} "
813824 TARGET=jamalgam
814- CFLAGS=" $common -Wno-incompatible-pointer-types $DOLECOM -DC_AVX2=1 -DC_AVX512=1 -D_FILE_OFFSET_BITS=64 -D_WIN32 -D_WIN64 "
825+ CFLAGS=" $common -Wno-incompatible-pointer-types -fno-finite-math-only $DOLECOM -DC_AVX2=1 -DC_AVX512=1 -D_FILE_OFFSET_BITS=64 -D_WIN32 -D_WIN64 "
815826 CPPFLAGS=" -fPIC $OPTLEVEL -falign-functions=4 -fvisibility=hidden $DOLECOM -DC_AVX2=1 -DC_AVX512=1 -D_FILE_OFFSET_BITS=64 -D_JDLL -D_WIN32 -D_WIN64 "
816827 LDFLAGS=" -Wl,--enable-stdcall-fixup -lm -static-libgcc -static-libstdc++ -lole32 -ladvapi32 -loleaut32 -lsynchronization -luuid $LDTHREAD $LDOPENMP "
817828 CFLAGS_SIMD=" -march=skylake-avx512 -mtune=skylake-avx512 -msse4.1 -msse4.2 -mavx2 -mfma -mbmi -mbmi2 -mlzcnt -mmovbe -mpopcnt -mno-vzeroupper "
@@ -838,7 +849,7 @@ case $jplatform64 in
838849 fi
839850 WINDRES=" ${WINDRES:= windres} "
840851 TARGET=jamalgam
841- CFLAGS=" $common -Wno-incompatible-pointer-types $DOLECOM -DC_AVX2=1 -D_FILE_OFFSET_BITS=64 -D_WIN32 -D_WIN64 "
852+ CFLAGS=" $common -Wno-incompatible-pointer-types -fno-finite-math-only $DOLECOM -DC_AVX2=1 -D_FILE_OFFSET_BITS=64 -D_WIN32 -D_WIN64 "
842853 CPPFLAGS=" -fPIC $OPTLEVEL -falign-functions=4 -fvisibility=hidden $DOLECOM -DC_AVX2=1 -D_FILE_OFFSET_BITS=64 -D_JDLL -D_WIN32 -D_WIN64 "
843854 LDFLAGS=" -Wl,--enable-stdcall-fixup -lm -static-libgcc -static-libstdc++ -lole32 -ladvapi32 -loleaut32 -lsynchronization -luuid $LDTHREAD $LDOPENMP "
844855 CFLAGS_SIMD=" -march=skylake -mtune=skylake -msse4.1 -msse4.2 -mavx2 -mfma -mbmi -mbmi2 -mlzcnt -mmovbe -mpopcnt -mno-vzeroupper "
@@ -865,7 +876,7 @@ case $jplatform64 in
865876 fi
866877 WINDRES=" ${WINDRES:= windres} "
867878 TARGET=jamalgam
868- CFLAGS=" $common -Wno-incompatible-pointer-types -msse3 $DOLECOM -D_FILE_OFFSET_BITS=64 -D_WIN32 -D_WIN64 "
879+ CFLAGS=" $common -Wno-incompatible-pointer-types -msse3 -fno-finite-math-only $DOLECOM -D_FILE_OFFSET_BITS=64 -D_WIN32 -D_WIN64 "
869880 CPPFLAGS=" -fPIC $OPTLEVEL -falign-functions=4 -fvisibility=hidden $DOLECOM -D_FILE_OFFSET_BITS=64 -D_JDLL -D_WIN32 -D_WIN64 "
870881 LDFLAGS=" -Wl,--enable-stdcall-fixup -lm -static-libgcc -static-libstdc++ -lole32 -ladvapi32 -loleaut32 -lsynchronization -luuid $LDTHREAD $LDOPENMP "
871882 if [ $jolecom -eq 1 ]; then
918929mkdir -p ../bin/$jplatform64
919930mkdir -p obj/$jplatform64 /
920931cp makefile-jamalgam obj/$jplatform64 /.
921- export BACKTRACE_OBJS CFLAGS CPPFLAGS LDFLAGS TARGET CFLAGS_SIMD GASM_FLAGS NASM_FLAGS FLAGS_BASE64 DLLOBJS LIBJDEF LIBJRES OBJS_BASE64 OBJS_FMA OBJS_AESNI OBJS_AESARM OBJS_ASM SRC_ASM OBJSLN jplatform64 WINDRES
932+ export BACKTRACE_OBJS CFLAGS CPPFLAGS LDFLAGS TARGET CFLAGS_SIMD GASM_FLAGS NASM_FLAGS FLAGS_BASE64 DLLOBJS LIBJDEF LIBJRES OBJS_BASE64 OBJS_FMA OBJS_AESNI OBJS_AESARM OBJS_ASM SRC_ASM OBJSLN jplatform j64x jplatform64 WINDRES
922933cd obj/$jplatform64 /
923934if [ " x$MAKEFLAGS " = x' ' ]; then
924- if [ $( uname) = Linux ]; then par=$( nproc) ; else par=$( sysctl -n hw.ncpu) ; fi
925- $make -j$par -f makefile-jamalgam
926- else
927- $make -f makefile-jamalgam
935+ if ([ " $unameop " = " Linux" ] || [ " $unameop " = " GNU/Linux" ]); then
936+ par=$( nproc)
937+ elif [ " $unameop " = " Darwin" ] || [ " $unameop " = " OpenBSD" ] || [ " $unameop " = " FreeBSD" ]; then
938+ par=$( sysctl -n hw.ncpu)
939+ else
940+ par=2
941+ fi
942+ export MAKEFLAGS=-j$par
928943fi
944+ echo " MAKEFLAGS=$MAKEFLAGS "
945+ $make -f makefile-jamalgam
929946retval=$?
930947cd -
931948exit $retval
0 commit comments