File lpsolve-5.5.0.15-mingw.patch of Package mingw32-lpsolve

--- lp_solve_5.5/configure.ac	2009-01-02 19:15:34.000000000 +0100
+++ lp_solve_5.5/configure.ac	2010-02-15 21:44:01.000000000 +0100
@@ -3,7 +3,6 @@
 AC_CONFIG_SRCDIR(lp_simplex.c)
 AC_CANONICAL_HOST
 
-SHARED_LIB=liblpsolve55.so
 SO=.so
 case $host_os in
   hp*|HP*)
@@ -16,7 +15,7 @@
       then CCSHARED="-fPIC";
       else CCSHARED="+z";
     fi;;
-  CYGWIN*)
+  CYGWIN*|cygwin*|MINGW*|mingw*)
     SO=.dll;;
   linux)
     CCSHARED="-fPIC";;
@@ -37,6 +36,7 @@
     fi;;
  *)
 esac
+SHARED_LIB=lpsolve55$SO
 
 AC_SUBST(SO)
 AC_SUBST(CCSHARED)
--- lp_solve_5.5/lp_bit.h	2009-08-27 21:54:01.000000000 +0200
+++ lp_solve_5.5/lp_bit.h	2010-02-15 21:54:36.000000000 +0100
@@ -1,10 +1,10 @@
+#ifndef __LP_BIT_H__
+#define __LP_BIT_H__
+
+
 #include "lp_types.h"
 
-#if defined INLINE
-# define MYINLINE INLINE
-#else
 # define MYINLINE static
-#endif
 
 MYINLINE void set_biton(MYBOOL *bitarray, int item)
 {
@@ -20,3 +20,5 @@
 {
   return( (MYBOOL) ((bitarray[item / 8] & (1 << (item % 8))) != 0) );
 }
+
+#endif
--- lp_solve_5.5/lp_presolve.c	2009-09-05 19:04:36.000000000 +0200
+++ lp_solve_5.5/lp_presolve.c	2010-02-15 21:44:01.000000000 +0100
@@ -5895,3 +5895,22 @@
 
   return( TRUE );
 }
+
+int presolve_rowlength(presolverec *psdata, int rownr)
+{
+  int *items = psdata->rows->next[rownr];
+
+  if(items == NULL)
+    return( 0 );
+  else
+    return( items[0] );
+}
+
+int presolve_collength(presolverec *psdata, int colnr)
+{
+  int *items = psdata->cols->next[colnr];
+  if(items == NULL)
+    return( 0 );
+  else
+    return( items[0] );
+}
--- lp_solve_5.5/lp_presolve.h	2009-02-01 20:31:51.000000000 +0100
+++ lp_solve_5.5/lp_presolve.h	2010-02-15 21:44:01.000000000 +0100
@@ -98,23 +98,8 @@
 
 STATIC MYBOOL presolve_colfixdual(presolverec *psdata, int colnr, REAL *fixValue, int *status);
 
-INLINE int presolve_rowlength(presolverec *psdata, int rownr)
-{
-  int *items = psdata->rows->next[rownr];
-
-  if(items == NULL)
-    return( 0 );
-  else
-    return( items[0] );
-}
-INLINE int presolve_collength(presolverec *psdata, int colnr)
-{
-  int *items = psdata->cols->next[colnr];
-  if(items == NULL)
-    return( 0 );
-  else
-    return( items[0] );
-}
+int presolve_rowlength(presolverec *psdata, int rownr);
+int presolve_collength(presolverec *psdata, int colnr);
 
 STATIC int presolve(lprec *lp);
 STATIC MYBOOL postsolve(lprec *lp, int status);
--- lp_solve_5.5/lp_solve.def	2009-01-02 18:20:38.000000000 +0100
+++ lp_solve_5.5/lp_solve.def	2010-02-15 21:45:11.000000000 +0100
@@ -1,252 +1,503 @@
 EXPORTS
-   add_SOS
    add_column
+   add_column@8
    add_columnex
