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)