OSDN Git Service

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