blob: 9fdd02fd6533c8026668131c99c8b2a4f1fd8af6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# Compilers & flags
CC = gcc ;
C++ = g++ ;
CCFLAGS = $(CFLAGS) ;
C++FLAGS = $(CFLAGS) ;
AS = nasm -f elf ;
LINK = g++ ;
OPTIM = -O3 -funroll-loops ;
# HandBrake defines
HB_VERSION = 0.6.0-test1 ;
DEFINES = HB_$(OS) HB_VERSION=\\\"$(HB_VERSION)\\\" ;
#DEFINES += HB_NOMMX ;
# OS-specific
if $(OS) = BEOS
{
CCFLAGS += -Wno-multichar ;
C++FLAGS += -Wno-multichar ;
}
else if $(OS) = LINUX
{
LINKLIBS = -lpthread ;
}
else if $(OS) = MACOSX
{
RM = rm -rf ;
}
# Contrib* rules: mostly the same than Jambase rules, except
# * Targets aren't cleaned by jam clean (to prevent from deleting
# every contrib library by accident)
# * ContribObject handles *.asm files
# * Temporary *.o files aren't removed
rule ContribObject
{
MakeLocate $(<) : $(LOCATE_TARGET) ;
SEARCH on $(>) = $(SEARCH_SOURCE) ;
HDRS on $(<) = $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) ;
HDRRULE on $(>) = HdrRule ;
HDRSCAN on $(>) = $(HDRPATTERN) ;
HDRSEARCH on $(>) =
$(SEARCH_SOURCE:E) $(SUBDIRHDRS) $(HDRS) $(STDHDRS) ;
HDRGRIST on $(>) = $(HDRGRIST) ;
DEFINES on $(<) += $(DEFINES) ;
switch $(>:S)
{
case .asm : As $(<) : $(>) ;
case .nas : As $(<) : $(>) ;
case .c : Cc $(<) : $(>) ;
case .C : C++ $(<) : $(>) ;
case .cc : C++ $(<) : $(>) ;
case .cpp : C++ $(<) : $(>) ;
case .f : Fortran $(<) : $(>) ;
case .l : Cc $(<) : $(<:S=.c) ;
Lex $(<:S=.c) : $(>) ;
case .s : As $(<) : $(>) ;
case .y : Cc $(<) : $(<:S=$(YACCGEN)) ;
Yacc $(<:S=$(YACCGEN)) : $(>) ;
case * : UserObject $(<) : $(>) ;
}
}
rule ContribObjects
{
local _i ;
for _i in [ FGristFiles $(<) ]
{
ContribObject $(_i:S=$(SUFOBJ)) : $(_i) ;
Depends obj : $(_i:S=$(SUFOBJ)) ;
}
}
rule ContribLibrary
{
local _l _s ;
_s = [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
_l = $(<:S=$(SUFLIB)) ;
ContribObjects $(>) ;
Depends obj : $(_s) ;
MakeLocate $(_l) $(_l)($(_s:BS)) : $(LOCATE_TARGET) ;
Depends $(_l) : $(_s) ;
Archive $(_l) : $(_s) ;
if $(RANLIB) { Ranlib $(_l) ; }
Depends lib : $(_l) ;
}
# Custom Library rule: same as ContribLibrary, except 'jam clean'
# removes built objects
rule Library
{
ContribLibrary $(<) : $(>) ;
Clean clean : [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
Clean clean : $(<:S=$(SUFLIB)) ;
}
# Build HandBrake.app using Xcode
rule OSXApp
{
Clean clean : $(1) macosx/build ;
BuildOSXApp $(1) ;
}
actions BuildOSXApp
{
$(RM) $(1) ;
( cd macosx && xcodebuild ) && \
cp -r macosx/build/HandBrake.app $(1) && \
for i in French German; do \
( cd $(1)/Contents/Resources && \
cp -r English.lproj $i.lproj && \
cp ../../../macosx/i18n/$i.strings \
$i.lproj/Localizable.strings ) \
done ;
}
rule OSXPackage
{
BuildOSXPackage $(1) ;
}
actions BuildOSXPackage
{
rm -rf $(1) "HandBrake $(HB_VERSION)" && \
mkdir "HandBrake $(HB_VERSION)" && \
cp -r AUTHORS COPYING CREDITS HandBrake.app \
"HandBrake $(HB_VERSION)" && \
zip -9 -r $(1) "HandBrake $(HB_VERSION)" && \
rm -rf "HandBrake $(HB_VERSION)"
}
|