-# $Id: Jamfile,v 1.10 2003/11/13 02:09:14 titer Exp $
+# $Id: Jamfile,v 1.86 2005/11/04 13:09:40 titer Exp $
#
# This file is part of the HandBrake source code.
-# Homepage: <http://handbrake.m0k.org/>.
+# Homepage: <http://handbrake.fr/>.
# It may be used under the terms of the GNU General Public License.
-HB_VERSION = 0.5.2 ;
+SubDir TOP ;
-# Compilers
-CC = gcc ;
-C++ = g++ ;
-LINK = gcc ;
+# libhb + contrib libraries
+HANDBRAKE_LIBS = libhb.a
+ contrib/lib/liba52.a contrib/lib/libavformat.a
+ contrib/lib/libavcodec.a contrib/lib/libavutil.a
+ contrib/lib/libdca.a contrib/lib/libdvdread.a
+ contrib/lib/libmp4v2.a contrib/lib/libfaac.a
+ contrib/lib/libmp3lame.a contrib/lib/libmpeg2.a
+ contrib/lib/libvorbis.a contrib/lib/libvorbisenc.a
+ contrib/lib/libogg.a contrib/lib/libsamplerate.a
+ contrib/lib/libx264.a contrib/lib/libxvidcore.a
+ contrib/lib/libmkv.a contrib/lib/libswscale.a
+ contrib/lib/libtheora.a contrib/lib/libfaad.a ;
-# Flags
-CCFLAGS = $(CFLAGS) ;
-CCFLAGS += -g -Wall -Werror ;
-CCFLAGS += -DVERSION=\\\"$(HB_VERSION)\\\" -DSYS_$(OS) ;
-C++FLAGS = $(CPPFLAGS) ;
-C++FLAGS += -g -Wall -Werror ;
-C++FLAGS += -DVERSION=\\\"$(HB_VERSION)\\\" -DSYS_$(OS) ;
-LINKFLAGS = $(LDFLAGS) ;
-HDRS = core ;
-
-# Optims
-CCFLAGS += -funroll-loops ;
-C++FLAGS += -funroll-loops ;
-OPTIM = -O3 ;
-
-# Libs
-LINKLIBS = -ldvdplay -ldvdread -ldvdcss -lmpeg2 -lavcodec -la52
- -lmp3lame -lxvidcore ;
-
-# OS specific
-if $(OS) = BEOS
+if $(OS) = UNKNOWN
{
- CCFLAGS += -Wno-multichar ;
- C++FLAGS += -Wno-multichar ;
- LINKLIBS += -lbe -ltracker ;
+ OS = CYGWIN ;
}
-else if $(OS) = LINUX
+
+if $(OS) = CYGWIN
{
- LINKLIBS += -lpthread ;
+ HANDBRAKE_LIBS = $(HANDBRAKE_LIBS) contrib/lib/libbz2.a contrib/lib/libz.a ;
}
-else if $(OS) = MACOSX
-{
- CCFLAGS += -no-cpp-precomp ;
- C++FLAGS += -no-cpp-precomp ;
- LINKFLAGS += -multiply_defined suppress ;
- # needed to clean HandBrake.app
- RM = rm -rf ;
-}
-else if $(OS) = CYGWIN
+if $(CSS) = 1
{
- CCFLAGS += -mno-cygwin ;
- C++FLAGS += -mno-cygwin ;
- LINKFLAGS += -mno-cygwin ;
+ HANDBRAKE_LIBS = $(HANDBRAKE_LIBS) contrib/lib/libdvdcss.a ;
}
-# Do not remove temporary object files
-# There MUST be a cleaner way to do this
-actions quietly updated piecemeal together RmTemps
+# Interfaces
+CLI_BIN = HandBrakeCLI ;
+CLI_SRC = test/test.c
+ test/parsecsv.c ;
+BEOS_BIN = HandBrake ;
+BEOS_SRC = beos/HBApp.cpp beos/MainWindow.cpp beos/ScanWindow.cpp
+ beos/PicWindow.cpp beos/Stepper.cpp beos/QueueWindow.cpp ;
+WX_BIN = wxHB ;
+WX_SRC = wx/hbWizard.cpp wx/wxHB.cpp ;
+UI_BIN = $(CLI_BIN) $(BEOS_BIN) $(WX_BIN) ;
+UI_SRC = $(CLI_SRC) $(BEOS_SRC) $(WX_SRC) ;
+
+# CLI app
+# Don't build the CLI from here if MACOSX, let xcode build it :)
+if $(OS) != MACOSX
{
+ Main $(CLI_BIN) : $(CLI_SRC) ;
}
-# Build HandBrake.app using Xcode
-rule OSXApp
+if $(OS) = BEOS
{
- Clean clean : $(1) macosx/build ;
- BuildOSXApp $(1) ;
-}
+ Main HandBrake : $(BEOS_SRC) ;
-actions BuildOSXApp
+ BeOSPackage HandBrake-$(HB_VERSION)-BeOS.zip : HandBrake ;
+ HB_PACKAGES += HandBrake-$(HB_VERSION)-BeOS.zip ;
+}
+if $(OS) = MACOSX
{
- $(RM) HandBrake.app ;
- ( cd macosx && xcodebuild ) && cp -r macosx/build/HandBrake.app . ;
+ OSX_SRC = macosx/main.mm macosx/Controller.h macosx/Controller.mm
+ macosx/PictureController.h macosx/PictureController.mm
+ macosx/HBQueueController.h macosx/HBQueueController.mm
+ macosx/HBAdvancedController.h macosx/HBAdvancedController.m
+ macosx/HBImageAndTextCell.h macosx/HBImageAndTextCell.m
+ macosx/HBPreferencesController.h macosx/HBPreferencesController.m
+ macosx/HBPresets.h macosx/HBPresets.m
+ macosx/English.lproj/InfoPlist.strings ;
+
+ OSXApp HandBrake.app : $(OSX_SRC) $(HANDBRAKE_LIBS) ;
+
+ # Package
+ OSXPackage HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ;
+ HB_PACKAGES += HandBrake-$(HB_VERSION)-OSX.zip ;
}
-
-Library core/libhb : core/Ac3Dec.c core/AviMux.c
- core/Utils.c core/DVDRead.c core/Fifo.c
- core/HandBrake.c core/Mp3Enc.c
- core/Mpeg2Dec.c core/FfmpegEnc.c
- core/MadDec.c core/Scale.c
- core/Scan.c core/Thread.c core/Work.c
- core/XvidEnc.c core/XvidVbr.c ;
-
-LinkLibraries HBTest : core/libhb.a ;
-Main HBTest : test/test.c ;
-
-if $(OS) = BEOS
+if $(OS) = LINUX
{
- LinkLibraries HandBrake : core/libhb.a ;
- Main HandBrake : beos/HBApp.cpp beos/MainWindow.cpp
- beos/PictureWin.cpp beos/ScanView.cpp
- beos/RipView.cpp ;
+ # WX UI outdated
+ #SystemLibraries $(WX_BIN) : -lpthread `wx-config --libs` ;
+ #ObjectC++Flags $(WX_SRC) : `wx-config --cflags` ;
+ #Main $(WX_BIN) : $(WX_SRC) ;
}
-if $(OS) = MACOSX
+if $(OS) != MACOSX
{
- OSXApp HandBrake.app ;
- Depends HandBrake.app : core/libhb.a ;
- Depends all : HandBrake.app ;
+ ObjectHdrs $(UI_SRC) : $(TOP)/libhb ;
+ LinkLibraries $(UI_BIN) : $(HANDBRAKE_LIBS) ;
}
+# Packages
+NotFile package ;
+Depends package : $(HB_PACKAGES) ;
+SubInclude TOP contrib ;
+SubInclude TOP libhb ;