+   add_columnex@16
    add_constraint
+   add_constraint@20
    add_constraintex
+   add_constraintex@28
    add_lag_con
+   add_lag_con@20
+   add_SOS
+   add_SOS@28
    column_in_lp
+   column_in_lp@8
    copy_lp
+   copy_lp@4
    default_basis
+   default_basis@4
    del_column
+   del_column@8
    del_constraint
+   del_constraint@8
    delete_lp
+   delete_lp@4
    dualize_lp
+   dualize_lp@4
    free_lp
-   get_Lrows
-   get_Ncolumns
-   get_Norig_columns
-   get_Norig_rows
-   get_Nrows
-   get_pseudocosts
+   free_lp@4
    get_anti_degen
+   get_anti_degen@4
    get_basis
+   get_basis@12
    get_basiscrash
+   get_basiscrash@4
    get_bb_depthlimit
+   get_bb_depthlimit@4
    get_bb_floorfirst
+   get_bb_floorfirst@4
    get_bb_rule
+   get_bb_rule@4
    get_bounds_tighter
+   get_bounds_tighter@4
    get_break_at_value
+   get_break_at_value@4
    get_col_name
+   get_col_name@8
    get_column
+   get_column@12
    get_columnex
+   get_columnex@16
+   get_constraints
+   get_constraints@8
    get_constr_type
+   get_constr_type@8
    get_constr_value
-   get_constraints
+   get_constr_value@20
    get_dual_solution
+   get_dual_solution@8
    get_epsb
+   get_epsb@4
    get_epsd
+   get_epsd@4
    get_epsel
+   get_epsel@4
    get_epsint
+   get_epsint@4
    get_epsperturb
+   get_epsperturb@4
    get_epspivot
+   get_epspivot@4
    get_improve
+   get_improve@4
    get_infinite
+   get_infinite@4
    get_lambda
+   get_lambda@8
    get_lowbo
+   get_lowbo@8
    get_lp_index
+   get_lp_index@8
    get_lp_name
+   get_lp_name@4
+   get_Lrows
+   get_Lrows@4
    get_mat
+   get_mat@12
    get_mat_byindex
+   get_mat_byindex@16
    get_max_level
+   get_max_level@4
    get_maxpivot
+   get_maxpivot@4
    get_mip_gap
+   get_mip_gap@8
    get_multiprice
+   get_multiprice@8
    get_nameindex
+   get_nameindex@12
+   get_Ncolumns
+   get_Ncolumns@4
    get_negrange
+   get_negrange@4
    get_nonzeros
+   get_nonzeros@4
+   get_Norig_columns
+   get_Norig_columns@4
+   get_Norig_rows
+   get_Norig_rows@4
+   get_Nrows
+   get_Nrows@4
    get_obj_bound
+   get_obj_bound@4
    get_objective
-   get_orig_index
+   get_objective@4
    get_origcol_name
+   get_origcol_name@8
+   get_orig_index
+   get_orig_index@8
    get_origrow_name
+   get_origrow_name@8
    get_partialprice
+   get_partialprice@16
    get_pivoting
+   get_pivoting@4
    get_presolve
+   get_presolve@4
    get_presolveloops
+   get_presolveloops@4
    get_primal_solution
+   get_primal_solution@8
    get_print_sol
+   get_print_sol@4
+   get_pseudocosts
+   get_pseudocosts@16
    get_ptr_constraints
+   get_ptr_constraints@8
    get_ptr_dual_solution
+   get_ptr_dual_solution@8
    get_ptr_lambda
+   get_ptr_lambda@8
    get_ptr_primal_solution
+   get_ptr_primal_solution@8
    get_ptr_sensitivity_obj
+   get_ptr_sensitivity_obj@12
    get_ptr_sensitivity_objex
+   get_ptr_sensitivity_objex@20
    get_ptr_sensitivity_rhs
+   get_ptr_sensitivity_rhs@16
    get_ptr_variables
+   get_ptr_variables@8
    get_rh
