Kerberos5BuildSystem.jam   [plain text]


Intermediates = "$(BUILT_PRODUCTS_DIR)/Kerberos5.intermediates" ;
IntermediateBuild = "$(Intermediates)/build" ;
Sources = "$(SRCROOT)/../../Kerberos5/Sources" ;

Reconf = "$(Sources)/util/reconf" ;
Configure = "$(Sources)/configure" ;
Makefile = "$(IntermediateBuild)/Makefile" ;
MakefileET = "$(IntermediateBuild)/util/et/Makefile" ;
MakefileInclude = "$(IntermediateBuild)/include/Makefile" ;


# Assemble CFLAGS
CONFIGURE_CFLAGS = "-fno-common -include /usr/include/TargetConditionals.h -DUSE_PASSWORD_SERVER -DAPPLE_KDC_MODS" ;
if $(RC_CFLAGS)      != "" { CONFIGURE_CFLAGS = "$(CONFIGURE_CFLAGS) $(RC_CFLAGS)" ;      }
if $(CFLAGS)         != "" { CONFIGURE_CFLAGS = "$(CONFIGURE_CFLAGS) $(CFLAGS)" ;         }
if $(OTHER_CFLAGS)   != "" { CONFIGURE_CFLAGS = "$(CONFIGURE_CFLAGS) $(OTHER_CFLAGS)" ;   }
if $(WARNING_CFLAGS) != "" { CONFIGURE_CFLAGS = "$(CONFIGURE_CFLAGS) $(WARNING_CFLAGS)" ; }
CONFIGURE_CFLAGS = "CFLAGS=$(CONFIGURE_CFLAGS)" ;

# Assemble LDFLAGS
CONFIGURE_LDFLAGS = "-Wl,-search_paths_first" ;
if $(LDFLAGS) != "" { CONFIGURE_LDFLAGS = "$(LDFLAGS) $(CONFIGURE_LDFLAGS)" ;  }
CONFIGURE_LDFLAGS = "LDFLAGS=$(CONFIGURE_LDFLAGS:)" ;

#
# Note: in this jam script we have separated the dependency tree from the 
# actual scripts.  This is so that CVS checkouts trigger a rebuild but the jam
# script doesn't need to know how the reconf and configure scripts work.
#

# Configure <makefile> : <configure>
rule Configure
{
    DEPENDS "$(1)" : "$(2)" ;
    Clean.Remove clean "$(1:D)" ;
}
actions Configure
{
    mkdir -p "$(1:D)"
    cd "$(1:D)" && /bin/sh "$(2)" --prefix=/usr --localstatedir=/var/db "$(CONFIGURE_CFLAGS)" "$(CONFIGURE_LDFLAGS)" || rm -f "$(1)"
}

# MakeInclude <stamp file>
rule MakeInclude
{
    DEPENDS "$(1)" : "$(Makefile)" ;
    Configure "$(Makefile)" : "$(Configure)" ;
    Clean.Remove clean "$(1)" ;
}
actions MakeInclude
{
    cd "$(1:D)/util/et" && make && cd "$(1:D)/include" && make && cd "$(1:D)/lib/gssapi/krb5" && make gssapi_krb5.h && touch "$(1)" && echo "### HAPPINESS ###"
}

# Make <stamp file>
rule Make
{
    DEPENDS "$(1)" : "$(Makefile)" ;
    Configure "$(Makefile)" : "$(Configure)" ;
    Clean.Remove clean "$(1)" ;
}
actions Make
{
    cd "$(1:D)" && make && touch "$(1)" && echo "### HAPPINESS ###"
}