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 ###"
}