+   get_rh@8
    get_rh_range
+   get_rh_range@8
    get_row
+   get_row@12
    get_rowex
+   get_rowex@16
    get_row_name
+   get_row_name@8
    get_scalelimit
+   get_scalelimit@4
    get_scaling
+   get_scaling@4
    get_sensitivity_obj
+   get_sensitivity_obj@12
    get_sensitivity_objex
+   get_sensitivity_objex@20
    get_sensitivity_rhs
+   get_sensitivity_rhs@16
    get_simplextype
+   get_simplextype@4
    get_solutioncount
+   get_solutioncount@4
    get_solutionlimit
+   get_solutionlimit@4
    get_status
+   get_status@4
    get_statustext
+   get_statustext@8
    get_timeout
+   get_timeout@4
    get_total_iter
+   get_total_iter@4
    get_total_nodes
+   get_total_nodes@4
    get_upbo
+   get_upbo@8
    get_var_branch
+   get_var_branch@8
    get_var_dualresult
+   get_var_dualresult@8
+   get_variables
+   get_variables@8
    get_var_primalresult
+   get_var_primalresult@8
    get_var_priority
-   get_variables
+   get_var_priority@8
    get_verbose
+   get_verbose@4
    get_working_objective
+   get_working_objective@4
    guess_basis
+   guess_basis@12
    has_BFP
+   has_BFP@4
    has_XLI
-   is_SOS_var
+   has_XLI@4
    is_add_rowmode
+   is_add_rowmode@4
    is_anti_degen
+   is_anti_degen@8
    is_binary
+   is_binary@8
    is_break_at_first
+   is_break_at_first@4
    is_constr_type
+   is_constr_type@12
    is_debug
+   is_debug@4
    is_feasible
-   is_unbounded
+   is_feasible@16
    is_infinite
+   is_infinite@12
    is_int
+   is_int@8
    is_integerscaling
+   is_integerscaling@4
    is_lag_trace
+   is_lag_trace@4
    is_maxim
+   is_maxim@4
    is_nativeBFP
+   is_nativeBFP@4
    is_nativeXLI
+   is_nativeXLI@4
    is_negative
+   is_negative@8
    is_obj_in_basis
+   is_obj_in_basis@4
    is_piv_mode
+   is_piv_mode@8
    is_piv_rule
+   is_piv_rule@8
    is_presolve
+   is_presolve@8
    is_scalemode
+   is_scalemode@8
    is_scaletype
+   is_scaletype@8
    is_semicont
+   is_semicont@8
+   is_SOS_var
+   is_SOS_var@8
    is_trace
+   is_trace@4
+   is_unbounded
+   is_unbounded@8
    is_use_names
+   is_use_names@8
    lp_solve_version
+   lp_solve_version@16
    make_lp
+   make_lp@8
+   MPS_writefileex
+   MPS_writefileex@16
    print_constraints
+   print_constraints@8
    print_debugdump
+   print_debugdump@8
    print_duals
+   print_duals@4
    print_lp
+   print_lp@4
    print_objective
+   print_objective@4
    print_scales
+   print_scales@4
    print_solution
+   print_solution@8
    print_str
+   print_str@8
    print_tableau
+   print_tableau@4
    put_abortfunc
-   put_bb_nodefunc
+   put_abortfunc@12
    put_bb_branchfunc
+   put_bb_branchfunc@12
+   put_bb_nodefunc
+   put_bb_nodefunc@12
    put_logfunc
+   put_logfunc@12
    put_msgfunc
-   read_LP
-   read_MPS
-   read_XLI
-   read_freeMPS
+   put_msgfunc@16
+   read_basis
+   read_basis@12
    read_freemps
+   read_freeMPS
+   read_freemps@8
+   read_freeMPS@8
    read_lp
+   read_LP
+   read_lp@12
+   read_LP@12
    read_lpex
+   read_lpex@16
    read_mps
-   read_basis
+   read_MPS
+   read_mps@8
+   read_MPS@8
    read_params
