PROJECT = perl
VERSION = 5.8.6
BASE = $(basename $(VERSION))
ARCHLIB = darwin-thread-multi-2level
FIX = $(SRCROOT)/fix
PROJVERS = $(PROJECT)-$(VERSION)
TARBALL = $(PROJVERS).tar.bz2
EXTRAS = $(DSTROOT)/System/Library/Perl/Extras
EXTRASPERL = $(EXTRAS)/$(VERSION)
LIBRARYPERL = $(DSTROOT)/Library/Perl/$(VERSION)
APPENDFILE = AppendToPath
PREPENDFILE = PrependToPath
PERL = $(DSTROOT)/System/Library/Perl
CORE = $(ARCHLIB)/CORE
LIBPERL = libperl.dylib
LIBBASE = lib/$(BASE)
LIBPERLLINK = ../../$(VERSION)/$(CORE)/$(LIBPERL)
SLP = $(PERL)/$(VERSION)
EXTRAOBJROOT=$(OBJROOT)/Extras-objroot
COMPATVERSIONS = 5.8.1
no_target: $(OBJROOT)/$(PROJECT) build
build:
$(MAKE) -C $(OBJROOT) -f Makefile SRCROOT=$(OBJROOT) \
OBJROOT="$(OBJROOT)/$(PROJECT)" _VERSION=$(VERSION) \
PREPENDFILE=$(PREPENDFILE) APPENDFILE=$(APPENDFILE)
buildextras:
$(MAKE) -C Extras EXTRAS=$(EXTRAS) EXTRASPERL=$(EXTRASPERL) \
SLP=$(SLP) ARCHLIB=$(ARCHLIB) OBJROOT=$(EXTRAOBJROOT)
install: $(OBJROOT)/$(PROJECT) installperl
installperl:
$(MAKE) -C $(OBJROOT) -f Makefile install SRCROOT=$(OBJROOT) \
OBJROOT="$(OBJROOT)/$(PROJECT)" _VERSION=$(VERSION) \
PREPENDFILE=$(PREPENDFILE) APPENDFILE=$(APPENDFILE)
install -d $(LIBRARYPERL)
install -d $(EXTRASPERL)/$(ARCHLIB)
echo '$(subst $(DSTROOT),,$(EXTRASPERL))' > $(LIBRARYPERL)/$(APPENDFILE)
@for i in $(COMPATVERSIONS); do \
echo echo /Library/Perl/$$i \>\> $(LIBRARYPERL)/$(APPENDFILE); \
echo /Library/Perl/$$i >> $(LIBRARYPERL)/$(APPENDFILE); \
done
install -d $(PERL)/$(LIBBASE)
ln -s $(LIBPERLLINK) $(PERL)/$(LIBBASE)/$(LIBPERL)
install_name_tool -id /System/Library/Perl/$(LIBBASE)/$(LIBPERL) $(SLP)/$(CORE)/$(LIBPERL)
installextras:
$(MAKE) -C Extras install EXTRAS=$(EXTRAS) EXTRASPERL=$(EXTRASPERL) \
SLP=$(SLP) ARCHLIB=$(ARCHLIB) OBJROOT=$(EXTRAOBJROOT)
$(OBJROOT)/$(PROJECT):
cd $(SRCROOT) && pax -r -w . $(OBJROOT)
echo cd $(OBJROOT)
@cd $(OBJROOT); \
echo bzcat $(TARBALL) \| gnutar xf -; \
bzcat $(TARBALL) | gnutar xf -; \
echo rm -rf $(PROJECT); \
rm -rf $(PROJECT); \
echo mv $(PROJVERS) $(PROJECT); \
mv $(PROJVERS) $(PROJECT); \
echo Patching hints/darwin.sh; \
cat hints.append >> $(PROJECT)/hints/darwin.sh; \
echo Patching perl.c; \
chmod u+w $(PROJECT)/perl.c; \
ed - $(PROJECT)/perl.c < perl.c.ed; \
echo Patching Path.pm '( chmod u+w $(PROJECT)/lib/File/Path.pm; \
patch $(PROJECT)/lib/File/Path.pm perl-23953.patch; \
chmod u-w $(PROJECT)/lib/File/Path.pm; \
echo Patching perlio.c '( chmod u+w $(PROJECT)/perlio.c; \
patch $(PROJECT)/perlio.c perl-33990.patch; \
echo Patching patchlevel.h; \
chmod u+w $(PROJECT)/patchlevel.h; \
ed - $(PROJECT)/patchlevel.h < patchlevel.h.ed; \
chmod u-w $(PROJECT)/patchlevel.h
cd $(OBJROOT)/$(PROJECT) && patch -p1 -i $(OBJROOT)/sprintf-5.8.7.patch
.DEFAULT:
@$(MAKE) -f Makefile $@