diff options
author | konablend <[email protected]> | 2009-04-14 20:10:57 +0000 |
---|---|---|
committer | konablend <[email protected]> | 2009-04-14 20:10:57 +0000 |
commit | 16b2cd579e17d46bdf7bcec3059a92d2c80d21e8 (patch) | |
tree | f23def4a82677bda7b031b1e2f56c249e6c93d9e /contrib | |
parent | 6a59b3ba40c2d2bbe977684d31b345bdd3a5ef93 (diff) |
This patch adds mingw32 cross-compilation support to HandBrake trunk to
produce native win32 binaries. The main benefits are the binary does not have
any Cygwin runtime requirements and various host platforms can be leveraged
to build HandBrake.
Cross-compilation toolchains are complex to setup and recommended for experts
only; but once setup it can build at speeds similar to native builds,
on Darwin or Linux.
BUILD INSTRUCTIONS:
Add mingw32 toolchain to beginning of your path and take the toolchain
prefix from gcc (eg: i386-mingw32-gcc) and pass to configure:
./configure --cross=i386-ming32
PRODUCTS:
- hb.lib (static library)
- HandBrakeCLI.exe
DOWNLOADS:
Contrib downloads need to be seeded with:
- pthreads-w32-2-8-0-release.tar.gz (new)
- xvidcore-20090311.tar.gz
SUMMARY:
Specifically, all GUI trees are not impacted.
configure
- added --cross=PREFIX
- reworked search for gcc and cross-compile related tools to use prefix
contrib/
- sub-patches added as needed for mingw
contrib/xvidcore/
- bumped from 1.1.3 -> 1.2.1+ (daily 20090311)
- reconstituted P01-cygwin.patch
- created new P00-darwin.patch needed for macho64 asm flag on x86_64 arch
libhb/
- uint -> uint32_t
- remaining changes guarded by mingw32 macro.
test/
- modified to support pthread-compatibility library attach/detach.
- all changes guarded by mingw32 macro.
BRANCHES:
source: https://hbfork.googlecode.com/svn/branches/mingw@28
target: svn://svn.handbrake.fr/HandBrake/trunk@2325
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2326 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/bzip2/module.defs | 1 | ||||
-rw-r--r-- | contrib/faad2/P00-mingw-types.patch | 25 | ||||
-rw-r--r-- | contrib/ffmpeg/module.defs | 24 | ||||
-rw-r--r-- | contrib/libdvdread/P02-mingw-ssize_t.patch | 26 | ||||
-rw-r--r-- | contrib/libdvdread/P03-mingw-disable-dlopen.patch | 134 | ||||
-rw-r--r-- | contrib/libdvdread/P04-mingw-endian-macros.patch | 29 | ||||
-rw-r--r-- | contrib/libdvdread/P05-mingw-large-file.patch | 28 | ||||
-rw-r--r-- | contrib/libmkv/P00-mingw-large-file.patch | 24 | ||||
-rw-r--r-- | contrib/libmp4v2/P00-mingw-static.patch | 16 | ||||
-rw-r--r-- | contrib/libmp4v2/P01-mingw-msvcrt-lower.patch | 31 | ||||
-rw-r--r-- | contrib/libmp4v2/P02-mingw-configure.patch | 26 | ||||
-rw-r--r-- | contrib/libmp4v2/module.defs | 12 | ||||
-rw-r--r-- | contrib/pthreadw32/module.defs | 25 | ||||
-rw-r--r-- | contrib/pthreadw32/module.rules | 2 | ||||
-rw-r--r-- | contrib/x264/module.defs | 12 | ||||
-rw-r--r-- | contrib/xvidcore/A00-nasm.patch | 13 | ||||
-rw-r--r-- | contrib/xvidcore/A01-fdct.patch | 8 | ||||
-rw-r--r-- | contrib/xvidcore/P00-darwin.patch | 56 | ||||
-rw-r--r-- | contrib/xvidcore/P01-cygwin.patch | 25 | ||||
-rw-r--r-- | contrib/xvidcore/module.defs | 10 | ||||
-rw-r--r-- | contrib/zlib/module.defs | 6 |
21 files changed, 449 insertions, 84 deletions
diff --git a/contrib/bzip2/module.defs b/contrib/bzip2/module.defs index 7c9c5528b..76eacbe90 100644 --- a/contrib/bzip2/module.defs +++ b/contrib/bzip2/module.defs @@ -8,6 +8,7 @@ BZIP2.CONFIGURE = $(TOUCH.exe) $@ BZIP2.BUILD.extra = \ CC=$(BZIP2.GCC.gcc) \ CFLAGS="$(call fn.ARGS,BZIP2.GCC,*archs)" \ + RANLIB="$(RANLIB.exe)" PREFIX=$(call fn.ABSOLUTE,$(CONTRIB.build/)) BZIP2.BUILD.ntargets = libbz2.a diff --git a/contrib/faad2/P00-mingw-types.patch b/contrib/faad2/P00-mingw-types.patch new file mode 100644 index 000000000..3e5bba531 --- /dev/null +++ b/contrib/faad2/P00-mingw-types.patch @@ -0,0 +1,25 @@ +diff -Naur faad2.orig/common/mp4ff/mp4ff_int_types.h faad2/common/mp4ff/mp4ff_int_types.h +--- faad2.orig/common/mp4ff/mp4ff_int_types.h 2005-02-01 08:15:55.000000000 -0500 ++++ faad2/common/mp4ff/mp4ff_int_types.h 2008-10-07 16:43:06.000000000 -0400 +@@ -1,7 +1,7 @@ + #ifndef _MP4FF_INT_TYPES_H_ + #define _MP4FF_INT_TYPES_H_ + +-#if defined (_WIN32) ++#if defined(_WIN32) && !defined(__MINGW32__) + + typedef char int8_t; + typedef unsigned char uint8_t; +diff -Naur faad2.orig/frontend/main.c faad2/frontend/main.c +--- faad2.orig/frontend/main.c 2007-11-01 08:33:29.000000000 -0400 ++++ faad2/frontend/main.c 2008-10-07 16:55:49.000000000 -0400 +@@ -31,7 +31,9 @@ + #ifdef _WIN32 + #define WIN32_LEAN_AND_MEAN + #include <windows.h> ++#ifndef __MINGW32__ + #define off_t __int64 ++#endif + #else + #include <time.h> + #endif diff --git a/contrib/ffmpeg/module.defs b/contrib/ffmpeg/module.defs index 63ae39f44..af34b3a92 100644 --- a/contrib/ffmpeg/module.defs +++ b/contrib/ffmpeg/module.defs @@ -7,6 +7,8 @@ FFMPEG.EXTRACT.tarbase = ffmpeg-0.5 FFMPEG.CONFIGURE.deps = FFMPEG.CONFIGURE.env = FFMPEG.CONFIGURE.host = +#FFMPEG.CONFIGURE.shared = +#FFMPEG.CONFIGURE.static = FFMPEG.CONFIGURE.extra = \ --disable-bsfs \ @@ -21,19 +23,27 @@ FFMPEG.CONFIGURE.extra = \ --enable-gpl \ --enable-libfaad \ --enable-muxer=ipod \ - --enable-pthreads \ --enable-swscale \ --cc="$(GCC.gcc)" \ --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include)" \ --extra-ldflags="$(call fn.ARGS,FFMPEG.GCC,*archs ?extra) -L$(call fn.ABSOLUTE,$(CONTRIB.build/)lib)" -ifeq ($(BUILD.cross),1) - FFMPEG.CONFIGURE.extra += --enable-cross-compile --arch=$(BUILD.machine) -endif - -ifeq (cygwin,$(BUILD.system)) - FFMPEG.CONFIGURE.extra += --enable-memalign-hack +## check against tuple: B-SYSTEM where B is { 0 | 1 } for cross-compiling flag +ifeq (0-cygwin,$(BUILD.cross)-$(BUILD.system)) + FFMPEG.CONFIGURE.extra += --enable-pthreads --enable-memalign-hack FFMPEG.GCC.args.extra = -fno-common +else ifeq (1-darwin,$(BUILD.cross)-$(BUILD.system)) + ## section for darwin-archs + FFMPEG.CONFIGURE.extra += --enable-pthreads --enable-cross-compile --arch=$(BUILD.machine) +else ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system)) + FFMPEG.CONFIGURE.extra += \ + --enable-w32threads \ + --enable-memalign-hack \ + --target-os=mingw32 \ + --enable-cross-compile --cross-prefix=$(BUILD.cross.prefix) + FFMPEG.GCC.args.extra += -fno-common +else + FFMPEG.CONFIGURE.extra += --enable-pthreads endif # diff --git a/contrib/libdvdread/P02-mingw-ssize_t.patch b/contrib/libdvdread/P02-mingw-ssize_t.patch new file mode 100644 index 000000000..a4dc5eda7 --- /dev/null +++ b/contrib/libdvdread/P02-mingw-ssize_t.patch @@ -0,0 +1,26 @@ +diff -Naur libdvdread.orig/configure libdvdread/configure +--- libdvdread.orig/configure 2006-10-06 04:14:24.000000000 -0400 ++++ libdvdread/configure 2009-03-10 17:45:06.000000000 -0400 +@@ -3550,9 +3550,6 @@ + _ACEOF + + ;; +- x*mingw32* | x*cygwin*) +- CFLAGS="${CFLAGS} -Dssize_t=long" +- ;; + x*) + ;; + esac +diff -Naur libdvdread.orig/configure.in libdvdread/configure.in +--- libdvdread.orig/configure.in 2006-10-06 04:12:31.000000000 -0400 ++++ libdvdread/configure.in 2009-03-10 17:45:06.000000000 -0400 +@@ -15,9 +15,6 @@ + CFLAGS="${CFLAGS} -no-cpp-precomp" + AC_DEFINE(__DARWIN__, 1, Have a Mac OS X system) + ;; +- x*mingw32* | x*cygwin*) +- CFLAGS="${CFLAGS} -Dssize_t=long" +- ;; + x*) + ;; + esac diff --git a/contrib/libdvdread/P03-mingw-disable-dlopen.patch b/contrib/libdvdread/P03-mingw-disable-dlopen.patch new file mode 100644 index 000000000..515526289 --- /dev/null +++ b/contrib/libdvdread/P03-mingw-disable-dlopen.patch @@ -0,0 +1,134 @@ +diff -Naur libdvdread.orig/configure libdvdread/configure +--- libdvdread.orig/configure 2006-10-06 04:14:24.000000000 -0400 ++++ libdvdread/configure 2009-03-10 17:48:56.000000000 -0400 +@@ -18889,11 +18889,6 @@ + echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 + if test $ac_cv_lib_dl_dlopen = yes; then + DL_LIBS=-ldl +-else +- { { echo "$as_me:$LINENO: error: You need libdl (dlopen)" >&5 +-echo "$as_me: error: You need libdl (dlopen)" >&2;} +- { (exit 1); exit 1; }; } +- + fi + + +diff -Naur libdvdread.orig/dvdread/dvd_input.c libdvdread/dvdread/dvd_input.c +--- libdvdread.orig/dvdread/dvd_input.c 2005-09-19 09:43:08.000000000 -0400 ++++ libdvdread/dvdread/dvd_input.c 2009-03-10 18:01:43.000000000 -0400 +@@ -44,18 +44,6 @@ + + char * (*dvdinput_error) (dvd_input_t); + +-#ifdef HAVE_DVDCSS_DVDCSS_H +-/* linking to libdvdcss */ +-#include <dvdcss/dvdcss.h> +-#define DVDcss_open(a) dvdcss_open((char*)(a)) +-#define DVDcss_close dvdcss_close +-#define DVDcss_seek dvdcss_seek +-#define DVDcss_title dvdcss_title +-#define DVDcss_read dvdcss_read +-#define DVDcss_error dvdcss_error +-#else +-/* dlopening libdvdcss */ +-#include <dlfcn.h> + typedef struct dvdcss_s *dvdcss_handle; + static dvdcss_handle (*DVDcss_open) (const char *); + static int (*DVDcss_close) (dvdcss_handle); +@@ -63,7 +51,6 @@ + static int (*DVDcss_title) (dvdcss_handle, int); + static int (*DVDcss_read) (dvdcss_handle, void *, int, int); + static char * (*DVDcss_error) (dvdcss_handle); +-#endif + + /* The DVDinput handle, add stuff here for new input methods. */ + struct dvd_input_s { +@@ -290,17 +277,7 @@ + */ + void dvdinput_free(void) + { +-#ifdef HAVE_DVDCSS_DVDCSS_H +- /* linked statically, nothing to free */ + return; +-#else +- if(dvdcss_library) { +- dlclose(dvdcss_library); +- dvdcss_library = NULL; +- } +- dvdcss_library_init = 0; +- return; +-#endif + } + + +@@ -324,58 +301,6 @@ + + verbose = get_verbose(); + +-#ifdef HAVE_DVDCSS_DVDCSS_H +- /* linking to libdvdcss */ +- dvdcss_library = &dvdcss_library; /* Give it some value != NULL */ +- /* the DVDcss_* functions have been #defined at the top */ +- dvdcss_version = &dvdcss_interface_2; +- +-#else +- +- dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY); +- +- if(dvdcss_library != NULL) { +-#if defined(__OpenBSD__) && !defined(__ELF__) +-#define U_S "_" +-#else +-#define U_S +-#endif +- DVDcss_open = (dvdcss_handle (*)(const char*)) +- dlsym(dvdcss_library, U_S "dvdcss_open"); +- DVDcss_close = (int (*)(dvdcss_handle)) +- dlsym(dvdcss_library, U_S "dvdcss_close"); +- DVDcss_title = (int (*)(dvdcss_handle, int)) +- dlsym(dvdcss_library, U_S "dvdcss_title"); +- DVDcss_seek = (int (*)(dvdcss_handle, int, int)) +- dlsym(dvdcss_library, U_S "dvdcss_seek"); +- DVDcss_read = (int (*)(dvdcss_handle, void*, int, int)) +- dlsym(dvdcss_library, U_S "dvdcss_read"); +- DVDcss_error = (char* (*)(dvdcss_handle)) +- dlsym(dvdcss_library, U_S "dvdcss_error"); +- +- dvdcss_version = (char **)dlsym(dvdcss_library, U_S "dvdcss_interface_2"); +- +- if(dlsym(dvdcss_library, U_S "dvdcss_crack")) { +- if(verbose >= 0) { +- fprintf(stderr, +- "libdvdread: Old (pre-0.0.2) version of libdvdcss found.\n" +- "libdvdread: You should get the latest version from " +- "http://www.videolan.org/\n" ); +- } +- dlclose(dvdcss_library); +- dvdcss_library = NULL; +- } else if(!DVDcss_open || !DVDcss_close || !DVDcss_title || !DVDcss_seek +- || !DVDcss_read || !DVDcss_error || !dvdcss_version) { +- if(verbose >= 0) { +- fprintf(stderr, "libdvdread: Missing symbols in libdvdcss.so.2, " +- "this shouldn't happen !\n"); +- } +- dlclose(dvdcss_library); +- dvdcss_library = NULL; +- } +- } +-#endif /* HAVE_DVDCSS_DVDCSS_H */ +- + dvdcss_library_init = 1; + + if(dvdcss_library) { +diff -Naur libdvdread.orig/dvdread/dvd_reader.c libdvdread/dvdread/dvd_reader.c +--- libdvdread.orig/dvdread/dvd_reader.c 2006-10-06 03:58:03.000000000 -0400 ++++ libdvdread/dvdread/dvd_reader.c 2009-03-10 17:51:22.000000000 -0400 +@@ -183,7 +183,7 @@ + dev->align = align; + } + +-#ifdef WIN32 /* replacement gettimeofday implementation */ ++#if defined(WIN32) && !defined(__MINGW32__) /* replacement gettimeofday implementation */ + #include <sys/timeb.h> + static int gettimeofday( struct timeval *tv, void *tz ) + { diff --git a/contrib/libdvdread/P04-mingw-endian-macros.patch b/contrib/libdvdread/P04-mingw-endian-macros.patch new file mode 100644 index 000000000..872b8518d --- /dev/null +++ b/contrib/libdvdread/P04-mingw-endian-macros.patch @@ -0,0 +1,29 @@ +diff -Naur libdvdread.orig/dvdread/bswap.h libdvdread/dvdread/bswap.h +--- libdvdread.orig/dvdread/bswap.h 2006-06-06 16:03:37.000000000 -0400 ++++ libdvdread/dvdread/bswap.h 2009-03-13 21:05:23.000000000 -0400 +@@ -83,6 +83,25 @@ + #define B2N_32(x) x = OSSwapBigToHostConstInt32(x) + #define B2N_64(x) x = OSSwapBigToHostConstInt64(x) + ++#elif defined(__MINGW32__) ++#define B2N_16(x) \ ++ x = ((((x) & 0xff00) >> 8) | \ ++ (((x) & 0x00ff) << 8)) ++#define B2N_32(x) \ ++ x = ((((x) & 0xff000000) >> 24) | \ ++ (((x) & 0x00ff0000) >> 8) | \ ++ (((x) & 0x0000ff00) << 8) | \ ++ (((x) & 0x000000ff) << 24)) ++#define B2N_64(x) \ ++ x = ((((x) & 0xff00000000000000ULL) >> 56) | \ ++ (((x) & 0x00ff000000000000ULL) >> 40) | \ ++ (((x) & 0x0000ff0000000000ULL) >> 24) | \ ++ (((x) & 0x000000ff00000000ULL) >> 8) | \ ++ (((x) & 0x00000000ff000000ULL) << 8) | \ ++ (((x) & 0x0000000000ff0000ULL) << 24) | \ ++ (((x) & 0x000000000000ff00ULL) << 40) | \ ++ (((x) & 0x00000000000000ffULL) << 56)) ++ + #else + #if defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__BEOS__) || defined(__INTERIX) + /* These systems don't have swap macros */ diff --git a/contrib/libdvdread/P05-mingw-large-file.patch b/contrib/libdvdread/P05-mingw-large-file.patch new file mode 100644 index 000000000..7ed9b6540 --- /dev/null +++ b/contrib/libdvdread/P05-mingw-large-file.patch @@ -0,0 +1,28 @@ +--- libdvdread.orig/dvdread/dvd_input.h 2005-09-06 12:23:00.000000000 -0700 ++++ libdvdread/dvdread/dvd_input.h 2009-03-25 15:01:39.000000000 -0700 +@@ -28,6 +28,24 @@ + + #define DVDINPUT_READ_DECRYPT (1 << 0) + ++#if defined( __MINGW32__ ) ++# undef lseek ++# define lseek _lseeki64 ++# undef fseeko ++# define fseeko fseeko64 ++# undef ftello ++# define ftello ftello64 ++# define flockfile(...) ++# define funlockfile(...) ++# define getc_unlocked getc ++# undef off_t ++# define off_t off64_t ++# undef stat ++# define stat _stati64 ++# define fstat _fstati64 ++# define wstat _wstati64 ++#endif ++ + typedef struct dvd_input_s *dvd_input_t; + + /** + diff --git a/contrib/libmkv/P00-mingw-large-file.patch b/contrib/libmkv/P00-mingw-large-file.patch new file mode 100644 index 000000000..6a83eacca --- /dev/null +++ b/contrib/libmkv/P00-mingw-large-file.patch @@ -0,0 +1,24 @@ +--- libmkv.orig/src/matroska.c 2009-01-12 23:14:26.000000000 -0800 ++++ libmkv/src/matroska.c 2009-03-25 15:22:30.000000000 -0700 +@@ -27,6 +27,11 @@ + + #include <sys/time.h> + ++#if defined( __MINGW32__ ) ++#undef fseeko ++#define fseeko fseeko64 ++#endif ++ + #define RESERVED_SEEKHEAD 0x100 + /* 256 bytes should be enough room for our Seek entries. */ + #define RESERVED_CHAPTERS 0x800 +@@ -34,7 +39,7 @@ + + int mk_seekFile(mk_Writer *w, uint64_t pos) + { +- if (fseek(w->fp, pos, SEEK_SET)) ++ if (fseeko(w->fp, pos, SEEK_SET)) + return -1; + + w->f_pos = pos; + diff --git a/contrib/libmp4v2/P00-mingw-static.patch b/contrib/libmp4v2/P00-mingw-static.patch new file mode 100644 index 000000000..268ff7689 --- /dev/null +++ b/contrib/libmp4v2/P00-mingw-static.patch @@ -0,0 +1,16 @@ +Index: mp4v2/include/mp4v2/platform.h +=================================================================== +--- mp4v2/include/mp4v2/platform.h (revision 272) ++++ mp4v2/include/mp4v2/platform.h (working copy) +@@ -24,8 +24,10 @@ + #if defined( _WIN32 ) || defined( __MINGW32__ ) + # if defined( _WINDLL ) || defined( DLL_EXPORT ) + # define MP4V2_EXPORT __declspec(dllexport) ++# elif defined( _DLL ) || defined( DLL_IMPORT ) ++# define MP4V2_EXPORT __declspec(dllimport) + # else +-# define MP4V2_EXPORT __declspec(dllimport) ++# define MP4V2_EXPORT + # endif + #else + # define MP4V2_EXPORT __attribute__((visibility("default"))) diff --git a/contrib/libmp4v2/P01-mingw-msvcrt-lower.patch b/contrib/libmp4v2/P01-mingw-msvcrt-lower.patch new file mode 100644 index 000000000..384542b06 --- /dev/null +++ b/contrib/libmp4v2/P01-mingw-msvcrt-lower.patch @@ -0,0 +1,31 @@ +diff -Naur libmp4v2.orig/libplatform/io/File_win32.cpp libmp4v2/libplatform/io/File_win32.cpp +--- libmp4v2.orig/libplatform/io/File_win32.cpp 2008-11-16 02:50:26.000000000 -0500 ++++ libmp4v2/libplatform/io/File_win32.cpp 2009-03-13 02:00:09.000000000 -0400 +@@ -8,7 +8,8 @@ + bool + StdioFile::getPosition( Size& pos_ ) + { +- pos_ = _ftelli64( _handle ); ++ fflush( _handle ); // must flush because we're using _fileno routines ++ pos_ = _telli64( _fileno( _handle )); + return pos_ == -1; + } + +@@ -17,6 +18,7 @@ + bool + StdioFile::getSize( Size& size_ ) + { ++ fflush( _handle ); // must flush because we're using _fileno routines + LARGE_INTEGER n; + if( !GetFileSizeEx( (HANDLE)_get_osfhandle( _fileno( _handle )), &n )) + return true; +@@ -29,7 +31,8 @@ + bool + StdioFile::setPosition( Size pos_ ) + { +- return _fseeki64( _handle, pos_, SEEK_SET ) != 0; ++ fflush( _handle ); // must flush because we're using _fileno routines ++ return _lseeki64( _fileno( _handle ), pos_, SEEK_SET ) == -1; + } + + /////////////////////////////////////////////////////////////////////////////// diff --git a/contrib/libmp4v2/P02-mingw-configure.patch b/contrib/libmp4v2/P02-mingw-configure.patch new file mode 100644 index 000000000..ba749201d --- /dev/null +++ b/contrib/libmp4v2/P02-mingw-configure.patch @@ -0,0 +1,26 @@ +diff -Naur libmp4v2.orig/configure.ac libmp4v2/configure.ac +--- libmp4v2.orig/configure.ac 2009-01-10 12:44:40.000000000 -0500 ++++ libmp4v2/configure.ac 2009-03-13 18:18:38.000000000 -0400 +@@ -103,11 +103,11 @@ + X_CXX_ARCH="$X_CXX_ARCH -mwin32" + fi + ;; +-*-*-mingw32) ++*-*-mingw*) + # do not support shared + enable_shared=no + X_PLATFORM=win32 +- X_MINGW_LIBS="$X_MINGW_LIBS -lmsvcr80" ++ X_MINGW_LIBS="$X_MINGW_LIBS" + X_CXX_W="$X_CXX_W -Wno-format" + if test "$enable_mingw_threads" = "yes"; then + X_CXX_ARCH="$X_CXX_ARCH -mthreads" +@@ -197,7 +197,7 @@ + case ${host} in + *-*-cygwin) + ;; +- *-*-mingw32) ++ *-*-mingw*) + ;; + *) + AC_LANG(C++) diff --git a/contrib/libmp4v2/module.defs b/contrib/libmp4v2/module.defs index 4f950a2d5..ede60253e 100644 --- a/contrib/libmp4v2/module.defs +++ b/contrib/libmp4v2/module.defs @@ -5,5 +5,13 @@ LIBMP4V2.FETCH.url = http://download.m0k.org/handbrake/contrib/libmp4v2-2.0-r224 LIBMP4V2.EXTRACT.tarbase = libmp4v2 ## propagate more flags -LIBMP4V2.CONFIGURE.env.CFLAGS = CFLAGS="$(call fn.ARGS,LIBMP4V2.GCC,*archs .g .O)" -LIBMP4V2.CONFIGURE.env.CXXFLAGS = CXXFLAGS="$(call fn.ARGS,LIBMP4V2.GCC,*archs .g .O)" +LIBMP4V2.CONFIGURE.env.CFLAGS = CFLAGS="$(call fn.ARGS,LIBMP4V2.GCC,*archs *D .g .O)" +LIBMP4V2.CONFIGURE.env.CXXFLAGS = CXXFLAGS="$(call fn.ARGS,LIBMP4V2.GCC,*archs *D .g .O)" + +## save some build-time by disabling utils +LIBMP4V2.CONFIGURE.extra += --disable-util + +ifeq ($(BUILD.system),mingw) + ## mingw platform patches configure.ac and requires bootstrap + LIBMP4V2.CONFIGURE.bootstrap = autoreconf -fiv; +endif diff --git a/contrib/pthreadw32/module.defs b/contrib/pthreadw32/module.defs new file mode 100644 index 000000000..0768da6cb --- /dev/null +++ b/contrib/pthreadw32/module.defs @@ -0,0 +1,25 @@ +$(eval $(call import.MODULE.defs,PTHREADW32,pthreadw32)) +$(eval $(call import.CONTRIB.defs,PTHREADW32)) + +PTHREADW32.FETCH.url = http://download.m0k.org/handbrake/contrib/pthreads-w32-2-8-0-release.tar.gz + +PTHREADW32.CONFIGURE = $(TOUCH.exe) $@ + +PTHREADW32.BUILD.extra = CROSS=$(BUILD.cross.prefix) clean GC-static +PTHREADW32.BUILD.ntargets = clean GC-static + +define PTHREADW32.INSTALL + $(CP.exe) $(PTHREADW32.EXTRACT.dir/)libpthreadGC2.a $(CONTRIB.build/)lib/ + $(CP.exe) $(PTHREADW32.EXTRACT.dir/)pthread.h $(CONTRIB.build/)include/ + $(CP.exe) $(PTHREADW32.EXTRACT.dir/)sched.h $(CONTRIB.build/)include/ + $(CP.exe) $(PTHREADW32.EXTRACT.dir/)semaphore.h $(CONTRIB.build/)include/ + $(TOUCH.exe) $@ +endef + +define PTHREADW32.UNINSTALL + $(RM.exe) -f $(CONTRIB.build/)lib/libpthreadGC2.a + $(RM.exe) -f $(CONTRIB.build/)include/pthread.h + $(RM.exe) -f $(CONTRIB.build/)include/sched.h + $(RM.exe) -f $(CONTRIB.build/)include/semaphore.h + $(RM.exe) -f $(PTHREADW32.INSTALL.target) +endef diff --git a/contrib/pthreadw32/module.rules b/contrib/pthreadw32/module.rules new file mode 100644 index 000000000..78448835e --- /dev/null +++ b/contrib/pthreadw32/module.rules @@ -0,0 +1,2 @@ +$(eval $(call import.MODULE.rules,PTHREADW32)) +$(eval $(call import.CONTRIB.rules,PTHREADW32)) diff --git a/contrib/x264/module.defs b/contrib/x264/module.defs index 93430a4e1..c1009d938 100644 --- a/contrib/x264/module.defs +++ b/contrib/x264/module.defs @@ -1,4 +1,4 @@ -$(eval $(call import.MODULE.defs,X264,x264)) +$(eval $(call import.MODULE.defs,X264,x264,PTHREADW32)) $(eval $(call import.CONTRIB.defs,X264)) X264.FETCH.url = http://download.m0k.org/handbrake/contrib/x264-r1130-8475977.tar.gz @@ -8,4 +8,12 @@ X264.CONFIGURE.deps = X264.CONFIGURE.shared = X264.CONFIGURE.static = -X264.CONFIGURE.extra = --disable-mp4-output --enable-pthread +X264.CONFIGURE.extra = --disable-mp4-output + +ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system)) + X264.CONFIGURE.extra += --enable-pthread --cross-prefix=$(BUILD.spec)- + X264.CONFIGURE.env.CFLAGS = CFLAGS="-I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) $(call fn.ARGS,X264.GCC,*archs ?extra)" + X264.CONFIGURE.env.LDFLAGS = LDFLAGS=-L$(call fn.ABSOLUTE,$(CONTRIB.build/)lib) +else + X264.CONFIGURE.extra += --enable-pthread +endif diff --git a/contrib/xvidcore/A00-nasm.patch b/contrib/xvidcore/A00-nasm.patch deleted file mode 100644 index 44242ace4..000000000 --- a/contrib/xvidcore/A00-nasm.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -ruN xvidcore-orig/build/generic/configure xvidcore/build/generic/configure ---- xvidcore-orig/build/generic/configure 2006-11-01 03:39:36.000000000 -0700 -+++ xvidcore/build/generic/configure 2008-01-30 20:19:48.000000000 -0700 -@@ -4016,7 +4016,7 @@ - if test "$ac_nasm" = "yes" ; then - echo "$as_me:$LINENO: checking for nasm patch version" >&5 - echo $ECHO_N "checking for nasm patch version... $ECHO_C" >&6 -- nasm_patch=`$nasm_prog -r | cut -d '.' -f 3 | cut -d ' ' -f 1` -+ nasm_patch=`($nasm_prog -r || $nasm_prog -v) | cut -d '.' -f 3 | cut -d ' ' -f 1` - if test -z $nasm_patch ; then -- nasm_patch=-1 -+ nasm_patch=45 - fi diff --git a/contrib/xvidcore/A01-fdct.patch b/contrib/xvidcore/A01-fdct.patch deleted file mode 100644 index 1fc90b689..000000000 --- a/contrib/xvidcore/A01-fdct.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- xvidcore/src/dct/x86_asm/fdct_sse2_skal.asm.orig 2008-02-22 10:28:13.000000000 -0800 -+++ xvidcore/src/dct/x86_asm/fdct_sse2_skal.asm 2008-02-22 11:08:52.000000000 -0800 -@@ -620,3 +620,5 @@ - ret - .endfunc - -+ALIGN 16 -+ times 8 dw 0 diff --git a/contrib/xvidcore/P00-darwin.patch b/contrib/xvidcore/P00-darwin.patch index 51cb94c6d..12bc8dac0 100644 --- a/contrib/xvidcore/P00-darwin.patch +++ b/contrib/xvidcore/P00-darwin.patch @@ -1,31 +1,31 @@ -diff -ru xvidcore-1.1.0/build/generic/configure xvidcore-1.1.0-patched/build/generic/configure ---- xvidcore-1.1.0/build/generic/configure 2005-12-30 15:45:30.000000000 +0100 -+++ xvidcore-1.1.0-patched/build/generic/configure 2006-01-16 22:06:10.000000000 +0100 -@@ -4052,6 +4071,12 @@ - PREFIX="-DPREFIX" +diff -Naur xvidcore-20090311.orig/build/generic/configure.in xvidcore-20090311/build/generic/configure.in +--- xvidcore-20090311.orig/build/generic/configure.in 2008-12-05 05:18:52.000000000 -0500 ++++ xvidcore-20090311/build/generic/configure.in 2009-04-14 11:30:04.000000000 -0400 +@@ -427,8 +427,13 @@ MARK_FUNCS="" ;; -+ *darwin*) -+ echo "$as_me:$LINENO: result: macho" >&5 -+echo "${ECHO_T}macho" >&6 -+ NASM_FORMAT="macho" -+ PREFIX="-DPREFIX" -+ MARK_FUNCS="" - esac - - AS="$chosen_asm_prog" -diff -ru xvidcore-1.1.0/build/generic/configure.in xvidcore-1.1.0-patched/build/generic/configure.in ---- xvidcore-1.1.0/build/generic/configure.in 2005-12-30 15:45:30.000000000 +0100 -+++ xvidcore-1.1.0-patched/build/generic/configure.in 2006-01-16 22:06:04.000000000 +0100 -@@ -397,6 +397,11 @@ - PREFIX="-DPREFIX" - MARK_FUNCS="" + *darwin*) +- AC_MSG_RESULT([macho]) +- NASM_FORMAT="macho" ++ if test "$ARCHITECTURE" = "X86_64" ; then ++ AC_MSG_RESULT([macho64]) ++ NASM_FORMAT="macho64" ++ else ++ AC_MSG_RESULT([macho]) ++ NASM_FORMAT="macho" ++ fi + PREFIX="-DPREFIX" + MARK_FUNCS="" ;; -+ *darwin*) -+ AC_MSG_RESULT([macho]) -+ NASM_FORMAT="macho" -+ PREFIX="-DPREFIX" -+ MARK_FUNCS="" - esac - - AS="$chosen_asm_prog" +diff -Naur xvidcore-20090311.orig/src/nasm.inc xvidcore-20090311/src/nasm.inc +--- xvidcore-20090311.orig/src/nasm.inc 2008-12-05 05:15:02.000000000 -0500 ++++ xvidcore-20090311/src/nasm.inc 2009-04-14 12:13:37.000000000 -0400 +@@ -177,6 +177,8 @@ + %macro TEXT 0 + %ifidn __OUTPUT_FORMAT__,macho + SECTION .text align=SECTION_ALIGN ++%elifidn __OUTPUT_FORMAT__,macho64 ++ SECTION .text align=SECTION_ALIGN + %else + SECTION .rotext align=SECTION_ALIGN + %endif diff --git a/contrib/xvidcore/P01-cygwin.patch b/contrib/xvidcore/P01-cygwin.patch index 7b60510d0..20afce260 100644 --- a/contrib/xvidcore/P01-cygwin.patch +++ b/contrib/xvidcore/P01-cygwin.patch @@ -1,24 +1,7 @@ -diff -Naur xvidcore/build/generic/configure xvidcore-patched/build/generic/configure ---- xvidcore/build/generic/configure 2005-12-30 09:45:30.000000000 -0500 -+++ xvidcore-patched/build/generic/configure 2007-01-01 18:43:27.953125000 -0500 -@@ -3844,10 +3844,9 @@ - [cC][yY][gG][wW][iI][nN]*|mingw32*|mks*) - echo "$as_me:$LINENO: result: ok" >&5 - echo "${ECHO_T}ok" >&6 -- STATIC_LIB="xvidcore.\$(STATIC_EXTENSION)" -- SHARED_LIB="xvidcore.\$(SHARED_EXTENSION)" -- SPECIFIC_LDFLAGS="-mno-cygwin -shared -Wl,--dll,--out-implib,\[email protected] libxvidcore.def" -- SPECIFIC_CFLAGS="-mno-cygwin" -+ STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" -+ SHARED_LIB="libxvidcore.\$(SHARED_EXTENSION)" -+ SPECIFIC_LDFLAGS="-shared -Wl,--dll,--out-implib,\[email protected] libxvidcore.def" - ;; - darwin*|raphsody*) - STATIC_LIB="libxvidcore.\$(STATIC_EXTENSION)" -diff -Naur xvidcore/build/generic/configure.in xvidcore-patched/build/generic/configure.in ---- xvidcore/build/generic/configure.in 2005-12-30 09:45:30.000000000 -0500 -+++ xvidcore-patched/build/generic/configure.in 2007-01-01 18:43:11.453125000 -0500 -@@ -281,10 +281,9 @@ +diff -Naur xvidcore-20090311.orig/build/generic/configure.in xvidcore-20090311/build/generic/configure.in +--- xvidcore-20090311.orig/build/generic/configure.in 2008-12-05 05:18:52.000000000 -0500 ++++ xvidcore-20090311/build/generic/configure.in 2009-04-14 13:18:23.034051500 -0400 +@@ -282,10 +282,9 @@ ;; [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]*|mingw32*|mks*) AC_MSG_RESULT([ok]) diff --git a/contrib/xvidcore/module.defs b/contrib/xvidcore/module.defs index dee8b3e45..5a76e0911 100644 --- a/contrib/xvidcore/module.defs +++ b/contrib/xvidcore/module.defs @@ -1,15 +1,19 @@ $(eval $(call import.MODULE.defs,XVIDCORE,xvidcore)) $(eval $(call import.CONTRIB.defs,XVIDCORE)) -XVIDCORE.FETCH.url = http://download.m0k.org/handbrake/contrib/xvidcore-1.1.3.tar.gz -XVIDCORE.EXTRACT.tarbase = xvidcore +XVIDCORE.FETCH.url = http://download.m0k.org/handbrake/contrib/xvidcore-20090311.tar.gz +XVIDCORE.CONFIGURE.static = +XVIDCORE.CONFIGURE.shared = +XVIDCORE.CONFIGURE.deps = XVIDCORE.CONFIGURE.dir = $(XVIDCORE.EXTRACT.dir/)build/generic/ +XVIDCORE.CONFIGURE.bootstrap = ./bootstrap.sh; XVIDCORE.BUILD.dir = $(XVIDCORE.EXTRACT.dir/)build/generic/ +XVIDCORE.BUILD.extra = STATIC_LIB=libxvidcore.a XVIDCORE.BUILD.ntargets = libxvidcore.a -XVIDCORE.CLEAN.dir = $(XVIDCORE.EXTRACT.dir/)build/generic/ +XVIDCORE.CLEAN.dir = $(XVIDCORE.EXTRACT.dir/)build/generic/ define XVIDCORE.INSTALL $(CP.exe) $(XVIDCORE.EXTRACT.dir/)build/generic/=build/libxvidcore.a $(CONTRIB.build/)lib/ diff --git a/contrib/zlib/module.defs b/contrib/zlib/module.defs index 66db2f491..55daf6d8e 100644 --- a/contrib/zlib/module.defs +++ b/contrib/zlib/module.defs @@ -4,3 +4,9 @@ $(eval $(call import.CONTRIB.defs,ZLIB)) ZLIB.FETCH.url = http://download.m0k.org/handbrake/contrib/zlib-1.2.3.tar.gz ZLIB.EXTRACT.tarbase = zlib ZLIB.CONFIGURE.args = !sete @dir !env !exe @prefix !extra + +ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system)) + ZLIB.CONFIGURE.env.AR = AR="$(AR.exe) rc" + ZLIB.CONFIGURE.env.RANLIB = RANLIB="$(RANLIB.exe)" + ZLIB.CONFIGURE.env.args += !AR !RANLIB +endif |