include config.jam ;

if ! $(DEFINES)
{
    Exit "Please run ./configure first." ;
}

VERSION_MAJOR  = 0 ;
VERSION_MINOR  = 5 ;
VERSION_STRING = $(VERSION_MAJOR).$(VERSION_MINOR) ;
# VERSION_STRING = 0.6-svn ;

DEFINES += VERSION_MAJOR=$(VERSION_MAJOR)
           VERSION_MINOR=$(VERSION_MINOR)
           VERSION_STRING=\\\"$(VERSION_STRING)\\\" ;
OPTIM    = -O3 ;
RM       = rm -Rf ;

rule SystemLibraries
{
    LINKLIBS on [ FAppendSuffix $(<) : $(SUFEXE) ] ?= $(LINKLIBS) ;
    LINKLIBS on [ FAppendSuffix $(<) : $(SUFEXE) ] +=  $(>) ;
}

if $(OS) = MACOSX
{
    # Build universal binaries
    CCFLAGS   += -isysroot /Developer/SDKs/MacOSX10.4u.sdk
                 -arch ppc -arch i386 ;
    LINKFLAGS += -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk
                 -arch ppc -arch i386 ;

    # Use libtool to build static libraries (ar does not handle
    # universal binaries)
    RANLIB     =   ;
    NOARSCAN   = 1 ;
    NOARUPDATE = 1 ;
    actions Archive
    {
        libtool -static $(>) -o $(<) ;
    }

    rule OSXInfoPlist
    {
        Depends        $(1)  : $(2) ;
        Depends        $(1)  : Jamrules ;
        Clean          clean : $(1) ;
    }
    actions OSXInfoPlist
    {
        $(RM) $(1)
        sed "s/%%VERSION%%/$(VERSION_STRING)/g" < $(2) > $(1)
    }

    rule OSXBundle
    {   
        Depends     exe   : $(1) ; 
        Depends     $(1)  : $(2) ;
        Clean       clean : $(1) macosx/build ;
    }
    actions OSXBundle
    {   
        $(RM) $(1) && ( cd macosx && xcodebuild ) && \
          mv macosx/build/Debug/Transmission.app $(1)
    }

    rule OSXPackage
    {
        Depends      $(1)  : $(2) ;
        Clean        clean : $(1) ;
        DoOSXPackage $(1) ;
    }
    actions DoOSXPackage
    {
        TMP="Transmission $(VERSION_STRING)"
        rm -f $(1) "$TMP" && mkdir "$TMP" &&
        mkdir "$TMP/Transmission.app" &&
        ditto Transmission.app "$TMP/Transmission.app" &&
        ditto AUTHORS "$TMP/AUTHORS.txt" &&
        ditto LICENSE "$TMP/LICENSE.txt" &&
        ditto NEWS "$TMP/NEWS.txt" &&
        strip -S "$TMP/Transmission.app/Contents/MacOS/Transmission" &&
        ( echo "[InternetShortcut]"; \
          echo "URL=http://transmission.m0k.org/" ) > \
          "$TMP/Homepage.url" &&
        ( echo "[InternetShortcut]"; \
          echo "URL=http://transmission.m0k.org/forum/" ) > \
          "$TMP/Forums.url" &&
        ( echo "[InternetShortcut]"; \
          echo "URL=http://transmission.m0k.org/contribute.php" ) > \
          "$TMP/Contribute.url" &&
        hdiutil create -format UDZO -srcfolder "$TMP" $(1) &&
        rm -rf "$TMP"
    }
}

if $(OS) = BEOS
{
    rule BeOSBuild
    {
        Depends     exe   : $(1) ;
        Depends     $(1)  : $(2) ;
        Clean     clean : $(1) beos/obj.$(CPU) ;
    }
    actions BeOSBuild
    {
        $(RM) $(1) && ( cd beos && make ) && \
          mv beos/obj.$(CPU)/Transmission $(1)
    }
}
