From 5b5a5ed52d4128ac7448b360aa48136a1cb8b9d1 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Tue, 18 Dec 2012 08:53:33 +0000 Subject: [PATCH] Add Cygwin lpsolve55 build script (untested). git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@6231 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/ext/lpsolve55/Makefile | 6 +++ .../src/lp_solve_5.5/lpsolve55/ccc.cygwin | 51 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc.cygwin diff --git a/prism/ext/lpsolve55/Makefile b/prism/ext/lpsolve55/Makefile index 2fddd551..ba8ac777 100644 --- a/prism/ext/lpsolve55/Makefile +++ b/prism/ext/lpsolve55/Makefile @@ -15,6 +15,12 @@ ifeq ($(OSTYPE),darwin) LPSOLVE55_BUILD=ccc.osx32 endif endif +ifeq ($(OSTYPE),cygwin) + LPSOLVE55_BUILD=ccc.cygwin +endif +ifeq ($(OSTYPE),solaris) + LPSOLVE55_BUILD=ccc.solaris +endif default: all diff --git a/prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc.cygwin b/prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc.cygwin new file mode 100644 index 00000000..921d61d0 --- /dev/null +++ b/prism/ext/lpsolve55/src/lp_solve_5.5/lpsolve55/ccc.cygwin @@ -0,0 +1,51 @@ +: +src='../lp_MDO.c ../shared/commonlib.c ../shared/mmio.c ../shared/myblas.c ../ini.c ../fortify.c ../colamd/colamd.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_SOS.c ../lp_utils.c ../yacc_read.c' +c=cc + +#determine platform (32/64 bit) +>/tmp/platform.c +echo '#include '>>/tmp/platform.c +echo '#include '>>/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 + +mkdir bin bin/$PLATFORM >/dev/null 2>&1 + +#check if this system has the isnan function +>/tmp/isnan.c +echo '#include '>>/tmp/isnan.c +echo '#include '>>/tmp/isnan.c +echo '#include '>>/tmp/isnan.c +echo 'main(){isnan(0);}'>>/tmp/isnan.c +$c /tmp/isnan.c -o /tmp/isnan $math >/dev/null 2>&1 +if [ $? = 0 ] +then NOISNAN= +else NOISNAN=-DNOISNAN +fi +rm /tmp/isnan.c /tmp/isnan >/dev/null 2>&1 + +def= +so= +if [ "$PLATFORM" = "SCO_UNIX" ] +then def='-dy -K PIC -DNOLONGLONG' + dl=-lc +else dl=-ldl + so=y +fi + +opts='-O3' + +$c -s -c -I.. -I../shared -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd $opts $def $NOISNAN -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine -mno-cygwin $src +ar rv bin/$PLATFORM/liblpsolve55.a `echo $src|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'` +ranlib bin/$PLATFORM/liblpsolve55.a + +if [ "$so" != "" ] +then + $c -fpic -s -c -I.. -I../shared -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd -I. $opts $NOISNAN -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine -mno-cygwin $src + $c -shared -Wl,--add-stdcall-alias -Wl,-Bsymbolic -Wl,-soname,liblpsolve55.dll -mno-cygwin -o bin/$PLATFORM/liblpsolve55.dll `echo $src|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'` -lc -lm -ldl + mv bin/$PLATFORM/liblpsolve55.dll ../../../lib +fi + +rm *.o 2>/dev/null