+   read_params@12
+   read_XLI
+   read_XLI@20
    reset_basis
+   reset_basis@4
    reset_params
+   reset_params@4
    resize_lp
-   set_BFP
-   set_pseudocosts
-   set_XLI
+   resize_lp@12
    set_add_rowmode
+   set_add_rowmode@8
    set_anti_degen
+   set_anti_degen@8
    set_basis
+   set_basis@12
    set_basiscrash
+   set_basiscrash@8
    set_basisvar
+   set_basisvar@12
    set_bb_depthlimit
+   set_bb_depthlimit@8
    set_bb_floorfirst
+   set_bb_floorfirst@8
    set_bb_rule
+   set_bb_rule@8
+   set_BFP
+   set_BFP@8
    set_binary
+   set_binary@12
    set_bounds
+   set_bounds@24
    set_bounds_tighter
+   set_bounds_tighter@8
    set_break_at_first
+   set_break_at_first@8
    set_break_at_value
+   set_break_at_value@12
    set_col_name
+   set_col_name@12
    set_column
+   set_column@12
    set_columnex
+   set_columnex@20
    set_constr_type
+   set_constr_type@12
    set_debug
+   set_debug@8
    set_epsb
+   set_epsb@12
    set_epsd
+   set_epsd@12
    set_epsel
+   set_epsel@12
    set_epsint
+   set_epsint@12
    set_epslevel
+   set_epslevel@8
    set_epsperturb
+   set_epsperturb@12
    set_epspivot
-   set_unbounded
+   set_epspivot@12
    set_improve
+   set_improve@8
    set_infinite
+   set_infinite@12
    set_int
+   set_int@12
    set_lag_trace
+   set_lag_trace@8
    set_lowbo
+   set_lowbo@16
    set_lp_name
+   set_lp_name@8
    set_mat
+   set_mat@20
    set_maxim
+   set_maxim@4
    set_maxpivot
+   set_maxpivot@8
    set_minim
+   set_minim@4
    set_mip_gap
+   set_mip_gap@16
    set_multiprice
+   set_multiprice@8
    set_negrange
+   set_negrange@12
    set_obj
+   set_obj@16
    set_obj_bound
+   set_obj_bound@12
    set_obj_fn
+   set_obj_fn@8
    set_obj_fnex
+   set_obj_fnex@16
    set_obj_in_basis
+   set_obj_in_basis@8
    set_outputfile
+   set_outputfile@8
    set_outputstream
+   set_outputstream@8
    set_partialprice
+   set_partialprice@16
    set_pivoting
+   set_pivoting@8
    set_preferdual
+   set_preferdual@8
    set_presolve
+   set_presolve@12
    set_print_sol
+   set_print_sol@8
+   set_pseudocosts
+   set_pseudocosts@16
    set_rh
+   set_rh@16
    set_rh_range
+   set_rh_range@16
    set_rh_vec
+   set_rh_vec@8
    set_row
-   set_row_name
+   set_row@12
    set_rowex
+   set_rowex@20
+   set_row_name
+   set_row_name@12
    set_scalelimit
+   set_scalelimit@12
    set_scaling
+   set_scaling@8
    set_semicont
+   set_semicont@12
    set_sense
+   set_sense@8
    set_simplextype
+   set_simplextype@8
    set_solutionlimit
+   set_solutionlimit@8
    set_timeout
+   set_timeout@8
    set_trace
+   set_trace@8
+   set_unbounded
+   set_unbounded@8
    set_upbo
+   set_upbo@16
    set_use_names
+   set_use_names@12
    set_var_branch
+   set_var_branch@12
    set_var_weights
+   set_var_weights@8
    set_verbose
+   set_verbose@8
+   set_XLI
+   set_XLI@8
    solve
+   solve@4
    str_add_column
+   str_add_column@8
    str_add_constraint
+   str_add_constraint@20
    str_add_lag_con
+   str_add_lag_con@20
    str_set_obj_fn
+   str_set_obj_fn@8
    str_set_rh_vec
