Skip to content

Commit 60925e4

Browse files
author
handbrake
committed
HandBrake 0.6.1
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@14 b64f7644-9d1e-0410-96f1-a4d463321fa5
1 parent 755fee5 commit 60925e4

File tree

8 files changed

+159
-144
lines changed

8 files changed

+159
-144
lines changed

BUILD

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
$Id: BUILD,v 1.4 2004/03/16 15:57:03 titer Exp $
1+
$Id: BUILD,v 1.5 2004/03/29 00:28:39 titer Exp $
22

33
BUILD file for HandBrake <http://handbrake.m0k.org/>
44

55
Building HandBrake
66
==================
77

8+
You can build HandBrake on BeOS, MacOS X and Linux. If you'd like to
9+
port it to another OS, email me (titer@m0k.org).
10+
811
Step 1: get jam
912
===============
1013

@@ -23,12 +26,14 @@ Step 2 (optional): set custom compiler flags
2326

2427
If you want to optimize the build for a specific CPU, edit the Jamrules
2528
file and modify the "OPTIM = ..." line by adding the needed flags.
26-
In case you modify this line later, make sure you run `jam -a' in order
27-
to force jam to rebuild everything with the new flags.
29+
30+
In case you modify this line later: `jam clean' does not remove the
31+
compiled contrib librairies. Therefore, make sure you run
32+
`jam clean-all; jam' or `jam -a' in order to force jam to rebuild
33+
everything with the new flags.
2834

2935
Step 3: build
3036
=============
3137

