summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorkonablend <kona8lend@gmail.com>2009-04-14 20:10:57 +0000
committerkonablend <kona8lend@gmail.com>2009-04-14 20:10:57 +0000
commit16b2cd579e17d46bdf7bcec3059a92d2c80d21e8 (patch)
treef23def4a82677bda7b031b1e2f56c249e6c93d9e /test
parent6a59b3ba40c2d2bbe977684d31b345bdd3a5ef93 (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 'test')
-rw-r--r--test/module.defs5
-rw-r--r--test/test.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/test/module.defs b/test/module.defs
index 234cb1dcf..0859ddefd 100644
--- a/test/module.defs
+++ b/test/module.defs
@@ -16,7 +16,6 @@ TEST.libs = $(LIBHB.a) $(foreach n, \
TEST.install.exe = $(PREFIX/)bin/$(notdir $(TEST.exe))
-## add libs from optional modules
ifeq (1,$(BZIP2.enabled))
TEST.libs += $(CONTRIB.build/)lib/libbz2.a
endif
@@ -41,4 +40,8 @@ ifeq ($(BUILD.system),darwin)
TEST.GCC.l += bz2 z
else ifeq ($(BUILD.system),linux)
TEST.GCC.l += bz2 z pthread dl m
+else ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system))
+ TEST.libs += $(CONTRIB.build/)lib/libpthreadGC2.a
+ TEST.GCC.D += PTW32_STATIC_LIB
+ TEST.GCC.l += iberty ws2_32
endif
diff --git a/test/test.c b/test/test.c
index 7b4c67899..3273c5716 100644
--- a/test/test.c
+++ b/test/test.c
@@ -154,6 +154,11 @@ int main( int argc, char ** argv )
return 1;
}
+#ifdef PTW32_STATIC_LIB
+ pthread_win32_process_attach_np();
+ pthread_win32_thread_attach_np();
+#endif
+
/* Register our error handler */
hb_register_error_handler(&hb_cli_error_handler);
@@ -210,7 +215,7 @@ int main( int argc, char ** argv )
/* Wait... */
while( !die )
{
-#if !defined(SYS_BEOS)
+#if !defined(SYS_BEOS) && !defined(__MINGW32__)
fd_set fds;
struct timeval tv;
int ret;
@@ -299,6 +304,11 @@ int main( int argc, char ** argv )
fprintf( stderr, "HandBrake has exited.\n" );
+#ifdef PTW32_STATIC_LIB
+ pthread_win32_thread_detach_np();
+ pthread_win32_process_detach_np();
+#endif
+
return 0;
}