BUILDIT = ./Common/Scripts/buildit.pl
BUILDROOT = /tmp
KERBEROS_SUBMISSION = $(BUILDROOT)/KerberosSubmission
SUBMISSION_NAME = Kerberos
SUBMISSION_SOURCES = $(KERBEROS_SUBMISSION)/$(SUBMISSION_NAME)
SUBMISSION = $(KERBEROS_SUBMISSION)/$(SUBMISSION_NAME).tgz
LIBRARIES_PROJECT = KerberosLibraries
LIBRARIES_BUILD = $(BUILDROOT)/KerberosLibraries
LITE_PROJECT = KerberosLite
LITE_BUILD = $(BUILDROOT)/KerberosLite
CLIENTS_PROJECT = KerberosClients
CLIENTS_BUILD = $(BUILDROOT)/KerberosClients
INSTALLER_DST_PATH = $(BUILDROOT)/$(SUBMISSION_NAME).dst
INSTALLER_LITE_DST_PATH = $(BUILDROOT)/$(SUBMISSION_NAME)Lite.dst
MAKEINSTALLER = $(SUBMISSION_SOURCES)/Common/Scripts/MakeKerberosInstaller.sh
ORDERFILE = /AppleInternal/OrderFiles/Kerberos.order
ifeq ($(shell arch), i386)
ARCH_ARGS = -arch i386 -arch ppc
else
ARCH_ARGS = -arch ppc
endif
ifndef MACOSX_DEPLOYMENT_TARGET
MACOSX_DEPLOYMENT_TARGET = 10.5
endif
ifndef INSTALL_MODE_FLAG
INSTALL_MODE_FLAG = u+w,go-w,a+rX
endif
ifeq ($(RC_ProjectName), KerberosLite)
BUILD_CONFIGURATION = ReleaseLite
else
BUILD_CONFIGURATION = Release
endif
BUILT_PRODUCTS_DIR := $(SYMROOT)/BuiltProducts
FRAMEWORK_SEARCH_PATHS := \
$(INSTALLER_DST_PATH)/System/Library/Frameworks \
$(INSTALLER_DST_PATH)/System/Library/PrivateFrameworks \
/System/Library/Frameworks \
/System/Library/PrivateFrameworks
VARIABLES = OBJROOT SYMROOT DSTROOT SUBLIBROOTS RC_XBS RC_JASPER RC_CFLAGS RC_NONARCH_CFLAGS \
RC_ARCHS RC_hppa RC_i386 RC_m68k RC_ppc RC_ppc64 RC_sparc RC_OS RC_RELEASE \
RC_ProjectName RC_ProjectSourceVersion RC_ProjectBuildVersion RC_ReleaseStatus NEXT_ROOT \
BUILT_PRODUCTS_DIR INSTALL_MODE_FLAG FRAMEWORK_SEARCH_PATHS MACOSX_DEPLOYMENT_TARGET
ENVIRONMENT := $(strip $(foreach VAR, $(VARIABLES), $(if $(value $(VAR)),"$(VAR)=$(value $(VAR))",)))
PKINIT_FILES = \
KerberosFramework/Kerberos5/Sources/include/pkinit_apple_utils.h \
KerberosFramework/Kerberos5/Sources/include/pkinit_asn1.h \
KerberosFramework/Kerberos5/Sources/include/pkinit_cert_store.h \
KerberosFramework/Kerberos5/Sources/include/pkinit_client.h \
KerberosFramework/Kerberos5/Sources/include/pkinit_cms.h \
KerberosFramework/Kerberos5/Sources/lib/krb5/krb/pkinit_apple_asn1.c \
KerberosFramework/Kerberos5/Sources/lib/krb5/krb/pkinit_apple_cert_store.c \
KerberosFramework/Kerberos5/Sources/lib/krb5/krb/pkinit_apple_client.c \
KerberosFramework/Kerberos5/Sources/lib/krb5/krb/pkinit_apple_cms.c \
KerberosFramework/Kerberos5/Sources/lib/krb5/krb/pkinit_apple_utils.c \
KerberosFramework/Kerberos5/Sources/kdc/pkinit_apple_server.c
.EXPORT_ALL_VARIABLES:
pathcheck:
@echo "Checking for home directory relative paths:"
BADFILES=`find . -type f \! -name $(USER).\* \! -path \*/.svn/\* -print0 | xargs -0 grep $(HOME)` ; \
if [ ! -z "$$BADFILES" ] ; then echo "Offending files:" ; echo "$$BADFILES" ; false ; fi
@echo "done."
orderfilecheck:
if [ ! -f "$(ORDERFILE)" ] ; then echo "No order file at $(ORDERFILE)" ; false ; fi
pkinit_sources:
for FILE in $(PKINIT_FILES) ; do \
if [ ! -f "$$FILE" ] ; then echo "Creating '$$FILE'" ; touch "$$FILE" ; fi ; \
done
make_submission: pathcheck orderfilecheck pkinit_sources
@echo "Removing old submission... "
if [ -d "$(KERBEROS_SUBMISSION)" ]; then chmod -R u+w "$(KERBEROS_SUBMISSION)" && rm -rf "$(KERBEROS_SUBMISSION)"; fi
@echo "Creating submission... "
mkdir -p "$(KERBEROS_SUBMISSION)"
make "SRCROOT=$(SUBMISSION_SOURCES)" installsrc
find "$(SUBMISSION_SOURCES)" -type d -name \.svn -print0 | xargs -0 rm -r
gnutar -czf "$(SUBMISSION)" -C "$(KERBEROS_SUBMISSION)" "$(SUBMISSION_NAME)"
rm -rf "$(SUBMISSION_SOURCES)"
unpack_submission: make_submission
@echo "Unpacking submission... "
gnutar -xzpf "$(SUBMISSION)" -C "$(KERBEROS_SUBMISSION)"
dst_root:
@echo "Removing old destination directory... "
if [ -d "$(INSTALLER_DST_PATH)" ]; then chmod -R u+w "$(INSTALLER_DST_PATH)" && rm -rf "$(INSTALLER_DST_PATH)"; fi
mkdir -p "$(INSTALLER_DST_PATH)"
if [ -d "$(INSTALLER_LITE_DST_PATH)" ]; then chmod -R u+w "$(INSTALLER_LITE_DST_PATH)" && rm -rf "$(INSTALLER_LITE_DST_PATH)"; fi
mkdir -p "$(INSTALLER_LITE_DST_PATH)"
split_build_submission: unpack_submission dst_root
@echo "Removing old build directories... "
if [ -d "$(LITE_BUILD)" ]; then chmod -R u+w "$(LITE_BUILD)" && rm -rf "$(LITE_BUILD)"; fi
if [ -d "$(LIBRARIES_BUILD)" ]; then chmod -R u+w "$(LIBRARIES_BUILD)" && rm -rf "$(LIBRARIES_BUILD)"; fi
if [ -d "$(CLIENTS_BUILD)" ]; then chmod -R u+w "$(CLIENTS_BUILD)" && rm -rf "$(CLIENTS_BUILD)"; fi
@echo "Running test build of target '$(LITE_PROJECT)'... "
mkdir -p "$(LITE_BUILD)"
(cd "$(SUBMISSION_SOURCES)" && BUILDIT_DIR=$(LITE_BUILD) && export BUILDIT_DIR && \
perl "$(BUILDIT)" . $(ARCH_ARGS) -release $(USER) -project $(LITE_PROJECT) -merge "$(INSTALLER_LITE_DST_PATH)")
@echo "Running test build of target '$(LIBRARIES_PROJECT)'... "
mkdir -p "$(LIBRARIES_BUILD)"
(cd "$(SUBMISSION_SOURCES)" && BUILDIT_DIR=$(LIBRARIES_BUILD) && export BUILDIT_DIR && \
perl "$(BUILDIT)" . $(ARCH_ARGS) -release $(USER) -project $(LIBRARIES_PROJECT) -merge "$(INSTALLER_DST_PATH)")
@echo "Running test build of target '$(CLIENTS_PROJECT)'... "
mkdir -p "$(CLIENTS_BUILD)"
(cd "$(SUBMISSION_SOURCES)" && BUILDIT_DIR=$(CLIENTS_BUILD) && export BUILDIT_DIR && \
perl "$(BUILDIT)" . $(ARCH_ARGS) -release $(USER) -project $(CLIENTS_PROJECT) -merge "$(INSTALLER_DST_PATH)")
build_submission: unpack_submission dst_root
@echo "Running test build... "
(cd "$(SUBMISSION_SOURCES)" && BUILDIT_DIR=$(BUILDROOT) && export BUILDIT_DIR && \
perl "$(BUILDIT)" . $(ARCH_ARGS) -release $(USER) -project Kerberos -merge "$(INSTALLER_DST_PATH)")
makeinstaller: split_build_submission
sh $(MAKEINSTALLER) "$(SUBMISSION_SOURCES)" "$(INSTALLER_DST_PATH)" "$(KERBEROS_SUBMISSION)"
kfm: makeinstaller
krb5-configure:
(cd KerberosFramework/Kerberos5/Sources && sh ./util/reconf --force)
doc:
(cd KerberosFramework/KerberosIdentityManagement/Projects && doxygen Doxyfile)
if [ ! -L KerberosFramework/Kerberos5/src ]; then ln -fs Sources KerberosFramework/Kerberos5/src ; fi
(cd KerberosFramework/Kerberos5/Documentation/ccapi && doxygen Doxyfile)
if [ -L KerberosFramework/Kerberos5/src ]; then rm KerberosFramework/Kerberos5/src ; fi
osascript Common/Scripts/bbedit-update-doc.scpt
installsrc:
mkdir -p "$(SRCROOT)"
gnutar -cf - . | gnutar -xpf - -C "$(SRCROOT)"
find "$(SRCROOT)" -type f -print0 | xargs -0 chmod 644
chmod a+x "$(SRCROOT)/KerberosFramework/Kerberos5/Sources/config/mkinstalldirs"
chmod a+x "$(SRCROOT)/KerberosFramework/KerberosErrors/Scripts/compile_et"
chmod a+x "$(SRCROOT)/KerberosFramework/Kerberos5//Sources/config/move-if-changed"
installhdrs:
@echo "WARNING: installhdrs target disabled to avoid running krb5 build system twice."
all:
(cd "$(SRCROOT)/Common/Projects" && \
xcodebuild -target "$(RC_ProjectName)" -configuration $(BUILD_CONFIGURATION) build $(ENVIRONMENT))
install-common:
(cd "$(SRCROOT)/Common/Projects" && \
xcodebuild -target "$(RC_ProjectName)" \
-configuration $(BUILD_CONFIGURATION) install $(ENVIRONMENT))
install-KerberosLibraries:
if [ -f $(SRCROOT)/Kerberos.plist ] ; then \
install -d -m 0755 \
$(DSTROOT)/usr/local/OpenSourceVersions || exit 1; \
install -C -m 0644 $(SRCROOT)/Kerberos.plist \
$(DSTROOT)/usr/local/OpenSourceVersions/Kerberos.plist || exit 1 ; \
fi
if [ -f $(SRCROOT)/Kerberos.html ] ; then \
install -d -m 0755 \
$(DSTROOT)/usr/local/OpenSourceLicenses || exit 1;\
install -C -m 0644 $(SRCROOT)/Kerberos.html \
$(DSTROOT)/usr/local/OpenSourceLicenses/Kerberos.html ||exit 1;\
fi
install-KerberosClients:
if [ -f $(SRCROOT)/krb5kdc.sb ] ; then \
install -d -m 0755 $(DSTROOT)/usr/share/sandbox/ || exit 1 ; \
install -C -m 0644 $(SRCROOT)/krb5kdc.sb \
$(DSTROOT)/usr/share/sandbox/krb5kdc.sb || exit 1 ; \
install -C -m 0644 $(SRCROOT)/kadmind.sb \
$(DSTROOT)/usr/share/sandbox/kadmind.sb || exit 1 ; \
fi
if [ -f $(SRCROOT)/kerberos.newsyslog ] ; then \
install -d -m 0755 $(DSTROOT)/private/etc/newsyslog.d/ || exit 1 ; \
install -C -m 0644 $(SRCROOT)/kerberos.newsyslog \
$(DSTROOT)/private/etc/newsyslog.d/kerberos.conf || exit 1 ; \
fi
if [ -f $(SRCROOT)/renew.plist ] ; then \
install -d -m 0755 $(DSTROOT)/System/Library/LaunchAgents || exit 1 ; \
install -C -m 0644 $(SRCROOT)/renew.plist \
$(DSTROOT)/System/Library/LaunchAgents/com.apple.Kerberos.renew.plist || exit 1 ; \
fi
if [ -f $(SRCROOT)/kadmind.plist ] ; then \
install -d -m 0755 $(DSTROOT)/System/Library/LaunchDaemons/ || exit 1 ; \
install -C -m 0644 $(SRCROOT)/kadmind.plist \
$(DSTROOT)/System/Library/LaunchDaemons/edu.mit.Kerberos.kadmind.plist || exit 1 ; \
install -C -m 0644 $(SRCROOT)/krb5kdc.plist \
$(DSTROOT)/System/Library/LaunchDaemons/edu.mit.Kerberos.krb5kdc.plist || exit 1 ; \
fi
install-KerberosLite:
install-Kerberos: install-KerberosClients install-KerberosLibraries
install: install-common install-$(RC_ProjectName)
clean:
(cd "$(SRCROOT)/Common/Projects" && \
xcodebuild -target Kerberos -configuration $(BUILD_CONFIGURATION) clean $(ENVIRONMENT))