Re: Cross patch 31287 broke blead
[p5sagit/p5-mst-13.2.git] / Cross / build-arm-n770-sh
1 # this is a build script for ARM-linux cross-compiling.
2 # it builds miniperl on HOST and then perl for TARGET
3 # this approach is like Perl-CE cross-compiling, and allows
4 # for full TARGET perl (as opposed to renamed miniperl)
5
6 # some trick is different, however - the file extension for objects files
7 # are choosen to be .${CROSS_NAME}, .armo in our case
8
9 # note how invoked Makefile.PL for cross-compilation:
10 #   miniperl -MCross Makefile.PL
11
12 # steps are:
13 # - run HOST configure
14 # - build HOST miniperl
15 # given freshly-created HOST makefile and existing miniperl fix makefile
16 # to use 
17
18 CROSS_NAME=arm
19
20 # suppose compiler is in /opt/arm-2006q3
21 CCPATH=/opt/arm-2006q3
22 PATH=$CCPATH/bin:$PATH
23 CCPREF=arm-none-linux-gnueabi-
24
25 CROSSCC=${CCPREF}gcc
26 export CROSSCC
27 export CROSS_NAME
28
29 cp config.sh-arm-linux-n770 config-${CROSS_NAME}.sh
30
31 # following should be done better:
32 cd ..
33
34 if false
35 then
36 # do miniperl on HOST
37 ./Configure -des -D prefix=./dummy -Dusedevel
38 make miniperl
39 make uudmap.h
40 # fake uudmap, which should be on HOST
41 # TODO - all host utilities should be clearly stated and not built for TARGET
42 cp generate_uudmap generate_uudmap.${CROSS_NAME}
43 fi
44
45 #?? cd Cross
46
47 # do the rest for TARGET
48 $CROSSCC --version
49
50 # call make thusly so it will crosscompile...
51 XCOREDIR=xlib/$CROSS_NAME/CORE
52 PERL_CONFIG_SH=Cross/config-${CROSS_NAME}.sh
53
54 #?? . $PERL_CONFIG_SH 
55
56 # make cflags do cross-compile work (now its hackish, will be improved!)
57 rm cflags-cross-$CROSS_NAME
58 cp Cross/cflags-cross-$CROSS_NAME .
59 rm Makefile-cross-$CROSS_NAME
60 sh Cross/Makefile-cross.SH
61 cp Cross/Makefile-cross-$CROSS_NAME .
62 # makefile hack-patching TODO generation from Makefile.SH
63 #./miniperl -pi.bak -w0777ne "s{^(CCCMD.*?)cflags}{\$1cflags-cross-$CROSS_NAME}gm" Makefile-cross-$CROSS_NAME
64
65 mkdir xlib
66 mkdir xlib/$CROSS_NAME
67 mkdir ${XCOREDIR}
68
69 #??OBJ_EXT=.${CROSS_NAME}o
70 # TODO these -- AR=${CCPREF}ar LD=${CCPREF}ld
71 make -f Makefile-cross-$CROSS_NAME xconfig.h
72 make -f Makefile-cross-$CROSS_NAME libperl.${CROSS_NAME}a  OBJ_EXT=.${CROSS_NAME}o EXE_EXT=.$CROSS_NAME LIB_EXT=.${CROSS_NAME}a  AR=${CCPREF}ar LD=${CCPREF}ld
73 make -f Makefile-cross-$CROSS_NAME DynaLoader.${CROSS_NAME}o  OBJ_EXT=.${CROSS_NAME}o EXE_EXT=.$CROSS_NAME LIB_EXT=.${CROSS_NAME}a  AR=${CCPREF}ar LD=${CCPREF}ld
74 make -f Makefile-cross-$CROSS_NAME perl.${CROSS_NAME}
75