| 1 | ## Toplevel Makefile for cross-compilation of perl |
|---|
| 2 | # |
|---|
| 3 | ## $Id: Makefile,v 1.1.1.1 2004-02-09 19:10:37 zacheiss Exp $ |
|---|
| 4 | |
|---|
| 5 | export TOPDIR=${shell pwd} |
|---|
| 6 | include $(TOPDIR)/config |
|---|
| 7 | export CFLAGS |
|---|
| 8 | export SYS=$(ARCH)-$(OS) |
|---|
| 9 | export CROSS=$(ARCH)-$(OS)- |
|---|
| 10 | export FULL_OPTIMIZATION = -fexpensive-optimizations -fomit-frame-pointer -O2 |
|---|
| 11 | export OPTIMIZATION = -O2 |
|---|
| 12 | |
|---|
| 13 | export CC = $(CROSS)gcc |
|---|
| 14 | export CXX = $(CROSS)g++ |
|---|
| 15 | export LD = $(CROSS)ld |
|---|
| 16 | export STRIP = $(CROSS)strip |
|---|
| 17 | export AR = $(CROSS)ar |
|---|
| 18 | export RANLIB = $(CROSS)ranlib |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | ## Optimisation work |
|---|
| 22 | ifeq ($(ARCH),arm) |
|---|
| 23 | ifdef CONFIG_TARGET_ARM_SA11X0 |
|---|
| 24 | ifndef Architecture |
|---|
| 25 | Architecture = armv4l-strongarm |
|---|
| 26 | endif |
|---|
| 27 | FULL_OPTIMIZATION += -march=armv4 -mtune=strongarm1100 -mapcs-32 |
|---|
| 28 | OPTIMIZATION += -march=armv4 -mtune=strongarm1100 -mapcs-32 |
|---|
| 29 | endif |
|---|
| 30 | endif |
|---|
| 31 | |
|---|
| 32 | CFLAGS+=$(FULL_OPTIMIZATION) |
|---|
| 33 | |
|---|
| 34 | all: |
|---|
| 35 | @echo Please read the README file before doing anything else. |
|---|
| 36 | |
|---|
| 37 | gen_patch: |
|---|
| 38 | diff -Bbur ../Makefile.SH Makefile.SH > Makefile.SH.patch |
|---|
| 39 | diff -Bbur ../installperl installperl > installperl.patch |
|---|
| 40 | |
|---|
| 41 | patch: |
|---|
| 42 | cd .. ; if [ ! -e ./CROSS_PATCHED ] ; then \ |
|---|
| 43 | patch -p1 < Cross/Makefile.SH.patch; \ |
|---|
| 44 | patch -p1 < Cross/installperl.patch ; mv installperl installperl-patched; \ |
|---|
| 45 | sed -e 's/XXSTRIPXX/$(SYS)/' installperl-patched > installperl; \ |
|---|
| 46 | touch CROSS_PATCHED ; fi |
|---|
| 47 | |
|---|
| 48 | dry_patch: |
|---|
| 49 | cd .. ; patch --dry-run -p1 < Cross/Makefile.SH.patch; \ |
|---|
| 50 | patch --dry-run -p1 < Cross/installperl.patch; \ |
|---|
| 51 | |
|---|
| 52 | perl: |
|---|
| 53 | @echo Perl cross-build directory is $(TOPDIR) |
|---|
| 54 | @echo Target arch is $(SYS) |
|---|
| 55 | @echo toolchain: $(CC), $(CXX), $(LD), $(STRIP), $(AR), $(RANLIB) |
|---|
| 56 | @echo Optimizations: $(FULL_OPTIMIZATION) |
|---|
| 57 | |
|---|
| 58 | $(TOPDIR)/generate_config_sh config.sh-$(SYS) > $(TOPDIR)/../config.sh |
|---|
| 59 | cd $(TOPDIR)/.. ; ./Configure -S ; make depend ; make ; make more |
|---|
| 60 | cd $(TOPDIR)/.. ; mkdir -p fake_config_library ; cp lib/Config.pm fake_config_library |
|---|
| 61 | cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig" |
|---|
| 62 | cd $(TOPDIR)/.. ; $(MAKE) more3 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig" |
|---|
| 63 | cd $(TOPDIR)/.. ; $(MAKE) more4 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig" |
|---|
| 64 | cd $(TOPDIR)/.. ; rm -rf install_me_here |
|---|
| 65 | cd $(TOPDIR)/.. ; make install-strip |
|---|
| 66 | cd $(TOPDIR)/.. ; sh -x Cross/warp |
|---|
| 67 | |
|---|
| 68 | |
|---|