-# $Id: Jamfile,v 1.33 2003/10/06 21:21:27 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://beos.titer.org/handbrake/>.
+# Homepage: <http://handbrake.m0k.org/>.
# It may be used under the terms of the GNU General Public License.
-HB_VERSION = 0.3 ;
+SubDir TOP ;
-# Compilers
-C++ = g++ ;
-LINK = g++ ;
+# 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 ;
-# Flags
-C++FLAGS = $(CPPFLAGS) ;
-C++FLAGS += -g -Wall -Werror ;
-C++FLAGS += -DVERSION=\\\"$(HB_VERSION)\\\" -DSYS_$(OS) ;
-LINKFLAGS = $(LDFLAGS) ;
-HDRS = core ;
-
-# Optims
-C++FLAGS += -funroll-loops ;
-OPTIM = -O3 ;
-
-# Libs
-LINKLIBS = -ldvdplay -ldvdread -ldvdcss -lmpeg2 -lavcodec -la52 -lmp3lame ;
-
-# OS specific
-if $(OS) = BEOS
+if $(OS) = UNKNOWN
{
- C++FLAGS += -Wno-multichar ;
- LINKLIBS += -lbe ;
+ OS = CYGWIN ;
}
-else if $(OS) = LINUX
-{
- LINKLIBS += -lpthread ;
-}
-else if $(OS) = MACOSX
+
+if $(OS) != CYGWIN
{
- # needed to clean HandBrake.app
- RM = rm -rf ;
+ 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 ProjectBuilder
-rule OSXApp
+if $(OS) = BEOS
{
- Clean clean : $(1) ;
- 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 && pbxbuild ) && mv macosx/build/HandBrake.app . ;
- $(RM) macosx/build ;
+ OSX_SRC = macosx/main.mm macosx/Controller.h macosx/Controller.mm
+ macosx/PictureController.h macosx/PictureController.mm
+ macosx/PictureGLView.h macosx/PictureGLView.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/English.lproj/InfoPlist.strings
+ macosx/English.lproj/MainMenu.nib/classes.nib
+ macosx/English.lproj/MainMenu.nib/info.nib
+ macosx/English.lproj/MainMenu.nib/keyedobjects.nib
+ macosx/ExpressController.h macosx/ExpressController.m
+ macosx/English.lproj/Express.nib/classes.nib
+ macosx/English.lproj/Express.nib/info.nib
+ macosx/English.lproj/Express.nib/keyedobjects.nib
+ macosx/English.lproj/PictureSettings.nib/classes.nib
+ macosx/English.lproj/PictureSettings.nib/info.nib
+ macosx/English.lproj/PictureSettings.nib/keyedobjects.nib
+ macosx/English.lproj/AdvancedView.nib/classes.nib
+ macosx/English.lproj/AdvancedView.nib/info.nib
+ macosx/English.lproj/AdvancedView.nib/keyedobjects.nib
+ macosx/English.lproj/Queue.nib
+ macosx/English.lproj/Queue.nib/classes.nib
+ macosx/English.lproj/Queue.nib/info.nib
+ macosx/English.lproj/Queue.nib/keyedobjects.nib
+ macosx/English.lproj/Preferences.nib
+ macosx/English.lproj/Preferences.nib/classes.nib
+ macosx/English.lproj/Preferences.nib/info.nib
+ macosx/English.lproj/Preferences.nib/keyedobjects.nib ;
+
+ 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/Ac3Decoder.cpp core/AviMuxer.cpp
- core/Common.cpp core/DVDReader.cpp core/Fifo.cpp
- core/Manager.cpp core/Mp3Encoder.cpp
- core/Mpeg2Decoder.cpp core/Mpeg4Encoder.cpp
- core/MpegDemux.cpp core/Resizer.cpp
- core/Scanner.cpp core/Thread.cpp ;
-
-LinkLibraries HBTest : core/libhb.a ;
-Main HBTest : test/Test.cpp ;
-
-if $(OS) = BEOS
+if $(OS) = LINUX
{
- LinkLibraries HandBrake : core/libhb.a ;
- Main HandBrake : beos/HandBrake.cpp beos/MainWindow.cpp
- beos/PictureWin.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 ;