Here are some messages regarding VMS support for lp_solve. I provide them as they are, I am not in the position to check their validity.

Michel Berkelaar

--------------------------------------------------
File USER:[ADP.BRENNAN.LP]DEFINES.H;1
    6   #ifdef VMS
    7   #define EXIT_SUCCESS 1
    8   #define EXIT_FAILURE 20
    9   #else
   10   #define EXIT_SUCCESS 0
   11   #define EXIT_FAILURE 1
   12   #endif
   13   
   14   #ifndef bcopy
   15   # define bcopy(src,dst,n)  memcpy((dst),(src),(n))
   16   # define bzero(src,n)      memset((src),(0),(n))
   17   #endif

	Also _removed_ the line continuation for the definition of CALLOC,
	as VAXC got confused/upset unless it was all one long line.
************
File USER:[ADP.BRENNAN.LP]MAIN.C;1
  126   	  exit(EXIT_SUCCESS);
  127   	}

  152     return (EXIT_SUCCESS);
  153   } /* main */
************
File USER:[ADP.BRENNAN.LP]READ.C;1
   40     exit(EXIT_FAILURE);
   41   }

  273         exit(EXIT_FAILURE);
  274       }

  377         exit(EXIT_FAILURE);
  378       }

  383         exit(EXIT_FAILURE);
  384       }

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ Luke Brennan                             e-mail:   L.Brennan@cchs.su.EDU.AU +
+ EDP Unit, S209                       L.Brennan%cchs.su.edu.au@cunyvm.BITNET +
+ Cumberland College of Health Sciences,                              ,-_|\   +
+ The University of Sydney                  voice: +61 2 646 6402    /     \  +
+ East Street, Lidcombe, NSW 2141             fax: +61 2 646 4853    \_,-._*  +
+ AUSTRALIA                                                               v   +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

--------------------------------------------------
$! --- Build.com ---						!x='f$verify(0)'
$!
$! Description:
$!  Trivial VMS shell script to compile LP_SOLVE under VMS (VAX or ALPHA)
$!  (a Linear Programming solver by Michel@es.ele.tue.nl)
$!
$! Author:
$!  L.Brennan@cchs.su.edu.au
$!
$! Modifications:
$!  09-Jun-93		ldcb		Initial coding.
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$ TARGET = "lp_solve"
$!
$ SOURCES = "main.c,  solve.c,  read.c,  write.c,  tran.c,  dual.c"
$ SOBJECT = "main.obj,solve.obj,read.obj,write.obj,tran.obj,dual.obj"
$!
$! Depending on the platform, and which versions/variations of LEX & YACC
$! you use, you'll probably have to correct LSOURCE and YSOURCE to match.
$!
$ LSOURCE = "lexyy.c"	! my LEX creates this filename from LEX.L, which you
$!			! then have to ensure matches the entry in LP.Y (it's
$!			! an #include statement right at the bottom of LP.Y)
$ YSOURCE = "y-tab.c"	! my YACC creates this filename from LP.Y
$ YOBJECT = "y-tab.obj" ! which I then compile.
$!
$ OBJECTS = SOBJECT+","+YOBJECT
$!
$ CC   = "cc"
$ LEX  := $Sys$Lex:LEX.exe    ! an old Lex (original Bell circa 1976!) I have.
$ YACC := $Sys$Local:YACC.exe ! an old Berkeley Yacc (circa 1990) I have here.
$!
$! My zillion-year-old LEX doesn't seem to know about yywrap()  ...
$!
$ CFLAGS :=""/Define="""yywrap()=1""" ""
$!
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$ If (P1 .eqs. "LINK") Then GoTo linker
$ If (P1 .eqs. "LEX")  Then GoTo Lex_Yacc
$!
$ 'CC' 'CFLAGS' main.c		/Object=main.obj
$ 'CC' 'CFLAGS' solve.c		/Object=solve.obj
$ 'CC' 'CFLAGS' read.c		/Object=read.obj
$ 'CC' 'CFLAGS' write.c		/Object=write.obj
$ 'CC' 'CFLAGS' tran.c		/Object=tran.obj
$ 'CC' 'CFLAGS' dual.c		/Object=dual.obj
$!
$Lex_Yacc:
$ LEX   lex.l
$ YACC  lp.y
$!
$ 'CC' 'CFLAGS' 'YSOURCE'	/Object='YOBJECT'
$!
$Linker:
$ LINK/Exec='TARGET' 'OBJECTS',Sys$Input:/OPTION
Sys$Share:VaxCrtl.exe/Share
$!
$ Exit

--------------------------------------------------
$! --- LPSOLVE.COM ---						!x='f$verify(0)'
$!
$! Description:
$!  Trivial VMS shell script to mimic "prog < file.txt"
$!
$! Author:
$!  L.Brennan@cchs.su.edu.au
$!
$! Modifications:
$!   09-Jun-93		ldcb		Initial coding.
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$ If (P1.nes."")
$ Then
$   If (f$search(P1) .nes. "")
$   Then Define/User_Mode Sys$InPut 'P1'
$   Else
$     file = P1 - ".LP" + ".LP"
$     If (f$search(file) .nes. "")
$     Then Define/User_Mode Sys$InPut 'file'
$     Else
$       Write Sys$Error "LPSOLVE: File ''P1' not found."
$       Exit
$     EndIF
$   EndIF
$ EndIF
$!
$ Run LP_SOLVE.exe
$!
$ Exit