+   str_set_rh_vec@8
    time_elapsed
+   time_elapsed@4
    unscale
-   write_LP
-   write_MPS
-   write_XLI
-   write_freeMPS
+   unscale@4
+   write_basis
+   write_basis@8
    write_freemps
-   MPS_writefileex
+   write_freeMPS
+   write_freemps@8
+   write_freeMPS@8
    write_lp
+   write_LP
+   write_lp@8
+   write_LP@8
    write_lpex
+   write_lpex@12
    write_mps
-   write_basis
+   write_MPS
+   write_mps@8
+   write_MPS@8
    write_params
+   write_params@12
+   write_XLI
+   write_XLI@16
--- lp_solve_5.5/lp_types.h	2009-02-01 20:31:57.000000000 +0100
+++ lp_solve_5.5/lp_types.h	2010-02-15 21:44:01.000000000 +0100
@@ -180,7 +180,7 @@
 #endif
 
 #if !defined INLINE
-  #if defined __cplusplus
+  #if defined __cplusplus || defined __MINGW32__
     #define INLINE inline
   #elif (defined _WIN32) || (defined WIN32) || (defined _WIN64) || (defined WIN64)
     #define INLINE __inline
--- lp_solve_5.5/Makefile.in	2007-06-30 18:39:30.000000000 +0200
+++ lp_solve_5.5/Makefile.in	2010-02-15 21:44:01.000000000 +0100
@@ -4,10 +4,11 @@
 prefix = @prefix@
 includedir = @includedir@/lpsolve
 libdir = @libdir@
+bindir = @bindir@
 CFLAGS=@CFLAGS@
-INCLUDES=-I. -I./shared -I./bfp -I./bfp/bfp_LUSOL -I./bfp/bfp_LUSOL/LUSOL -I./colamd
+INCLUDES=-I. -I./shared -I./bfp -I./bfp/bfp_LUSOL -I./bfp/bfp_LUSOL/LUSOL -I./colamd -I./lpsolve55
 DEFINES=-DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine @DEF@
-LIBS=-lc -lm -ldl
+LIBS=-lm -ldl
 INSTALL_DATA = ${INSTALL} -m 644
 INSTALL_PROGRAM = ${INSTALL}
 INSTALL_SCRIPT = ${INSTALL}
@@ -71,7 +72,7 @@
 	lp_utils.c \
         yacc_read.c
 
-all: liblpsolve55.a @SHARED_LIB@
+all: liblpsolve55.a @SHARED_LIB@ lp_solve@EXEEXT@
 
 # OBJECTS = $(patsubst %.c,%.o,$(SOURCES))
 #.c.o:
@@ -79,43 +80,76 @@
 
 liblpsolve55.a: $(SOURCES)
 	$(CC) -s -c $(INCLUDES) $(CFLAGS) $(DEFINES) $(SOURCES)
-	ar rv $@ `echo $(SOURCES)|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'`
-	ranlib $@
+	$(AR) rv $@ `echo $(SOURCES)|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'`
+	$(RANLIB) $@
 
-liblpsolve55@SO@: $(SOURCES)
+lp_solve@EXEEXT@: lp_solve/lp_solve.c lib@SHARED_LIB@.a
+	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o $@ lib@SHARED_LIB@.a $(LDFLAGS)
+	
+
+lib@SHARED_LIB@.a: lp_solve.def
+	$(DLLTOOL) --output-lib $@ --input-def lp_solve.def --dllname @SHARED_LIB@
+
+@SHARED_LIB@: $(SOURCES) lib@SHARED_LIB@.a
 	$(CC) $(CCSHARED) -s -c $(INCLUDES) $(CFLAGS) $(DEFINES) $(SOURCES)
-	$(CC) -shared -Wl,-Bsymbolic -Wl,-soname,$@ -o $@ `echo $(SOURCES)|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'` $(LIBS)
+	$(CC) -shared  -o $@ `echo $(SOURCES)|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'` lp_solve.def
 
