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