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
 # <carlo.defa...@gmail.com>
 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
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to