-install: install-HEADERS install-LIBRARIES
+install: install-HEADERS install-LIBRARIES install-TOOLS
 
 install-HEADERS: $(HEADERS)
-	test -d $(includedir) || $(mkdir_p) $(includedir)
+	test -d $(DESTDIR)$(includedir) || $(mkdir_p) $(DESTDIR)$(includedir)
 	@list='$(HEADERS)'; for p in $$list; do \
-	  echo " $(INSTALL) $$p $(includedir)/$$f"; \
-	  $(INSTALL) $$p $(includedir)/$$f; \
+	  echo " $(INSTALL) $$p $(DESTDIR)$(includedir)/$$f"; \
+	  $(INSTALL) $$p $(DESTDIR)$(includedir)/$$f; \
 	done
 
-install-LIBRARIES: liblpsolve55.a @SHARED_LIB@
-	test -d $(libdir) || $(mkdir_p) $(libdir)
-	@list='liblpsolve55.a @SHARED_LIB@'; for p in $$list; do \
+install-LIBRARIES: liblpsolve55.a @SHARED_LIB@ lib@SHARED_LIB@.a
+	test -d $(DESTDIR)$(libdir) || $(mkdir_p) $(DESTDIR)$(libdir)
+	test -d $(DESTDIR)$(bindir) || $(mkdir_p) $(DESTDIR)$(bindir)
+	@list='liblpsolve55.a lib@SHARED_LIB@.a'; for p in $$list; do \
 	  if test -f $$p; then \
-	    echo " $(INSTALL) $$p $(libdir)/$$f"; \
-	    $(INSTALL) $$p $(libdir)/$$f; \
+	    echo " $(INSTALL) $$p $(DESTDIR)$(libdir)/$$f"; \
+	    $(INSTALL) $$p $(DESTDIR)$(libdir)/$$f; \
+	  else :; fi; \
+	done
+	@list='@SHARED_LIB@'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+	    $(INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
+	  else :; fi; \
+	done
+
+install-TOOLS: lp_solve@EXEEXT@
+	test -d $(DESTDIR)$(bindir) || $(mkdir_p) $(DESTDIR)$(bindir)
+	@list='lp_solve@EXEEXT@'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
+	    $(INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-LIBRARIES:
-	@set -x; list='liblpsolve55.a @SHARED_LIB@'; for p in $$list; do \
-	  echo " rm -f $(libdir)/$$f"; \
-	  rm -f "$(libdir)/$$f"; \
+	@set -x; list='liblpsolve55.a lib@SHARED_LIB@.a'; for p in $$list; do \
+	  echo " rm -f $(DESTDIR)$(libdir)/$$f"; \
+	  rm -f "$(DESTDIR)$(libdir)/$$f"; \
+	@set -x; list='@SHARED_LIB@'; for p in $$list; do \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
 	done
 
-uninstall: uninstall-HEADERS uninstall-LIBRARIES
+uninstall-TOOLS:
+	@set -x; list='lp_solve@EXEEXT@'; for p in $$list; do \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+
+uninstall: uninstall-HEADERS uninstall-LIBRARIES uninstall-TOOLS
 
 uninstall-HEADERS:
 	@set -x; @list=$(HEADERS); for p in $$list; do \
-	  echo " rm -f $(includedir)/$$f"; \
-	  rm -f "$(includedir)/$$f"; \
+	  echo " rm -f $(DESTDIR)$(includedir)/$$f"; \
+	  rm -f "$(DESTDIR)$(includedir)/$$f"; \
 	done
 
 dist: 
@@ -124,7 +158,7 @@
 	tar -czpf $(PACKAGE_STRING).tar.bz2 ./$(PACKAGE_STRING)
 	-rm -fr $(PACKAGE_STRING)
 
-CLEANFILES = *.o *.so *.a
+CLEANFILES = *.o *@SO@ *.a
 clean:
 	-rm -f $(CLEANFILES)
 
openSUSE Build Service is sponsored by