2ac3c55290
This is more portable. As suggested by joerg@.
65 lines
2.7 KiB
Text
65 lines
2.7 KiB
Text
$NetBSD: patch-lp__solve_ccc,v 1.5 2017/10/29 22:16:03 khorben Exp $
|
|
|
|
recent versions of gcc are noisy unless main() is declared returning 'int'
|
|
and isnan() needs a floating argument else NOISNAN is defined causing
|
|
problems.
|
|
|
|
--- lp_solve/ccc.orig 2009-01-25 18:39:03.000000000 +0000
|
|
+++ lp_solve/ccc
|
|
@@ -2,31 +2,36 @@
|
|
src='../lp_MDO.c ../shared/commonlib.c ../colamd/colamd.c ../shared/mmio.c ../shared/myblas.c ../ini.c ../fortify.c ../lp_rlp.c ../lp_crash.c ../bfp/bfp_LUSOL/lp_LUSOL.c ../bfp/bfp_LUSOL/LUSOL/lusol.c ../lp_Hash.c ../lp_lib.c ../lp_wlp.c ../lp_matrix.c ../lp_mipbb.c ../lp_MPS.c ../lp_params.c ../lp_presolve.c ../lp_price.c ../lp_pricePSE.c ../lp_report.c ../lp_scale.c ../lp_simplex.c lp_solve.c ../lp_SOS.c ../lp_utils.c ../yacc_read.c'
|
|
c=cc
|
|
|
|
+tmpdir="@WRKDIR@/tmp"
|
|
+mkdir "$tmpdir" || return 2
|
|
+
|
|
#determine platform (32/64 bit)
|
|
->/tmp/platform.c
|
|
-echo '#include <stdlib.h>'>>/tmp/platform.c
|
|
-echo '#include <stdio.h>'>>/tmp/platform.c
|
|
-echo 'main(){printf("ux%d", (int) (sizeof(void *)*8));}'>>/tmp/platform.c
|
|
-$c /tmp/platform.c -o /tmp/platform
|
|
-PLATFORM=`/tmp/platform`
|
|
-rm /tmp/platform /tmp/platform.c >/dev/null 2>&1
|
|
+>$tmpdir/platform.c
|
|
+echo '#include <stdlib.h>'>>$tmpdir/platform.c
|
|
+echo '#include <stdio.h>'>>$tmpdir/platform.c
|
|
+echo 'main(){printf("ux%d", (int) (sizeof(void *)*8));}'>>$tmpdir/platform.c
|
|
+$c $tmpdir/platform.c -o $tmpdir/platform
|
|
+PLATFORM=`$tmpdir/platform`
|
|
+rm $tmpdir/platform $tmpdir/platform.c >/dev/null 2>&1
|
|
|
|
mkdir bin bin/$PLATFORM >/dev/null 2>&1
|
|
|
|
math=-lm
|
|
|
|
#check if this system has the isnan function
|
|
->/tmp/isnan.c
|
|
-echo '#include <stdio.h>'>>/tmp/isnan.c
|
|
-echo '#include <stdlib.h>'>>/tmp/isnan.c
|
|
-echo '#include <math.h>'>>/tmp/isnan.c
|
|
-echo 'main(){isnan(0);}'>>/tmp/isnan.c
|
|
-$c /tmp/isnan.c -o /tmp/isnan $math >/dev/null 2>&1
|
|
+>$tmpdir/isnan.c
|
|
+echo '#include <stdio.h>'>>$tmpdir/isnan.c
|
|
+echo '#include <stdlib.h>'>>$tmpdir/isnan.c
|
|
+echo '#include <math.h>'>>$tmpdir/isnan.c
|
|
+echo 'int main(){isnan(0.0);}'>>$tmpdir/isnan.c
|
|
+$c $tmpdir/isnan.c -o $tmpdir/isnan $math >/dev/null 2>&1
|
|
if [ $? = 0 ]
|
|
then NOISNAN=
|
|
else NOISNAN=-DNOISNAN
|
|
fi
|
|
-rm /tmp/isnan.c /tmp/isnan >/dev/null 2>&1
|
|
+rm $tmpdir/isnan.c $tmpdir/isnan >/dev/null 2>&1
|
|
+
|
|
+rmdir $tmpdir
|
|
|
|
opts='-O3'
|
|
|
|
@@ -38,4 +43,4 @@ then opts='-O0'
|
|
else dl=-ldl
|
|
fi
|
|
|
|
-$c -I.. -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd -I../shared $opts $def $NOISNAN -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine $src -o bin/$PLATFORM/lp_solve $math $dl
|
|
+$c -I.. -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd -I../shared $opts $def $NOISNAN -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine $src -o bin/$PLATFORM/lp_solve $math $DL_LDADD $LDFLAGS
|