PERL5_8_OR_GREATER = $(shell perl -MConfig -e 'print ($$Config{PERL_REVISION} > 5 || ($$Config{PERL_REVISION} == 5 && $$Config{PERL_VERSION} >= 8) ? "YES" : "NO")')
PERL5_10_OR_GREATER = $(shell perl -MConfig -e 'print ($$Config{PERL_REVISION} > 5 || ($$Config{PERL_REVISION} == 5 && $$Config{PERL_VERSION} >= 10) ? "YES" : "NO")')
ifneq ($(PERL5_8_OR_GREATER),YES)
$(error You must have perl 5.8 or later)
endif
SNOWLEOPARD = NO
LEOPARD = NO
TIGER = NO
PANTHER = NO
UNKNOWN_OS = YES
OS_VERSION = $(shell perl -e 'my $$osVersion = `/usr/bin/uname -r`; chomp($$osVersion); $$osVersion =~ s|^(\d+).*|$$1|; print "$$osVersion"')
ifeq ($(OS_VERSION),10)
SNOWLEOPARD = YES
UNKNOWN_OS = NO
endif
ifeq ($(OS_VERSION),9)
LEOPARD = YES
UNKNOWN_OS = NO
endif
ifeq ($(OS_VERSION),8)
TIGER = YES
UNKNOWN_OS = NO
endif
ifeq ($(OS_VERSION),7)
PANTHER = YES
UNKNOWN_OS = NO
endif
ifeq ($(UNKNOWN_OS),YES)
$(error Unknown OS version)
endif
ifeq ($(PANTHER),YES)
$(error You must build on Tiger or later)
endif
ifeq ($(SNOWLEOPARD),YES)
FIRST_MODULES = \
Algorithm-C3 \
Authen-Krb5 \
Bencode \
Class-Accessor-Chained \
Class-Data-Accessor \
Class-Data-Inheritable \
Class-Factory-Util-1.6 \
Class-Inspector \
Class-Singleton-1.03 \
Class-Std \
Class-Std-Utils \
Class-Trigger \
Class-WhiteHole \
Config-Std \
Crypt-OpenSSL-Random \
Crypt-OpenSSL-RSA \
Crypt-Rijndael \
Crypt-SSLeay \
Data-Dump \
Data-UUID \
Error-0.15 \
Exporter-Easy \
File-NFSLock \
Heap \
JSON-Any \
Lingua-EN-Inflect \
Lingua-EN-Inflect-Number \
Mail-Sender \
Module-Find \
Params-Validate \
Perl-Tidy \
Readonly \
Readonly-XS \
Scope-Guard \
String-ShellQuote-1.00 \
Sub-Uplevel \
Term-ReadLine-Perl \
Test-Exception \
Text-LevenshteinXS \
Text-WordDiff \
Time-HiRes-Value \
Tree-Simple \
Tree-Simple-VisitorFactory \
UNIVERSAL-moniker \
UNIVERSAL-require \
YAML-Syck \
DATETIMESUBDIRS = \
DateTime-Locale \
DateTime-TimeZone \
DateTime \
DateTime-Format-Strptime-1.04 \
DateTime-Format-Builder \
DateTime-Format-Pg \
DateTime-Format-W3CDTF \
DateTime-Format-ISO8601 \
CLASS_DBI_MODULES = \
DBIx-ContextualFetch \
SQL-Abstract \
SQL-Abstract-Limit \
Ima-DBI \
Class-DBI \
Class-DBI-AbstractSearch \
SOAP_LITE_MODULES = \
Pod-WSDL \
SOAP-Lite \
OTHERCPANSUBDIRS = \
Class-C3-XS \
Class-C3 \
Class-C3-Componentised \
MRO-Compat \
Class-Accessor-Grouped \
Data-Page \
Graph \
HTTP-Proxy \
Log-Dispatch \
Log-Log4perl \
DBIX_CLASS_MODULES = \
DBIx-Class \
DBIx-Class-Schema-Loader \
PathTools \
DISABLED = \
Apache2-SOAP \
endif
ifeq ($(LEOPARD),YES)
DATETIMESUBDIRS = Module-Build-0.20 Params-Validate Class-Factory-Util-1.6 Class-Singleton-1.03 DateTime-TimeZone DateTime-Locale DateTime DateTime-Format-Strptime-1.04 DateTime-Format-Builder DateTime-Format-Pg DateTime-Format-W3CDTF DateTime-Format-ISO8601
OTHERCPANSUBDIRS = Authen-Krb5 Readonly Readonly-XS String-ShellQuote-1.00 Error-0.15 Log-Log4perl Log-Dispatch Mail-Sender Crypt-Rijndael Crypt-OpenSSL-Random Crypt-OpenSSL-RSA Crypt-SSLeay File-NFSLock HTTP-Proxy Class-Std-Utils YAML-Syck Heap Graph Test-Exception Tree-Simple Tree-Simple-VisitorFactory Class-Std Config-Std Text-LevenshteinXS Text-WordDiff Apache2-SOAP Apache-DBI Digest-SHA Term-ReadLine-Perl Exporter-Easy Data-UUID Time-HiRes-Value Perl-Tidy Bencode
DATETIMESUBDIRS = Module-Build-0.20 Params-Validate Class-Factory-Util-1.6 Class-Singleton-1.03 DateTime-TimeZone DateTime-Locale DateTime DateTime-Format-Strptime-1.04 DateTime-Format-Builder DateTime-Format-Pg DateTime-Format-W3CDTF DateTime-Format-ISO8601
SOAP_LITE_MODULES = SOAP-Lite Pod-WSDL
CLASS_DBI_MODULES = DBI UNIVERSAL-moniker Class-Accessor Class-Data-Inheritable Class-Trigger Class-WhiteHole DBIx-ContextualFetch Ima-DBI Class-DBI SQL-Abstract Class-DBI-AbstractSearch
DBIX_CLASS_MODULES = Sub-Uplevel Test-Simple Class-Accessor-Chained Class-Inspector Data-Page SQL-Abstract-Limit Module-Find Algorithm-C3 Class-C3-XS Class-C3 Class-C3-Componentised Class-Data-Accessor MRO-Compat Class-Accessor-Grouped ExtUtils-CBuilder PathTools Lingua-EN-Inflect Lingua-EN-Inflect-Number Data-Dump UNIVERSAL-require Scope-Guard JSON-Any DBIx-Class DBIx-Class-Schema-Loader
endif
ifeq ($(TIGER),YES)
OTHERCPANSUBDIRS = Authen-Krb5 version Readonly Readonly-XS String-ShellQuote-1.00 Error-0.15 Log-Log4perl Log-Dispatch Mail-Sender Apache-DBI Crypt-Rijndael Crypt-OpenSSL-Random Crypt-OpenSSL-RSA Crypt-SSLeay File-NFSLock HTTP-Proxy Class-Std-Utils YAML-Syck Heap Graph Test-Exception Tree-Simple Tree-Simple-VisitorFactory Class-Std Config-Std Text-LevenshteinXS Text-WordDiff Term-ReadLine-Perl Digest-SHA Exporter-Easy Data-UUID Time-HiRes-Value Net-IP Digest-HMAC Net-DNS Perl-Tidy Bencode TermReadKey
DATETIMESUBDIRS = Module-Build-0.20 Params-Validate Class-Factory-Util-1.6 Class-Singleton-1.03 DateTime-TimeZone DateTime-Locale DateTime DateTime-Format-Strptime-1.04 DateTime-Format-Builder DateTime-Format-Pg DateTime-Format-W3CDTF DateTime-Format-ISO8601
SOAP_LITE_MODULES = URI libwww-perl SOAP-Lite Pod-WSDL
CLASS_DBI_MODULES = DBI DBD-SQLite UNIVERSAL-moniker Class-Accessor Class-Data-Inheritable Class-Trigger Class-WhiteHole DBIx-ContextualFetch Ima-DBI Class-DBI SQL-Abstract Class-DBI-AbstractSearch
DBIX_CLASS_MODULES = Sub-Uplevel Test-Simple Class-Accessor-Chained Class-Inspector Data-Page SQL-Abstract-Limit Carp-Clan Module-Find Algorithm-C3 Class-C3-XS Class-C3 Class-C3-Componentised Class-Data-Accessor MRO-Compat Class-Accessor-Grouped ExtUtils-CBuilder PathTools Lingua-EN-Inflect Lingua-EN-Inflect-Number Data-Dump UNIVERSAL-require Scope-Guard JSON-Any Digest-MD5 DBIx-Class DBIx-Class-Schema-Loader
LDAP_MODULES = Convert-ASN1 Perl-Ldap
XML_MODULES = XML-NamespaceSupport XML-SAX XML-LibXML-Common XML-LibXML XML-Writer XML-Parser XML-XPath
export XMLVS_TEST_PARSER=XML::LibXML::SAX
endif
SUBDIRS = \
$(FIRST_MODULES) \
$(DATETIMESUBDIRS) \
$(CLASS_DBI_MODULES) \
$(LDAP_MODULES) \
$(XML_MODULES) \
$(SOAP_LITE_MODULES) \
$(OTHERCPANSUBDIRS) \
$(DBIX_CLASS_MODULES) \
INSTALLDIRS = site
CONFIG_INSTALLSITEARCH = $(shell perl -MConfig -e 'print $$Config{installsitearch}')
CONFIG_INSTALLSITEBIN = $(shell perl -MConfig -e 'print $$Config{installsitebin}')
CONFIG_INSTALLSITELIB = $(shell perl -MConfig -e 'print $$Config{installsitelib}')
CONFIG_INSTALLSITEMAN1DIR = $(shell perl -MConfig -e 'print $$Config{installsiteman1dir}')
CONFIG_INSTALLSITEMAN3DIR = $(shell perl -MConfig -e 'print $$Config{installsiteman3dir}')
CONFIG_INSTALLSITESCRIPT = $(shell perl -MConfig -e 'print $$Config{installsitescript}')
CONFIG_INSTALLPRIVLIB = $(shell perl -MConfig -e 'print $$Config{installprivlib}')
INSTALLEXTRAS = $(subst Perl,Perl/Extras,$(CONFIG_INSTALLPRIVLIB))
ifeq "$(shell test -d $(INSTALLEXTRAS) && echo YES )" "YES"
APPLE_INSTALLSITEARCH = /AppleInternal$(CONFIG_INSTALLSITEARCH)
APPLE_INSTALLSITELIB = /AppleInternal$(CONFIG_INSTALLSITELIB)
else
APPLE_INSTALLSITEARCH = $(CONFIG_INSTALLSITEARCH)
APPLE_INSTALLSITELIB = $(CONFIG_INSTALLSITELIB)
endif
INSTALLSITEARCH = $(DSTROOT)$(APPLE_INSTALLSITEARCH)
INSTALLSITEBIN = $(DSTROOT)$(CONFIG_INSTALLSITEBIN)
INSTALLSITELIB = $(DSTROOT)$(APPLE_INSTALLSITELIB)
INSTALLSITEMAN1DIR = $(DSTROOT)$(CONFIG_INSTALLSITEMAN1DIR)
INSTALLSITEMAN3DIR = $(DSTROOT)$(CONFIG_INSTALLSITEMAN3DIR)
INSTALLSITESCRIPT = $(DSTROOT)$(CONFIG_INSTALLSITESCRIPT)
INSTALLSCRIPT = $(DSTROOT)$(CONFIG_INSTALLSITESCRIPT)
INCARGS= -I$(INSTALLSITEARCH) -I$(INSTALLSITELIB)
ifeq ($(SNOWLEOPARD),YES)
DEFAULT_ARCHFLAGS = -arch i386 -arch x86_64
endif
ifeq ($(LEOPARD),YES)
DEFAULT_ARCHFLAGS = -arch ppc -arch ppc64 -arch i386 -arch x86_64
endif
ifeq ($(TIGER),YES)
DEFAULT_ARCHFLAGS = -arch ppc -arch i386
endif
ifneq "$(RC_CFLAGS)" ""
ARCHFLAGS = $(RC_CFLAGS)
else
ARCHFLAGS = $(DEFAULT_ARCHFLAGS)
endif
export AUTOMATED_TESTING := 1
export PERL_MM_USE_DEFAULT := 1
export PERL_AUTOINSTALL := --skipdeps
Apache-DBI \
Authen-Krb5 \
Bencode \
Carp-Clan \
Class-Accessor \
Class-Accessor-Grouped \
Class-Data-Inheritable \
Class-C3 \
Class-C3-Componentised \
Class-C3-XS \
Class-DBI \
Class-DBI-AbstractSearch \
Class-Factory-Util-1.6 \
Class-Inspector \
Class-Singleton-1.03 \
Class-Std-Utils \
Class-Trigger \
Class-WhiteHole \
Convert-ASN1 \
Crypt-OpenSSL-Random \
Crypt-OpenSSL-RSA \
Crypt-Rijndael \
Crypt-SSLeay \
Data-Dump \
Data-UUID \
DateTime \
DateTime-Format-Pg \
DateTime-Format-Strptime-1.04 \
DateTime-Format-W3CDTF \
DBD-SQLite \
DBI \
DBIx-Class \
DBIx-Class-Schema-Loader \
DBIx-ContextualFetch \
Digest-HMAC \
Digest-MD5 \
Digest-SHA \
Error-0.15 \
Exporter-Easy \
File-NFSLock \
Graph \
Heap \
HTML-Tagset-3.03 \
HTTP-Proxy \
Ima-DBI \
JSON-Any \
Lingua-EN-Inflect \
Lingua-EN-Inflect-Number \
Log-Log4perl \
Mail-Sender \
MIME-Base64-2.20 \
Module-Find \
MRO-Compat \
Net-IP \
Params-Validate \
Perl-Ldap \
Perl-Tidy \
Pod-WSDL \
Readonly \
Readonly-XS \
Scope-Guard \
SQL-Abstract \
String-ShellQuote-1.00 \
Term-ReadLine-Perl \
Test-Simple \
TermReadKey \
Text-LevenshteinXS \
Time-HiRes-Value \
Tree-Simple \
Tree-Simple-VisitorFactory \
UNIVERSAL-moniker \
UNIVERSAL-require \
URI \
XML-LibXML-Common \
XML-LibXML \
XML-NamespaceSupport \
XML-Parser \
XML-SAX \
XML-Writer \
XML-XPath \
YAML-Syck \
::
@echo "=============== Making $@ =================="; \
cd $(OBJROOT)/$@; \
mv Makefile.PL Makefile.PL.orig; \
cat Makefile.PL.orig ../add_rc_constants.pl > Makefile.PL; \
if [ -d Expat ]; then \
mv Expat/Makefile.PL Expat/Makefile.PL.orig; \
cat Expat/Makefile.PL.orig ../add_rc_constants.pl > Expat/Makefile.PL; \
fi; \
perl $(INCARGS) Makefile.PL \
"PERL=/usr/bin/perl $(INCARGS)" \
INSTALLDIRS=$(INSTALLDIRS) \
INSTALLSITEARCH=$(INSTALLSITEARCH) \
INSTALLSITEBIN=$(INSTALLSITEBIN) \
INSTALLSITELIB=$(INSTALLSITELIB) \
INSTALLSITEMAN1DIR=$(INSTALLSITEMAN1DIR) \
INSTALLSITEMAN3DIR=$(INSTALLSITEMAN3DIR) \
INSTALLSITESCRIPT=$(INSTALLSITESCRIPT) \
INSTALLSCRIPT=$(INSTALLSCRIPT); \
make all test pure_install;
@echo "";
Net-DNS::
@echo "=============== Making $@ =================="; \
cd $(OBJROOT)/$@; \
mv Makefile.PL Makefile.PL.orig; \
cat Makefile.PL.orig ../add_rc_constants.pl > Makefile.PL; \
perl $(INCARGS) Makefile.PL -noxs -noonline-tests \
"PERL=/usr/bin/perl $(INCARGS)" \
INSTALLDIRS=$(INSTALLDIRS) \
INSTALLSITEARCH=$(INSTALLSITEARCH) \
INSTALLSITEBIN=$(INSTALLSITEBIN) \
INSTALLSITELIB=$(INSTALLSITELIB) \
INSTALLSITEMAN1DIR=$(INSTALLSITEMAN1DIR) \
INSTALLSITEMAN3DIR=$(INSTALLSITEMAN3DIR) \
INSTALLSITESCRIPT=$(INSTALLSITESCRIPT) \
INSTALLSCRIPT=$(INSTALLSCRIPT); \
make all test pure_install;
@echo "";
Apache2-SOAP::
@echo "=============== Making $@ =================="; \
cd $(OBJROOT)/$@; \
mv Makefile.PL Makefile.PL.orig; \
cat Makefile.PL.orig ../add_rc_constants.pl > Makefile.PL; \
perl $(INCARGS) Makefile.PL \
"PERL=/usr/bin/perl $(INCARGS)" \
INSTALLDIRS=$(INSTALLDIRS) \
INSTALLSITEARCH=$(INSTALLSITEARCH) \
INSTALLSITEBIN=$(INSTALLSITEBIN) \
INSTALLSITELIB=$(INSTALLSITELIB) \
INSTALLSITEMAN1DIR=$(INSTALLSITEMAN1DIR) \
INSTALLSITEMAN3DIR=$(INSTALLSITEMAN3DIR) \
INSTALLSITESCRIPT=$(INSTALLSITESCRIPT) \
INSTALLSCRIPT=$(INSTALLSCRIPT); \
make all test pure_install < /dev/null;
@echo "";
libwww-perl::
@echo "=============== Making $@ =================="; \
cd $(OBJROOT)/$@; \
mv Makefile.PL Makefile.PL.orig; \
cat Makefile.PL.orig ../add_rc_constants.pl > Makefile.PL; \
perl $(INCARGS) Makefile.PL -n \
"PERL=/usr/bin/perl $(INCARGS)" \
INSTALLDIRS=$(INSTALLDIRS) \
INSTALLSITEARCH=$(INSTALLSITEARCH) \
INSTALLSITEBIN=$(INSTALLSITEBIN) \
INSTALLSITELIB=$(INSTALLSITELIB) \
INSTALLSITEMAN1DIR=$(INSTALLSITEMAN1DIR) \
INSTALLSITEMAN3DIR=$(INSTALLSITEMAN3DIR) \
INSTALLSITESCRIPT=$(INSTALLSITESCRIPT) \
INSTALLSCRIPT=$(INSTALLSCRIPT); \
make all test pure_install;
echo "";
SOAP-Lite::
@echo "=============== Making $@ =================="; \
cd $(OBJROOT)/$@; \
mv Makefile.PL Makefile.PL.orig; \
cat Makefile.PL.orig ../add_rc_constants.pl > Makefile.PL; \
perl Makefile.PL --noprompt \
"PERL=/usr/bin/perl $(INCARGS)" \
INSTALLDIRS=$(INSTALLDIRS) \
INSTALLSITEARCH=$(INSTALLSITEARCH) \
INSTALLSITEBIN=$(INSTALLSITEBIN) \
INSTALLSITELIB=$(INSTALLSITELIB) \
INSTALLSITEMAN1DIR=$(INSTALLSITEMAN1DIR) \
INSTALLSITEMAN3DIR=$(INSTALLSITEMAN3DIR) \
INSTALLSITESCRIPT=$(INSTALLSITESCRIPT) \
INSTALLSCRIPT=$(INSTALLSCRIPT) \
--HTTP-Client \
--noHTTPS-Client \
--noMAILTO-Client \
--noFTP-Client \
--noHTTP-Daemon \
--noHTTP-Apache \
--noHTTP-FCGI \
--noPOP3-Server \
--noIO-Server \
--noMQ \
--noJABBER \
--noMIMEParser \
--noTCP \
--noHTTP; \
make all pure_install;
@echo "";
Algorithm-C3 \
Class-Accessor-Chained \
Class-Data-Accessor \
Class-Std \
Config-Std \
Data-Page \
DateTime-Locale \
DateTime-Format-Builder \
DateTime-Format-ISO8601 \
DateTime-TimeZone \
ExtUtils-CBuilder \
Log-Dispatch \
Module-Build-0.20 \
PathTools \
SQL-Abstract-Limit \
Sub-Uplevel \
Test-Exception \
Text-WordDiff \
version \
::
@echo "=============== Making $@ =================="; \
cd $(OBJROOT)/$@; \
perl $(INCARGS) Build.PL \
destdir=$(DSTROOT) \
installdirs=$(INSTALLDIRS) \
--install_path arch=$(APPLE_INSTALLSITEARCH) \
--install_path bin=$(CONFIG_INSTALLSITEBIN) \
--install_path lib=$(APPLE_INSTALLSITELIB) \
--install_path bindoc=$(CONFIG_INSTALLSITEMAN1DIR) \
--install_path libdoc=$(CONFIG_INSTALLSITEMAN3DIR) \
--install_path script=$(CONFIG_INSTALLSITESCRIPT); \
perl $(INCARGS) Build; \
perl $(INCARGS) Build test; \
perl $(INCARGS) Build install; \
echo
ConfigurationFiles::
@echo "=============== Making $@ =================="; \
cd $(OBJROOT)/$@; \
make install;
install:: echo-config-info install-ditto-phase $(SUBDIRS) ConfigurationFiles
@if [ $(DSTROOT) ]; then \
echo Stripping symbols from bundles ... ; \
echo find $(DSTROOT) -xdev -name '*.bundle' -print -exec strip -S {} \; ; \
find $(DSTROOT) -xdev -name '*.bundle' -print -exec strip -S {} \; ; \
echo "" ; \
echo Stripping packlists ... ; \
find $(DSTROOT) -xdev -name '.packlist' -print -exec rm -f {} \; ; \
fi
@if [ -d $(INSTALLEXTRAS) ]; then \
echo Creating PrependToPath ... ; \
mkdir -p $(DSTROOT)$(CONFIG_INSTALLSITELIB); \
echo $(APPLE_INSTALLSITELIB) > $(DSTROOT)$(CONFIG_INSTALLSITELIB)/PrependToPath; \
fi
rm -f $(DSTROOT)"$$INSTALLSITEARCH"/perllocal.pod
installhdrs::
clean::
@for i in $(SUBDIRS); do \
( \
echo "=============== Cleaning $$i =================="; \
cd $$i; \
if [ -e Makefile ]; then \
make realclean; \
fi; \
rm -f Makefile.old; \
echo ""; \
) \
done \
installsrc::
ditto . $(SRCROOT)
install-ditto-phase::
@if [ "$(OBJROOT)" != "." ]; then \
ditto . $(OBJROOT); \
fi;
(cd $(OBJROOT) && ./applyPatches)
echo-config-info::
@echo "=============== Configuration Information ==============="
@echo "Perl 5.8 or greater: $(PERL5_8_OR_GREATER)"
@echo "Perl 5.10 or greater: $(PERL5_10_OR_GREATER)"
@echo ""
@echo "Building on Tiger: $(TIGER)"
@echo "Building on Leopard: $(LEOPARD)"
@echo "Building on SnowLeopard: $(SNOWLEOPARD)"
@echo ""
@echo "ARCHFLAGS: $(ARCHFLAGS)"
@echo "INCARGS: $(INCARGS)"
@echo ""
@printf "%-20s%s\n" "INSTALLSITEARCH:" $(INSTALLSITEARCH)
@printf "%-20s%s\n" "INSTALLSITEBIN:" $(INSTALLSITEBIN)
@printf "%-20s%s\n" "INSTALLSITELIB:" $(INSTALLSITELIB)
@printf "%-20s%s\n" "INSTALLSITEMAN1DIR:" $(INSTALLSITEMAN1DIR)
@printf "%-20s%s\n" "INSTALLSITEMAN3DIR:" $(INSTALLSITEMAN3DIR)
@printf "%-20s%s\n" "INSTALLSITESCRIPT:" $(INSTALLSITESCRIPT)
@printf "%-20s%s\n" "INSTALLSCRIPT:" $(INSTALLSCRIPT)
@echo ""
@echo Building subdirs: $(SUBDIRS)
@echo ""