summaryrefslogtreecommitdiffstats
path: root/Jamfile
blob: 026b3441f0e5207205ccff14841a2b394f085029 (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
# $Id: Jamfile,v 1.42 2004/03/29 00:28:39 titer Exp $
#
# This file is part of the HandBrake source code.
# Homepage: <http://handbrake.m0k.org/>.
# It may be used under the terms of the GNU General Public License.

SubDir TOP ;

# libhb + contrib libraries
HB_LIBS = libhb.a liba52.a libavcodec.a libdvdplay.a libdvdread.a
          libdvdcss.a libfaac.a libmp3lame.a libmp4v2.a libmpeg2.a
          libvorbis.a libvorbisenc.a libogg.a libx264.a libxvidcore.a ;

# Interfaces
TEST_BIN = HBTest ;
TEST_SRC = test/test.c ;
BEOS_BIN = HandBrake ;
BEOS_SRC = beos/HBApp.cpp beos/HBWindow.cpp ;
GTK2_BIN = gtk2HB ;
GTK2_SRC = gtk2/main.c gtk2/callbacks.c gtk2/interface.c gtk2/support.c ;
GUI_BIN  = $(TEST_BIN) $(BEOS_BIN) $(GTK2_BIN) ;
GUI_SRC  = $(TEST_SRC) $(BEOS_SRC) $(GTK2_SRC) ;

# CLI app
Main $(TEST_BIN) : $(TEST_SRC) ;

if $(OS) = BEOS
{
    # Avoid multichar warnings caused by BeOS system headers
    CCFLAGS  = -Wno-multichar ;
    C++FLAGS = -Wno-multichar ;

    SystemLibraries HandBrake : -lbe ;
    # BeOS GUI is broken at the moment
    # Main            HandBrake : $(SRC_BEOS) ;
}

if $(OS) = MACOSX
{
    # Needed to clean HandBrake.app
    RM = rm -rf ;

    OSX_SRC = macosx/Controller.h macosx/Controller.mm
              macosx/PictureGLView.h macosx/PictureGLView.mm
              macosx/TargetSizeField.h macosx/TargetSizeField.mm
              macosx/main.mm ;

    OSXApp HandBrake.app : $(OSX_SRC) $(HB_LIBS) ;
    
    # Package
    OSXPackage HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ;
    PACKAGES += HandBrake-$(HB_VERSION)-OSX.zip ;
}

if $(OS) = LINUX
{
    SystemLibraries $(TEST_BIN) : -lpthread ;
    SystemLibraries $(GTK2_BIN) : -lpthread `pkg-config gtk+-2.0 --libs` ;
    ObjectCcFlags   $(GTK2_SRC) : `pkg-config gtk+-2.0 --cflags` ;
    Main            $(GTK2_BIN) : $(GTK2_SRC) ;
}

ObjectHdrs     $(GUI_SRC) : $(TOP)/core ;
ObjectCcFlags  $(GUI_SRC) : -g -Wall ;
ObjectC++Flags $(GUI_SRC) : -g -Wall ;
LinkLibraries  $(GUI_BIN) : $(HB_LIBS) ;

# Packages
NotFile package ;
Depends package : $(HB_PACKAGES) ;

SubInclude TOP contrib ;
SubInclude TOP core ;