Jordi Gutiérrez Hermoso wrote
>
> On Fri, Sep 14, 2012 at 3:44 PM, Jordi Gutiérrez Hermoso wrote:
> Nitzan, can you please publish the sources you've used to build MinGW?
> It's a little worrisom that we're in effect distributing GPL-violating
> MinGW binaries.
>
Attached are the patches I have used for octaveforge packages in order to
build them on mingw. Be aware that most of them are simply workarounds to
overcome mingw environment failures to identify libs. I hope that I will be
able to fix some of these on next mingw octave build.
Nitzan
**************************************************************************
ad-1.0.6
**************************************************************************
--- ad-1.0.6.tar.gz\ad-1.0.6\src\ov-grad.cc Sun Jun 07 13:44:44 2009
+++ ad-1.0.6_patched.tar.gz\ad-1.0.6\src\ov-grad.cc Sat Jan 28 09:11:17 2012
@@ -71,10 +71,12 @@
void octave_gradient::print (std::ostream& os, bool pr_as_read_syntax)
const
{
- x ().print_with_name (os, "value", true);
+//patched for ov.h in 0ctave-3.6.0 x ().print_with_name (os, "value",
true);
+ x ().print_with_name (os, "value");
// print (partial) derivative(s),
// following convention i-th row = nabla(x_i)T
- jacobian ().print_with_name (os, "(partial) derivative(s)", true);
+//patched for ov.h in 0ctave-3.6.0 jacobian ().print_with_name (os,
"(partial) derivative(s)", true);
+ jacobian ().print_with_name (os, "(partial) derivative(s)");
}
octave_value_list octave_gradient::dotref (const octave_value_list& idx)
**************************************************************************
communications-1.1.1
**************************************************************************
--- communications-1.1.1.tar.gz\communications\src\Makefile Tue May 08
15:06:50 2012
+++ communications-1.1.1_patched.tar.gz\communications\src\Makefile Tue Jun
12 23:00:56 2012
@@ -1,6 +1,7 @@
sinclude Makeconf
HDF5_LIBS := $(shell grep "\#define OCTAVE_CONF_HDF5_LIBS" $(shell
$(MKOCTFILE) -p OCTINCLUDEDIR)/oct-conf.h | sed 's/^.*LIBS //;s/"//g' )
+MY_HDF5_LIBS = libhdf5
GALOISTARGET = gf.oct
GALOISSOURCES = galois.cc galois-def.cc galoisfield.cc gf.cc \
@@ -25,7 +26,7 @@
@$(INSTALL) -d $(DESTDIR)$(MPATH)/comm
$(GALOISTARGET) : $(GALOISOBJECTS)
- $(MKOCTFILE) $(MOFLAGS) $(GALOISOBJECTS) -o $@ $(HDF5_LIBS)
+ $(MKOCTFILE) -l$(MY_HDF5_LIBS) $(MOFLAGS) $(GALOISOBJECTS) -o $@
$(HDF5_LIBS)
$(GALOISOBJECTS): $(GALOISHEADERS)
**************************************************************************
java-1.2.9 (thanks to Michael Goffioul for that patch)
**************************************************************************
--- java-1.2.9.tar\java-1.2.9.tar\java\src\Makefile Sat Apr 28 20:52:02 2012
+++ java-1.2.9_patched.tar\java-1.2.9.tar\java\src\Makefile Sat Aug 04
09:43:41 2012
@@ -15,6 +15,7 @@
JAVA_CLASSES = $(patsubst %.java, %.class, $(JAVA_SOURCES))
JAVA_RSC = $(addprefix $(RSCDIR)/, $(IMAGES))
+HAVE_JAVA = yes
ifeq ($(HAVE_JAVA),yes)
all: $(PROGS)
@if test -f" FILES"; then \
@@ -36,9 +37,9 @@
__java__.oct: __java__.cc __java__.h
if [ "X$(JAVA_ARCH)X" = "XX" ]; then \
- $(MKOCTFILE) -DJAVAPKG_BUILD $(JAVA_INCS) -o $@ __java__.cc
$(JAVA_LIBS);
\
+ $(MKOCTFILE) -Wl,--kill-at -DJAVAPKG_BUILD $(JAVA_INCS) -o $@
__java__.cc
$(JAVA_LIBS); \
else \
- $(MKOCTFILE) -DJAVAPKG_BUILD -DJAVA_ARCH=\\\"$(JAVA_ARCH)\\\"
-DJAVA_HOME=\\\"$(JAVA_HOME)\\\" $(JAVA_INCS) -o $@ __java__.cc
$(JAVA_LIBS); \
+ $(MKOCTFILE) -Wl,--kill-at -DJAVAPKG_BUILD
-DJAVA_ARCH=\\\"$(JAVA_ARCH)\\\" -DJAVA_HOME=\\\"$(JAVA_HOME)\\\"
$(JAVA_INCS) -o $@ __java__.cc $(JAVA_LIBS); \
fi
octave.jar: $(JAVA_CLASSES)
**************************************************************************
linear-algebra-2.2.0
**************************************************************************
---
linear-algebra-2.2.0.tar\linear-algebra-2.2.0.tar\linear-algebra\src\Makefile
Tue Jan 10 21:00:16 2012
+++
linear-algebra-2.2.0_patched.tar\linear-algebra-2.2.0.tar\linear-algebra\src\Makefile
Tue Jun 12 22:45:52 2012
@@ -4,7 +4,8 @@
MKOCTFILE = mkoctfile
endif
-LAPACK_LIBS := $(shell mkoctfile -p LAPACK_LIBS)
+#LAPACK_LIBS := $(shell mkoctfile -p LAPACK_LIBS)
+LAPACK_LIBS := -llapack
DEFINES = -DHAVE_CONFIG_H -Wall
GSVD_OBJECTS = gsvd.o dbleGSVD.o CmplxGSVD.o
**************************************************************************
ocs-0.1.3
**************************************************************************
--- ocs-0.1.3_svn20120128.tar.gz\ocs\PKG_ADD Sat Aug 06 15:32:14 2011
+++ ocs-0.1.3_svn20120128_patched.tar.gz\ocs\PKG_ADD Sat Jan 28 18:24:23
2012
@@ -1,10 +1,12 @@
dirlist = {"utl", "asm", "tst", "nls", "prs", "sbn"};
-dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
+% dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
+dirname = fileparts (mfilename ("fullpath"));
if (! exist (fullfile (dirname, "inst"), "dir"))
## Run this if the package is installed
for ii=1:length (dirlist)
- addpath ( [ dirname "/../" dirlist{ii}],"-end")
+% addpath ( [ dirname "/../" dirlist{ii}],"-end")
+ addpath (fullfile(dirname,dirlist{ii}),"-end")
endfor
else
## Run this if we are testing the package without installation
--- ocs-0.1.3_svn20120128.tar.gz\ocs\PKG_DEL Sat Aug 06 15:32:14 2011
+++ ocs-0.1.3_svn20120128_patched.tar.gz\ocs\PKG_DEL Sat Jan 28 18:02:54
2012
@@ -1,14 +1,18 @@
dirlist = {"utl", "asm", "tst", "nls", "prs", "sbn"};
-dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
+% dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
+[basename,dirname] = fileparts (canonicalize_file_name (mfilename
("fullpath")));
for ii=1:length (dirlist)
if (! exist (fullfile (dirname, "inst"), "dir"))
## Run this if the package is installed
- rmpath ( [ dirname "/../" dirlist{ii}])
- else
+% rmpath ( [ dirname "/../" dirlist{ii}])
+ rmpath ( fullfile(basename,dirlist{ii}))
+ else
## Run this if we are testing the package without installation
- rmpath ([ dirname "/inst/" dirlist{ii}])
- rmpath ([ dirname "/src/"])
+% rmpath ([ dirname "/inst/" dirlist{ii}])
+ rmpath ( fullfile(basename,"inst",dirlist{ii}) )
+% rmpath ([ dirname "/src/"])
+% rmpath (fullfile(basename,"src"]))
end
end
**************************************************************************
optim-1.2.0
**************************************************************************
--- optim-1.2.0.tar.gz\optim-1.2.0\src\Makefile Tue Jun 12 16:42:55 2012
+++ optim-1.2.0_patched.tar.gz\optim-1.2.0\src\Makefile Sat Aug 04 11:27:03
2012
@@ -1,9 +1,11 @@
MKOCTFILE ?= mkoctfile
ifndef LAPACK_LIBS
-LAPACK_LIBS := $(shell $(MKOCTFILE) -p LAPACK_LIBS)
+# LAPACK_LIBS := $(shell $(MKOCTFILE) -p LAPACK_LIBS)
+LAPACK_LIBS := -lliblapack
endif
-OCTAVE_LAPACK_LIBS := $(shell $(MKOCTFILE) -p LAPACK_LIBS)
+# OCTAVE_LAPACK_LIBS := $(shell $(MKOCTFILE) -p LAPACK_LIBS)
+OCTAVE_LAPACK_LIBS := -lliblapack
# reported necessary for Apple's VecLib framework by Carlo de Falco
# <[email protected]>
ifndef BLAS_LIBS
**************************************************************************
optiminterp-0.3.4_svn20120128
**************************************************************************
added src/configure (taken from an older version) - proper setting of
LAPACK_LIBS in the makefile or in mingw environment will solve the problem
too
**************************************************************************
sockets-1.0.8
**************************************************************************
--- sockets-1.0.8.tar.gz\sockets\src\Makefile Tue Jan 10 21:05:12 2012
+++ sockets-1.0.8_patched.tar.gz\sockets\src\Makefile Sat Aug 04 11:35:39
2012
@@ -14,7 +14,8 @@
all: $(OCT)
%.oct: %.cc
- mkoctfile $(VFLAGS) -s $<
+ mkoctfile -L/C/Octave/Octave3.6.0_gcc4.6.2/mingw32/lib $(VFLAGS) -s
-lws2_32 $<
+# mkoctfile $(VFLAGS) -s $<
test: $(OCT)
test_octave_sockets
**************************************************************************
strings-1.1.0
**************************************************************************
--- strings-1.1.0.tar\strings-1.1.0.tar\strings\src\Makefile Fri Mar 16
21:30:38 2012
+++ strings-1.1.0_patched.tar\strings-1.1.0.tar\strings\src\Makefile Wed Jun
13 00:21:33 2012
@@ -3,7 +3,7 @@
all: pcregexp.oct
%.oct: %.cc
- $(MKOCTFILE) $<
+ $(MKOCTFILE) -lpcre $<
clean:
rm -f *.o octave-core core *.oct *~
**************************************************************************
video-1.0.2
**************************************************************************
note: src/AVHandler.cc has been taken from recent svn
--- video-1.0.2.tar\video-1.0.2.tar\video-1.0.2\src\AVHandler.h Fri May 08
16:17:36 2009
+++
octaveforge\video-1.0.2_patched.tar\video-1.0.2.tar\video-1.0.2\src\AVHandler.h
Tue Aug 23 14:55:34 2011
@@ -27,8 +27,11 @@
#define VIDEO_OUTBUF_SIZE 200000
+// FIXME: should define -D__STDC_CONSTANT_MACROS instead of the following
#define INT64_C
+#define UINT64_C
#define __STDC_CONSTANT_MACROS
+
#include <errno.h>
extern "C" {
#if defined (HAVE_FFMPEG_AVFORMAT_H)
--- video-1.0.2.tar\video-1.0.2.tar\video-1.0.2\DESCRIPTION Fri May 08
16:17:36 2009
+++ video-1.0.2_patched.tar\video-1.0.2.tar\video-1.0.2\DESCRIPTION Tue Aug
23 14:30:55 2011
@@ -7,6 +7,6 @@
Description: Implements addframe, avifile, aviinfo, and aviread, using
ffmpeg. (and approximately conforms to Matlab interface)
Depends: octave (>= 2.9.12)
Autoload: yes
-SystemRequirements: ffmpeg
+SystemRequirements: >=ffmpeg-0.7
License: BSD
Url: http://octave.sf.net
--- video-1.0.2.tar\video-1.0.2.tar\video-1.0.2\src\AVHandler.cc Fri May
08
16:17:36 2009
+++ video-1.0.2_patched.tar\video-1.0.2.tar\video-1.0.2\src\AVHandler.cc
Tue
Aug 23 14:53:46 2011
@@ -64,7 +64,7 @@
if (av_output->pb->buf_ptr) {
while (write_frame() > 0) {}
av_write_trailer(av_output);
- if (url_fclose( av_output->pb ) < 0)
+ if (avio_close( av_output->pb ) < 0)
(*out) << "AVHandler: cannot close output file" << std::endl;
}
av_free(av_output);
@@ -94,8 +94,8 @@
AVHandler::setup_write() {
av_register_all();
- AVOutputFormat *avifmt;
- for (avifmt = first_oformat; avifmt != NULL; avifmt = avifmt->next) {
+ AVOutputFormat *avifmt = NULL;
+ while (NULL != (avifmt = av_oformat_next(avifmt))) {
if (std::string(avifmt->name) == "avi") {
break;
}
@@ -106,7 +106,7 @@
return -1;
}
- av_output = av_alloc_format_context();
+ av_output = avformat_alloc_context();
if (!av_output) {
(*out) << "AVHandler: Memory error allocating format context" <<
std::endl;
return -1;
@@ -127,11 +127,11 @@
}
snprintf(av_output->filename, sizeof(av_output->filename), "%s",
filename.c_str());
- snprintf(av_output->title, sizeof(av_output->title), "%s",
title.c_str());
- snprintf(av_output->author, sizeof(av_output->author), "%s",
author.c_str());
- snprintf(av_output->comment, sizeof(av_output->comment), "%s",
comment.c_str());
+ // FIXME: snprintf(av_output->title, sizeof(av_output->title), "%s",
title.c_str());
+ // FIXME: snprintf(av_output->author, sizeof(av_output->author), "%s",
author.c_str());
+ // FIXME: snprintf(av_output->comment, sizeof(av_output->comment),
"%s", comment.c_str());
- if (url_fopen(&av_output->pb, filename.c_str(), URL_WRONLY) < 0) {
+ if (avio_open(&av_output->pb, filename.c_str(), URL_WRONLY) < 0) {
(*out) << "AVHandler: Could not open \"" << filename << "\" for output"
<<
std::endl;
return -1;
}
@@ -162,7 +162,7 @@
}
for (int i=0; i < av_input->nb_streams; i++) {
- if (av_input->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) {
+ if (av_input->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
vstream = av_input->streams[i];
break;
}
@@ -173,7 +173,7 @@
}
for (int i=0; i < av_input->nb_streams; i++) {
- if (av_input->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO) {
+ if (av_input->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
astream = av_input->streams[i];
break;
}
@@ -204,9 +204,9 @@
width = vstream->codec->width;
height = vstream->codec->height;
- title = av_input->title;
- author = av_input->author;
- comment = av_input->comment;
+ // FIXME: title = av_input->title;
+ // FIXME: author = av_input->author;
+ // FIXME: comment = av_input->comment;
rgbframe = create_frame(PIX_FMT_RGB24);
if (!rgbframe) return -1;
@@ -258,7 +258,7 @@
if (c->coded_frame)
pkt.pts = c->coded_frame->pts;
if (c->coded_frame && c->coded_frame->key_frame)
- pkt.flags |= PKT_FLAG_KEY;
+ pkt.flags |= AV_PKT_FLAG_KEY;
/// XXX FIXME XXX does this ensure that the first frame is always a key
frame?
if (av_write_frame(av_output, &pkt) != 0) {
@@ -296,7 +296,9 @@
(*out) << "AVHandler: Error seeking to " << target_timestamp <<
std::endl;
return -1;
}
- cc->hurry_up = 1;
+
+ // http://ffmpeg.org/pipermail/ffmpeg-cvslog/2011-April/035933.html
+ // FIXME: deprecated: cc->hurry_up = 1;
// Flush stream buffers after seek
avcodec_flush_buffers(cc);
@@ -324,14 +326,14 @@
return -1;
}
- if (url_feof(av_input->pb)) {
+ if (av_input->pb->eof_reached) {
(*out) << "AVHandler: EOF reached" << std::endl;
}
}
// Decode the packet into a frame
int frameFinished;
- if (avcodec_decode_video(cc, frame, &frameFinished, packet.data,
packet.size) < 0) {
+ if (avcodec_decode_video2(cc, frame, &frameFinished, &packet) < 0) {
(*out) << "AVHandler: Error decoding video stream" << std::endl;
av_free_packet(&packet);
av_free(frame); frame = NULL;
@@ -342,7 +344,9 @@
current_timestamp = (uint64_t)(vstream->cur_dts * AV_TIME_BASE *
(long
double)stream_time_base);
}
}
- cc->hurry_up = 0;
+
+ // http://ffmpeg.org/pipermail/ffmpeg-cvslog/2011-April/035933.html
+ // FIXME: deprecated: cc->hurry_up = 0;
SwsContext *sc = sws_getContext(cc->width, cc->height, cc->pix_fmt,
cc->width, cc->height, PIX_FMT_BGR24,
@@ -361,8 +365,8 @@
(*out) << "Supported file formats:" << std::endl;
av_register_all();
- AVOutputFormat *ofmt;
- for (ofmt = first_oformat; ofmt != NULL; ofmt = ofmt->next) {
+ AVOutputFormat *ofmt = NULL;
+ while (NULL != (ofmt = av_oformat_next(ofmt))) {
(*out) << ofmt->name << " ";
}
(*out) << std::endl << std::endl;
@@ -375,7 +379,7 @@
AVCodec *codec;
for (codec = av_codec_next(0); codec != NULL; codec =
av_codec_next(codec)) {
- if ((codec->type == CODEC_TYPE_VIDEO) &&
+ if ((codec->type == AVMEDIA_TYPE_VIDEO) &&
(codec->encode)) {
(*out) << codec->name << " ";
}
@@ -395,7 +399,7 @@
cc = vstream->codec;
- cc->codec_type = CODEC_TYPE_VIDEO;
+ cc->codec_type = AVMEDIA_TYPE_VIDEO;
cc->bit_rate = bitrate;
cc->width = width;
**************************************************************************
vrml-1.0.13
**************************************************************************
--- vrml-1.0.13.tar.gz\vrml\inst\vrml_browse.m Mon Apr 16 12:01:20 2012
+++ vrml-1.0.13_patched.tar.gz\vrml\inst\vrml_browse.m Sat Aug 04 12:02:47
2012
@@ -96,8 +96,11 @@
b_opt = [out_option," ",bop," ",best_option, " ",geo_option] ;
-b_temp = "/tmp/octave_vrml_output.wrl" ;
-b_log = " &> /tmp/octave_vrml_browser.log";
+if ~exist('tmp','dir')
+ mkdir('tmp')
+end
+b_temp = "tmp/octave_vrml_output.wrl" ;
+b_log = " &> tmp/octave_vrml_browser.log";
new_browser = 0 ;
# ####################################
--- vrml-1.0.13.tar.gz\vrml\inst\vrml_thick_surf.m Mon Apr 16 12:01:20 2012
+++ vrml-1.0.13_patched.tar.gz\vrml\inst\vrml_thick_surf.m Sat Aug 04
12:13:42 2012
@@ -50,18 +50,18 @@
tran = 0 ;
col = [0.3, 0.4, 0.9] ;
smooth = creaseAngle = nan ;
-nargin = nargin();
+nargs = nargin();
-if (nargin <= 1) || ischar(y), # Cruft to allow not passing x and y
+if (nargs <= 1) || ischar(y), # Cruft to allow not passing x and y
zz = x ;
[R,C] = size (zz);
xx = ones(R,1)*[1:C] ;
yy = [1:R]'*ones(1,C) ;
- if nargin >=3,
+ if nargs >=3,
s = vrml_surf ( xx, yy, zz, y, z, varargin{:} );
return
- elseif nargin >=2,
+ elseif nargs >=2,
s = vrml_surf ( xx, yy, zz, y, varargin{:} );
return
@@ -73,12 +73,12 @@
filename = "vrml_thick_surf" ;
verbose = 0 ;
-if nargin > 3,
+if nargs > 3,
opt1 = " tran col creaseAngle " ;
opt0 = " smooth " ;
- nargin -= 3 ;
+ nargs -= 3 ;
read_options_old ;
end
--
View this message in context:
http://octave.1599824.n4.nabble.com/My-patches-for-octaveforge-pkgs-Mingw-build-tp4644174.html
Sent from the Octave - Dev mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://ad.doubleclick.net/clk;258768047;13503038;j?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Octave-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/octave-dev