3238
Run `jam'. This will build every library HandBrake requires, then
3339
HandBrake itself.
34-

Jamfile

+43-34
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,70 @@
1-
# $Id: Jamfile,v 1.41 2004/03/15 17:08:37 titer Exp $
1+
# $Id: Jamfile,v 1.42 2004/03/29 00:28:39 titer Exp $
22
#
33
# This file is part of the HandBrake source code.
44
# Homepage: <http://handbrake.m0k.org/>.
55
# It may be used under the terms of the GNU General Public License.
66

77
SubDir TOP ;
88

9-
HB_PACKAGES = ;
10-
HB_LIBS = libhb.a liba52.a libavcodec.a libdvdplay.a libdvdread.a
11-
libdvdcss.a libfaac.a libmp3lame.a libmp4v2.a libmpeg2.a
12-
libvorbis.a libvorbisenc.a libogg.a libx264.a
13-
libxvidcore.a ;
9+
# libhb + contrib libraries
10+
HB_LIBS = libhb.a liba52.a libavcodec.a libdvdplay.a libdvdread.a
11+
libdvdcss.a libfaac.a libmp3lame.a libmp4v2.a libmpeg2.a
12+
libvorbis.a libvorbisenc.a libogg.a libx264.a libxvidcore.a ;
13+
14+
# Interfaces
15+
TEST_BIN = HBTest ;
16+
TEST_SRC = test/test.c ;
17+
BEOS_BIN = HandBrake ;
18+
BEOS_SRC = beos/HBApp.cpp beos/HBWindow.cpp ;
19+
GTK2_BIN = gtk2HB ;
20+
GTK2_SRC = gtk2/main.c gtk2/callbacks.c gtk2/interface.c gtk2/support.c ;
21+
GUI_BIN = $(TEST_BIN) $(BEOS_BIN) $(GTK2_BIN) ;
22+
GUI_SRC = $(TEST_SRC) $(BEOS_SRC) $(GTK2_SRC) ;
1423

1524
# CLI app
16-
ObjectCcFlags test/test.c : -I$(TOP)/core -g -Wall ;
17-
LinkLibraries HBTest : $(HB_LIBS) ;
18-
Main HBTest : test/test.c ;
25+
Main $(TEST_BIN) : $(TEST_SRC) ;
1926

20-
# BeOS
2127
if $(OS) = BEOS
2228
{
23-
SOURCES_BEOS = beos/HBApp.cpp beos/HBWindow.cpp ;
24-
ObjectC++Flags $(SOURCES_BEOS) :
25-
-I$(TOP)/core -I$(TOP)/beos/liblayout -g -Wall ;
26-
LINKLIBS on HandBrake = $(LINKLIBS) -L$(TOP)/lib -llayout -lbe ;
27-
LinkLibraries HandBrake : $(HB_LIBS) ;
28-
# Main HandBrake : $(SOURCES_BEOS) ;
29+
# Avoid multichar warnings caused by BeOS system headers
30+
CCFLAGS = -Wno-multichar ;
31+
C++FLAGS = -Wno-multichar ;
32+
33+
SystemLibraries HandBrake : -lbe ;
34+
# BeOS GUI is broken at the moment
35+
# Main HandBrake : $(SRC_BEOS) ;
2936
}
3037

31-
# OS X
3238
if $(OS) = MACOSX
3339
{
34-
# Build the app
35-
OSXApp HandBrake.app ;
36-
Depends HandBrake.app : $(HB_LIBS) macosx/Controller.h
37-
macosx/Controller.mm macosx/PictureGLView.h
38-
macosx/PictureGLView.mm ;
39-
Depends all : HandBrake.app ;
40+
# Needed to clean HandBrake.app
41+
RM = rm -rf ;
42+
43+
OSX_SRC = macosx/Controller.h macosx/Controller.mm
44+
macosx/PictureGLView.h macosx/PictureGLView.mm
45+
macosx/TargetSizeField.h macosx/TargetSizeField.mm
46+
macosx/main.mm ;
47+
48+
OSXApp HandBrake.app : $(OSX_SRC) $(HB_LIBS) ;
4049

4150
# Package
42-
OSXPackage HandBrake-$(HB_VERSION)-OSX.zip ;
43-
Depends HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ;
44-
HB_PACKAGES += HandBrake-$(HB_VERSION)-OSX.zip ;
51+
OSXPackage HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ;
52+
PACKAGES += HandBrake-$(HB_VERSION)-OSX.zip ;
4553
}
4654

47-
# GTK2
4855
if $(OS) = LINUX
4956
{
50-
SOURCES_GTK2 = gtk2/main.c gtk2/callbacks.c gtk2/interface.c
51-
gtk2/support.c ;
52-
ObjectCcFlags $(SOURCES_GTK2) :
53-
-I$(TOP)/core `pkg-config gtk+-2.0 --cflags` ;
54-
LINKLIBS on gtk2HB = $(LINKLIBS) `pkg-config gtk+-2.0 --libs` ;
55-
LinkLibraries gtk2HB : $(HB_LIBS) ;
56-
Main gtk2HB : $(SOURCES_GTK2) ;
57+
SystemLibraries $(TEST_BIN) : -lpthread ;
58+
SystemLibraries $(GTK2_BIN) : -lpthread `pkg-config gtk+-2.0 --libs` ;
59+
ObjectCcFlags $(GTK2_SRC) : `pkg-config gtk+-2.0 --cflags` ;
60+
Main $(GTK2_BIN) : $(GTK2_SRC) ;
5761
}
5862

63+
ObjectHdrs $(GUI_SRC) : $(TOP)/core ;
64+
ObjectCcFlags $(GUI_SRC) : -g -Wall ;
65+
ObjectC++Flags $(GUI_SRC) : -g -Wall ;
66+
LinkLibraries $(GUI_BIN) : $(HB_LIBS) ;
67+
5968
# Packages
6069
NotFile package ;
6170
Depends package : $(HB_PACKAGES) ;

Jamrules

+61-58
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,23 @@
11
# Compilers & flags
2-
CC = gcc ;
3-
C++ = g++ ;
4-
CCFLAGS = $(CFLAGS) ;
5-
C++FLAGS = $(CFLAGS) ;
6-
AS = nasm -f elf ;
7-
LINK = g++ ;
8-
OPTIM = -O3 -funroll-loops ;
2+
CC = gcc ;
3+
C++ = g++ ;
4+
AS = nasm -f elf ;
5+
LINK = g++ ;
6+
OPTIM = -O3 -funroll-loops ;
97

10-
# HandBrake defines
11-
HB_VERSION = 0.6.0 ;
8+
HB_VERSION = 0.6.1 ;
129
DEFINES = HB_$(OS) HB_VERSION=\\\"$(HB_VERSION)\\\" ;
13-
#DEFINES += HB_NOMMX ;
10+
LANGUAGES = fr de it pl ru nl es pt ;
1411

15-
LANGUAGES = fr de it pl ru nl es pt ;
12+
NotFile clean-contrib clean-all ;
13+
Always clean-contrib ;
14+
Depends clean-all : clean clean-contrib ;
1615

17-
# OS-specific
18-
if $(OS) = BEOS
19-
{
20-
CCFLAGS += -Wno-multichar ;
21-
C++FLAGS += -Wno-multichar ;
22-
}
23-
else if $(OS) = LINUX
24-
{
25-
LINKLIBS = -lpthread ;
26-
}
27-
else if $(OS) = MACOSX
28-
{
29-
# To clean HandBrake.app
30-
RM = rm -rf ;
31-
}
32-
33-
# Contrib* rules: mostly the same than Jambase rules, except
34-
# * Targets aren't cleaned by jam clean (to prevent from deleting
16+
# _Object: same as Jambase's Object, except
17+
# * those aren't cleaned by 'jam clean' (to prevent from deleting
3518
# every contrib library by accident)
36-
# * ContribObject handles *.asm files
37-
# * Temporary *.o files aren't removed
38-
rule ContribObject
19+
# * it handles *.asm files
20+
rule _Object
3921
{
4022
MakeLocate $(<) : $(LOCATE_TARGET) ;
4123
SEARCH on $(>) = $(SEARCH_SOURCE) ;
@@ -51,33 +33,28 @@ rule ContribObject
5133
case .asm : As $(<) : $(>) ;
5234
case .nas : As $(<) : $(>) ;
5335
case .c : Cc $(<) : $(>) ;
54-
case .C : C++ $(<) : $(>) ;
55-
case .cc : C++ $(<) : $(>) ;
5636
case .cpp : C++ $(<) : $(>) ;
57-
case .f : Fortran $(<) : $(>) ;
58-
case .l : Cc $(<) : $(<:S=.c) ;
59-
Lex $(<:S=.c) : $(>) ;
60-
case .s : As $(<) : $(>) ;
61-
case .y : Cc $(<) : $(<:S=$(YACCGEN)) ;
62-
Yacc $(<:S=$(YACCGEN)) : $(>) ;
63-
case * : UserObject $(<) : $(>) ;
6437
}
6538
}
66-
rule ContribObjects
39+
# _Objects: use _Object
40+
rule _Objects
6741
{
6842
local _i ;
6943
for _i in [ FGristFiles $(<) ]
7044
{
71-
ContribObject $(_i:S=$(SUFOBJ)) : $(_i) ;
45+
_Object $(_i:S=$(SUFOBJ)) : $(_i) ;
7246
Depends obj : $(_i:S=$(SUFOBJ)) ;
7347
}
7448
}
75-
rule ContribLibrary
49+
50+
# Simplified LibraryFromObjects which doesn't clean the target library
51+
# nor the temporary .o files
52+
rule _Library
7653
{
7754
local _l _s ;
7855
_s = [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
7956
_l = $(<:S=$(SUFLIB)) ;
80-
ContribObjects $(>) ;
57+
_Objects $(>) ;
8158
Depends obj : $(_s) ;
8259
MakeLocate $(_l) $(_l)($(_s:BS)) : $(LOCATE_TARGET) ;
8360
Depends $(_l) : $(_s) ;
@@ -86,40 +63,50 @@ rule ContribLibrary
8663
Depends lib : $(_l) ;
8764
}
8865

89-
# Custom Library rule: same as ContribLibrary, except 'jam clean'
90-
# removes built objects
66+
# ContribLibrary: library cleaned by 'jam clean-contrib'
67+
rule ContribLibrary
68+
{
69+
_Library $(<) : $(>) ;
70+
Clean clean-contrib : [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
71+
Clean clean-contrib : $(<:S=$(SUFLIB)) ;
72+
}
73+
74+
# Library: library cleaned by 'jam clean'
9175
rule Library
9276
{
93-
ContribLibrary $(<) : $(>) ;
77+
_Library $(<) : $(>) ;
9478
Clean clean : [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
9579
Clean clean : $(<:S=$(SUFLIB)) ;
9680
}
9781

9882
# Build HandBrake.app using Xcode
9983
rule OSXApp
100-
{
101-
Clean clean : $(1) macosx/build ;
102-
BuildOSXApp $(1) ;
84+
{
85+
Depends exe : $(<) ;
86+
Depends $(<) : $(>) ;
87+
Clean clean : $(1) macosx/build ;
88+
BuildOSXApp $(<) ;
10389
}
10490
actions BuildOSXApp
10591
{
106-
$(RM) $(1) && \
92+
$(RM) $(<) && \
10793
( cd macosx && xcodebuild ) && \
108-
cp -r macosx/build/HandBrake.app $(1) && \
94+
cp -r macosx/build/HandBrake.app $(<) && \
10995
for i in $(LANGUAGES) ; do \
110-
( cd $(1)/Contents/Resources && \
96+
( cd $(<)/Contents/Resources && \
11197
cp -r English.lproj $i.lproj && \
11298
cp ../../../macosx/i18n/$i.strings \
11399
$i.lproj/Localizable.strings ) \
114100
done ;
115101
}
116102
rule OSXPackage
117-
{
118-
BuildOSXPackage $(1) ;
103+
{
104+
Depends $(<) : $(>) ;
105+
BuildOSXPackage $(<) ;
119106
}
120107
actions BuildOSXPackage
121108
{
122-
rm -rf $(1) "HandBrake $(HB_VERSION)" && \
109+
rm -rf $(<) "HandBrake $(HB_VERSION)" && \
123110
mkdir "HandBrake $(HB_VERSION)" && \
124111
cp AUTHORS "HandBrake $(HB_VERSION)/AUTHORS.txt" && \
125112
cp COPYING "HandBrake $(HB_VERSION)/COPYING.txt" && \
@@ -128,7 +115,23 @@ actions BuildOSXPackage
128115
( cd doc && ./genhtml.sh ) && \
129116
cp doc/faq.html "HandBrake $(HB_VERSION)/FAQ.html" && \
130117
cp -r HandBrake.app "HandBrake $(HB_VERSION)" && \
131-
zip -9 -r $(1) "HandBrake $(HB_VERSION)" && \
118+
zip -9 -r $(<) "HandBrake $(HB_VERSION)" && \
132119
rm -rf "HandBrake $(HB_VERSION)"
133120
}
134121

122+
rule SystemLibraries
123+
{
124+
LINKLIBS on [ FAppendSuffix $(<) : $(SUFEXE) ] += $(>) ;
125+
}
126+
127+
# Jambase's ObjectHdrs doesn't seem to work when ObjectHdrs is called
128+
# several times on a file, and it doesn't works for asm files. Fixed
129+
# here.
130+
rule ObjectHdrs
131+
{
132+
local s = [ FGristFiles $(<:S=$(SUFOBJ)) ] ;
133+
HDRS on $(s) += $(>) ;
134+
ASHDRS on $(s) += [ FIncludes $(>) ] ;
135+
CCHDRS on $(s) += [ FIncludes $(>) ] ;
136+
}
137+

NEWS

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
$Id: NEWS,v 1.12 2004/03/08 11:32:48 titer Exp $
1+
$Id: NEWS,v 1.13 2004/03/29 00:28:39 titer Exp $
22

33
NEWS file for HandBrake <http://handbrake.m0k.org/>
44

5+
Changes between 0.6.0 and 0.6.1
6+
+ Fixed LPCM endianness issue
7+
58
Changes between 0.5.2 and 0.6.0
69
+ MP4 and OGM output
710
+ AAC and Vorbis encoding

0 commit comments

Comments
 (0)