3350 +../schema/build/1_0.xsd ../../tools/sbs/schema/build/1_0.xsd |
3488 +../schema/build/1_0.xsd ../../tools/sbs/schema/build/1_0.xsd |
3351 +../win32/bin/ransleep.exe ../../tools/sbs/win32/bin/ransleep.exe |
3489 +../win32/bin/ransleep.exe ../../tools/sbs/win32/bin/ransleep.exe |
3352 +../win32/bin/sbs_descramble.exe ../../tools/sbs/win32/bin/sbs_descramble.exe |
3490 +../win32/bin/sbs_descramble.exe ../../tools/sbs/win32/bin/sbs_descramble.exe |
3353 +../win32/bin/talonctl.exe ../../tools/sbs/win32/bin/talonctl.exe |
3491 +../win32/bin/talonctl.exe ../../tools/sbs/win32/bin/talonctl.exe |
3354 +../win32/bin/talon.exe ../../tools/sbs/win32/bin/talon.exe |
3492 +../win32/bin/talon.exe ../../tools/sbs/win32/bin/talon.exe |
3355 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/lib/config/gcc.xml /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/lib/config/gcc.xml |
3493 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/arm.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/arm.xml |
3356 --- /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/lib/config/gcc.xml 2010-05-13 19:14:25.273081672 +0100 |
3494 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/arm.xml 2010-05-18 19:32:34.717348918 +0100 |
3357 +++ /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/lib/config/gcc.xml 2010-05-08 13:35:13.030060000 +0100 |
3495 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/arm.xml 2010-05-17 18:47:53.028843000 +0100 |
3358 @@ -26,7 +26,7 @@ |
3496 @@ -1,51 +1,62 @@ |
3359 <!-- used by FLM code --> |
3497 <?xml version="1.0" encoding="ISO-8859-1"?> |
3360 <set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/> |
3498 <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd"> |
|
3499 - <!-- build configurations for ARM compilers --> |
|
3500 + <!-- build variants for ARM toolchain builds --> |
|
3501 <var name="arm" extends="root"> |
|
3502 <varRef ref="default.interfaces"/> |
|
3503 <varRef ref="default.locations"/> |
|
3504 - <env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="tool"/> |
|
3505 - <!-- picked up from the Environment --> |
|
3506 - <env name="ELF2E32" default="$(EPOCROOT)/epoc32/tools/elf2e32$(DOTEXE)" type="tool"/> |
|
3507 + |
|
3508 + <!-- tools and scripts --> |
|
3509 <env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/> |
|
3510 <env name="CHECKLIB" default="$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)" type="tool"/> |
|
3511 - <env name="TRANASM" default="$(PERL) $(EPOCROOT)/epoc32/tools/tranasm.pl" type="tool"/> |
|
3512 <env name="CPPFILT" default="$(GCCPREFIX)c++filt$(DOTEXE)" type="tool"/> |
|
3513 + <env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="script"/> |
|
3514 + <env name="ELF2E32" default="$(EPOCROOT)/epoc32/tools/elf2e32$(DOTEXE)" type="tool"/> |
|
3515 + <env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="script"/> |
|
3516 <env name="RCOMP" default="$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)" type="tool"/> |
|
3517 - <env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="path"/> |
|
3518 - <env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="path"/> |
|
3519 <!-- RANSLEEP is a program that can be used to cause a random delay in milliseconds. This is only useful in parallel builds. See the PERTURBSTARTTIME switch for more details. --> |
|
3520 <env name="RANSLEEP" default="$(SBS_HOME)/bin/$(HOSTPLATFORM_DIR)/ransleep$(DOTEXE)" type="tool"/> |
|
3521 - <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/> |
|
3522 - <set name="CDEFS" value=""/> |
|
3523 - <!-- arm specific interfaces --> |
|
3524 + <env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/> |
|
3525 + <env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/> |
|
3526 + <env name="TRANASM" default="$(PERL) $(EPOCROOT)/epoc32/tools/tranasm.pl" type="script"/> |
|
3527 + |
|
3528 + <!-- interfaces --> |
|
3529 <set name="INTERFACE.extension" value="Symbian.extension"/> |
|
3530 - <!-- link to bld.inf and mmp platform names --> |
|
3531 - <set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/> |
|
3532 + |
|
3533 + <!-- macros --> |
|
3534 <set name="ARMMACROS.CONFIG" value=""/> |
|
3535 <set name="ARMMACROS.VAR" value=""/> |
|
3536 + <set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/> |
|
3537 + <set name="PLATMACROS.WINDOWS" value="$(PLATMACROS.TOOLCHAIN) EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/> |
|
3538 + <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/> |
|
3539 + <set name="PLATMACROS.CONFIG" value=""/> |
|
3540 + <set name="PLATMACROS.VAR" value=""/> |
|
3541 + <set name="PLATMACROS.TOOLCHAIN" value=""/> |
|
3542 + |
|
3543 + <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/> |
|
3544 <set name="CAPABILITY" value=""/> |
|
3545 + <set name="CDEFS" value="__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)"/> |
|
3546 <set name="CODE_SEGMENT_START" value=""/> |
|
3547 <set name="DEFAULT_STDCPP_NEWLIB" value="stdnew.dso"/> |
|
3548 <set name="DEFAULT_SYMBIAN_NEWLIB" value="scppnwdl.dso"/> |
|
3549 + <set name="DUMPBCINFO" value=""/> |
|
3550 + <set name="EPOCSTACKSIZE" value=""/> |
|
3551 <set name="FULLVARIANTPATH" value="$(VARIANTPLATFORM)/$(VARIANTTYPE)"/> |
|
3552 <set name="HEADER_FILES_CONTROL_OPTION" value=""/> |
|
3553 <set name="LIBRARY_DEBUG" value=""/> |
|
3554 <set name="MMPDEFS" value=""/> |
|
3555 <set name="NMAKE" value="nmake"/> |
|
3556 <set name="NMAKEFLAGS" value="-nologo -x - "/> |
|
3557 + <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/> |
|
3558 <set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/> |
|
3559 <set name="PERTURBSTARTTIME" value=""/> |
|
3560 - <!-- add a random delay before starting armcc or armlink to ease contention for licensesthe maximum time to delay in milliseconds. RANSLEEP program must be available. --> |
|
3561 + <!-- add a random delay before starting armcc or armlink to ease contention for licenses the maximum time to delay in milliseconds. RANSLEEP program must be available. --> |
|
3562 <set name="PERTURBMSECS" value="500"/> |
|
3563 <!-- the maximum time to delay in milliseconds --> |
|
3564 - <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/> |
|
3565 + <set name="POSTLINKER_COMPRESSION_DEFAULT" value="inflate"/> |
|
3566 <set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/> |
|
3567 <set name="RESOLVED_DEFFILE" value=""/> |
|
3568 <set name="RUNTIME_LIBS_PATH" value="$(EPOCROOT)/epoc32/release/armv5/lib"/> |
|
3569 - <set name="SBSV1MAKE" value="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)"/> |
|
3570 <set name="SID" value=""/> |
|
3571 - <set name="EPOCSTACKSIZE" value=""/> |
|
3572 <set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/> |
|
3573 <set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/> |
|
3574 <set name="SYMBIAN_CC_MESSAGE_OPTION" value="$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION)"/> |
|
3575 @@ -58,22 +69,16 @@ |
|
3576 <set name="TARGET" value=""/> |
|
3577 <set name="UNIX_SLASH_FOR_CC_ABS_PATHS" value="0"/> |
|
3578 <set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/> |
|
3579 - <set name="DUMPBCINFO" value=""/> |
|
3580 - <set name="MAKEDEFFILE" value="1"/> |
|
3581 - <set name="PLATMACROS.WINDOWS" value="ARMCC EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/> |
|
3582 - <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/> |
|
3583 - <set name="PLATMACROS.CONFIG" value=""/> |
|
3584 - <set name="PLATMACROS.VAR" value=""/> |
|
3585 - <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/> |
|
3586 </var> |
|
3587 + |
|
3588 <var name="v5"> |
|
3589 <set name="TRADITIONAL_PLATFORM" value="ARMV5"/> |
|
3590 <set name="VARIANTPLATFORM" value="armv5"/> |
|
3591 - <set name="PLATMACROS.CONFIG" value=""/> |
|
3592 <set name="DEBUG_FORMAT" value="$(CC.DWARF2)"/> |
|
3593 <set name="TARGET_ARCH_OPTION" value="$(CC.ARMV5)"/> |
|
3594 <set name="LINKER_ARCH_OPTION" value="$(LD.ARMV5)"/> |
|
3595 - <set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/> |
|
3596 + <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/> |
|
3597 + <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/> |
|
3598 <set name="GENERATE_ABIV1_IMPLIBS" value="$(SUPPORTS_ABIV1_IMPLIBS)"/> |
|
3599 </var> |
|
3600 <var name="v6"> |
|
3601 @@ -85,7 +90,8 @@ |
|
3602 <set name="TARGET_ARCH_OPTION" value="$(CC.ARMV6)"/> |
|
3603 <set name="LINKER_ARCH_OPTION" value="$(LD.ARMV6)"/> |
|
3604 <set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/> |
|
3605 - <set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/> |
|
3606 + <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/> |
|
3607 + <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/> |
|
3608 </var> |
|
3609 <var name="v7"> |
|
3610 <set name="TRADITIONAL_PLATFORM" value="ARMV7"/> |
|
3611 @@ -95,7 +101,8 @@ |
|
3612 <set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/> |
|
3613 <set name="TARGET_ARCH_OPTION" value="$(CC.ARMV7)"/> |
|
3614 <set name="LINKER_ARCH_OPTION" value="$(LD.ARMV7)"/> |
|
3615 - <set name="ARMFPU" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/> |
|
3616 + <set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/> |
|
3617 + <set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV3)"/> |
|
3618 </var> |
|
3619 <var name="9e" extends="v5"> |
|
3620 <set name="VARIANTPLATFORM" value="arm9e"/> |
|
3621 @@ -121,6 +128,9 @@ |
|
3622 <alias name="armv5_urel_gcce4_3_3" meaning="arm.v5.urel.gcce4_3_3"/> |
|
3623 <alias name="armv5_udeb_gcce4_3_3" meaning="arm.v5.udeb.gcce4_3_3"/> |
|
3624 |
|
3625 + <alias name="armv5_urel_gcce4_4_1" meaning="arm.v5.urel.gcce4_4_1"/> |
|
3626 + <alias name="armv5_udeb_gcce4_4_1" meaning="arm.v5.udeb.gcce4_4_1"/> |
|
3627 + |
|
3628 <alias name="armv6_urel" meaning="arm.v6.urel.rvct2_2"/> |
|
3629 <alias name="armv6_udeb" meaning="arm.v6.udeb.rvct2_2"/> |
|
3630 <alias name="armv7_urel" meaning="arm.v7.urel.rvct3_1"/> |
|
3631 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcce.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcce.xml |
|
3632 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcce.xml 2010-05-18 19:32:34.717348918 +0100 |
|
3633 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcce.xml 2010-05-17 18:47:53.032843000 +0100 |
|
3634 @@ -1,108 +1,128 @@ |
|
3635 <?xml version="1.0" encoding="ISO-8859-1"?> |
|
3636 <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd"> |
|
3637 - <!-- GCCE build variant for ARM compilers --> |
|
3638 - <!-- This is called gcce_base in case someone wants to use "gcce" as a configuration name --> |
|
3639 + <!-- build variant for GCCE ARM toolchains --> |
|
3640 <var name="gcce_base"> |
|
3641 <set name="TOOLCHAIN" value="GCCE"/> |
|
3642 + <set name="PLATMACROS.TOOLCHAIN" value="GCCE"/> |
|
3643 + |
|
3644 + <!-- toolchain tools --> |
|
3645 + <set name="GCCEAR" value="$(GCCEBIN)/arm-none-symbianelf-ar$(DOTEXE)"/> |
|
3646 + <set name="GCCEASM" value="$(GCCEBIN)/arm-none-symbianelf-as$(DOTEXE)"/> |
|
3647 + <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/> |
|
3648 + <set name="GCCELD" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/> |
|
3649 + <set name="FROMELF" value="$(GCCEBIN)/arm-none-symbianelf-readelf$(DOTEXE)"/> |
|
3650 + |
|
3651 <set name="CC" value="$(GCCECC)"/> |
|
3652 <set name="LD" value="$(GCCELD)"/> |
|
3653 <set name="ASM" value="$(GCCEASM)"/> |
|
3654 <set name="AR" value="$(GCCEAR)"/> |
|
3655 - <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/> |
|
3656 - <set name="GCCELD" value="$(GCCEBIN)/arm-none-symbianelf-ld$(DOTEXE)"/> |
|
3657 - <set name="GCCEASM" value="$(GCCEBIN)/arm-none-symbianelf-as$(DOTEXE)"/> |
|
3658 - <set name="GCCEAR" value="$(GCCEBIN)/arm-none-symbianelf-ar$(DOTEXE)"/> |
|
3659 - <set name="FROMELF" value="$(GCCEBIN)/arm-none-symbianelf-readelf$(DOTEXE)"/> |
|
3660 + |
|
3661 <set name="AAPCS_OPTION" value="-mapcs -mthumb-interwork"/> |
|
3662 <set name="ARCHIVER_CREATE_OPTION" value="cr"/> |
|
3663 <set name="ARM_INSTRUCTION_SET" value="-marm"/> |
|
3664 + <set name="ARMLIBS" value=""/> |
|
3665 <set name="ASM_OUTPUT_OPTION" value="-o"/> |
|
3666 <set name="ASSEMBLER_LISTING_OPTION" value="-S"/> |
|
3667 <set name="BPABI_OPTION" value=""/> |
|
3668 - <set name="CC_ERRORS_CONTROL_OPTION" value=""/> |
|
3669 - <set name="CC_WARNINGS_CONTROL_OPTION" value="-Wall -Wno-unknown-pragmas"/> |
|
3670 <set name="C_LANG_OPTION" value="-x c"/> |
|
3671 - <set name="COMMANDFILE_OPTION" value="@"/> |
|
3672 - <set name="COMPILE_ONLY_OPTION" value="-c"/> |
|
3673 - <set name="CPP_LANG_OPTION" value="-x c++ -Wno-ctor-dtor-privacy"/> |
|
3674 - <set name="DEBUG_OPTIMISATION" value="-O0"/> |
|
3675 - <set name="DEPEND_OPTION" value="-MD -MF"/> |
|
3676 - <set name="ENUM_OPTION" value=""/> |
|
3677 - <set name="EXPORT_VTBL_OPTION" value=""/> |
|
3678 - <set name="EXTRA_LD_OPTION" value=""/> |
|
3679 - <set name="FPMODE_OPTION" value=""/> |
|
3680 - <set name="LD_ERRORS_CONTROL_OPTION" value=""/> |
|
3681 - <set name="LD_WARNINGS_CONTROL_OPTION" value="--no-undefined"/> |
|
3682 - <set name="LISTING_OPTION" value="-S"/> |
|
3683 - <set name="EXCEPTIONS" value="-fexceptions"/> |
|
3684 - <set name="NO_EXCEPTIONS" value="-fno-exceptions"/> |
|
3685 - <set name="PREINCLUDE_OPTION" value="-include"/> |
|
3686 - <set name="PREPROCESSOR_OPTION" value="-E"/> |
|
3687 - <set name="REL_OPTIMISATION" value="-O2"/> |
|
3688 - <set name="STDLIB_OPTION" value="-nostdlib"/> |
|
3689 - <set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value=""/> |
|
3690 - <set name="RW_BASE_OPTION" value="-Tdata"/> |
|
3691 - <set name="CODE_SEGMENT_START" value="-Ttext"/> |
|
3692 - <set name="PREINCLUDE" value="$(EPOCINCLUDE)/gcce/gcce.h"/> |
|
3693 + <set name="CC.ARMV5" value="-march=armv5t"/> |
|
3694 + <set name="CC.ARMV6" value="-march=armv6t2"/> |
|
3695 + <set name="CC.ARMV7" value="-march=armv7"/> |
|
3696 <!-- From the GCC manual: "With this option, GCC uses features of DWARF version 3 when they are useful; ..." --> |
|
3697 <!-- There is no -gdwarf-3 option; hence CC.DWARF2 and CC.DWARF3 have the same value. --> |
|
3698 <set name="CC.DWARF2" value="-gdwarf-2"/> |
|
3699 <set name="CC.DWARF3" value="-gdwarf-2"/> |
|
3700 - <set name="LD.ARMV5" value=""/> |
|
3701 - <set name="LD.ARMV6" value=""/> |
|
3702 - <set name="LD.ARMV7" value=""/> |
|
3703 - <set name="ARMMACROS.VAR" value=""/> |
|
3704 + <set name="CC.NO_UNALIGNED_ACCESS" value=""/> |
|
3705 + <set name="CC.SOFTVFP_MAYBE_VFPV2" value="soft"/> |
|
3706 + <set name="CC.SOFTVFP_MAYBE_VFPV3" value="soft"/> |
|
3707 + <set name="CC_ERRORS_CONTROL_OPTION" value=""/> |
|
3708 + <set name="CC_WARNINGS_CONTROL_OPTION" value="-Wall -Wno-unknown-pragmas"/> |
|
3709 <set name="CFLAGS" value=""/> |
|
3710 <set name="CIADEFS" value="__CIA__"/> |
|
3711 - <append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __GCCE__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/> |
|
3712 - <!-- Note that the intention of ABLD for CIA compilation seems to be "-S -Wa,-adln", although this doesn't work --> |
|
3713 + <set name="CODE_SEGMENT_START" value="-Ttext"/> |
|
3714 + <set name="COMMANDFILE_OPTION" value="@"/> |
|
3715 + <set name="COMPILE_ONLY_OPTION" value="-c"/> |
|
3716 <set name="COMPILER_CIA_FLAGS" value="-marm"/> |
|
3717 <set name="COMPILER_DEFINES" value="-D__GCCE__"/> |
|
3718 - <set name="COMPILER_FPU_FLAGS" value="$(CC.OPT.SOFTVFP_MAYBE_VFPV2)$(CC.VAL.SOFTVFP_MAYBE_VFPV2)"/> |
|
3719 + <set name="COMPILER_FPU_OPTION" value="-mfloat-abi="/> |
|
3720 <set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/> |
|
3721 <set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-I"/> |
|
3722 <set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/> |
|
3723 + <set name="CPP_LANG_OPTION" value="-x c++ -Wno-ctor-dtor-privacy"/> |
|
3724 <set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/> |
|
3725 + <set name="DEBUG_OPTIMISATION" value="-O0"/> |
|
3726 + <set name="DEPEND_OPTION" value="-MD -MF"/> |
|
3727 + <set name="ENUM_OPTION" value=""/> |
|
3728 + <set name="EXCEPTIONS" value="-fexceptions"/> |
|
3729 + <set name="EXPORT_VTBL_OPTION" value=""/> |
|
3730 <set name="EXTRA_CC_OPTION" value=""/> |
|
3731 + <set name="EXTRA_LD_OPTION" value=""/> |
|
3732 + <set name="FPMODE_OPTION" value=""/> |
|
3733 <set name="HEADER_FILES_CONTROL_OPTION" value=""/> |
|
3734 + <set name="INSTRUCTION_SET" value=""/> |
|
3735 + <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/> |
|
3736 + <set name="LD.ARMV5" value=""/> |
|
3737 + <set name="LD.ARMV6" value=""/> |
|
3738 + <set name="LD.ARMV7" value=""/> |
|
3739 + <set name="LD_ERRORS_CONTROL_OPTION" value=""/> |
|
3740 + <set name="LD_WARNINGS_CONTROL_OPTION" value="-Wl,--no-undefined"/> |
|
3741 <set name="LIBPATH" value=""/> |
|
3742 <set name="LIBRARY" value=""/> |
|
3743 <set name="LICENSERETRY_OPTION" value=""/> |
|
3744 <set name="LINKER_ADD_STATIC_RUNTIME" value="1"/> |
|
3745 <set name="LINKER_DEBUG_OPTION" value=""/> |
|
3746 - <!-- Clearly the linker libs stuff following isn't right - need to use ARMLIBS (or reinvent this a bit) --> |
|
3747 + <set name="LINKER_DEFAULT_LIB_PATHS" value=""/> |
|
3748 <set name="LINKER_DEFAULT_LIBS" value="-lsupc++ -lgcc"/> |
|
3749 - <set name="LINKER_DEFAULT_LIB_PATHS" value="-L $(GCCEBIN)/../lib/gcc/arm-none-symbianelf/$(TOOLCHAINVERSION) -L $(GCCEBIN)/../lib/gcc/arm-none-symbianelf/$(TOOLCHAINVERSION)/../../../../arm-none-symbianelf/lib"/> |
|
3750 - <set name="LINKER_ENTRY_OPTION" value="--entry"/> |
|
3751 - <set name="LINKER_GROUP_START_OPTION" value="--start-group"/> |
|
3752 + <set name="LINKER_ENTRY_OPTION" value="-Wl,--entry"/> |
|
3753 <set name="LINKER_GROUP_END_OPTION" value="--end-group"/> |
|
3754 - <set name="LINKER_MISC_FLAGS" value="$(CODE_SEGMENT_START) 0x8000"/> |
|
3755 - <set name="LINKER_NODEBUG_OPTION" value = "--strip-debug"/> |
|
3756 + <set name="LINKER_GROUP_START_OPTION" value="--start-group"/> |
|
3757 + <set name="LINKER_MISC_FLAGS" value="-Wl,$(CODE_SEGMENT_START),0x8000"/> |
|
3758 + <set name="LINKER_NODEBUG_OPTION" value = "-Wl,--strip-debug"/> |
|
3759 <set name="LINKER_SCRIPT_FILE_OPTION" value="-T"/> |
|
3760 - <set name="LINKER_SYMBOLS_OPTION" value="-Map"/> |
|
3761 - <set name="LINKER_SYMBOLS_FILE_OPTION" value=""/> |
|
3762 - <set name="SHARED_OBJECT_OPTION" value="-shared"/> |
|
3763 + <set name="LINKER_SYMBOLS_FILE_OPTION" value="-Wl,-Map"/> |
|
3764 + <set name="LINKER_SYMBOLS_OPTION" value=""/> |
|
3765 + <set name="LISTING_OPTION" value="-S"/> |
|
3766 + <set name="NEED_ENTRYPOINT_LIBRARY" value="" /> |
|
3767 + <set name="NEED_ENTRYPOINT_LIBRARY" value=""/> |
|
3768 + <set name="NO_EXCEPTIONS" value="-fno-exceptions"/> |
|
3769 + <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/> |
|
3770 + <set name="OWN_LIBRARY_OPTION" value=""/> |
|
3771 + <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/> |
|
3772 + <set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/> |
|
3773 + <set name="PREINCLUDE" value="$(EPOCINCLUDE)/gcce/gcce.h"/> |
|
3774 + <set name="PREINCLUDE_OPTION" value="-include"/> |
|
3775 + <set name="PREPROCESSOR_OPTION" value="-E"/> |
|
3776 + <set name="REL_OPTIMISATION" value="-O2"/> |
|
3777 + <set name="RELOCATABLE_IMAGE_OPTION" value=""/> |
|
3778 + <set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value=""/> |
|
3779 + <set name="RVCTBIN" value="" /> |
|
3780 + <set name="RVCTINC" value="" /> |
|
3781 + <set name="RVCTLIB" value=""/> |
|
3782 + <set name="RW_BASE" value="$(RW_BASE_OPTION)0x400000"/> |
|
3783 + <set name="RW_BASE_OPTION" value="-Wl,-Tdata,"/> |
|
3784 + <set name="SHARED_OBJECT_OPTION" value="-Wl,-shared"/> |
|
3785 <set name="SID" value=""/> |
|
3786 - <set name="SO_NAME_OPTION" value="-soname"/> |
|
3787 + <set name="SO_NAME_OPTION" value="-Wl,-soname"/> |
|
3788 + <set name="SPLIT_OPTION" value=""/> |
|
3789 + <set name="STATIC_LIBS_LIST" value=""/> |
|
3790 <set name="STATIC_LIBS_PATH" value="" /> |
|
3791 <set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/> |
|
3792 + <set name="STDLIB_OPTION" value="-nodefaultlibs"/> |
|
3793 <set name="SUPPORTS_ABIV1_IMPLIBS" value=""/> |
|
3794 <set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/> |
|
3795 + <set name="SYMVER_OPTION" value="-Wl,--default-symver"/> |
|
3796 <set name="TARGET_RELOCATION_OPTION" value="--target1-rel" /> |
|
3797 - <set name="SYMVER_OPTION" value="--default-symver"/> |
|
3798 <set name="TEMP_FILES_OPTION" value="-pipe"/> |
|
3799 <set name="THUMB_INSTRUCTION_SET" value="-mthumb"/> |
|
3800 <set name="TRANSFORM_CIA" value=""/> |
|
3801 - <set name="INSTRUCTION_SET" value=""/> |
|
3802 <set name="UNDEFINED_SYMBOL_REF_OPTION" value="-u"/> |
|
3803 <set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/> |
|
3804 - <set name="USERINCLUDE" value=""/> |
|
3805 <set name="USER_LIBS_PATH_OPTION" value="--userlibpath"/> |
|
3806 + <set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/> |
|
3807 + <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_3_1.lib"/> |
|
3808 + <set name="USERINCLUDE" value=""/> |
|
3809 <set name="VFE_OPTION" value=""/> |
|
3810 - <set name="PLATMACROS.WINDOWS" value="GCCE EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/> |
|
3811 - <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/> |
|
3812 - <set name="PLATMACROS.CONFIG" value=""/> |
|
3813 - <set name="PLATMACROS.VAR" value=""/> |
|
3814 - <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/> |
|
3815 + |
|
3816 + <append name="CDEFS" value="__GCCE__"/> |
|
3817 </var> |
|
3818 </build> |
|
3819 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcc.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcc.xml |
|
3820 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gcc.xml 2010-05-18 19:32:34.717348918 +0100 |
|
3821 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gcc.xml 2010-05-17 19:30:38.665334296 +0100 |
|
3822 @@ -1,32 +1,32 @@ |
|
3823 <?xml version="1.0" encoding="ISO-8859-1"?> |
|
3824 <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd"> |
|
3825 - |
|
3826 - <!-- build configurations for GCC compilers --> |
|
3827 + <!-- build variants for GCC toolchains --> |
|
3828 <var name="tools2_base" extends="root"> |
|
3829 - |
|
3830 <varRef ref="default.interfaces"/> |
|
3831 <varRef ref="default.locations"/> |
|
3832 - <!-- picked up from the Environment --> |
|
3833 + |
|
3834 + <!-- toolchain tools --> |
|
3835 <env name='RANLIB' default='$(GCCPREFIX)ranlib$(DOTEXE)' type='tool'/> |
|
3836 <env name='GCC' default='$(GCCPREFIX)g++$(DOTEXE)' type='tool'/> |
|
3837 <env name='AR' default='$(GCCPREFIX)ar$(DOTEXE)' type='tool'/> |
|
3838 |
|
3839 + <set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/> |
|
3840 + <set name='LINKER' value='$(GCC)'/> |
|
3841 + |
|
3842 + <!-- tools and scripts --> |
|
3843 + <env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/> <!-- Java used by Trace Compiler --> |
|
3844 + |
|
3845 <!-- interfaces --> |
|
3846 <set name="INTERFACE.exe" value="Tools.exe"/> |
|
3847 <set name="INTERFACE.lib" value="Tools.lib"/> |
|
3848 |
|
3849 - <!-- Java used by Trace Compiler --> |
|
3850 - <env name='JAVA_HOME' default='' type='path'/> |
|
3851 - <env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/> |
|
3852 - |
|
3853 <!-- link to bld.inf and mmp platform names --> |
|
3854 <set name='TRADITIONAL_PLATFORM' value='TOOLS2'/> |
|
3855 - <set name='VARIANTPLATFORM' value='tools2'/> |
|
3856 - |
|
3857 - <!-- used by FLM code --> |
|
3858 - <set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/> |
3361 |
3859 |
3362 - <set name='CFLAGS' value='-fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/> |
3860 - <set name='CFLAGS' value='-fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/> |
|
3861 + <!-- Java used by Trace Compiler --> |
3363 + <set name='CFLAGS' value='-std=c++0x -fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/> |
3862 + <set name='CFLAGS' value='-std=c++0x -fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/> |
|
3863 + <env name='JAVA_HOME' default='' type='path'/> |
|
3864 + <set name='VARIANTPLATFORM' value='tools2'/> |
3364 |
3865 |
3365 <!-- msys based programs sometimes don't search the path properly. |
3866 <!-- msys based programs sometimes don't search the path properly. |
3366 COMPILER_PATH can be set to tell gcc where to find |
3867 COMPILER_PATH can be set to tell gcc where to find |
3367 @@ -45,7 +45,7 @@ |
3868 @@ -39,13 +39,11 @@ |
|
3869 |
|
3870 <!-- macro definitions set by mmps etc --> |
|
3871 <set name='CDEFS' value='$(MMPDEFS)'/> |
|
3872 - |
|
3873 - |
|
3874 <set name='CDEFS.DEFAULT' value='__SYMBIAN32__ __TOOLS__ __TOOLS2__ __EXE__ __SUPPORT_CPP_EXCEPTIONS__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)"'/> |
3368 <set name='CDEFS.WIN32' value='$(CDEFS.DEFAULT) _WIN32 WIN32 _WINDOWS __TOOLS2_WINDOWS__'/> |
3875 <set name='CDEFS.WIN32' value='$(CDEFS.DEFAULT) _WIN32 WIN32 _WINDOWS __TOOLS2_WINDOWS__'/> |
3369 <set name='CDEFS.LINUX' value='$(CDEFS.DEFAULT) __LINUX__ __TOOLS2_LINUX__'/> |
3876 <set name='CDEFS.LINUX' value='$(CDEFS.DEFAULT) __LINUX__ __TOOLS2_LINUX__'/> |
3370 |
3877 |
3371 - <set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc_mingw/gcc_mingw_3_4_2.h'/> |
3878 - <set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc_mingw/gcc_mingw_3_4_2.h'/> |
3372 + <set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc/gcc.h'/> |
3879 + <set name='INC.COMPILER' value='$(EPOCINCLUDE)/gcc/gcc.h'/> |
3373 |
3880 |
3374 <set name='OPT.D' value='-D'/> |
3881 <set name='OPT.D' value='-D'/> |
3375 <set name='OPT.L' value='-L'/> |
3882 <set name='OPT.L' value='-L'/> |
3376 @@ -55,12 +55,11 @@ |
3883 @@ -56,11 +54,10 @@ |
3377 <set name='OPT.SYSTEMINCLUDE' value='-isystem '/> |
|
3378 <set name='OPT.USERINCLUDE' value='-I '/> |
3884 <set name='OPT.USERINCLUDE' value='-I '/> |
3379 |
3885 |
3380 - <!-- always use stlport headers --> |
3886 <!-- always use stlport headers --> |
3381 - <set name='SYSTEMINCLUDE' value='$(EPOCINCLUDE)/tools/stlport'/> |
3887 - <set name='SYSTEMINCLUDE' value='$(EPOCINCLUDE)/tools/stlport'/> |
3382 + <set name='SYSTEMINCLUDE' value=''/> |
3888 + <set name='SYSTEMINCLUDE' value=''/> |
3383 |
3889 |
3384 <set name='LINKER' value='$(GCC)'/> |
3890 - <set name='LINKER' value='$(GCC)'/> |
3385 <set name='LFLAGS' value=''/> |
3891 <set name='LFLAGS' value=''/> |
3386 - <set name='STATICLIBRARY' value='stlport.5.1'/> |
3892 - <set name='STATICLIBRARY' value='stlport.5.1'/> |
3387 + <set name='STATICLIBRARY' value=''/> |
3893 + <set name='STATICLIBRARY' value=''/> |
3388 <set name='LIBS' value=''/> |
3894 <set name='LIBS' value=''/> |
3389 <set name='LIBS.WIN32' value='$(LIBS)'/> |
3895 <set name='LIBS.WIN32' value='$(LIBS)'/> |
3390 <set name='LIBS.LINUX' value='$(LIBS) pthread'/> |
3896 <set name='LIBS.LINUX' value='$(LIBS) pthread'/> |
3391 Only in /home/imk/symbian/epocroot-pdk-3.0.h/latest_build/build/sbsv2/raptor/python: raptor_version.py.bak |
3897 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gccxml.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gccxml.xml |
3392 Only in /home/imk/symbian/epocroot-pdk-3.0.h/linux_build/sbsv2/raptor/util: build |
3898 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/gccxml.xml 2010-05-18 19:32:34.717348918 +0100 |
|
3899 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/gccxml.xml 2010-05-17 18:47:53.032843000 +0100 |
|
3900 @@ -1,21 +1,20 @@ |
|
3901 <?xml version="1.0" encoding="ISO-8859-1"?> |
|
3902 <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd"> |
|
3903 - <!-- build configurations for the gccxml_cc1plus C++ language processor --> |
|
3904 + <!-- build variants for the gccxml_cc1plus C++ language processor --> |
|
3905 <var name="gccxml_base" extends="root"> |
|
3906 <varRef ref="default.interfaces"/> |
|
3907 <varRef ref="default.locations"/> |
|
3908 - <!-- picked up from the Environment --> |
|
3909 - <env name='CPP' default='$(GNUCPP)' type='tool'/> |
|
3910 + |
|
3911 + <!-- tools and scripts --> |
|
3912 <env name='BMCONV' default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type='tool'/> |
|
3913 - <env name='CREATERFIFILE' default='$(PERL) $(SBS_HOME)/bin/createrfifile.pl ' type='path'/> |
|
3914 + <set name='CC' value="$(EPOCROOT)/epoc32/tools/gccxml_cc1plus$(DOTEXE)" type='tool'/> |
|
3915 + <env name='CPP' default='$(GNUCPP)' type='tool'/> |
|
3916 + <env name='CREATERFIFILE' default='$(PERL) $(SBS_HOME)/bin/createrfifile.pl ' type='script'/> |
|
3917 <env name='GNUAWK' default='$(GNUPREFIX)gawk$(DOTEXE)' type='tool' versionCommand='$(GNUAWK) --version' versionResult='GNU Awk [3-9].*'/> |
|
3918 - <env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='path'/> |
|
3919 - <env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='path'/> |
|
3920 + <env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='script'/> |
|
3921 + <env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='script'/> |
|
3922 <env name='RCOMP' default='$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)' type='tool'/> |
|
3923 - <env name='RVCT22BIN' type='path'/> |
|
3924 - <env name='RVCT22INC' type='path'/> |
|
3925 - <env name='RVCT22LIB' type='path'/> |
|
3926 - <env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='path'/> |
|
3927 + <env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='script'/> |
|
3928 |
|
3929 <!-- link to bld.inf and mmp platform names --> |
|
3930 <set name='TRADITIONAL_PLATFORM' value='GCCXML'/> |
|
3931 @@ -51,11 +50,13 @@ |
|
3932 <env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/> |
|
3933 |
|
3934 <!-- note that gccxml_cc1plus should be version checked, but I've yet to find a reliable way of doing this --> |
|
3935 - <set name='CC' value="$(EPOCROOT)/epoc32/tools/gccxml_cc1plus$(DOTEXE)" type='tool'/> |
|
3936 <set name='CDEFS' value='_UNICODE __SYMBIAN32__ __GCC32__ __EPOC32__ __MARM__ __MINGW32__ _STLP_LITTLE_ENDIAN __GCCXML__ __MARM_ARM4__ $(MMPDEFS)'/> |
|
3937 <set name='CFLAGS' value='-bi -nostdinc -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -UWIN32 -fshort-wchar -quiet -w '/> |
|
3938 |
|
3939 <!-- in support of TEMs - processed as if in an RVCT build --> |
|
3940 + <env name='RVCT22BIN' type='toolchainpath'/> |
|
3941 + <env name='RVCT22INC' type='toolchainpath'/> |
|
3942 + <env name='RVCT22LIB' type='toolchainpath'/> |
|
3943 <set name='RVCTBIN' value='$(RVCT22BIN)'/> |
|
3944 <set name='RVCTINC' value='$(RVCT22INC)'/> |
|
3945 <set name='RVCTLIB' value='$(RVCT22LIB)'/> |
|
3946 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/interfaces.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/interfaces.xml |
|
3947 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/interfaces.xml 2010-05-18 19:32:34.717348918 +0100 |
|
3948 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/interfaces.xml 2010-05-17 18:47:53.032843000 +0100 |
|
3949 @@ -5,15 +5,17 @@ |
|
3950 <var name="default.interfaces"> |
|
3951 <!-- interfaces corresponding to target types --> |
|
3952 |
|
3953 - <set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin textnotifier2 implib var var2 exexp kexe kdll kext klib ldd pdd pdl fsy resource none stringtable bitmap"/> |
|
3954 + <set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin plugin3 textnotifier2 implib var var2 exexp kexe kdll kext klib pdll ldd pdd pdl fsy resource none stringtable bitmap"/> |
|
3955 <set name="INTERFACE.exe" value="Symbian.exe"/> |
|
3956 <set name="INTERFACE.stdexe" value="Symbian.stdexe"/> |
|
3957 <set name="INTERFACE.stddll" value="Symbian.stddll"/> |
|
3958 <set name="INTERFACE.stdlib" value="Symbian.stdlib"/> |
|
3959 <set name="INTERFACE.dll" value="Symbian.dll"/> |
|
3960 + <set name="INTERFACE.pdll" value="Symbian.pdll"/> |
|
3961 <set name="INTERFACE.lib" value="Symbian.lib"/> |
|
3962 <set name="INTERFACE.ani" value="Symbian.ani"/> |
|
3963 <set name="INTERFACE.plugin" value="Symbian.plugin"/> |
|
3964 + <set name="INTERFACE.plugin3" value="Symbian.plugin3"/> |
|
3965 <set name="INTERFACE.textnotifier2" value="Symbian.textnotifier2"/> |
|
3966 <set name="INTERFACE.implib" value="Symbian.implib"/> |
|
3967 <set name="INTERFACE.var" value="Symbian.var"/> |
|
3968 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/locations.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/locations.xml |
|
3969 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/locations.xml 2010-05-18 19:32:34.717348918 +0100 |
|
3970 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/locations.xml 2010-05-17 18:47:53.032843000 +0100 |
|
3971 @@ -30,7 +30,7 @@ |
|
3972 <env name='SBS_GNUTOUCH' default='/bin/touch' type='tool'/> |
|
3973 <env name='SBS_GNUFIND' default='/usr/bin/find' type='tool'/> |
|
3974 <env name='SBS_GNUGREP' default='/bin/grep' type='tool'/> |
|
3975 - <env name='SBS_GNUSORT' default='/bin/sort' type='tool'/> |
|
3976 + <env name='SBS_GNUSORT' default='sort' type='tool'/> |
|
3977 <env name='SBS_SHELL' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bin/sh" type='tool'/> |
|
3978 <env name='SBS_ZIP' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bin/zip" type='tool'/> |
|
3979 <env name='SBS_UNZIP' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bin/unzip" type='tool'/> |
|
3980 @@ -72,11 +72,12 @@ |
|
3981 <env name='SBS_UNZIP' default="$(COREUTILSBINDIR)/unzip.exe" type='tool'/> |
|
3982 <env name='SBS_BVCPP' default="$(SBS_HOME)/$(HOSTPLATFORM_DIR)/bv/bin/cpp.exe" type='tool'/> |
|
3983 <env name='SBS_PERL' default='perl.exe' type='tool'/> |
|
3984 - <env name='SBS_PYTHON' default='$(SBS_HOME)/$(HOSTPLATFORM_DIR)/python252/python.exe' type='tool'/> |
|
3985 + <env name='SBS_PYTHON' default='python.exe' type='tool'/> |
|
3986 </var> |
|
3987 |
|
3988 <var name="default.locations" extends="hostplatform.locations"> |
|
3989 <env name='EPOCROOT' default='' type='path'/> |
|
3990 + <env name='SBS_HOME' default='' type='path'/> |
|
3991 <!-- Place where intermediate files are built --> |
|
3992 <env name='SBS_BUILD_DIR' default='$(EPOCROOT)/epoc32/build' type='path'/> |
|
3993 |
|
3994 @@ -107,7 +108,7 @@ |
|
3995 <set name='BASE_USER_DEFAULT_PLATFORMS' value='ARMV5 ARMV7 WINSCW'/> |
|
3996 |
|
3997 <set name='BUILD_INCLUDE' value=''/> |
|
3998 - <set name='CREATEVMAP' value='$(PYTHON) $(SBS_HOME)/bin/createvmap.py' type='tool'/> |
|
3999 + <set name='CREATEVMAP' value='$(PYTHON) $(SBS_HOME)/bin/createvmap.py' type='script'/> |
|
4000 <set name='CREATEVMAPCPP' value='$(SBS_BVCPP)' type='tool'/> |
|
4001 <set name='FEATURELISTFILES' value=''/> |
|
4002 <set name='FEATUREVARIANTNAME' value=''/> |
|
4003 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/make.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/make.xml |
|
4004 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/make.xml 2010-05-18 19:32:34.717348918 +0100 |
|
4005 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/make.xml 2010-05-17 18:47:53.032843000 +0100 |
|
4006 @@ -47,6 +47,9 @@ |
|
4007 |
|
4008 <!-- is the text output with -j buffered or scrambled? --> |
|
4009 <set name="scrambled" value="true"/> |
|
4010 + |
|
4011 + <!-- workaround for damaged log output from emake --> |
|
4012 + <set name="copylogfromannofile" value="false"/> |
|
4013 </var> |
|
4014 |
|
4015 <alias name="make" meaning="make_engine"/> |
|
4016 @@ -67,6 +70,9 @@ |
|
4017 <set name="build" value="$(EMAKE) HAVE_ORDERONLY= -r"/> |
|
4018 <set name="scrambled" value="false"/> |
|
4019 <set name='TALON_DESCRAMBLE' value=''/> |
|
4020 + |
|
4021 + <!-- workaround for damaged log output from emake --> |
|
4022 + <set name="copylogfromannofile" value="true"/> |
|
4023 </var> |
|
4024 |
|
4025 <alias name="emake" meaning="emake_engine"/> |
|
4026 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/msvc.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/msvc.xml |
|
4027 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/msvc.xml 2010-05-18 19:32:34.721348727 +0100 |
|
4028 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/msvc.xml 2010-05-17 18:47:53.032843000 +0100 |
|
4029 @@ -1,11 +1,11 @@ |
|
4030 <?xml version="1.0" encoding="ISO-8859-1"?> |
|
4031 <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd"> |
|
4032 - <!-- build configurations for MSVC compilers --> |
|
4033 + <!-- build variants for MSVC toolchains --> |
|
4034 <var name="tools_base" extends="root"> |
|
4035 <varRef ref="default.interfaces"/> |
|
4036 <varRef ref="default.locations"/> |
|
4037 |
|
4038 - <!-- picked up from the Environment --> |
|
4039 + <!-- toolchain tools --> |
|
4040 <env name='MS_CL' default='cl.exe' type='tool' versionCommand='$(MS_CL)' versionResult='Version 12\.[0-9]{2}\.[0-9]{4}'/> |
|
4041 <env name='MS_LINK' default='link.exe' type='tool' versionCommand='$(MS_LINK)' versionResult='Version 6\.[0-9]{2}.[0-9]{4}'/> |
|
4042 <env name='MS_LIB' default='lib.exe' type='tool' versionCommand='$(MS_LIB)' versionResult='Version 6\.[0-9]{2}.[0-9]{4}'/> |
|
4043 @@ -17,8 +17,14 @@ |
|
4044 |
|
4045 <!-- link to bld.inf and mmp platform names --> |
|
4046 <set name='TRADITIONAL_PLATFORM' value='TOOLS'/> |
|
4047 + |
|
4048 + <!-- interfaces --> |
|
4049 + <set name="INTERFACE.exe" value="msvctools.exe"/> |
|
4050 + <set name="INTERFACE.lib" value="msvctools.lib"/> |
|
4051 + |
|
4052 <set name='NMAKE' value='nmake'/> |
|
4053 <set name='NMAKEFLAGS' value='-nologo -x - '/> |
|
4054 + |
|
4055 <!-- tools options --> |
|
4056 <set name='OPT.BROWSEDB' value='-o'/> |
|
4057 <set name='OPT.BROWSEFILE' value='-FR'/> |
|
4058 @@ -32,7 +38,6 @@ |
|
4059 <set name='OPT.NOLOGO' value='-nologo'/> |
|
4060 <set name='OPT.OBJECTFILE' value='-Fo'/> |
|
4061 <set name='OPT.OUTFILE' value='-out:'/> |
|
4062 - <set name='OPT.PDBFILE' value='-Fd'/> |
|
4063 <set name='OPT.PREINCLUDE' value='-FI '/> |
|
4064 <set name='OPT.SUBSYSTEM' value='-subsystem:'/> |
|
4065 <set name='OPT.SYSINCLUDE' value='-I '/> |
|
4066 @@ -44,7 +49,7 @@ |
|
4067 <set name='CDEFS.REL' value='NDEBUG'/> |
|
4068 <set name='CFLAGS' value='$(OPT.COMPILE) $(OPT.NOLOGO) -Zp4 -GF'/> |
|
4069 <set name='CFLAGS.DEFAULT.WARNLEVEL' value='-W4'/> |
|
4070 - <set name='CFLAGS.DEB' value='-Zi -Od'/> |
|
4071 + <set name='CFLAGS.DEB' value='-Od'/> |
|
4072 <set name='CFLAGS.REL' value='-O1 -Op'/> |
|
4073 <set name='SHAREDFLAGS' value='kernel32.lib $(OPT.NOLOGO) -machine:IX86 -ignore:4089 -ignore:4005 -ignore:4098'/> |
|
4074 <set name='LD' value='$(MS_LINK)'/> |
|
4075 @@ -57,9 +62,6 @@ |
|
4076 <set name='BROWSEFLAGS' value='$(OPT.NOLOGO)'/> |
|
4077 <set name='PLATMACROS.WINDOWS' value='VC32 TOOLS MSVC6 MSVC600'/> |
|
4078 <set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/> |
|
4079 - <!-- interfaces --> |
|
4080 - <set name="INTERFACE.exe" value="msvctools.exe"/> |
|
4081 - <set name="INTERFACE.lib" value="msvctools.lib"/> |
|
4082 |
|
4083 <set name='RELEASEPATHROOT' value='$(EPOCROOT)/epoc32/release'/> |
|
4084 <set name='IMPORTLIBPATH' value='$(RELEASEPATHROOT)/tools/udeb'/> |
|
4085 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/root.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/root.xml |
|
4086 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/root.xml 2010-05-18 19:32:34.721348727 +0100 |
|
4087 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/root.xml 2010-05-17 18:47:53.032843000 +0100 |
|
4088 @@ -11,6 +11,8 @@ |
|
4089 --> |
|
4090 |
|
4091 <var name="root"> |
|
4092 + <env name='FLMDEBUG' default=''/> |
|
4093 + |
|
4094 <varRef ref="root.places"/> |
|
4095 <varRef ref="root.properties"/> |
|
4096 |
|
4097 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/rvct.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/rvct.xml |
|
4098 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/rvct.xml 2010-05-18 19:32:34.721348727 +0100 |
|
4099 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/rvct.xml 2010-05-17 18:47:53.032843000 +0100 |
|
4100 @@ -1,66 +1,62 @@ |
|
4101 <?xml version="1.0" encoding="ISO-8859-1"?> |
|
4102 <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd"> |
|
4103 - <!-- RVCT build variant for RVCT compilers --> |
|
4104 + <!-- build variant for RVCT ARM toolchains --> |
|
4105 <var name="rvct"> |
|
4106 <set name="TOOLCHAIN" value="RVCT"/> |
|
4107 + <set name="PLATMACROS.TOOLCHAIN" value="ARMCC"/> |
|
4108 + |
|
4109 + <!-- toolchain tools --> |
|
4110 + <set name="ARMAR" value="$(RVCTBIN)/armar$(DOTEXE)"/> |
|
4111 + <set name="ARMASM" value="$(RVCTBIN)/armasm$(DOTEXE)"/> |
|
4112 + <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)"/> |
|
4113 + <set name="ARMLD" value="$(RVCTBIN)/armlink$(DOTEXE)"/> |
|
4114 + <set name="FROMELF" value="$(RVCTBIN)/fromelf$(DOTEXE)"/> |
|
4115 + |
|
4116 <set name="CC" value="$(ARMCC)"/> |
|
4117 <set name="LD" value="$(ARMLD)"/> |
|
4118 <set name="ASM" value="$(ARMASM)"/> |
|
4119 <set name="AR" value="$(ARMAR)"/> |
|
4120 - <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)"/> |
|
4121 - <set name="ARMLD" value="$(RVCTBIN)/armlink$(DOTEXE)"/> |
|
4122 - <set name="ARMASM" value="$(RVCTBIN)/armasm$(DOTEXE)"/> |
|
4123 - <set name="ARMAR" value="$(RVCTBIN)/armar$(DOTEXE)"/> |
|
4124 - <set name="FROMELF" value="$(RVCTBIN)/fromelf$(DOTEXE)"/> |
|
4125 + |
|
4126 <set name="AAPCS_OPTION" value="--apcs /inter"/> |
|
4127 <set name="ARCHIVER_CREATE_OPTION" value="--create"/> |
|
4128 <set name="ARM_INSTRUCTION_SET" value="--arm"/> |
|
4129 <set name="ASM_OUTPUT_OPTION" value="-o"/> |
|
4130 <set name="ASSEMBLER_LISTING_OPTION" value="-S"/> |
|
4131 <set name="BPABI_OPTION" value="--bpabi"/> |
|
4132 + <set name="CC.DWARF2" value="--dwarf2"/> |
|
4133 + <set name="CC.DWARF3" value="--dwarf3"/> |
|
4134 <set name="CC_ERRORS_CONTROL_OPTION" value="--diag_error 1267"/> |
|
4135 <set name="CC_WARNINGS_CONTROL_OPTION" value="--diag_suppress 161,611,654,997,1152,1300,1464,1488,2523,6318,6331"/> |
|
4136 - <set name="C_LANG_OPTION" value=""/> |
|
4137 + <set name="CFLAGS" value=""/> |
|
4138 + <set name="CIADEFS" value="__CIA__"/> |
|
4139 + <set name="CODE_SEGMENT_START" value=""/> |
|
4140 <set name="COMMANDFILE_OPTION" value="--via "/> |
|
4141 + <set name="COMPILER_CIA_FLAGS" value=""/> |
|
4142 + <set name="COMPILER_DEFINES" value=""/> |
|
4143 + <set name="COMPILER_FPU_OPTION" value="--fpu "/> |
|
4144 + <set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/> |
|
4145 + <set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-J"/> |
|
4146 + <set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/> |
|
4147 <set name="COMPILE_ONLY_OPTION" value="-c"/> |
|
4148 <set name="CPP_LANG_OPTION" value="--cpp"/> |
|
4149 + <set name="C_LANG_OPTION" value=""/> |
|
4150 + <set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/> |
|
4151 <set name="DEBUG_OPTIMISATION" value="-O0"/> |
|
4152 <set name="DEPEND_OPTION" value="--depend_format=unix --depend"/> |
|
4153 <set name="ENUM_OPTION" value="--enum_is_int"/> |
|
4154 + <set name="EXCEPTIONS" value="--exceptions --exceptions_unwind"/> |
|
4155 <set name="EXPORT_VTBL_OPTION" value="--export_all_vtbl"/> |
|
4156 + <set name="EXTRA_CC_OPTION" value=""/> |
|
4157 <set name="EXTRA_LD_OPTION" value="--datacompressor=off"/> |
|
4158 <set name="FPMODE_OPTION" value="--fpmode ieee_no_fenv"/> |
|
4159 - <set name="LD_ERRORS_CONTROL_OPTION" value=""/> |
|
4160 - <set name="LD_WARNINGS_CONTROL_OPTION" value="--diag_suppress 6331"/> |
|
4161 - <set name="LISTING_OPTION" value="-S"/> |
|
4162 - <set name="EXCEPTIONS" value="--exceptions --exceptions_unwind"/> |
|
4163 - <set name="NO_EXCEPTIONS" value="--no_exceptions --no_exceptions_unwind"/> |
|
4164 - <set name="PREINCLUDE_OPTION" value="--preinclude"/> |
|
4165 - <set name="PREPROCESSOR_OPTION" value="-E"/> |
|
4166 - <set name="REL_OPTIMISATION" value="-O2"/> |
|
4167 - <set name="STDLIB_OPTION" value="--no_scanlib"/> |
|
4168 - <set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value="--dllimport_runtime"/> |
|
4169 - <set name="RW_BASE_OPTION" value="--rw-base"/> |
|
4170 - <set name="CODE_SEGMENT_START" value=""/> |
|
4171 - <set name="PREINCLUDE" value="$(RVCT_PRE_INCLUDE)"/> |
|
4172 - <set name="CC.DWARF2" value="--dwarf2"/> |
|
4173 - <set name="CC.DWARF3" value="--dwarf3"/> |
|
4174 + <set name="HEADER_FILES_CONTROL_OPTION" value=""/> |
|
4175 + <set name="INSTRUCTION_SET" value=""/> |
|
4176 <set name="LD.ARMV5" value=""/> |
|
4177 <set name="LD.ARMV6" value=""/> |
|
4178 <set name="LD.ARMV7" value=""/> |
|
4179 - <set name="ARMMACROS.VAR" value=""/> |
|
4180 - <set name="CFLAGS" value=""/> |
|
4181 - <set name="CIADEFS" value="__CIA__"/> |
|
4182 - <append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __ARMCC__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/> |
|
4183 - <set name="COMPILER_CIA_FLAGS" value=""/> |
|
4184 - <set name="COMPILER_FPU_FLAGS" value="--fpu $(ARMFPU)"/> |
|
4185 - <set name="COMPILER_DEFINES" value=""/> |
|
4186 - <set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/> |
|
4187 - <set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-J"/> |
|
4188 - <set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/> |
|
4189 - <set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/> |
|
4190 - <set name="EXTRA_CC_OPTION" value=""/> |
|
4191 - <set name="HEADER_FILES_CONTROL_OPTION" value=""/> |
|
4192 + <set name="LD_ERRORS_CONTROL_OPTION" value=""/> |
|
4193 + <set name="LD_WARNINGS_CONTROL_OPTION" value="--diag_suppress 6331"/> |
|
4194 + <set name="LD_WARNINGS_SUPPRESSION_ARMLIBS" value="--diag_suppress 6780"/> |
|
4195 <set name="LIBPATH" value=""/> |
|
4196 <set name="LIBRARY" value=""/> |
|
4197 <set name="LICENSERETRY_OPTION" value=""/> |
|
4198 @@ -69,25 +65,35 @@ |
|
4199 <set name="LINKER_DEFAULT_LIBS" value=""/> |
|
4200 <set name="LINKER_DEFAULT_LIB_PATHS" value=""/> |
|
4201 <set name="LINKER_ENTRY_OPTION" value="--entry"/> |
|
4202 - <set name="LINKER_GROUP_START_OPTION" value=""/> |
|
4203 <set name="LINKER_GROUP_END_OPTION" value=""/> |
|
4204 + <set name="LINKER_GROUP_START_OPTION" value=""/> |
|
4205 <set name="LINKER_MISC_FLAGS" value="$(LICENSERETRY_OPTION)"/> |
|
4206 <set name="LINKER_NODEBUG_OPTION" value=""/> |
|
4207 <set name="LINKER_SCRIPT_FILE_OPTION" value=""/> |
|
4208 - <set name="LINKER_SYMBOLS_OPTION" value="--symbols"/> |
|
4209 <set name="LINKER_SYMBOLS_FILE_OPTION" value="--list"/> |
|
4210 + <set name="LINKER_SYMBOLS_OPTION" value="--symbols"/> |
|
4211 + <set name="LISTING_OPTION" value="-S"/> |
|
4212 + <set name="NO_EXCEPTIONS" value="--no_exceptions --no_exceptions_unwind"/> |
|
4213 + <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/> |
|
4214 + <set name="PREINCLUDE" value="$(RVCT_PRE_INCLUDE)"/> |
|
4215 + <set name="PREINCLUDE_OPTION" value="--preinclude"/> |
|
4216 + <set name="PREPROCESSOR_OPTION" value="-E"/> |
|
4217 + <set name="REL_OPTIMISATION" value="-O2"/> |
|
4218 + <set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value="--dllimport_runtime"/> |
|
4219 + <set name="RW_BASE" value="$(RW_BASE_OPTION) 0x400000"/> |
|
4220 + <set name="RW_BASE_OPTION" value="--rw-base"/> |
|
4221 <set name="SHARED_OBJECT_OPTION" value="--dll"/> |
|
4222 <set name="SID" value=""/> |
|
4223 <set name="SO_NAME_OPTION" value="--soname"/> |
|
4224 <set name="STATIC_LIBS_PATH" value="$(RVCTLIB)/armlib"/> |
|
4225 <set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/> |
|
4226 - <set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/> |
|
4227 + <set name="STDLIB_OPTION" value="--no_scanlib"/> |
|
4228 <set name="SUPPORTS_ABIV1_IMPLIBS" value="1"/> |
|
4229 - <set name="TARGET_RELOCATION_OPTION" value="" /> |
|
4230 + <set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/> |
|
4231 <set name="SYMVER_OPTION" value="--symver_soname"/> |
|
4232 + <set name="TARGET_RELOCATION_OPTION" value=""/> |
|
4233 <set name="TEMP_FILES_OPTION" value=""/> |
|
4234 <set name="THUMB_INSTRUCTION_SET" value="--thumb"/> |
|
4235 - <set name="INSTRUCTION_SET" value=""/> |
|
4236 <set name="TRANASM_FLAGS" value="-n -s"/> |
|
4237 <set name="TRANASM_INPUT_OPTION" value=""/> |
|
4238 <set name="TRANASM_OUTPUT_OPTION" value="-o="/> |
|
4239 @@ -98,10 +104,7 @@ |
|
4240 <set name="USERINCLUDE" value=""/> |
|
4241 <set name="USER_LIBS_PATH_OPTION" value="--userlibpath"/> |
|
4242 <set name="VFE_OPTION" value="--no_vfe"/> |
|
4243 - <set name="PLATMACROS.WINDOWS" value="ARMCC EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/> |
|
4244 - <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/> |
|
4245 - <set name="PLATMACROS.CONFIG" value=""/> |
|
4246 - <set name="PLATMACROS.VAR" value=""/> |
|
4247 - <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/> |
|
4248 + |
|
4249 + <append name="CDEFS" value="__ARMCC__"/> |
|
4250 </var> |
|
4251 </build> |
|
4252 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/variants.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/variants.xml |
|
4253 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/variants.xml 2010-05-18 19:32:34.721348727 +0100 |
|
4254 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/variants.xml 2010-05-17 18:47:53.036842000 +0100 |
|
4255 @@ -6,10 +6,23 @@ |
|
4256 |
|
4257 --> |
|
4258 |
|
4259 + <!-- This variant enables building win32 tools in Linux. Tools2 on Linux only --> |
|
4260 + <var name="win32"> |
|
4261 + <set name='TOOLS2WIN32' value='1'/> |
|
4262 + <env name='SBS_MINGW_LINUX_PREFIX' default='i586-mingw32msvc'/> |
|
4263 + <env name='GCC' default='$(SBS_MINGW_LINUX_PREFIX)-g++' type='tool'/> |
|
4264 + <env name='ARCHIVER' default='$(SBS_MINGW_LINUX_PREFIX)-ar' type='tool'/> |
|
4265 + <env name='RANLIB' default='$(SBS_MINGW_LINUX_PREFIX)-ranlib' type='tool'/> |
|
4266 + <set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release/tools2/$(VARIANTTYPE)'/> |
|
4267 + <set name='DOTEXE' value='.exe'/> |
|
4268 + <set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/> |
|
4269 + </var> |
|
4270 + |
|
4271 <!-- This variant turns debug info on for arm only --> |
|
4272 <var name="debug_info"> |
|
4273 <set name='DEBUG_INFO' value='1'/> |
|
4274 </var> |
|
4275 + |
|
4276 <!-- Run this variant to turn on trace compiler --> |
|
4277 <var name="tracecompiler"> |
|
4278 <set name='USE_TRACE_COMPILER' value='1'/> |
|
4279 @@ -77,67 +91,40 @@ |
|
4280 </var> |
|
4281 |
|
4282 <var name="gcce4_3_2" extends="gcce_base"> |
|
4283 - <env name="GCCEBIN" type="path" /> |
|
4284 - <env name="GCCEVERSION" default="$(TOOLCHAINVERSION)" /> |
|
4285 - <set name="TOOLCHAINVERSION" value="4.3.2" /> |
|
4286 - <set name="OWN_LIBRARY_OPTION" value=""/> |
|
4287 - <set name="STATIC_LIBS_LIST" value=""/> |
|
4288 + <env name="SBS_GCCE432BIN" type="toolchainpath" /> |
|
4289 + <set name="GCCEBIN" value="$(SBS_GCCE432BIN)" /> |
|
4290 + <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.2"/> |
|
4291 <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/> |
|
4292 - <set name="ARMLIBS" value=""/> |
|
4293 - <set name="CC.OPT.SOFTVFP_MAYBE_VFPV2" value="-m"/> |
|
4294 - <set name="CC.VAL.SOFTVFP_MAYBE_VFPV2" value="soft-float"/> |
|
4295 - <set name="CC.ARMV5" value="-march=armv5t"/> |
|
4296 - <set name="LD.ARMV5" value=""/> |
|
4297 - <set name="LD.ARMV6" value=""/> |
|
4298 - <set name="LD.ARMV7" value=""/> |
|
4299 - <set name="RELOCATABLE_IMAGE_OPTION" value=""/> |
|
4300 - <set name="RVCTLIB" value=""/> |
|
4301 - <set name="CC.NO_UNALIGNED_ACCESS" value=""/> |
|
4302 - <set name="CC.SOFTVFP_MAYBE_VFPV2" value=""/> |
|
4303 - <set name="SPLIT_OPTION" value=""/> |
|
4304 - <set name="NEED_ENTRYPOINT_LIBRARY" value=""/> |
|
4305 - <set name="RVCTBIN" value="" /> |
|
4306 - <set name="RVCTINC" value="" /> |
|
4307 - <set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/> |
|
4308 - <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/> |
|
4309 - <set name="NEED_ENTRYPOINT_LIBRARY" value="" /> |
|
4310 + <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/> |
|
4311 + <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/> |
|
4312 </var> |
|
4313 |
|
4314 <var name="gcce4_3_3" extends="gcce_base"> |
|
4315 - <env name="GCCEBIN" type="path" /> |
|
4316 - <env name="GCCEVERSION" default="$(TOOLCHAINVERSION)" /> |
|
4317 - <set name="TOOLCHAINVERSION" value="4.3.3" /> |
|
4318 - <set name="OWN_LIBRARY_OPTION" value=""/> |
|
4319 - <set name="STATIC_LIBS_LIST" value=""/> |
|
4320 + <env name="SBS_GCCE433BIN" type="toolchainpath" /> |
|
4321 + <set name="GCCEBIN" value="$(SBS_GCCE433BIN)" /> |
|
4322 + <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.3"/> |
|
4323 <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/> |
|
4324 - <set name="ARMLIBS" value=""/> |
|
4325 - <set name="CC.OPT.SOFTVFP_MAYBE_VFPV2" value="-m"/> |
|
4326 - <set name="CC.VAL.SOFTVFP_MAYBE_VFPV2" value="soft-float"/> |
|
4327 - <set name="CC.ARMV5" value="-march=armv5t"/> |
|
4328 - <set name="LD.ARMV5" value=""/> |
|
4329 - <set name="LD.ARMV6" value=""/> |
|
4330 - <set name="LD.ARMV7" value=""/> |
|
4331 - <set name="RELOCATABLE_IMAGE_OPTION" value=""/> |
|
4332 - <set name="RVCTLIB" value=""/> |
|
4333 - <set name="CC.NO_UNALIGNED_ACCESS" value=""/> |
|
4334 - <set name="CC.SOFTVFP_MAYBE_VFPV2" value=""/> |
|
4335 - <set name="SPLIT_OPTION" value=""/> |
|
4336 - <set name="NEED_ENTRYPOINT_LIBRARY" value=""/> |
|
4337 - <set name="RVCTBIN" value="" /> |
|
4338 - <set name="RVCTINC" value="" /> |
|
4339 - <set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/> |
|
4340 - <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/> |
|
4341 - <set name="NEED_ENTRYPOINT_LIBRARY" value="" /> |
|
4342 + <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/> |
|
4343 + <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/> |
|
4344 + </var> |
|
4345 + |
|
4346 + <var name="gcce4_4_1" extends="gcce_base"> |
|
4347 + <env name="SBS_GCCE441BIN" type="toolchainpath" /> |
|
4348 + <set name="GCCEBIN" value="$(SBS_GCCE441BIN)" /> |
|
4349 + <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.4.1"/> |
|
4350 + <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/> |
|
4351 + <set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_4"/> |
|
4352 + <set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_4__"/> |
|
4353 </var> |
|
4354 |
|
4355 <var name="rvct2_2" extends="rvct"> |
|
4356 - <env name="RVCT22BIN" type="path"/> |
|
4357 - <env name="RVCT22INC" type="path"/> |
|
4358 - <env name="RVCT22LIB" type="path"/> |
|
4359 + <env name="RVCT22BIN" type="toolchainpath"/> |
|
4360 + <env name="RVCT22INC" type="toolchainpath"/> |
|
4361 + <env name="RVCT22LIB" type="toolchainpath"/> |
|
4362 <set name="RVCTBIN" value="$(RVCT22BIN)"/> |
|
4363 <set name="RVCTINC" value="$(RVCT22INC)"/> |
|
4364 <set name="RVCTLIB" value="$(RVCT22LIB)"/> |
|
4365 - <set name="ARMCC" value=""$(RVCTBIN)/armcc$(DOTEXE)"" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/> |
|
4366 + <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/> |
|
4367 <set name="OWN_LIBRARY_OPTION" value="-Ono_known_library"/> |
|
4368 <set name="RELOCATABLE_IMAGE_OPTION" value="--reloc"/> |
|
4369 <set name="SPLIT_OPTION" value="--split"/> |
|
4370 @@ -147,23 +134,24 @@ |
|
4371 <set name="STATIC_LIBS_LIST" value="h_t__uf.l(switch8.o)"/> |
|
4372 <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct2_2.dso drtrvct2_2.dso"/> |
|
4373 <set name="USER_STATIC_RUNTIME_LIB" value="usrt2_2.lib"/> |
|
4374 + <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_2_2.lib"/> |
|
4375 <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt2_2.lib"/> |
|
4376 - <set name="USRTLIB" value="usrt2_2.lib"/> |
|
4377 <set name="NEED_ENTRYPOINT_LIBRARY" value="False"/> |
|
4378 <set name="CC.NO_UNALIGNED_ACCESS" value="--memaccess -UL41"/> |
|
4379 <set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/> |
|
4380 + <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/> |
|
4381 <set name="CC.ARMV5" value="--cpu 5T"/> |
|
4382 <set name="CC.ARMV6" value="--cpu 6"/> |
|
4383 </var> |
|
4384 |
|
4385 <var name="rvct3_1" extends="rvct"> |
|
4386 - <env name="RVCT31BIN" type="path"/> |
|
4387 - <env name="RVCT31INC" type="path"/> |
|
4388 - <env name="RVCT31LIB" type="path"/> |
|
4389 + <env name="RVCT31BIN" type="toolchainpath"/> |
|
4390 + <env name="RVCT31INC" type="toolchainpath"/> |
|
4391 + <env name="RVCT31LIB" type="toolchainpath"/> |
|
4392 <set name="RVCTBIN" value="$(RVCT31BIN)"/> |
|
4393 <set name="RVCTINC" value="$(RVCT31INC)"/> |
|
4394 <set name="RVCTLIB" value="$(RVCT31LIB)"/> |
|
4395 - <set name="ARMCC" value=""$(RVCTBIN)/armcc$(DOTEXE)"" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/> |
|
4396 + <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/> |
|
4397 <set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/> |
|
4398 <set name="RELOCATABLE_IMAGE_OPTION" value=""/> |
|
4399 <set name="SPLIT_OPTION" value=""/> |
|
4400 @@ -173,47 +161,48 @@ |
|
4401 <set name="STATIC_LIBS_LIST" value="h_5.l"/> |
|
4402 <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/> |
|
4403 <set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/> |
|
4404 + <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_3_1.lib"/> |
|
4405 <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/> |
|
4406 - <set name="USRTLIB" value="usrt3_1.lib"/> |
|
4407 <set name="NEED_ENTRYPOINT_LIBRARY" value="True"/> |
|
4408 <set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/> |
|
4409 <set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp"/> |
|
4410 + <set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/> |
|
4411 <set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp"/> |
|
4412 - <set name="CC.ARMV5" value="--cpu=5TE"/> |
|
4413 - <set name="CC.ARMV6" value="--cpu=6"/> |
|
4414 - <set name="CC.ARMV7" value="--cpu=7-A"/> |
|
4415 + <set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/> |
|
4416 + <set name="CC.ARMV5" value="--cpu 5TE"/> |
|
4417 + <set name="CC.ARMV6" value="--cpu 6"/> |
|
4418 + <set name="CC.ARMV7" value="--cpu 7-A"/> |
|
4419 </var> |
|
4420 |
|
4421 <var name="rvct4_0" extends="rvct"> |
|
4422 - <env name="RVCT40BIN" type="path"/> |
|
4423 - <env name="RVCT40INC" type="path"/> |
|
4424 - <env name="RVCT40LIB" type="path"/> |
|
4425 + <env name="RVCT40BIN" type="toolchainpath"/> |
|
4426 + <env name="RVCT40INC" type="toolchainpath"/> |
|
4427 + <env name="RVCT40LIB" type="toolchainpath"/> |
|
4428 <set name="RVCTBIN" value="$(RVCT40BIN)"/> |
|
4429 <set name="RVCTINC" value="$(RVCT40INC)"/> |
|
4430 <set name="RVCTLIB" value="$(RVCT40LIB)"/> |
|
4431 - <set name="ARMCC" value=""$(RVCTBIN)/armcc$(DOTEXE)"" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/> |
|
4432 + <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/> |
|
4433 <set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/> |
|
4434 <set name="RELOCATABLE_IMAGE_OPTION" value=""/> |
|
4435 <set name="SPLIT_OPTION" value=""/> |
|
4436 - <set name="STDLIB_OPTION" value=""/> |
|
4437 <set name="PLATMACROS.VAR" value="ARMCC_4 ARMCC_4_0"/> |
|
4438 <set name="ARMMACROS.VAR" value="__ARMCC_4__ __ARMCC_4_0__"/> |
|
4439 <set name="SYMBIAN_LINK_FLAGS.VAR" value="--override_visibility"/> |
|
4440 <set name="STATIC_LIBS_LIST" value=""/> |
|
4441 <set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/> |
|
4442 <set name="USER_STATIC_RUNTIME_LIB" value="usrt4_0.lib"/> |
|
4443 + <set name="USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS" value="usrt_nx_4_0.lib"/> |
|
4444 <set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt4_0.lib"/> |
|
4445 - <set name="USRTLIB" value="usrt4_0.lib"/> |
|
4446 <set name="NEED_ENTRYPOINT_LIBRARY" value="True"/> |
|
4447 <set name="CC.NO_UNALIGNED_ACCESS" value="--no_unaligned_access"/> |
|
4448 <set name="CC.SOFTVFP_MAYBE_VFPV2" value="softvfp+vfpv2"/> |
|
4449 + <set name="PL.SOFTVFP_MAYBE_VFPV2" value="vfpv2"/> |
|
4450 <set name="CC.SOFTVFP_MAYBE_VFPV3" value="softvfp+vfpv3"/> |
|
4451 - <set name="CC.ARMV5" value="--cpu=5TE"/> |
|
4452 - <set name="CC.ARMV6" value="--cpu=6"/> |
|
4453 - <set name="CC.ARMV7" value="--cpu=7-A"/> |
|
4454 - <set name="LD.ARMV5" value="$(CC.ARMV5)"/> |
|
4455 - <set name="LD.ARMV6" value="$(CC.ARMV6)"/> |
|
4456 - <set name="LD.ARMV7" value="$(CC.ARMV7)"/> |
|
4457 + <!-- Not supported yet : <set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv3"/> --> |
|
4458 + <set name="PL.SOFTVFP_MAYBE_VFPV3" value="vfpv2"/> |
|
4459 + <set name="CC.ARMV5" value="--cpu 5TE"/> |
|
4460 + <set name="CC.ARMV6" value="--cpu 6"/> |
|
4461 + <set name="CC.ARMV7" value="--cpu 7-A"/> |
|
4462 </var> |
|
4463 |
|
4464 <var name="urel"> |
|
4465 @@ -262,4 +251,17 @@ |
|
4466 <set name='OPTION_CW' value='-cwd include'/> |
|
4467 </var> |
|
4468 |
|
4469 + <!-- Variant to allow GCCE-built binaries to be created in epoc32/release/gcce, |
|
4470 + epoc32/release/gccev6 and epoc32/release/gccev7 --> |
|
4471 + <var name="release_gcce"> |
|
4472 + <set name="VARIANTPLATFORM" value="gcce" /> |
|
4473 + <set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/> |
|
4474 + <set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/> |
|
4475 + </var> |
|
4476 + <var name="release_gccev6" extends="release_gcce" > |
|
4477 + <set name="VARIANTPLATFORM" value="gccev6" /> |
|
4478 + </var> |
|
4479 + <var name="release_gccev7" extends="release_gcce" > |
|
4480 + <set name="VARIANTPLATFORM" value="gccev7" /> |
|
4481 + </var> |
|
4482 </build> |
|
4483 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/winscw.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/winscw.xml |
|
4484 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/config/winscw.xml 2010-05-18 19:32:34.721348727 +0100 |
|
4485 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/config/winscw.xml 2010-05-17 18:47:53.036842000 +0100 |
|
4486 @@ -1,24 +1,31 @@ |
|
4487 <?xml version="1.0" encoding="ISO-8859-1"?> |
|
4488 <build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd"> |
|
4489 - <!-- build configurations for Metrowerks Emulator compilers --> |
|
4490 + <!-- build variants for CodeWarrior toolchains --> |
|
4491 <var name="winscw_base" extends="root"> |
|
4492 <varRef ref="default.interfaces"/> |
|
4493 <varRef ref="default.locations"/> |
|
4494 - <!-- picked up from the Environment --> |
|
4495 - <env name='CHECKLIB' default='$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)' type='tool'/> |
|
4496 - <env name='EFREEZE' default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type='tool'/> |
|
4497 - <env name='BMCONV' default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type='tool'/> |
|
4498 - <env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='path'/> |
|
4499 - <env name='MWCC' default='mwccsym2$(DOTEXE)' type='tool' versionCommand='$(MWCC) -version' versionResult='Version 3.2.*'/> |
|
4500 - <env name='MWLD' default='mwldsym2$(DOTEXE)' type='tool' versionCommand='$(MWLD) -version' versionResult='Version 3.2.*'/> |
|
4501 - <env name='MWWINRC' default='mwwinrc$(DOTEXE)' type='tool' versionCommand='$(MWWINRC) -version' versionResult='Version 3.2.*'/> |
|
4502 - |
|
4503 - <env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='path'/> |
|
4504 - <env name='RCOMP' default='$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)' type='tool'/> |
|
4505 - <env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='path'/> |
|
4506 + |
|
4507 + <!-- toolchain tools --> |
|
4508 + <env name="MWCC" default="mwccsym2$(DOTEXE)" type="tool" versionCommand="$(MWCC) -version" versionResult="Version 3.2.*"/> |
|
4509 + <env name="MWLD" default="mwldsym2$(DOTEXE)" type="tool" versionCommand="$(MWLD) -version" versionResult="Version 3.2.*"/> |
|
4510 + <env name="MWWINRC" default="mwwinrc$(DOTEXE)" type="tool" versionCommand="$(MWWINRC) -version" versionResult="Version 3.2.*"/> |
|
4511 + |
|
4512 + <set name="CC" value="$(MWCC)"/> |
|
4513 + <set name="LD" value="$(MWLD)"/> |
|
4514 + <set name="RC" value="$(MWWINRC)"/> |
|
4515 + |
|
4516 + <!-- tools and scripts --> |
|
4517 + <env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/> |
|
4518 + <env name="CHECKLIB" default="$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)" type="tool"/> |
|
4519 + <env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="script"/> |
|
4520 + <env name="MAKEDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl" type="script"/> |
|
4521 + <env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="script"/> |
|
4522 + <env name="RCOMP" default="$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)" type="tool"/> |
|
4523 + <env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/> |
|
4524 + <env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/> |
|
4525 |
|
4526 <!-- link to bld.inf and mmp platform names --> |
|
4527 - <set name='TRADITIONAL_PLATFORM' value='WINSCW'/> |
|
4528 + <set name="TRADITIONAL_PLATFORM" value="WINSCW"/> |
|
4529 |
|
4530 <!-- interfaces --> |
|
4531 <set name="INTERFACE.ani" value="Emulator.ani"/> |
|
4532 @@ -26,6 +33,7 @@ |
|
4533 <set name="INTERFACE.exe" value="Emulator.exe"/> |
|
4534 <set name="INTERFACE.stdexe" value="Emulator.stdexe"/> |
|
4535 <set name="INTERFACE.dll" value="Emulator.dll"/> |
|
4536 + <set name="INTERFACE.pdll" value="Emulator.pdll"/> |
|
4537 <set name="INTERFACE.stddll" value="Emulator.stddll"/> |
|
4538 <set name="INTERFACE.exexp" value="Emulator.exexp"/> |
|
4539 <set name="INTERFACE.fsy" value="Emulator.fsy"/> |
|
4540 @@ -40,100 +48,100 @@ |
|
4541 <set name="INTERFACE.pdd" value="Emulator.pdd"/> |
|
4542 <set name="INTERFACE.pdl" value="Emulator.pdl"/> |
|
4543 <set name="INTERFACE.plugin" value="Emulator.plugin"/> |
|
4544 + <set name="INTERFACE.plugin3" value="Emulator.plugin3"/> |
|
4545 <set name="INTERFACE.resource" value="Emulator.resource"/> |
|
4546 <set name="INTERFACE.textnotifier2" value="Emulator.textnotifier2"/> |
|
4547 <set name="INTERFACE.var" value="Emulator.var"/> |
|
4548 - <set name='CC' value='$(MWCC)'/> |
|
4549 - <set name='CDEFS' value='__SYMBIAN32__ __CW32__ __WINS__ __WINSCW__ __SUPPORT_CPP_EXCEPTIONS__ _UNICODE $(MMPDEFS)'/> |
|
4550 - <set name='CFLAGS' value='-c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source'/> |
|
4551 - <set name='CW_DEFAULT_LIBS' value='gdi32.lib user32.lib kernel32.lib'/> |
|
4552 - <set name='CW_RUNTIME_STATIC' value='msl_all_static_mse_symbian_d.lib'/> |
|
4553 - <set name='CW_RUNTIME_NONSTATIC' value='MSL_All_x86_Symbian_D.lib'/> |
|
4554 - <set name='DEFAULT_NORMAL_NEWLIB' value='scppnwdl.lib'/> |
|
4555 - <set name='DEFAULT_SYSTEM_NEWLIB' value='scppnwdl_kern.lib'/> |
|
4556 - <set name='EXPORT_TYPE' value='dllexport'/> |
|
4557 - <set name='LD' value='$(MWLD)'/> |
|
4558 - <set name='LFLAGS' value='-msgstyle gcc -stdlib -subsystem windows'/> |
|
4559 - <set name='LFLAGS_INFGEN' value='-S -show only,names,unmangled,verbose '/> |
|
4560 - <set name='LFLAGS_SYMGEN' value='-S -show only,names,verbose '/> |
|
4561 - <set name='LINKPATH' value='winscw/udeb'/> |
|
4562 - <set name='LISTING_OPTION' value='-S'/> |
|
4563 - <set name='MMPDEFS' value=''/> |
|
4564 - <set name='EPOCSTACKSIZE' value=''/> |
|
4565 - <set name='NMAKE' value='nmake'/> |
|
4566 - <set name='NMAKEFLAGS' value='-nologo -x - '/> |
|
4567 - <set name='OPT.ADDCOMMAND' value='-addcommand '/> |
|
4568 - <set name='OPT.CHECKLIB.STDCPP' value='stdc++'/> |
|
4569 - <set name='OPT.CHECKLIB.SYMCPP' value='symc++'/> |
|
4570 - <set name='OPT.CHECKLIB.WIN32' value='--coff'/> |
|
4571 - <set name='OPT.HEAPCOMMIT' value='-heapcommit='/> |
|
4572 - <set name='OPT.DEFINE' value='-d '/> |
|
4573 - <set name='OPT.DEFFILE' value='-f '/> |
|
4574 - <set name='OPT.DEPEND' value='-gccdepends -MD '/> |
|
4575 - <set name='OPT.EXPORT' value='-export '/> |
|
4576 - <set name='OPT.HEAPRESERVE' value='-heapreserve='/> |
|
4577 - <set name='OPT.IMAGEBASE' value='-imagebase '/> |
|
4578 - <set name='OPT.IMPLIB' value='-implib '/> |
|
4579 - <set name='OPT.IMPORTLIB' value='-importlib '/> |
|
4580 - <set name='OPT.LIBFILE' value='-l'/> |
|
4581 - <set name='OPT.LIBPATH' value='-l '/> |
|
4582 - <set name='OPT.LISTING' value='-S -show source,unmangled,comments '/> |
|
4583 - <set name='OPT.MENTRYPOINT' value='-m '/> |
|
4584 - <set name='OPT.MAINENTRYPOINT' value='-main '/> |
|
4585 - <set name='OPT.MAP' value='-map '/> |
|
4586 - <set name='OPT.NOCOMPACTIMPORTLIB' value='-nocompactimportlib '/> |
|
4587 - <set name='OPT.NOENTRY' value='-noentry '/> |
|
4588 - <set name='OPT.NOIMPLIB' value='-noimplib '/> |
|
4589 - <set name='OPT.NOSTDINC' value='-nostdinc '/> |
|
4590 - <set name='OPT.OUT' value='-o '/> |
|
4591 - <set name='OPT.PREINCLUDE' value='-include '/> |
|
4592 - <set name='OPT.RUNTIME' value='-runtime '/> |
|
4593 - <set name='OPT.SEARCH' value='-search'/> |
|
4594 - <set name='OPT.SHARED' value='-shared '/> |
|
4595 - <set name='OPT.SPLITINCLUDE' value='-i-'/> |
|
4596 - <set name='OPT.STATICLIBRARY' value='-library '/> |
|
4597 - <set name='OPT.STDINC' value='-stdinc '/> |
|
4598 - <set name='OPT.STDLIB' value='-stdlib '/> |
|
4599 - <set name='OPT.SYM' value='-sym '/> |
|
4600 - <set name='OPT.SYSINCLUDE' value='-i '/> |
|
4601 - <set name='OPT.USERINCLUDE' value='-i '/> |
|
4602 - <set name='OPT.WCHAR' value='-wchar_t '/> |
|
4603 - <set name='OPT.WARNINGS' value='-warnings '/> |
|
4604 - <set name='OUTPUTPATH' value='$(SBS_BUILD_DIR)'/> |
|
4605 - <set name='BLDINF_OUTPUTPATH' value='$(SBS_BUILD_DIR)'/> |
|
4606 - <set name='RC' value='$(MWWINRC)'/> |
|
4607 - <set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release'/> |
|
4608 - <set name='SBSV1MAKE' value='$(EPOCROOT)/epoc32/tools/make$(DOTEXE)'/> |
|
4609 - <set name='STDCPP_DEF' value='__SYMBIAN_STDCPP_SUPPORT__'/> |
|
4610 - <set name='STDCPP_INCLUDE' value='$(EPOCINCLUDE)/stdapis'/> |
|
4611 - <set name='STDCPP_WCHAR_DEF' value='__wchar_t_defined'/> |
|
4612 - <set name='SYMLOOKUPUTIL' value='$(PERL) $(EPOCROOT)/epoc32/tools/sym_lkup_util.pl'/> |
|
4613 - <set name='SYMLOOKUPARGS' value='--ignore_export_dir'/> |
|
4614 - <set name='SYSTEMINCLUDE' value=''/> |
|
4615 - <set name='TARGET' value='TARGET_WAS_NOT_SET_PROPERLY'/> |
|
4616 - <set name='TARGETPATH' value=''/> |
|
4617 - <set name='TARGETTYPE' value='TARGETTYPE_WAS_NOT_SET_PROPERLY'/> |
|
4618 - <set name='USERINCLUDE' value=''/> |
|
4619 - <set name='VARIANTPLATFORM' value='winscw'/> |
|
4620 - <set name='PLATMACROS.WINDOWS' value='CW32 WINS WINSCW'/> |
|
4621 - <set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/> |
|
4622 + |
|
4623 + <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/> |
|
4624 + <set name="CDEFS" value="__SYMBIAN32__ __CW32__ __WINS__ __WINSCW__ __SUPPORT_CPP_EXCEPTIONS__ _UNICODE $(MMPDEFS)"/> |
|
4625 + <set name="CFLAGS" value="-c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source"/> |
|
4626 + <set name="CW_DEFAULT_LIBS" value="gdi32.lib user32.lib kernel32.lib"/> |
|
4627 + <set name="CW_RUNTIME_NONSTATIC" value="MSL_All_x86_Symbian_D.lib"/> |
|
4628 + <set name="CW_RUNTIME_STATIC" value="msl_all_static_mse_symbian_d.lib"/> |
|
4629 + <set name="DEFAULT_NORMAL_NEWLIB" value="scppnwdl.lib"/> |
|
4630 + <set name="DEFAULT_SYSTEM_NEWLIB" value="scppnwdl_kern.lib"/> |
|
4631 + <set name="EPOCSTACKSIZE" value=""/> |
|
4632 + <set name="EXPORT_TYPE" value="dllexport"/> |
|
4633 + <set name="LFLAGS" value="-msgstyle gcc -stdlib -subsystem windows"/> |
|
4634 + <set name="LFLAGS_INFGEN" value="-S -show only,names,unmangled,verbose "/> |
|
4635 + <set name="LFLAGS_SYMGEN" value="-S -show only,names,verbose "/> |
|
4636 + <set name="LINKPATH" value="winscw/udeb"/> |
|
4637 + <set name="LISTING_OPTION" value="-S"/> |
|
4638 + <set name="MMPDEFS" value=""/> |
|
4639 + <set name="NMAKE" value="nmake"/> |
|
4640 + <set name="NMAKEFLAGS" value="-nologo -x - "/> |
|
4641 + <set name="OPT.ADDCOMMAND" value="-addcommand "/> |
|
4642 + <set name="OPT.CHECKLIB.STDCPP" value="stdc++"/> |
|
4643 + <set name="OPT.CHECKLIB.SYMCPP" value="symc++"/> |
|
4644 + <set name="OPT.CHECKLIB.WIN32" value="--coff"/> |
|
4645 + <set name="OPT.DEFFILE" value="-f "/> |
|
4646 + <set name="OPT.DEFINE" value="-d "/> |
|
4647 + <set name="OPT.DEPEND" value="-gccdepends -MD "/> |
|
4648 + <set name="OPT.EXPORT" value="-export "/> |
|
4649 + <set name="OPT.HEAPCOMMIT" value="-heapcommit="/> |
|
4650 + <set name="OPT.HEAPRESERVE" value="-heapreserve="/> |
|
4651 + <set name="OPT.IMAGEBASE" value="-imagebase "/> |
|
4652 + <set name="OPT.IMPLIB" value="-implib "/> |
|
4653 + <set name="OPT.IMPORTLIB" value="-importlib "/> |
|
4654 + <set name="OPT.LIBFILE" value="-l"/> |
|
4655 + <set name="OPT.LIBPATH" value="-l "/> |
|
4656 + <set name="OPT.LISTING" value="-S -show source,unmangled,comments "/> |
|
4657 + <set name="OPT.MAINENTRYPOINT" value="-main "/> |
|
4658 + <set name="OPT.MAP" value="-map "/> |
|
4659 + <set name="OPT.MENTRYPOINT" value="-m "/> |
|
4660 + <set name="OPT.NOCOMPACTIMPORTLIB" value="-nocompactimportlib "/> |
|
4661 + <set name="OPT.NOENTRY" value="-noentry "/> |
|
4662 + <set name="OPT.NOIMPLIB" value="-noimplib "/> |
|
4663 + <set name="OPT.NOSTDINC" value="-nostdinc "/> |
|
4664 + <set name="OPT.OUT" value="-o "/> |
|
4665 + <set name="OPT.PREINCLUDE" value="-include "/> |
|
4666 + <set name="OPT.RUNTIME" value="-runtime "/> |
|
4667 + <set name="OPT.SEARCH" value="-search"/> |
|
4668 + <set name="OPT.SHARED" value="-shared "/> |
|
4669 + <set name="OPT.SPLITINCLUDE" value="-i-"/> |
|
4670 + <set name="OPT.STATICLIBRARY" value="-library "/> |
|
4671 + <set name="OPT.STDINC" value="-stdinc "/> |
|
4672 + <set name="OPT.STDLIB" value="-stdlib "/> |
|
4673 + <set name="OPT.SYM" value="-sym "/> |
|
4674 + <set name="OPT.SYSINCLUDE" value="-i "/> |
|
4675 + <set name="OPT.USERINCLUDE" value="-i "/> |
|
4676 + <set name="OPT.WARNINGS" value="-warnings "/> |
|
4677 + <set name="OPT.WCHAR" value="-wchar_t "/> |
|
4678 + <set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/> |
|
4679 + <set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/> |
|
4680 + <set name="STDCPP_DEF" value="__SYMBIAN_STDCPP_SUPPORT__"/> |
|
4681 + <set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/> |
|
4682 + <set name="STDCPP_WCHAR_DEF" value="__wchar_t_defined"/> |
|
4683 + <set name="SYMLOOKUPARGS" value="--ignore_export_dir"/> |
|
4684 + <set name="SYMLOOKUPUTIL" value="$(PERL) $(EPOCROOT)/epoc32/tools/sym_lkup_util.pl"/> |
|
4685 + <set name="SYSTEMINCLUDE" value=""/> |
|
4686 + <set name="TARGET" value="TARGET_WAS_NOT_SET_PROPERLY"/> |
|
4687 + <set name="TARGETPATH" value=""/> |
|
4688 + <set name="TARGETTYPE" value="TARGETTYPE_WAS_NOT_SET_PROPERLY"/> |
|
4689 + <set name="USERINCLUDE" value=""/> |
|
4690 + <set name="VARIANTPLATFORM" value="winscw"/> |
|
4691 + |
|
4692 + <!-- macros --> |
|
4693 + <set name="PLATMACROS.WINDOWS" value="CW32 WINS WINSCW"/> |
|
4694 + <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/> |
|
4695 </var> |
|
4696 |
|
4697 <var name="winscw_udeb" extends="winscw_base"> |
|
4698 - <set name='FULLVARIANTPATH' value='winscw/udeb'/> |
|
4699 - <set name='VARIANTTYPE' value='udeb'/> |
|
4700 + <set name="FULLVARIANTPATH" value="winscw/udeb"/> |
|
4701 + <set name="VARIANTTYPE" value="udeb"/> |
|
4702 |
|
4703 - <append name='CDEFS' value='_DEBUG'/> |
|
4704 - <append name='CFLAGS' value='-g -O0 -inline off'/> |
|
4705 - <append name='LFLAGS' value='-g'/> |
|
4706 + <append name="CDEFS" value="_DEBUG"/> |
|
4707 + <append name="CFLAGS" value="-g -O0 -inline off"/> |
|
4708 + <append name="LFLAGS" value="-g"/> |
|
4709 </var> |
|
4710 |
|
4711 <var name="winscw_urel" extends="winscw_base"> |
|
4712 - <set name='FULLVARIANTPATH' value='winscw/urel'/> |
|
4713 - <set name='VARIANTTYPE' value='urel'/> |
|
4714 + <set name="FULLVARIANTPATH" value="winscw/urel"/> |
|
4715 + <set name="VARIANTTYPE" value="urel"/> |
|
4716 |
|
4717 - <append name='CDEFS' value='NDEBUG'/> |
|
4718 - <append name='CFLAGS' value='-O4,s'/> |
|
4719 + <append name="CDEFS" value="NDEBUG"/> |
|
4720 + <append name="CFLAGS" value="-O4,s"/> |
|
4721 </var> |
|
4722 |
|
4723 <group name="winscw"> |
|
4724 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/base.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/base.xml |
|
4725 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/base.xml 2010-05-18 19:32:34.721348727 +0100 |
|
4726 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/base.xml 2010-05-17 18:47:53.036842000 +0100 |
|
4727 @@ -16,6 +16,7 @@ |
|
4728 <param name='PROJECT_META' default=''/> <!-- my.mmp --> |
|
4729 <param name='DATE' default=''/> |
|
4730 <param name='DUMPBCINFO' default=''/> |
|
4731 + <param name='FLMDEBUG' default=''/> |
|
4732 <param name='PLATFORM' default=''/> |
|
4733 <param name='GNUMAKE38'/> |
|
4734 <param name='GNUCP'/> |
|
4735 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/bitmap.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/bitmap.flm |
|
4736 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/bitmap.flm 2010-05-18 19:32:34.721348727 +0100 |
|
4737 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/bitmap.flm 2010-05-17 18:47:53.036842000 +0100 |
|
4738 @@ -1,4 +1,4 @@ |
|
4739 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4740 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
4741 # All rights reserved. |
|
4742 # This component and the accompanying materials are made available |
|
4743 # under the terms of the License "Eclipse Public License v1.0" |
|
4744 @@ -60,7 +60,7 @@ |
|
4745 |
|
4746 BMCONVCMDFILE:=$(OUTPUTPATH)/$(BMTARGET)_bmconvcommands |
|
4747 RELEASEABLES:=$(BITMAPHEADER) $(BITMAPFILE) |
|
4748 -CLEANTARGETS:=$(BITMAPHEADER) $(BITMAPFILE) $(BMCONVCMDFILE) |
|
4749 +CLEANTARGETS:=$(BMCONVCMDFILE) |
|
4750 |
|
4751 # The groupbmpin10 macro allows us to construct a command file, 10 |
|
4752 # bitmap objects at a time to avoid limits on argument lengths and |
|
4753 @@ -107,7 +107,6 @@ |
|
4754 $(GNUCP) $$< $$@ \ |
|
4755 $(call endrule,bitmapcopy) |
|
4756 |
|
4757 -CLEANTARGETS:=$(CLEANTARGETS) $(MBMCOPYFILES) |
|
4758 endef |
|
4759 |
|
4760 |
|
4761 @@ -119,64 +118,13 @@ |
|
4762 $(eval $(call copybitmap)) |
|
4763 endif |
|
4764 |
|
4765 -################################### localisation ######################################### |
|
4766 -## copy .bmp files to localisation |
|
4767 - |
|
4768 -# $(BMPFILES) is a list of bmp files in src |
|
4769 -BMPFILES:=$(subst FILE=,,$(filter FILE=%,$(SOURCE))) |
|
4770 -BMBASENAME:=$(call lowercase,$(basename $(BMTARGET))) |
|
4771 -BMPCOPYFILES:= |
|
4772 -BMPCOPYDIR:=$(EPOCROOT)/epoc32/localisation/$(BMBASENAME)/mbm |
|
4773 -$(call makepath,$(BMPCOPYDIR)) |
|
4774 - |
|
4775 -define copyBMP |
|
4776 -# $(1) is the source .bmp file |
|
4777 -# $(2) is the (lower cased) copy in localisation |
|
4778 - |
|
4779 -ifneq ($(BINCOPYDIRS),) |
|
4780 -BITMAP:: $(2) |
|
4781 - |
|
4782 -$(2): $(1) |
|
4783 - $(call startrule,bmpfilecopy,FORCESUCCESS) \ |
|
4784 - $(GNUCP) $(1) $(2) && $(GNUCHMOD) +rw $(2) \ |
|
4785 - $(call endrule,bmpfilecopy) |
|
4786 - |
|
4787 -CLEANTARGETS:=$$(CLEANTARGETS) $(2) |
|
4788 -endif |
|
4789 - |
|
4790 -BMPCOPYFILES:=$$(BMPCOPYFILES) $(2) |
|
4791 -endef |
|
4792 - |
|
4793 -$(foreach BMP,$(BMPFILES),$(eval $(call copyBMP,$(BMP),$(BMPCOPYDIR)/$(call lowercase,$(notdir $(BMP)))))) |
|
4794 - |
|
4795 -## create and edit info files for bitmap files in localisation/group |
|
4796 -INFOFILE:=$(EPOCROOT)/epoc32/localisation/group/$(BMBASENAME).info |
|
4797 -DEPTH:=$(subst DEPTH=,,$(filter DEPTH=%,$(SOURCE))) |
|
4798 -BMP:=$(notdir $(BMPFILES)) |
|
4799 -DEPTHBMP:=$(subst _,\,$(join $(patsubst %,/%,$(DEPTH)),$(patsubst %,_%,$(BMP)))) |
|
4800 - |
|
4801 -define bmpInfo |
|
4802 - |
|
4803 -BITMAP::$(INFOFILE) |
|
4804 - |
|
4805 -$(INFOFILE):: |
|
4806 - @if [ ! -d $(EPOCROOT)/epoc32/localisation/group ]; then $(GNUMKDIR) -p $(EPOCROOT)/epoc32/localisation/group; fi |
|
4807 - @if [ ! -f $$@ ]; then echo "DATADIR: /$(BMBASENAME)" > $$@ ; fi |
|
4808 - @echo -e "\n/z$(TARGETPATH)/$(BMTARGET) : $(DEPTHBMP)" >> $$@ |
|
4809 - |
|
4810 -CLEANTARGETS:=$$(CLEANTARGETS) $(INFOFILE) |
|
4811 -endef |
|
4812 - |
|
4813 -$(eval $(call bmpInfo)) |
|
4814 - |
|
4815 -# end of localisation ######################################################### |
|
4816 |
|
4817 ## Clean up |
|
4818 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS) ,$(CREATABLEPATHS))) |
|
4819 +$(call raptor_clean,$(CLEANTARGETS)) |
|
4820 $(call makepath,$(CREATABLEPATHS)) |
|
4821 $(call makepathfor,$(BITMAPHEADER)) |
|
4822 |
|
4823 # for the abld -what target |
|
4824 -BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES) $(BMPCOPYFILES) $(INFOFILE) |
|
4825 -$(eval $(call whatmacro,$(BMPRELEASEABLES),WHATBITMAP)) |
|
4826 +BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES) |
|
4827 +$(call raptor_release,$(BMPRELEASEABLES),BITMAP) |
|
4828 |
|
4829 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.flm |
|
4830 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.flm 2010-05-18 19:32:34.721348727 +0100 |
|
4831 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.flm 2010-05-17 18:47:53.036842000 +0100 |
|
4832 @@ -24,36 +24,31 @@ |
|
4833 |
|
4834 .PHONY:: PP_EXPORTS |
|
4835 |
|
4836 +ifneq ($(filter win,$(HOSTPLATFORM)),) |
|
4837 +SBS:=$(subst \,/,$(SBS_HOME)/bin/sbs.bat) |
|
4838 +else |
|
4839 +SBS:=$(SBS_HOME)/bin/sbs |
|
4840 +endif |
|
4841 |
|
4842 -SBS := $(subst \,/,$(SBS_HOME)/bin/sbs) |
|
4843 |
|
4844 define doexports |
|
4845 PP_EXPORTS:: |
|
4846 $(call startrule,makefile_generation_exports) \ |
|
4847 - export TALON_DESCRAMBLE=0; \ |
|
4848 - $(SBS) --export-only $(component_list) $(config_list) -f- -m $(SBS_BUILD_DIR)/makefiles_export.mk $(cli_options) --mo=DESCRAMBLE:= --mo=TALON_DESCRAMBLE:=0 | $(GNUSED) 's#]I*]>#XXX#' \ |
|
4849 + $(SBS) --toolcheck=off --export-only $(component_list) $(config_list) -f- -m $(MAKEFILE_PATH).exports $(CLI_OPTIONS) \ |
|
4850 $(call endrule,makefile_generation_exports) |
|
4851 |
|
4852 -CLEANTARGETS:=$$(CLEANTARGETS) $(SBS_BUILD_DIR)/makefiles_export.mk |
|
4853 +CLEANTARGETS:=$$(CLEANTARGETS) $(MAKEFILE_PATH).exports |
|
4854 endef |
|
4855 |
|
4856 # Generate makefiles for particular bldinf |
|
4857 # $(1) = source target source target...... |
|
4858 define generate_makefiles |
|
4859 |
|
4860 -$$(info XXX component_list=$(COMPONENT_PATHS) makefile=$(MAKEFILE_PATH)) |
|
4861 - |
|
4862 -ifeq ($(NO_BUILD),1) |
|
4863 ALL:: $(MAKEFILE_PATH) |
|
4864 -else |
|
4865 -include $(MAKEFILE_PATH) |
|
4866 -endif |
|
4867 |
|
4868 -$(MAKEFILE_PATH): $(COMPONENT_PATHS) | PP_EXPORTS |
|
4869 +$(MAKEFILE_PATH): $(COMPONENT_PATHS) $(if $(DOEXPORT),| PP_EXPORTS ) |
|
4870 $(call startrule,makefile_generation) \ |
|
4871 - export TALON_DESCRAMBLE=0; \ |
|
4872 - $(SBS) --toolcheck=off -n $(CLI_OPTIONS) $(component_list) $(config_list) -m $$@ -f- --mo=DESCRAMBLE:= --mo=TALON_DESCRAMBLE:=0 | $(GNUSED) 's#\]\][>]#XXX#' && \ |
|
4873 - $(MAKE) -j 8 -f $$@.resource_deps \ |
|
4874 + $(SBS) --noexport --toolcheck=off -n $(CLI_OPTIONS) $(component_list) $(config_list) -m $$@ -f- \ |
|
4875 $(call endrule,makefile_generation) |
|
4876 |
|
4877 CLEANTARGETS:=$$(CLEANTARGETS) $(MAKEFILE_PATH) |
|
4878 @@ -63,13 +58,19 @@ |
|
4879 # Create config list for commands |
|
4880 config_list:=$(addprefix -c ,$(CONFIGS)) |
|
4881 component_list:=$(addprefix -b ,$(COMPONENT_PATHS)) |
|
4882 -$(info COMFIG_LIST: $(config_list)) |
|
4883 |
|
4884 -$(eval $(doexports)) |
|
4885 +$(if $(FLMDEBUG),$(info <debug>build.flm: configlist: $(config_list)</debug>)) |
|
4886 + |
|
4887 +# Do exports only if asked. This doesn't work brilliantly in emake |
|
4888 +# since exports are often duplicated in some components - leads to conflicts |
|
4889 +# and rebuilds. Better to export before trying to do parallel parsing at all. |
|
4890 +$(if $(DOEXPORT),$(eval $(doexports)),$(if $(FLMDEBUG),$(info <debug>build.flm: Exports off </debug>))) |
|
4891 |
|
4892 # Create the Makefiles |
|
4893 $(eval $(call generate_makefiles)) |
|
4894 |
|
4895 +CREATABLEPATHS:=$(CREATABLEPATHS) $(dir $(MAKEFILE_PATH)) |
|
4896 + |
|
4897 $(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),)) |
|
4898 $(call makepath,$(CREATABLEPATHS)) |
|
4899 |
|
4900 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.xml |
|
4901 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/build.xml 2010-05-18 19:32:34.721348727 +0100 |
|
4902 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/build.xml 2010-05-17 18:47:53.036842000 +0100 |
|
4903 @@ -9,6 +9,7 @@ |
|
4904 <param name='CONFIGS' default=''/> |
|
4905 <param name='CLI_OPTIONS' default=''/> |
|
4906 <param name='NO_BUILD' default='' /> |
|
4907 + <param name='DOEXPORT' default='1' /> |
|
4908 </interface> |
|
4909 |
|
4910 </build> |
|
4911 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ani.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ani.flm |
|
4912 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ani.flm 2010-05-18 19:32:34.725348467 +0100 |
|
4913 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ani.flm 2010-05-17 18:47:53.040843000 +0100 |
|
4914 @@ -1,4 +1,4 @@ |
|
4915 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4916 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
4917 # All rights reserved. |
|
4918 # This component and the accompanying materials are made available |
|
4919 # under the terms of the License "Eclipse Public License v1.0" |
|
4920 @@ -25,11 +25,11 @@ |
|
4921 POSTLINKFILETYPE:=ani |
|
4922 DOPOSTLINK:=1 |
|
4923 AUTOEXPORTS:=_Z15CreateCAnimDllLv,1; |
|
4924 -DEFFILE:= |
|
4925 + |
|
4926 |
|
4927 # Determine what kind of entrypoint option to set |
|
4928 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib |
|
4929 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
4930 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
4931 |
|
4932 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
4933 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
4934 @@ -39,6 +39,15 @@ |
|
4935 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
4936 CANIGNORENONCALLABLE:=1 |
|
4937 |
|
4938 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
4939 +ifneq ($(DEFFILEKEYWORD),) |
|
4940 +POSTLINKDEFFILE:=$(DEFFILE) |
|
4941 +SUPPORT_FREEZE:=1 |
|
4942 +ifeq ($(NOEXPORTLIBRARY),) |
|
4943 +IMPORTLIBRARYREQUIRED:=1 |
|
4944 +endif |
|
4945 +endif |
|
4946 + |
|
4947 UID2:=10003b22 |
|
4948 |
|
4949 |
|
4950 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk |
|
4951 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk 2010-05-18 19:32:34.725348467 +0100 |
|
4952 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2defaults.mk 2010-05-17 18:47:53.040843000 +0100 |
|
4953 @@ -1,5 +1,5 @@ |
|
4954 # |
|
4955 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4956 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
4957 # All rights reserved. |
|
4958 # This component and the accompanying materials are made available |
|
4959 # under the terms of the License "Eclipse Public License v1.0" |
|
4960 @@ -40,13 +40,17 @@ |
|
4961 # Reset these variables as they change for every single target type |
|
4962 # LINKER_ENTRYPOINT_ADORNMENT will be blank for GCCE; for RVCT it will look like "(uc_exe_.o)" |
|
4963 # LINKER_ENTRYPOINT_DECORATION will be blank for RVCT; for GCCE it will look like "-u _E32Startup" |
|
4964 +# LINKER_SEPARATOR is a comma for GCCE as g++ is used for linking; for RVCT is should be a space, but |
|
4965 +# as make strips trailing spaces, we use the CHAR_SPACE variable. |
|
4966 |
|
4967 LINKER_ENTRYPOINT_ADORNMENT:= |
|
4968 LINKER_ENTRYPOINT_DECORATION:= |
|
4969 +LINKER_SEPARATOR:= |
|
4970 |
|
4971 # For GCCE |
|
4972 ifeq ($(TOOLCHAIN),GCCE) |
|
4973 -LINKER_ENTRYPOINT_DECORATION:=$(if $(call isoneof,$(TARGETTYPE),exexp exe),-u _E32Startup,-u _E32Dll) |
|
4974 +LINKER_ENTRYPOINT_DECORATION:=$(if $(call isoneof,$(TARGETTYPE),exexp exe),-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)_E32Startup,-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)_E32Dll) |
|
4975 +LINKER_SEPARATOR:=$(CHAR_COMMA) |
|
4976 endif |
|
4977 |
|
4978 # For RVCT |
|
4979 @@ -55,7 +59,7 @@ |
|
4980 LINKER_ENTRYPOINT_ADORNMENT:=(uc_exe_.o) |
|
4981 endif |
|
4982 |
|
4983 - ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin fsy pdl dll),1) |
|
4984 + ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin plugin3 fsy pdl dll pdll),1) |
|
4985 LINKER_ENTRYPOINT_ADORNMENT:=(uc_dll_.o) |
|
4986 endif |
|
4987 |
|
4988 @@ -74,6 +78,7 @@ |
|
4989 ifeq ($(TARGETTYPE),kdll) |
|
4990 LINKER_ENTRYPOINT_ADORNMENT:=(L_ENTRY_.o) |
|
4991 endif |
|
4992 +LINKER_SEPARATOR:=$(CHAR_SPACE) |
|
4993 endif |
|
4994 |
|
4995 # "OPTION" metadata from the front-end can potentially be supplied simultaneously for both GCCE and RVCT, |
|
4996 @@ -89,3 +94,9 @@ |
|
4997 OPTION_COMPILER:=$(OPTION_ARMCC) |
|
4998 OPTION_REPLACE_COMPILER:=$(OPTION_REPLACE_ARMCC) |
|
4999 endif |
|
5000 + |
|
5001 +# "ARMFPU" overrides for 'fpu-ness' in compiler and postlinker calls in .mmp files are currently only |
|
5002 +# supported for RVCT-based builds, GCCE builds always make use of the interface defined defaults. |
|
5003 +ifeq ($(TOOLCHAIN),GCCE) |
|
5004 + ARMFPU:= |
|
5005 +endif |
|
5006 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2dll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2dll.flm |
|
5007 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2dll.flm 2010-05-18 19:32:34.725348467 +0100 |
|
5008 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2dll.flm 2010-05-17 18:47:53.040843000 +0100 |
|
5009 @@ -28,7 +28,7 @@ |
|
5010 |
|
5011 # Default Linker settings for this target type |
|
5012 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib |
|
5013 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5014 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5015 |
|
5016 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5017 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5018 @@ -55,6 +55,6 @@ |
|
5019 $(call vrestore) |
|
5020 |
|
5021 else |
|
5022 -$(error $e32abiv2dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)')) |
|
5023 +$(error e32abiv2dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)')) |
|
5024 endif |
|
5025 |
|
5026 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exe.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exe.flm |
|
5027 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exe.flm 2010-05-18 19:32:34.725348467 +0100 |
|
5028 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exe.flm 2010-05-17 18:47:53.040843000 +0100 |
|
5029 @@ -1,4 +1,4 @@ |
|
5030 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5031 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5032 # All rights reserved. |
|
5033 # This component and the accompanying materials are made available |
|
5034 # under the terms of the License "Eclipse Public License v1.0" |
|
5035 @@ -28,15 +28,17 @@ |
|
5036 LINKER_STUB_LIBRARY:= |
|
5037 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib) |
|
5038 |
|
5039 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5040 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5041 |
|
5042 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5043 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5044 endif |
|
5045 |
|
5046 -STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
5047 - |
|
5048 -MAKEDEFFILE:= |
|
5049 +ifeq ($(EPOCNESTEDEXCEPTIONS),) |
|
5050 + STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
5051 +else |
|
5052 + STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS) |
|
5053 +endif |
|
5054 |
|
5055 $(call vsave,CDEFS) |
|
5056 CDEFS:=$(CDEFS) __EXE__ |
|
5057 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm |
|
5058 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm 2010-05-18 19:32:34.725348467 +0100 |
|
5059 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2exexp.flm 2010-05-17 18:47:53.040843000 +0100 |
|
5060 @@ -52,10 +52,10 @@ |
|
5061 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/$(FIRSTLIB) |
|
5062 |
|
5063 ifeq ("$(TOOLCHAIN)","RVCT") |
|
5064 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)($(FIRSTLIB_OBJECTFILE))) |
|
5065 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)($(FIRSTLIB_OBJECTFILE))) |
|
5066 else |
|
5067 # GCCE |
|
5068 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup -u _E32Startup $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)) |
|
5069 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup -Wl,-u$(LINKER_SEPARATOR)_E32Startup$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)) |
|
5070 endif |
|
5071 |
|
5072 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5073 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2.flm |
|
5074 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2.flm 2010-05-18 19:32:34.725348467 +0100 |
|
5075 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2.flm 2010-05-17 18:47:53.040843000 +0100 |
|
5076 @@ -1,4 +1,4 @@ |
|
5077 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5078 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5079 # All rights reserved. |
|
5080 # This component and the accompanying materials are made available |
|
5081 # under the terms of the License "Eclipse Public License v1.0" |
|
5082 @@ -16,15 +16,37 @@ |
|
5083 # |
|
5084 # |
|
5085 |
|
5086 -# Only build feature invariant binaries in non-product builds *and* |
|
5087 -# Only build feature variant binaries in product builds. |
|
5088 +# Feature/Binary Variation |
|
5089 # |
|
5090 -# FEATUREVARIANTNAME != "" implies product build |
|
5091 -# FEATUREVARIANT == 1 implies a feature variant binary |
|
5092 +# FEATUREVARIANTNAME != "" implies a product build configuration |
|
5093 +# FEATUREVARIANT == 1 implies a .mmp defined feature variant binary |
|
5094 +# |
|
5095 +# By default: |
|
5096 +# Build all binaries in non-product builds *and* |
|
5097 +# Only build feature variant binaries in product builds. |
|
5098 # |
|
5099 # test FEATUREVARIANTNAME=="" or FEATUREVARIANT==1 |
|
5100 # |
|
5101 -ifneq ($(or $(call equal,$(FEATUREVARIANTNAME),),$(call equal,$(FEATUREVARIANT),1)),) |
|
5102 +# If FEATUREVARIANTSAFE is set: |
|
5103 +# Only build feature invariant binaries in non-product builds *and* |
|
5104 +# Only build feature variant binaries in product builds. |
|
5105 +# |
|
5106 +# test (FEATUREVARIANTNAME=="" and FEATUREVARIANT=="") or |
|
5107 +# (FEATUREVARIANTNAME!="" and FEATUREVARIANT==1) |
|
5108 +# |
|
5109 + |
|
5110 +DOBUILD:= |
|
5111 +ifeq ($(FEATUREVARIANTSAFE),) |
|
5112 + DOBUILD:=$(if $(or $(call equal,$(FEATUREVARIANTNAME),),\ |
|
5113 + $(call equal,$(FEATUREVARIANT),1)),1) |
|
5114 +else |
|
5115 + DOBUILD:=$(if $(or $(and $(call equal,$(FEATUREVARIANTNAME),),\ |
|
5116 + $(call equal,$(FEATUREVARIANT),)),\ |
|
5117 + $(and $(call not,$(call equal,$(FEATUREVARIANTNAME),)),\ |
|
5118 + $(call equal,$(FEATUREVARIANT),1))),1) |
|
5119 +endif |
|
5120 + |
|
5121 +ifeq ($(DOBUILD),1) |
|
5122 |
|
5123 $(if $(FLMDEBUG),$(info <flm name='e32abiv2' target='$(TARGET)' type='$(TARGETTYPE)' outputpath='$(OUTPUTPATH)' metasource='$(METASOURCE)' postlinkfiletype='$(POSTLINKFILETYPE)' />)) |
|
5124 |
|
5125 @@ -141,7 +163,6 @@ |
|
5126 ifeq ($($(BUILDMARKER_IMPORTLIBTARGET_DSO)),) |
|
5127 IMPORTLIBTARGET_DSO:=$(TMP_IMPORTLIBTARGET_ROOT).dso |
|
5128 IMPORTLIBTARGETVERSIONED_DSO:=$(VER_E32IMPORTLIBBASE).dso |
|
5129 - $(eval $(BUILDMARKER_IMPORTLIBTARGET_DSO):=1) |
|
5130 endif |
|
5131 |
|
5132 # ABIv1 .lib (for specific builds, toolchains and host OS platforms only) |
|
5133 @@ -156,7 +177,6 @@ |
|
5134 ifeq ($($(BUILDMARKER_IMPORTLIBTARGET_LIB)),) |
|
5135 IMPORTLIBTARGET_LIB:=$(TMP_IMPORTLIBTARGET_ROOT).lib |
|
5136 IMPORTLIBTARGETVERSIONED_LIB:=$(VER_E32IMPORTLIBBASE).lib |
|
5137 - $(eval $(BUILDMARKER_IMPORTLIBTARGET_LIB):=1) |
|
5138 endif |
|
5139 endif |
|
5140 endif |
|
5141 @@ -223,7 +243,7 @@ |
|
5142 DSODEFFILENAMEBASE:=$(TARGET){$(VERSIONHEX)} |
|
5143 endif |
|
5144 GENERATED_DSO:=$(call dblquote,$(INTERMEDIATEPATH)/$(DSODEFFILENAMEBASE).dso) |
|
5145 -GENERATED_DEFFILE:=$(call dblquote,$(INTERMEDIATEPATH)/$(DSODEFFILENAMEBASE).def) |
|
5146 +GENERATED_DEFFILE:=$(INTERMEDIATEPATH)/$(DSODEFFILENAMEBASE).def |
|
5147 |
|
5148 ## IMPORT LIBRARY ########################################################### |
|
5149 |
|
5150 @@ -251,6 +271,10 @@ |
|
5151 # ABIv2 .dso |
|
5152 ifneq ($(IMPORTLIBTARGET_DSO),) # check that we haven't tried to specify this target already |
|
5153 |
|
5154 + # By Now we're committed to producing a target for this DSO so it's safe to |
|
5155 + # set the marker that will prevent any further targets from being made. |
|
5156 + $(eval $(BUILDMARKER_IMPORTLIBTARGET_DSO):=1) |
|
5157 + |
|
5158 ifneq ($(EXPLICITVERSION),) |
|
5159 TARGETS:=$(strip $(TARGETS) $(IMPORTLIBTARGETVERSIONED_DSO)) |
|
5160 |
|
5161 @@ -279,9 +303,6 @@ |
|
5162 $(call startrule,importlibtarget_unfrozen,FORCESUCCESS) \ |
|
5163 $(GNUCP) $$(call dblquote,$$<) $$(call dblquote,$$@) \ |
|
5164 $(call endrule,importlibtarget_unfrozen) |
|
5165 - |
|
5166 - CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGET_DSO) |
|
5167 - |
|
5168 endef |
|
5169 |
|
5170 define importlibtarget_unfrozen_ver |
|
5171 @@ -289,8 +310,6 @@ |
|
5172 $(call startrule,importlibversioned_unfrozen,FORCESUCCESS) \ |
|
5173 $(GNUCP) "$(GENERATED_DSO)" "$$@" \ |
|
5174 $(call endrule,importlibversioned_unfrozen) |
|
5175 - |
|
5176 - CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGET_DSO) |
|
5177 endef |
|
5178 |
|
5179 ifeq ($(EXPLICITVERSION),) |
|
5180 @@ -307,8 +326,6 @@ |
|
5181 $(call startrule,importlibtarget,FORCESUCCESS) \ |
|
5182 $(GNUCP) "$$<" "$$@" \ |
|
5183 $(call endrule,importlibtarget) |
|
5184 - |
|
5185 - CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGET_DSO) |
|
5186 endef |
|
5187 |
|
5188 ifeq ($(EXPLICITVERSION),) |
|
5189 @@ -325,8 +342,6 @@ |
|
5190 --dso=$$(call dblquote,$$@) \ |
|
5191 --linkas=$(call dblquote,$(LINKASVERSIONED)) \ |
|
5192 $(call endrule,importlibversioned) |
|
5193 - |
|
5194 - CLEANTARGETS:=$$(CLEANTARGETS) $(IMPORTLIBTARGETVERSIONED_DSO) |
|
5195 endef |
|
5196 $(eval $(importlibtargetversioned_func)) |
|
5197 endif # ifneq ($(DEFFILE),) |
|
5198 @@ -335,7 +350,10 @@ |
|
5199 |
|
5200 # ABIv1 .lib |
|
5201 ifneq ($(IMPORTLIBTARGETVERSIONED_LIB),) # check that we haven't tried to specify this target already |
|
5202 - CLEANTARGETS:=$(CLEANTARGETS) $(IMPORTLIBTARGETVERSIONED_LIB) $(IMPORTLIBTARGET_LIB) |
|
5203 + |
|
5204 + # By Now we're committed to producing a target for this DSO so it's safe to |
|
5205 + # set the marker that will prevent any further targets from being made. |
|
5206 + $(eval $(BUILDMARKER_IMPORTLIBTARGET_LIB):=1) |
|
5207 |
|
5208 define abiv1_generatelib |
|
5209 |
|
5210 @@ -351,12 +369,12 @@ |
|
5211 # If unfrozen, .lib files are based on the .def file generated by the final postlink |
|
5212 $(IMPORTLIBTARGETVERSIONED_LIB): $(if $(EXPORTUNFROZEN),$(E32TARGET),$(PREPPEDDEFFILE)) |
|
5213 $(call startrule,importlibversioned_abiv1) \ |
|
5214 - if [ -f "$(EPOCROOT)/epoc32/tools/def2dll.pl" -a -f "$(if $(EXPORTUNFROZEN),$(GENERATED_DEFFILE),$(PREPPEDDEFFILE))" ]; then \ |
|
5215 + if [ -f "$(EPOCROOT)/epoc32/tools/def2dll.pl" -a -f "$(if $(EXPORTUNFROZEN),$(call dblquote,$(GENERATED_DEFFILE)),$(PREPPEDDEFFILE))" ]; then \ |
|
5216 $(PERL) $(EPOCROOT)/epoc32/tools/def2dll.pl \ |
|
5217 --path=$(IMPORTLIBPATH) \ |
|
5218 --bldpath=$(INTERMEDIATEPATH) \ |
|
5219 --import=$(notdir $(basename $(IMPORTLIBTARGETVERSIONED_LIB))) \ |
|
5220 - --deffile="$(if $(EXPORTUNFROZEN),$(GENERATED_DEFFILE),$(PREPPEDDEFFILE))" \ |
|
5221 + --deffile="$(if $(EXPORTUNFROZEN),$(call dblquote,$(GENERATED_DEFFILE)),$(PREPPEDDEFFILE))" \ |
|
5222 --linkAs=$(call dblquote,$(LINKASVERSIONED)) \ |
|
5223 --inter ; fi \ |
|
5224 $(call endrule,importlibversioned_abiv1) |
|
5225 @@ -388,7 +406,22 @@ |
|
5226 # Generating the import library is enough if TARGETTYPE=implib ############# |
|
5227 |
|
5228 ifneq ($(DOPOSTLINK),) |
|
5229 -include $(FLMHOME)/e32postlink.mk |
|
5230 +# Capabilities |
|
5231 +FINAL_CAPABILITIES:=$(if $(CAPABILITY),$(CAPABILITY),NONE) |
|
5232 + |
|
5233 +# Paging options for the old postlinker |
|
5234 +POSTLINKER_PAGEDOPTION:=--defaultpaged |
|
5235 +ifeq ($(PAGED),1) |
|
5236 + POSTLINKER_PAGEDOPTION:=--paged |
|
5237 +endif |
|
5238 +ifeq ($(PAGED),0) |
|
5239 + POSTLINKER_PAGEDOPTION:=--unpaged |
|
5240 +endif |
|
5241 + |
|
5242 +CLEANTARGETS:=$(CLEANTARGETS) $(E32TARGET) |
|
5243 +CLEANTARGETS:=$(CLEANTARGETS) $(GENERATED_DEFFILE) |
|
5244 +CLEANTARGETS:=$(CLEANTARGETS) $(GENERATED_DSO) |
|
5245 + |
|
5246 endif # ifneq ($(DOPOSTLINK),) |
|
5247 |
|
5248 ifneq ($(TARGETTYPE),implib) |
|
5249 @@ -534,7 +567,7 @@ |
|
5250 endef |
|
5251 $(eval $(artarget_func)) |
|
5252 |
|
5253 -CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE) $(ARTARGET) $(if $(DUMPBCINFO),$(ARTARGET).elfdump,) |
|
5254 +CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE) $(if $(DUMPBCINFO),$(ARTARGET).elfdump,) |
|
5255 endif |
|
5256 |
|
5257 |
|
5258 @@ -542,8 +575,7 @@ |
|
5259 # Targettype is some type of DLL or EXE (or derivative) |
|
5260 ifneq ($(LINK_TARGET),) |
|
5261 |
|
5262 -escaped_located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(call ruleEscape,$(wildcard $(subst $(CHAR_SPACE),?,$(RVCTLIB)/*/$(L))))) |
|
5263 -quoted_located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(call dblquoteitem,$(wildcard $(RVCTLIB)/*/$(L)))) |
|
5264 +located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(wildcard $(RVCTLIB)/*/$(L))) |
|
5265 located_STATICLIBRARIES:=$(foreach L,$(STATICLIBRARY),$(STATIC_LIBRARY_DIR)/$(L).lib) |
|
5266 e32abiv2_LIBS:=$(EXPTARGET) $(LINKER_STUB_LIBRARY) $(if $(STATIC_RUNTIME_LIB),$(STATIC_RUNTIME_DIR)/$(STATIC_RUNTIME_LIB),) $(located_STATICLIBRARIES) |
|
5267 # DLLS and EXEs - These objects are linked by a linker |
|
5268 @@ -556,12 +588,10 @@ |
|
5269 REDUCED_RUNTIME_LIBS_LIST:=$(subst $(TARGET).dso,,$(RUNTIME_LIBS_LIST)) |
|
5270 |
|
5271 ifeq ($(VARIANTTYPE),udeb) |
|
5272 - e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) |
|
5273 + e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) $(located_ARMLIBS) |
|
5274 else |
|
5275 - e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) |
|
5276 + e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) $(located_ARMLIBS) |
|
5277 endif |
|
5278 -quoted_e32abiv2_LIBS=$(e32abiv2_LIBS) $(quoted_located_ARMLIBS) |
|
5279 -escaped_e32abiv2_LIBS=$(e32abiv2_LIBS) $(escaped_located_ARMLIBS) |
|
5280 |
|
5281 else |
|
5282 # NORMAL |
|
5283 @@ -574,19 +604,16 @@ |
|
5284 ifeq ($(HAS_DEDICATED_OP_NEWDEL_LIB),1) |
|
5285 e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(NEWLIB)) |
|
5286 endif |
|
5287 -quoted_e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(call addquotedprefix,$(STATIC_LIBS_PATH)/,$(STATIC_LIBS_LIST)) $(quoted_located_ARMLIBS) |
|
5288 -escaped_e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(addprefix $(call ruleEscape,$(STATIC_LIBS_PATH)/),$(STATIC_LIBS_LIST)) $(escaped_located_ARMLIBS) |
|
5289 +e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(addprefix $(STATIC_LIBS_PATH)/,$(STATIC_LIBS_LIST)) $(located_ARMLIBS) |
|
5290 |
|
5291 endif |
|
5292 else |
|
5293 # ARM RUNTIME LIBS |
|
5294 ifeq ($(VARIANTTYPE),udeb) |
|
5295 - e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) |
|
5296 + e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(located_ARMLIBS) |
|
5297 else |
|
5298 - e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) |
|
5299 + e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(located_ARMLIBS) |
|
5300 endif |
|
5301 -quoted_e32abiv2_LIBS=$(e32abiv2_LIBS) $(quoted_located_ARMLIBS) |
|
5302 -escaped_e32abiv2_LIBS=$(e32abiv2_LIBS) $(escaped_located_ARMLIBS) |
|
5303 endif |
|
5304 |
|
5305 # NOTE: the groupin10 macro must be used before a call to the "startrule" macro |
|
5306 @@ -596,36 +623,76 @@ |
|
5307 # outside the relevant tags but it is also unavoidable. |
|
5308 define linktarget_func |
|
5309 ## The actual link target, dependencies and build step |
|
5310 -$(LINK_TARGET): $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(escaped_e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) |
|
5311 +$(E32TARGET): $(POSTLINKDEFFILE) $(ELF2E32) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) $(if $(HAVE_ORDERONLY),|,) $(EPOCROOT)/epoc32/build/TEM_LIB |
|
5312 $(if $(MULTIFILE_ENABLED),,@echo -n "" > $(VIAFILE); |
|
5313 $(call groupin10,$(LINKOBJECTS)) ;) |
|
5314 - $(call startrule,link) \ |
|
5315 + $(call startrule,linkandpostlink) \ |
|
5316 $(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \ |
|
5317 $(if $(SUPPORTS_STDCPP_NEWLIB),$(if $(located_STATICLIBRARIES),$(CHECKLIB) $(CHECKLIB_TYPE) --elf $(call dblquote,$(located_STATICLIBRARIES)) &&,),) \ |
|
5318 $(LD) $(LINKER_MISC_FLAGS) $(LINKER_DEFAULT_LIB_PATHS) $(SYMBIAN_LINK_FLAGS) $(if $(DEBUG_INFO),$(LINKER_DEBUG_OPTION),$(LINKER_NODEBUG_OPTION)) \ |
|
5319 + $(if $(ARMLIBS),$(LD_WARNINGS_SUPPRESSION_ARMLIBS),) \ |
|
5320 $(SHARED_OBJECT_OPTION) $(SPLIT_OPTION) \ |
|
5321 - $(RW_BASE_OPTION) 0x400000 \ |
|
5322 + $(RW_BASE) \ |
|
5323 $(LINKER_ARCH_OPTION) \ |
|
5324 - $(SYMVER_OPTION) $(SO_NAME_OPTION) $(call dblquote,$(LINKASVERSIONED)) \ |
|
5325 + $(SYMVER_OPTION) $(SO_NAME_OPTION)=$(call dblquote,$(LINKASVERSIONED)) \ |
|
5326 $(LINKER_ENTRYPOINT_SETTING) \ |
|
5327 - -o $$(call dblquote,$$@) \ |
|
5328 + -o $$(call dblquote,$(LINK_TARGET)) \ |
|
5329 $(if $(LTCG),$(LTCG_OPTION),) \ |
|
5330 - $(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION) \ |
|
5331 - $(call dblquote,$(MAPFILE)) \ |
|
5332 + $(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION)=$(call dblquote,$(MAPFILE)) \ |
|
5333 $(LINKEROPTION) \ |
|
5334 $(if $(MULTIFILE_ENABLED),$(call dblquote,$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS)),$(COMMANDFILE_OPTION)$(call dblquote,$(VIAFILE))) \ |
|
5335 $(if $(GENERATELINKERFEEDBACK),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \ |
|
5336 $(if $(LINKER_ADD_STATIC_RUNTIME),$(if $(STATIC_RUNTIME_LIB),$(LINKER_GROUP_START_OPTION) $(STATIC_RUNTIME_DIR)/$(STATIC_RUNTIME_LIB) $(LINKER_GROUP_END_OPTION),)) \ |
|
5337 - $(quoted_e32abiv2_LIBS) $(LINKER_DEFAULT_LIBS)\ |
|
5338 - $(call endrule,link) |
|
5339 + $(call dblquote,$(e32abiv2_LIBS)) $(LINKER_DEFAULT_LIBS) && \ |
|
5340 + $(ELF2E32) \ |
|
5341 + --sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \ |
|
5342 + --version=$(VERSION) \ |
|
5343 + --capability=$(FINAL_CAPABILITIES) \ |
|
5344 + --linkas=$(call dblquote,$(LINKASVERSIONED)) \ |
|
5345 + --fpu=$(if $(ARMFPU),$(ARMFPU),$(POSTLINKER_FPU_DEFAULT)) \ |
|
5346 + --targettype=$(POSTLINKTARGETTYPE) \ |
|
5347 + --output=$$(call dblquote,$$@) \ |
|
5348 + --elfinput=$(call dblquote,$(LINK_TARGET)) \ |
|
5349 + $(if $(UID1),--uid1=0x$(UID1),) \ |
|
5350 + $(if $(UID2),--uid2=0x$(UID2),) \ |
|
5351 + $(if $(UID3),--uid3=0x$(UID3),) \ |
|
5352 + $(if $(VENDORID),--vid=0x$(VENDORID),) \ |
|
5353 + $(if $(EXPTARGET),--customdlltarget,) \ |
|
5354 + $(if $(ARMLIBS),--excludeunwantedexports,) \ |
|
5355 + $(if $(EPOCALLOWDLLDATA),--dlldata,) \ |
|
5356 + $(if $(EPOCPROCESSPRIORITY),--priority=$(EPOCPROCESSPRIORITY),) \ |
|
5357 + $(if $(EPOCSTACKSIZE),--stack=0x$(EPOCSTACKSIZE),) \ |
|
5358 + $(if $(EPOCHEAPSIZEMIN),--heap=0x$(EPOCHEAPSIZEMIN)$(CHAR_COMMA)0x$(EPOCHEAPSIZEMAX),) \ |
|
5359 + $(if $(EPOCFIXEDPROCESS),--fixedaddress,) \ |
|
5360 + $(if $(EPOCDATALINKADDRESS),--datalinkaddress=$(EPOCDATALINKADDRESS),) \ |
|
5361 + $(if $(NAMEDSYMLKUP),--namedlookup,) \ |
|
5362 + $(if $(SMPSAFE),--smpsafe,) \ |
|
5363 + $(if $(POSTLINKDEFFILE),--definput=$(POSTLINKDEFFILE),) \ |
|
5364 + $(if $(EXPORTUNFROZEN),--unfrozen,) \ |
|
5365 + $(if $(AUTOEXPORTS),--sysdef=$(call dblquote,$(AUTOEXPORTS)),) \ |
|
5366 + $(if $(CANIGNORENONCALLABLE), \ |
|
5367 + $(if $(IMPORTLIBRARYREQUIRED),,--ignorenoncallable),) \ |
|
5368 + $(if $(CANHAVEEXPORTS), --defoutput=$(call dblquote,$(GENERATED_DEFFILE)) --dso=$(GENERATED_DSO)) \ |
|
5369 + $(if $(filter $(VARIANTTYPE),$(DEBUGGABLE)),--debuggable,) \ |
|
5370 + $(if $(POSTLINKER_SUPPORTS_WDP), \ |
|
5371 + --codepaging=$(PAGEDCODE_OPTION) --datapaging=$(PAGEDDATA_OPTION), \ |
|
5372 + $(POSTLINKER_PAGEDOPTION)) \ |
|
5373 + $(if $(NOCOMPRESSTARGET),--uncompressed, \ |
|
5374 + $(if $(INFLATECOMPRESSTARGET),--compressionmethod=inflate, \ |
|
5375 + $(if $(BYTEPAIRCOMPRESSTARGET),--compressionmethod=bytepair, \ |
|
5376 + --compressionmethod=$(POSTLINKER_COMPRESSION_DEFAULT)))) \ |
|
5377 + --libpath="$(call concat,$(PATHSEP)$(CHAR_SEMIC),$(strip $(RUNTIME_LIBS_PATH) $(STATIC_LIBS_PATH)))" \ |
|
5378 + $(if $(SAVESPACE),$(if $(EXPORTUNFROZEN),,&& { $(GNURM) -rf $(INTERMEDIATEPATH); true; })) \ |
|
5379 + $(call endrule,linkandpostlink) |
|
5380 |
|
5381 -$(MAPFILE): $(LINK_TARGET) |
|
5382 +$(MAPFILE): $(E32TARGET) |
|
5383 +$(LINK_TARGET): $(E32TARGET) |
|
5384 endef |
|
5385 +ifneq ($(DOPOSTLINK),) |
|
5386 $(eval $(linktarget_func)) |
|
5387 +endif # ifneq ($(DOPOSTLINK),) |
|
5388 |
|
5389 -CLEANTARGETS:=$(CLEANTARGETS) $(LINK_TARGET) $(if $(GENERATELINKERFEEDBACK),$(FEEDBACKFILE)) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT)) |
|
5390 -CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE) |
|
5391 -CLEANTARGETS:=$(CLEANTARGETS) $(MAPFILE) |
|
5392 +CLEANTARGETS:=$(CLEANTARGETS) $(VIAFILE) $(if $(GENERATELINKERFEEDBACK),$(FEEDBACKFILE)) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT)) |
|
5393 WHATRELEASE:=$(WHATRELEASE) $(MAPFILE) |
|
5394 |
|
5395 endif # if TARGETTYPE lib |
|
5396 @@ -646,6 +713,7 @@ |
|
5397 # Users can turn TC on by setting it to 1 in user config. |
|
5398 ifneq ($(USE_TRACE_COMPILER),) |
|
5399 include $(FLMHOME)/tracecompiler.mk |
|
5400 + WHATRELEASE:=$(WHATRELEASE) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER) |
|
5401 endif |
|
5402 |
|
5403 CC_CPPONLY_ARGS:=$(SYMBIAN_CCFLAGS) $(if $(DEBUG_INFO),-g) $(DEBUG_FORMAT) \ |
|
5404 @@ -655,7 +723,7 @@ |
|
5405 $(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \ |
|
5406 $(CPPONLYOPTION) $(INSTRUCTION_SET) \ |
|
5407 $(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \ |
|
5408 - $(COMPILER_FPU_FLAGS) |
|
5409 + $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT)) |
|
5410 |
|
5411 ## COMPILE CPP Files ################################################################# |
|
5412 |
|
5413 @@ -674,7 +742,7 @@ |
|
5414 $(EXPORT_VTBL_OPTION) $(NO_UNALIGNED_ACCESS) $(VFE_OPTION) $(AAPCS_OPTION) \ |
|
5415 $(COMPILE_ONLY_OPTION) $(INSTRUCTION_SET) \ |
|
5416 $(if $(ALWAYS_BUILD_AS_ARM),$(ARM_INSTRUCTION_SET),$(THUMB_INSTRUCTION_SET) $(call makemacrodef,-D,$(COMPILER_THUMB_DEFINES))) \ |
|
5417 - $(COMPILER_FPU_FLAGS) |
|
5418 + $(COMPILER_FPU_OPTION)$(if $(ARMFPU),$(ARMFPU),$(COMPILER_FPU_DEFAULT)) |
|
5419 |
|
5420 ifeq ($(STDCPP),1) |
|
5421 SYSTEMINCLUDE:=$(SYSTEMINCLUDE) $(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(STDCPP_INCLUDE))) |
|
5422 @@ -705,7 +773,7 @@ |
|
5423 $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME))) |
|
5424 |
|
5425 # $4 is for language specific options (e.g. C++ vs C) |
|
5426 -$(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER),) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) |
|
5427 +$(1): $(2) $(PROJECT_META) $(if $(MULTIFILE_ENABLED),,$(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) | $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER),) |
|
5428 $(call startrule,compile,,$(2)) \ |
|
5429 $(if $(PERTURBSTARTTIME), $(RANSLEEP) $(PERTURBMSECS) ;,) \ |
|
5430 $(if $(MULTIFILE_ENABLED), echo $(2) $(3) > $(MULTIFILE_VIAFILE) ;,) \ |
|
5431 @@ -716,24 +784,27 @@ |
|
5432 $(if $(USE_PROFILER_FEEDBACK),--profile=$(call dblquote,$(ARM_PROFILER_FILE)),) \ |
|
5433 $(call makemacrodef,-D,$(COMPILER_INTERWORK_DEFINES) $(CDEFS)) \ |
|
5434 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
|
5435 - $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquoteitem,$(RVCTINC)),),) \ |
|
5436 + $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
|
5437 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
|
5438 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
|
5439 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
|
5440 $(if $(NOHIDEALL),--no_hide_all,) \ |
|
5441 - $(DEPEND_OPTION) $(call dblquote,$(1).d) \ |
|
5442 + $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(1).d)) \ |
|
5443 $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \ |
|
5444 $(if $(MULTIFILE_ENABLED),--multifile $(OUTPUT_OPTION) $(MULTIFILEOBJECT) \ |
|
5445 --via $$(call dblquote, $(MULTIFILE_VIAFILE)),$(OUTPUT_OPTION) $$@ $$(call dblquote, $$<)) \ |
|
5446 $(call endrule,compile) |
|
5447 |
|
5448 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5449 -ifneq "$(DEPENDFILE)" "" |
|
5450 -ifeq ($(NO_DEPEND_INCLUDE),) |
|
5451 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
5452 +ifeq ($(NO_DEPEND_GENERATE),) |
|
5453 + CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5454 +endif |
|
5455 + |
|
5456 +ifneq ($(DEPENDFILE),) |
|
5457 + ifeq ($(NO_DEPEND_INCLUDE),) |
|
5458 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
5459 -include $(DEPENDFILE) |
|
5460 endif |
|
5461 -endif |
|
5462 + endif |
|
5463 endif |
|
5464 |
|
5465 # individual source file compilation |
|
5466 @@ -809,24 +880,27 @@ |
|
5467 $(OPTION_COMPILER) \ |
|
5468 $(call makemacrodef,-D,$(COMPILER_INTERWORK_DEFINES) $(CDEFS)) \ |
|
5469 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\ |
|
5470 - $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquoteitem,$(RVCTINC)),),) \ |
|
5471 + $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \ |
|
5472 $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(<D)) \ |
|
5473 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \ |
|
5474 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \ |
|
5475 $(if $(NOHIDEALL),--no_hide_all,) \ |
|
5476 - $(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME)) \ |
|
5477 + $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \ |
|
5478 $$(call dblquote, $$<) $(OUTPUT_OPTION) $$(@) \ |
|
5479 $(call endrule,e32listing) |
|
5480 |
|
5481 CLEANTARGETS:=$$(CLEANTARGETS) $(LISTINGTARGET) |
|
5482 |
|
5483 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5484 -ifneq "$(DEPENDFILE)" "" |
|
5485 -ifeq ($(NO_DEPEND_INCLUDE),) |
|
5486 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
5487 +ifeq ($(NO_DEPEND_GENERATE),)) |
|
5488 + CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5489 +endif |
|
5490 + |
|
5491 +ifneq ($(DEPENDFILE),) |
|
5492 + ifeq ($(NO_DEPEND_INCLUDE),) |
|
5493 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
5494 -include $(DEPENDFILE) |
|
5495 endif |
|
5496 -endif |
|
5497 + endif |
|
5498 endif |
|
5499 |
|
5500 endef |
|
5501 @@ -852,17 +926,32 @@ |
|
5502 |
|
5503 FREEZE:: $(1) |
|
5504 $(call startrule,freeze,,$(RESOLVED_DEFFILE)) \ |
|
5505 - $(EFREEZE) $(EFREEZE_REMOVE_OPTION) "$(RESOLVED_DEFFILE)" $(FIVESPACES) $(GENERATED_DEFFILE) \ |
|
5506 + $(EFREEZE) $(EFREEZE_REMOVE_OPTION) "$(RESOLVED_DEFFILE)" $(FIVESPACES) $(call dblquote,$(GENERATED_DEFFILE)) \ |
|
5507 $(call endrule,freeze) |
|
5508 endef |
|
5509 |
|
5510 -# DEFFILE should only be generated for target types that have a def file |
|
5511 -ifeq ($(MAKEDEFFILE),1) |
|
5512 -# Eval freeze only once - no point making the DEFFILE for urel *and* udeb. |
|
5513 +# Only freeze once - udeb and urel cannot differ |
|
5514 ifeq ($($(FREEZEGUARD)),) |
|
5515 -$(eval $(call e32freeze,$(E32TARGET))) |
|
5516 -$(FREEZEGUARD):=1 |
|
5517 -endif |
|
5518 + # For most freezing activity we need the temporary .def file generated in the final post-link |
|
5519 + # that lists the current exports - FREEZE can therefore be dependent on the final post-linked binary, |
|
5520 + # with the side-effect that a build is triggered if someone tries to freeze without having built. |
|
5521 + # |
|
5522 + # However, there's one case where we don't want to be dependent on the post-linked binary in this way, |
|
5523 + # and that's when (a) there are missing exports, (b) the user's aware of them and (c) they're deliberately freezing to |
|
5524 + # remove them using EFREEZE's remove option. Being dependent on the post-linked binary in this case, where ELF2E32 |
|
5525 + # actually fails to generate a final binary, would mean that the freeze would never happen and post-linking would |
|
5526 + # just be continually re-attempted (to fail each time). |
|
5527 + # |
|
5528 + # So, as a special case, if the user is explicitly attempting to freeze and perform removals, we make FREEZE dependent |
|
5529 + # on the temporary .def file instead. This has no rule to actually make it, but gives a hint as to what is wrong if |
|
5530 + # the users performs a freeze with remove without having explicitly built previously. |
|
5531 + # |
|
5532 + ifneq ($(EFREEZE_REMOVE_OPTION),) |
|
5533 + $(eval $(call e32freeze,$(GENERATED_DEFFILE))) |
|
5534 + else |
|
5535 + $(eval $(call e32freeze,$(E32TARGET))) |
|
5536 + endif |
|
5537 + $(FREEZEGUARD):=1 |
|
5538 endif |
|
5539 |
|
5540 endif |
|
5541 @@ -912,24 +1001,26 @@ |
|
5542 $(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$$(call concat, $(PREINCLUDE_OPTION) ,$$(call dblquote,$(PREINCLUDE))) \ |
|
5543 $(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(USERINCLUDE))) \ |
|
5544 $(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(SYSTEMINCLUDE))) \ |
|
5545 - $(if $(ARMINC),$(if $(RVCTINC), $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquoteitem,$(RVCTINC)),),) ) |
|
5546 + $(if $(ARMINC),$(if $(RVCTINC), $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$(RVCTINC)),),) ) |
|
5547 |
|
5548 |
|
5549 $(e32abiv2_PREFILE): $1 $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) |
|
5550 $(call startrule,cia2cpp,,$1) \ |
|
5551 $(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \ |
|
5552 - $(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) && \ |
|
5553 - $(CC) -M $(e32abiv2_PREFILE_OPTIONS) --depend_format=unix \ |
|
5554 - $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) > $(call dblquote,$(e32abiv2_PREFILE).d) \ |
|
5555 + $(CC) $(e32abiv2_PREFILE_OPTIONS) $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) \ |
|
5556 + $(if $(NO_DEPEND_GENERATE),,&& $(CC) -M $(e32abiv2_PREFILE_OPTIONS) --depend_format=unix $(OUTPUT_OPTION) $$@ $$(call dblquote,$1) > $(call dblquote,$(e32abiv2_PREFILE).d)) \ |
|
5557 $(call endrule,cia2cpp) |
|
5558 |
|
5559 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5560 -ifneq "$(DEPENDFILE)" "" |
|
5561 -ifeq ($(NO_DEPEND_INCLUDE),) |
|
5562 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
5563 +ifeq ($(NO_DEPEND_GENERATE),) |
|
5564 + CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5565 +endif |
|
5566 + |
|
5567 +ifneq ($(DEPENDFILE),) |
|
5568 + ifeq ($(NO_DEPEND_INCLUDE),) |
|
5569 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
5570 -include $(DEPENDFILE) |
|
5571 endif |
|
5572 -endif |
|
5573 + endif |
|
5574 endif |
|
5575 |
|
5576 endef |
|
5577 @@ -960,21 +1051,26 @@ |
|
5578 $(call startrule,asmcompile,,$(2)) \ |
|
5579 $(if $(PERTURBSTARTTIME),$(RANSLEEP) $(PERTURBMSECS) ;,) \ |
|
5580 $(CC) $(e32abiv2_asm_OPTIONS) \ |
|
5581 - $(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME)) \ |
|
5582 + $(if $(NO_DEPEND_GENERATE),,$(DEPEND_OPTION) $(call dblquote,$(DEPENDFILENAME))) \ |
|
5583 $$(call dblquote, $$<) $(OUTPUT_OPTION) $$@ \ |
|
5584 $(call endrule,asmcompile) |
|
5585 +ifeq ($(NO_DEPEND_GENERATE),) |
|
5586 $(call startrule,asmdependencies) \ |
|
5587 $(CC) -M $(subst --no_rtti,,$(e32abiv2_asm_OPTIONS)) --depend_format=unix \ |
|
5588 $(OUTPUT_OPTION) $$@ $$(call dblquote,$2) > $(call dblquote,$(DEPENDFILENAME)) \ |
|
5589 $(call endrule,asmdependencies) |
|
5590 +endif |
|
5591 |
|
5592 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5593 -ifneq "$(DEPENDFILE)" "" |
|
5594 -ifeq ($(NO_DEPEND_INCLUDE),) |
|
5595 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
5596 +ifeq ($(NO_DEPEND_GENERATE),) |
|
5597 + CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
5598 +endif |
|
5599 + |
|
5600 +ifneq ($(DEPENDFILE),) |
|
5601 + ifeq ($(NO_DEPEND_INCLUDE),) |
|
5602 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
5603 -include $(DEPENDFILE) |
|
5604 endif |
|
5605 -endif |
|
5606 + endif |
|
5607 endif |
|
5608 |
|
5609 CREATABLEPATHS:=$$(CREATABLEPATHS) $(INTERMEDIATEPATH) |
|
5610 @@ -1116,7 +1212,6 @@ |
|
5611 PREVIOUSVARIANTTYPE:=$(VARIANTTYPE) |
|
5612 |
|
5613 WHATRELEASE:=$(WHATRELEASE) $(ROMFILENAME) |
|
5614 - CLEANTARGETS:=$(CLEANTARGETS) $(ROMFILENAME) |
|
5615 endif |
|
5616 |
|
5617 # Deal with test code batch files generation. |
|
5618 @@ -1127,7 +1222,6 @@ |
|
5619 BATCHFILE_CREATED_$(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH):=1 |
|
5620 TARGET_CREATED_$(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)_$(TARGET):=1 |
|
5621 WHATRELEASE:=$(WHATRELEASE) $(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH) |
|
5622 - CLEANTARGETS:=$(CLEANTARGETS) $(EPOCROOT)/epoc32/data/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH) |
|
5623 endif |
|
5624 |
|
5625 ###################### End of Build ROMFILE target ###################### |
|
5626 @@ -1167,12 +1261,12 @@ |
|
5627 $(call makepath,$(CREATABLEPATHS)) |
|
5628 |
|
5629 ## Clean up |
|
5630 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS) ,$(CREATABLEPATHS),)) |
|
5631 +$(call raptor_clean,$(CLEANTARGETS)) |
|
5632 |
|
5633 -# For the abld -what target |
|
5634 -$(eval $(call whatmacro,$(filter-out %.sym,$(WHATRELEASE)),WHATARMV5)) |
|
5635 +# For the --what option and the log file |
|
5636 +$(call raptor_release,$(filter-out %.sym,$(WHATRELEASE))) |
|
5637 |
|
5638 -endif # FEATUREVARIANTNAME=="" or FEATUREVARIANT==1 |
|
5639 +endif # DOBUILD |
|
5640 |
|
5641 ## The End |
|
5642 |
|
5643 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm |
|
5644 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm 2010-05-18 19:32:34.725348467 +0100 |
|
5645 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2fsy.flm 2010-05-17 18:47:53.040843000 +0100 |
|
5646 @@ -1,4 +1,4 @@ |
|
5647 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5648 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5649 # All rights reserved. |
|
5650 # This component and the accompanying materials are made available |
|
5651 # under the terms of the License "Eclipse Public License v1.0" |
|
5652 @@ -28,7 +28,7 @@ |
|
5653 # Determine what kind of entrypoint option to set |
|
5654 AUTOEXPORTS:=CreateFileSystem,1; |
|
5655 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib |
|
5656 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5657 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5658 |
|
5659 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5660 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5661 @@ -36,6 +36,15 @@ |
|
5662 |
|
5663 LINKER_STUB_LIBRARY:=$(STATIC_RUNTIME_DIR)/edllstub.lib |
|
5664 |
|
5665 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
5666 +ifneq ($(DEFFILEKEYWORD),) |
|
5667 +POSTLINKDEFFILE:=$(DEFFILE) |
|
5668 +SUPPORT_FREEZE:=1 |
|
5669 +ifeq ($(NOEXPORTLIBRARY),) |
|
5670 +IMPORTLIBRARYREQUIRED:=1 |
|
5671 +endif |
|
5672 +endif |
|
5673 + |
|
5674 UID2:=100039df |
|
5675 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
5676 CANIGNORENONCALLABLE:=1 |
|
5677 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm |
|
5678 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm 2010-05-18 19:32:34.725348467 +0100 |
|
5679 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kdll.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5680 @@ -27,7 +27,7 @@ |
|
5681 |
|
5682 # Determine what kind of entrypoint option to set |
|
5683 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/ekll.lib |
|
5684 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/ekll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5685 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/ekll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5686 |
|
5687 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5688 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5689 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kext.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kext.flm |
|
5690 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2kext.flm 2010-05-18 19:32:34.725348467 +0100 |
|
5691 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2kext.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5692 @@ -34,7 +34,7 @@ |
|
5693 |
|
5694 # Default Linker settings for this target type |
|
5695 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/eext.lib |
|
5696 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/eext.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5697 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/eext.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5698 |
|
5699 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5700 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5701 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm |
|
5702 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5703 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2ldd.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5704 @@ -1,4 +1,4 @@ |
|
5705 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5706 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5707 # All rights reserved. |
|
5708 # This component and the accompanying materials are made available |
|
5709 # under the terms of the License "Eclipse Public License v1.0" |
|
5710 @@ -29,7 +29,7 @@ |
|
5711 |
|
5712 # Determine what kind of entrypoint option to set |
|
5713 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edev.lib |
|
5714 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5715 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5716 |
|
5717 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5718 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5719 @@ -46,6 +46,15 @@ |
|
5720 # No dedicated library for operator new/delete functions. |
|
5721 HAS_DEDICATED_OP_NEWDEL_LIB:= |
|
5722 |
|
5723 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
5724 +ifneq ($(DEFFILEKEYWORD),) |
|
5725 +POSTLINKDEFFILE:=$(DEFFILE) |
|
5726 +SUPPORT_FREEZE:=1 |
|
5727 +ifeq ($(NOEXPORTLIBRARY),) |
|
5728 +IMPORTLIBRARYREQUIRED:=1 |
|
5729 +endif |
|
5730 +endif |
|
5731 + |
|
5732 BASELIBS:=edev |
|
5733 UID2:=100000af |
|
5734 |
|
5735 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm |
|
5736 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5737 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdd.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5738 @@ -1,4 +1,4 @@ |
|
5739 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5740 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5741 # All rights reserved. |
|
5742 # This component and the accompanying materials are made available |
|
5743 # under the terms of the License "Eclipse Public License v1.0" |
|
5744 @@ -28,7 +28,7 @@ |
|
5745 |
|
5746 # Determine what kind of entrypoint option to set |
|
5747 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edev.lib |
|
5748 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5749 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5750 |
|
5751 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5752 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5753 @@ -45,6 +45,14 @@ |
|
5754 # No dedicated library for operator new/delete functions. |
|
5755 HAS_DEDICATED_OP_NEWDEL_LIB:= |
|
5756 |
|
5757 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
5758 +ifneq ($(DEFFILEKEYWORD),) |
|
5759 +POSTLINKDEFFILE:=$(DEFFILE) |
|
5760 +SUPPORT_FREEZE:=1 |
|
5761 +ifeq ($(NOEXPORTLIBRARY),) |
|
5762 +IMPORTLIBRARYREQUIRED:=1 |
|
5763 +endif |
|
5764 +endif |
|
5765 |
|
5766 BASELIBS:=edev |
|
5767 UID2:=100039d0 |
|
5768 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm |
|
5769 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5770 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2pdl.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5771 @@ -1,4 +1,4 @@ |
|
5772 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5773 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5774 # All rights reserved. |
|
5775 # This component and the accompanying materials are made available |
|
5776 # under the terms of the License "Eclipse Public License v1.0" |
|
5777 @@ -28,7 +28,7 @@ |
|
5778 |
|
5779 # Determine what kind of entrypoint option to set |
|
5780 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib |
|
5781 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5782 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5783 |
|
5784 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5785 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5786 @@ -38,6 +38,15 @@ |
|
5787 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
5788 CANIGNORENONCALLABLE:=1 |
|
5789 |
|
5790 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
5791 +ifneq ($(DEFFILEKEYWORD),) |
|
5792 +POSTLINKDEFFILE:=$(DEFFILE) |
|
5793 +SUPPORT_FREEZE:=1 |
|
5794 +ifeq ($(NOEXPORTLIBRARY),) |
|
5795 +IMPORTLIBRARYREQUIRED:=1 |
|
5796 +endif |
|
5797 +endif |
|
5798 + |
|
5799 BASELIBS:= |
|
5800 UID2:=10003b1c |
|
5801 RESOURCEPATH:=Resource\Printers |
|
5802 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm: e32abiv2pdll.flm |
|
5803 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm |
|
5804 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5805 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2plugin.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5806 @@ -1,4 +1,4 @@ |
|
5807 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5808 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5809 # All rights reserved. |
|
5810 # This component and the accompanying materials are made available |
|
5811 # under the terms of the License "Eclipse Public License v1.0" |
|
5812 @@ -16,22 +16,12 @@ |
|
5813 # |
|
5814 # |
|
5815 |
|
5816 -ifeq ($(TARGETTYPE),plugin) |
|
5817 +ifneq ($(filter plugin plugin3,$(TARGETTYPE)),) |
|
5818 include $(FLMHOME)/e32abiv2defaults.mk |
|
5819 |
|
5820 -# This is basically a DLL with some tweaks |
|
5821 -# If DEFFILE keyword is specified in the MMP, set the POSTLINKDEFFILE |
|
5822 -# and guarantee the generation of import library; if not specified import library |
|
5823 -# won't be generated for plugin (default) |
|
5824 -ifneq ($(DEFFILEKEYWORD),) |
|
5825 -POSTLINKDEFFILE:=$(DEFFILE) |
|
5826 -SUPPORT_FREEZE:=1 |
|
5827 -IMPORTLIBRARYREQUIRED:=1 |
|
5828 -endif |
|
5829 - |
|
5830 # Default Linker settings for this target type |
|
5831 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib |
|
5832 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5833 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5834 |
|
5835 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5836 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5837 @@ -48,9 +38,22 @@ |
|
5838 AUTOEXPORTS:=_Z24ImplementationGroupProxyRi,1; |
|
5839 CANIGNORENONCALLABLE:=1 |
|
5840 |
|
5841 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
5842 +ifneq ($(DEFFILEKEYWORD),) |
|
5843 +POSTLINKDEFFILE:=$(DEFFILE) |
|
5844 +SUPPORT_FREEZE:=1 |
|
5845 +ifeq ($(NOEXPORTLIBRARY),) |
|
5846 +IMPORTLIBRARYREQUIRED:=1 |
|
5847 +endif |
|
5848 +endif |
|
5849 + |
|
5850 # We could check the UID rather than forcing it |
|
5851 # but there seems to be no point in that. |
|
5852 UID2:=10009D8D |
|
5853 +ifeq ($(TARGETTYPE),plugin3) |
|
5854 +UID2:=10009D93 |
|
5855 +POSTLINKTARGETTYPE:=PLUGIN3 |
|
5856 +endif |
|
5857 |
|
5858 |
|
5859 RESOURCEPATH:=Resource/Plugins |
|
5860 @@ -65,5 +68,5 @@ |
|
5861 $(call vrestore) |
|
5862 |
|
5863 else |
|
5864 -$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)')) |
|
5865 +$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)')) |
|
5866 endif |
|
5867 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm |
|
5868 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5869 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stddll.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5870 @@ -29,7 +29,7 @@ |
|
5871 |
|
5872 # Default Linker settings for this target type |
|
5873 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib |
|
5874 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5875 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5876 DEFAULT_NEWLIB:=$(DEFAULT_STDCPP_NEWLIB) |
|
5877 |
|
5878 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5879 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm |
|
5880 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5881 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm 2010-05-17 18:47:53.044842000 +0100 |
|
5882 @@ -1,4 +1,4 @@ |
|
5883 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5884 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5885 # All rights reserved. |
|
5886 # This component and the accompanying materials are made available |
|
5887 # under the terms of the License "Eclipse Public License v1.0" |
|
5888 @@ -28,19 +28,22 @@ |
|
5889 # Determine what kind of entrypoint option to set |
|
5890 LINKER_STUB_LIBRARY:= |
|
5891 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/eexe.lib |
|
5892 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/eexe.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5893 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/eexe.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5894 DEFAULT_NEWLIB:=$(DEFAULT_STDCPP_NEWLIB) |
|
5895 |
|
5896 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5897 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5898 endif |
|
5899 |
|
5900 -STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
5901 +ifeq ($(EPOCNESTEDEXCEPTIONS),) |
|
5902 + STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
5903 +else |
|
5904 + STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS) |
|
5905 +endif |
|
5906 + |
|
5907 NAMEDSYMLKUP:=1 |
|
5908 LIBRARY:=$(LIBRARY) euser.dso |
|
5909 |
|
5910 -MAKEDEFFILE:= |
|
5911 - |
|
5912 $(call vsave,CDEFS SYSTEMINCLUDE STATICLIBRARY) |
|
5913 |
|
5914 # STDEXEs need the c runtime library |
|
5915 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm |
|
5916 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5917 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm 2010-05-17 18:47:53.048842000 +0100 |
|
5918 @@ -1,4 +1,4 @@ |
|
5919 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5920 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5921 # All rights reserved. |
|
5922 # This component and the accompanying materials are made available |
|
5923 # under the terms of the License "Eclipse Public License v1.0" |
|
5924 @@ -28,7 +28,7 @@ |
|
5925 AUTOEXPORTS:=_Z13NotifierArrayv,1; |
|
5926 # Determine what kind of entrypoint option to set |
|
5927 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib |
|
5928 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5929 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5930 |
|
5931 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5932 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5933 @@ -38,6 +38,15 @@ |
|
5934 STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB) |
|
5935 CANIGNORENONCALLABLE:=1 |
|
5936 |
|
5937 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
5938 +ifneq ($(DEFFILEKEYWORD),) |
|
5939 +POSTLINKDEFFILE:=$(DEFFILE) |
|
5940 +SUPPORT_FREEZE:=1 |
|
5941 +ifeq ($(NOEXPORTLIBRARY),) |
|
5942 +IMPORTLIBRARYREQUIRED:=1 |
|
5943 +endif |
|
5944 +endif |
|
5945 + |
|
5946 RESOURCEPATH:=System/Notifiers |
|
5947 UID2:=101fe38b |
|
5948 POSTLINKDEFFILE:=$(DEFFILE) |
|
5949 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var2.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var2.flm |
|
5950 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var2.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5951 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var2.flm 2010-05-17 18:47:53.048842000 +0100 |
|
5952 @@ -1,4 +1,4 @@ |
|
5953 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5954 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5955 # All rights reserved. |
|
5956 # This component and the accompanying materials are made available |
|
5957 # under the terms of the License "Eclipse Public License v1.0" |
|
5958 @@ -19,17 +19,9 @@ |
|
5959 ifeq ($(TARGETTYPE),var2) |
|
5960 include $(FLMHOME)/e32abiv2defaults.mk |
|
5961 |
|
5962 -# What we need to build a DLL |
|
5963 -# May need a dso e.g. ecust.dll |
|
5964 -ifeq ($(NOEXPORTLIBRARY),) |
|
5965 -IMPORTLIBRARYREQUIRED:=1 |
|
5966 -endif |
|
5967 -POSTLINKDEFFILE:=$(DEFFILE) |
|
5968 -SUPPORT_FREEZE:=1 |
|
5969 - |
|
5970 # Determine what kind of entrypoint option to set |
|
5971 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib |
|
5972 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5973 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
5974 |
|
5975 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
5976 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
5977 @@ -55,7 +47,14 @@ |
|
5978 # No exception support for kernel code? |
|
5979 EXCEPTIONS:=$(NO_EXCEPTIONS) |
|
5980 |
|
5981 - |
|
5982 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
5983 +ifneq ($(DEFFILEKEYWORD),) |
|
5984 +POSTLINKDEFFILE:=$(DEFFILE) |
|
5985 +SUPPORT_FREEZE:=1 |
|
5986 +ifeq ($(NOEXPORTLIBRARY),) |
|
5987 +IMPORTLIBRARYREQUIRED:=1 |
|
5988 +endif |
|
5989 +endif |
|
5990 |
|
5991 # We are appending to CDEFS but we don't want this to affect |
|
5992 # other invocations so we are going to save it on a stack |
|
5993 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var.flm |
|
5994 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/e32abiv2var.flm 2010-05-18 19:32:34.729348906 +0100 |
|
5995 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/e32abiv2var.flm 2010-05-17 18:47:53.048842000 +0100 |
|
5996 @@ -1,4 +1,4 @@ |
|
5997 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
5998 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
5999 # All rights reserved. |
|
6000 # This component and the accompanying materials are made available |
|
6001 # under the terms of the License "Eclipse Public License v1.0" |
|
6002 @@ -19,17 +19,9 @@ |
|
6003 ifeq ($(TARGETTYPE),var) |
|
6004 include $(FLMHOME)/e32abiv2defaults.mk |
|
6005 |
|
6006 -# What we need to build a DLL |
|
6007 -# May need a dso e.g. ecust.dll |
|
6008 -ifeq ($(NOEXPORTLIBRARY),) |
|
6009 -IMPORTLIBRARYREQUIRED:=1 |
|
6010 -endif |
|
6011 -POSTLINKDEFFILE:=$(DEFFILE) |
|
6012 -SUPPORT_FREEZE:=1 |
|
6013 - |
|
6014 # Determine what kind of entrypoint option to set |
|
6015 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib |
|
6016 -LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
6017 +LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT)) |
|
6018 |
|
6019 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True") |
|
6020 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP) |
|
6021 @@ -55,7 +47,14 @@ |
|
6022 # No exception support for kernel code? |
|
6023 EXCEPTIONS:=$(NO_EXCEPTIONS) |
|
6024 |
|
6025 - |
|
6026 +# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file |
|
6027 +ifneq ($(DEFFILEKEYWORD),) |
|
6028 +POSTLINKDEFFILE:=$(DEFFILE) |
|
6029 +SUPPORT_FREEZE:=1 |
|
6030 +ifeq ($(NOEXPORTLIBRARY),) |
|
6031 +IMPORTLIBRARYREQUIRED:=1 |
|
6032 +endif |
|
6033 +endif |
|
6034 |
|
6035 # We are appending to CDEFS but we don't want this to affect |
|
6036 # other invocations so we are going to save it on a stack |
|
6037 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/emulator.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/emulator.xml |
|
6038 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/emulator.xml 2010-05-18 19:32:34.729348906 +0100 |
|
6039 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/emulator.xml 2010-05-17 18:47:53.048842000 +0100 |
|
6040 @@ -89,7 +89,6 @@ |
|
6041 <param name='OPT.DEFINE'/> |
|
6042 <param name='OPT.DEFFILE'/> |
|
6043 <param name='OPT.DEPEND'/> |
|
6044 - <param name='DEPEND_SKIP' default=''/> |
|
6045 <param name='OPT.EXPORT'/> |
|
6046 <param name='OPT.IMPORTLIB'/> |
|
6047 <param name='OPT.LISTING'/> |
|
6048 @@ -151,6 +150,23 @@ |
|
6049 <param name='MAKEDEF'/> |
|
6050 </interface> |
|
6051 |
|
6052 + <interface name="Emulator.pdll" extends="Emulator.win32" flm="win32pdll.flm"> |
|
6053 + <param name='CHECKLIB' default=''/> |
|
6054 + <param name='LD'/> |
|
6055 + <param name='LFLAGS_INFGEN'/> |
|
6056 + <param name='OPT.CHECKLIB.STDCPP'/> |
|
6057 + <param name='OPT.CHECKLIB.SYMCPP'/> |
|
6058 + <param name='OPT.CHECKLIB.WIN32'/> |
|
6059 + <param name='OPT.HEAPCOMMIT'/> |
|
6060 + <param name='OPT.HEAPRESERVE'/> |
|
6061 + <param name='OPT.IMAGEBASE'/> |
|
6062 + <param name='OPT.IMPLIB'/> |
|
6063 + <param name='OPT.LIBFILE'/> |
|
6064 + <param name='OPT.LIBPATH'/> |
|
6065 + <param name='OPT.NOIMPLIB'/> |
|
6066 + <param name='MAKEDEF'/> |
|
6067 + </interface> |
|
6068 + |
|
6069 <interface name="Emulator.stddll" extends="Emulator.dll" flm="win32stddll.flm"> |
|
6070 <param name='LFLAGS_SYMGEN'/> |
|
6071 <param name='SYMLOOKUPUTIL'/> |
|
6072 @@ -215,6 +231,9 @@ |
|
6073 <interface name="Emulator.plugin" extends="Emulator.dll" flm="win32plugin.flm"> |
|
6074 </interface> |
|
6075 |
|
6076 + <interface name="Emulator.plugin3" extends="Emulator.dll" flm="win32plugin.flm"> |
|
6077 + </interface> |
|
6078 + |
|
6079 <interface name="Emulator.textnotifier2" extends="Emulator.dll" flm="win32textnotifier2.flm"> |
|
6080 </interface> |
|
6081 |
|
6082 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/gccxml.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/gccxml.flm |
|
6083 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/gccxml.flm 2010-05-18 19:32:34.733348925 +0100 |
|
6084 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/gccxml.flm 2010-05-17 18:47:53.048842000 +0100 |
|
6085 @@ -1,4 +1,4 @@ |
|
6086 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6087 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6088 # All rights reserved. |
|
6089 # This component and the accompanying materials are made available |
|
6090 # under the terms of the License "Eclipse Public License v1.0" |
|
6091 @@ -71,7 +71,7 @@ |
|
6092 # $(2) list of further variable arguments to group in 150 element calls |
|
6093 define groupcallin50 |
|
6094 $(if $2,$1 $(foreach L,$(wordlist 1,50,$2),$(L)),) |
|
6095 - $(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),true) |
|
6096 + $(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),@true) |
|
6097 endef |
|
6098 |
|
6099 # echos content to a file in groups performing optional search/replace based on passed args |
|
6100 @@ -92,7 +92,7 @@ |
|
6101 TEMPGXPARCHIVE:=$(VARIANTBLDPATH)/$(TARGET)$(BASE_TYPE).gxp |
|
6102 GXPARCHIVE:=$(VARIANTRELEASEPATH)/$(TARGET)$(BASE_TYPE).gxp |
|
6103 |
|
6104 -CLEANTARGETS:=$(CLEANTARGETS) $(MMPXMLFILE) $(SRCXMLFILES) $(DEPFILES) $(TEMPGXPARCHIVE) $(GXPARCHIVE) |
|
6105 +CLEANTARGETS:=$(CLEANTARGETS) $(MMPXMLFILE) $(SRCXMLFILES) $(DEPFILES) $(TEMPGXPARCHIVE) |
|
6106 RELEASABLES:=$(RELEASABLES) $(GXPARCHIVE) |
|
6107 |
|
6108 # Deduce whether we should be performing a build with standard CPP characteristics |
|
6109 @@ -200,7 +200,7 @@ |
|
6110 define gccxmlprocesssource |
|
6111 |
|
6112 $(eval DEPENDFILENAME:=$(call mapsource2output,$(1),.xml.d)) |
|
6113 - $(eval DEPENDFILE:=$(DEPENDFILENAME)) |
|
6114 + $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME))) |
|
6115 |
|
6116 $(call mapsource2output,$(1),.xml): $(1) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) |
|
6117 $(call startrule,gccxmlprocesssource) \ |
|
6118 @@ -214,9 +214,9 @@ |
|
6119 $(call endrule,gccxmlprocesssource) |
|
6120 |
|
6121 CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
6122 - ifneq "$(DEPENDFILE)" "" |
|
6123 + ifneq ($(DEPENDFILE),) |
|
6124 ifeq ($(NO_DEPEND_INCLUDE),) |
|
6125 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
6126 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
6127 -include $(DEPENDFILE) |
|
6128 endif |
|
6129 endif |
|
6130 @@ -235,7 +235,7 @@ |
|
6131 # note: the main call here needs to reside outside of start/endrule in order to avoid command line length issues. |
|
6132 define gccxmlpackage |
|
6133 $(TEMPGXPARCHIVE): $(MMPXMLFILE) $(SRCXMLFILES) $(DEFFILE) |
|
6134 - $$(call groupcallin50,$(ZIP) -j $$@,$$^ $(RFIFILES)) ; |
|
6135 + $$(call groupcallin50,@$(ZIP) -j $$@ > /dev/null 2>&1,$$^ $(RFIFILES)) ; |
|
6136 $(call startrule,gccxmlpackage) \ |
|
6137 $(GNURM) -f $(GXPARCHIVE) && \ |
|
6138 $(GNUCP) $$@ $(GXPARCHIVE) \ |
|
6139 @@ -252,6 +252,6 @@ |
|
6140 TARGET:: $(RELEASABLES) |
|
6141 |
|
6142 # clean up |
|
6143 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),)) |
|
6144 +$(call raptor_clean,$(CLEANTARGETS)) |
|
6145 $(call makepath, $(CREATABLEPATHS)) |
|
6146 |
|
6147 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.flm |
|
6148 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.flm 2010-05-18 19:32:34.733348925 +0100 |
|
6149 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.flm 2010-05-17 18:47:53.052842000 +0100 |
|
6150 @@ -1,4 +1,4 @@ |
|
6151 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6152 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6153 # All rights reserved. |
|
6154 # This component and the accompanying materials are made available |
|
6155 # under the terms of the License "Eclipse Public License v1.0" |
|
6156 @@ -28,8 +28,7 @@ |
|
6157 $(call makepath,$(RELEASEPATH)) |
|
6158 $(call makepath,$(BUILDPATH)) |
|
6159 |
|
6160 -CLEANTARGETS:=$(CLEANTARGETS) $(RELEASETARGET) |
|
6161 -RELEASEABLES:=$(RELEASEABLES) $(RELEASETARGET) |
|
6162 +RELEASABLES:=$(RELEASABLES) $(RELEASETARGET) |
|
6163 |
|
6164 GENDEBUGINFO:=$(if $(findstring deb,$(VARIANTTYPE)),1,) |
|
6165 |
|
6166 @@ -59,10 +58,6 @@ |
|
6167 # macros |
|
6168 DEFINES:=$(call makemacrodef,$(OPT.DEFINE),$(CDEFS) $(BASE_MACRO) $(CFLAGS.ADD)) |
|
6169 |
|
6170 -# other |
|
6171 -PDBFILE:=$(if $(GENDEBUGINFO),$(RELEASEPATH)/$(TARGET).pdb,) |
|
6172 -CLEANTARGETS:=$(CLEANTARGETS) $(PDBFILE) |
|
6173 - |
|
6174 #compile |
|
6175 define msvctoolscompile |
|
6176 $(BUILDPATH)/$(basename $(notdir $(1))).obj: $(1) $(PROJECT_META) $(if $(HAVE_ORDERONLY),|,) EXPORT |
|
6177 @@ -71,7 +66,6 @@ |
|
6178 $(if $(findstring staticlib,$(BASE_TYPE)),,$(CFLAGS.LIB)) \ |
|
6179 $(CFLAGS) $$(subst /,-,$(OPTION_MSVC)) \ |
|
6180 $(if $(findstring /W,$(OPTION_MSVC)),,$(CFLAGS.DEFAULT.WARNLEVEL)) \ |
|
6181 - $(if $(PDBFILE),$$(call msvcformatarg,$(OPT.PDBFILE),$(PDBFILE)),) \ |
|
6182 $(DEFINES) $(INCLUDES) \ |
|
6183 $$(call msvcformatarg,$(OPT.BROWSEFILE),$(BUILDPATH)/$(basename $(notdir $(1))).sbr) \ |
|
6184 $$(call msvcformatarg,$(OPT.OBJECTFILE),$$@) $(1) \ |
|
6185 @@ -157,8 +151,7 @@ |
|
6186 |
|
6187 ifneq ($(INSTALLPATH),) |
|
6188 INSTALLTARGET:=$(INSTALLPATH)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE)) |
|
6189 - CLEANTARGETS:=$(CLEANTARGETS) $(INSTALLTARGET) |
|
6190 - RELEASEABLES:=$(RELEASEABLES) $(INSTALLTARGET) |
|
6191 + RELEASABLES:=$(RELEASABLES) $(INSTALLTARGET) |
|
6192 |
|
6193 define msvctoolsinstall |
|
6194 $(INSTALLTARGET): $(RELEASETARGET) |
|
6195 @@ -180,8 +173,8 @@ |
|
6196 ifneq ($(GENDEBUGINFO),) |
|
6197 BSCFILE:=$(RELEASEPATH)/$(TARGET).bsc |
|
6198 BSCRESPONSEFILE:=$(BUILDPATH)/$(TARGET).brf |
|
6199 - CLEANTARGETS:=$(CLEANTARGETS) $(BSCFILE) $(BSCRESPONSEFILE) |
|
6200 - RELEASEABLES:=$(RELEASEABLES) $(BSCFILE) |
|
6201 + CLEANTARGETS:=$(CLEANTARGETS) $(BSCRESPONSEFILE) |
|
6202 + RELEASABLES:=$(RELEASABLES) $(BSCFILE) |
|
6203 |
|
6204 define msvctoolsgenbrowse |
|
6205 $(BSCFILE): $(OBJFILES) |
|
6206 @@ -199,14 +192,14 @@ |
|
6207 |
|
6208 # Global targets |
|
6209 .PHONY:: $(ALLTARGET) |
|
6210 -$(ALLTARGET):: $(RELEASEABLES) |
|
6211 -TARGET:: $(RELEASEABLES) |
|
6212 +$(ALLTARGET):: $(RELEASABLES) |
|
6213 +TARGET:: $(RELEASABLES) |
|
6214 |
|
6215 ifeq ($(BASE_TYPE),staticlib) |
|
6216 LIBRARY:: $(RELEASETARGET) $(INSTALLTARGET) |
|
6217 endif |
|
6218 |
|
6219 # clean up |
|
6220 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),,)) |
|
6221 -# for the abld -what target |
|
6222 -$(eval $(call whatmacro,$(INSTALLTARGET),WHATTOOLS)) |
|
6223 +$(call raptor_clean,$(CLEANTARGETS)) |
|
6224 +# for the --what option and the log file |
|
6225 +$(call raptor_release,$(INSTALLTARGET)) |
|
6226 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.xml |
|
6227 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/msvctools.xml 2010-05-18 19:32:34.733348925 +0100 |
|
6228 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/msvctools.xml 2010-05-17 18:47:53.052842000 +0100 |
|
6229 @@ -42,7 +42,6 @@ |
|
6230 <param name='OPT.LISTING'/> |
|
6231 <param name='OPT.OBJECTFILE'/> |
|
6232 <param name='OPT.OUTFILE'/> |
|
6233 - <param name='OPT.PDBFILE'/> |
|
6234 <param name='OPT.PREINCLUDE'/> |
|
6235 <param name='OPT.SUBSYSTEM'/> |
|
6236 <param name='OPT.SYSINCLUDE'/> |
|
6237 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/resource.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/resource.flm |
|
6238 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/resource.flm 2010-05-18 19:32:34.733348925 +0100 |
|
6239 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/resource.flm 2010-05-17 18:47:53.052842000 +0100 |
|
6240 @@ -1,4 +1,4 @@ |
|
6241 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6242 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6243 # All rights reserved. |
|
6244 # This component and the accompanying materials are made available |
|
6245 # under the terms of the License "Eclipse Public License v1.0" |
|
6246 @@ -101,8 +101,6 @@ |
|
6247 @if [ ! -f $$@ ]; then echo "DATADIR: /$(RSSBASENAME)" > $$@ ; fi |
|
6248 @echo -e "\n/z$(TARGETPATH)/$(TARGET_lower).rsc : $(RSSBASENAME).rpp" >> $$@ |
|
6249 |
|
6250 -CLEANTARGETS:=$$(CLEANTARGETS) $(DESTRPP) $(INFOFILE) |
|
6251 - |
|
6252 endif |
|
6253 endef |
|
6254 |
|
6255 @@ -114,7 +112,7 @@ |
|
6256 $(call makepath,$(INTERBASE)) |
|
6257 |
|
6258 # common pre-processor options |
|
6259 -CPPOPT:=-nostdinc -undef -D_UNICODE -include $(PRODUCT_INCLUDE)\ |
|
6260 +CPPOPT:=-nostdinc -undef -Wno-trigraphs -D_UNICODE -include $(PRODUCT_INCLUDE)\ |
|
6261 -I$(dir $(SOURCE)) $(foreach I, $(USERINCLUDE),-I$(I) ) -I- $(foreach J,$(SYSTEMINCLUDE),-I$(J) ) |
|
6262 |
|
6263 CREATABLEPATHS:=$(RSCDIR) $(RSGDIR) $(OUTPUTPATH) |
|
6264 @@ -174,7 +172,6 @@ |
|
6265 |
|
6266 ifeq ($(TARGET_$(call sanitise,$2)),) |
|
6267 TARGET_$(call sanitise,$2):=1 |
|
6268 - CLEANTARGETS:=$$(CLEANTARGETS) $2 |
|
6269 |
|
6270 RESOURCE:: $2 |
|
6271 ## perform additional copies of binaries |
|
6272 @@ -201,7 +198,6 @@ |
|
6273 |
|
6274 ifeq ($(TARGET_$(call sanitise,$1)),) |
|
6275 TARGET_$(call sanitise,$1):=1 |
|
6276 - CLEANTARGETS:=$$(CLEANTARGETS) $(1) |
|
6277 |
|
6278 $(if $(FLMDEBUG),$(info generateresource: $(1) from $(2) LANG:$(3)),) |
|
6279 |
|
6280 @@ -236,7 +232,6 @@ |
|
6281 |
|
6282 ifeq ($(TARGET_$(call sanitise,$1)),) |
|
6283 TARGET_$(call sanitise,$1):=1 |
|
6284 - CLEANTARGETS:= $$(CLEANTARGETS) $(1) |
|
6285 $(if $(FLMDEBUG),$(info resourceheader: $(1) from $(2) LANG:$(3))) |
|
6286 |
|
6287 RESOURCE:: $(1) |
|
6288 @@ -282,7 +277,6 @@ |
|
6289 ifneq ($(RFIFILE),) |
|
6290 RESOURCE:: $(RFIFILE) |
|
6291 RELEASABLES:=$(RELEASABLES) $(RFIFILE) |
|
6292 - CLEANTARGETS:=$(CLEANTARGETS) $(RFIFILE) |
|
6293 CREATABLEPATHS:=$(CREATABLEPATHS) $(dir $(RFIFILE)) |
|
6294 |
|
6295 RPPFILES:=$(foreach L,$(LANGUAGES:SC=sc),$(INTERBASE)_$(L).rpp) |
|
6296 @@ -291,11 +285,11 @@ |
|
6297 |
|
6298 |
|
6299 ## Clean up |
|
6300 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),)) |
|
6301 +$(call raptor_clean,$(CLEANTARGETS)) |
|
6302 # make the output directories while reading makefile - some build engines prefer this |
|
6303 $(call makepath,$(CREATABLEPATHS)) |
|
6304 |
|
6305 -# for the abld -what target |
|
6306 +# for the --what option and the log file |
|
6307 RELEASABLES:=$(RELEASABLES) $(DESTRPP) $(INFOFILE) |
|
6308 -$(eval $(call whatmacro,$(RELEASABLES),WHATRESOURCES)) |
|
6309 +$(call raptor_release,$(RELEASABLES),RESOURCE) |
|
6310 |
|
6311 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm: run.mk |
|
6312 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/standard.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/standard.xml |
|
6313 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/standard.xml 2010-05-18 19:32:34.737348805 +0100 |
|
6314 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/standard.xml 2010-05-17 18:47:53.056842000 +0100 |
|
6315 @@ -5,11 +5,12 @@ |
|
6316 <param name='ALWAYS_BUILD_AS_ARM' default=''/> |
|
6317 <param name='SET_ARMINC' default=''/> |
|
6318 <param name='ARMLIBS' default=''/> |
|
6319 - <param name='ARMFPU' default='softvfp'/> |
|
6320 - <param name='POSTLINKFPU' default='softvfp'/> |
|
6321 + <param name='ARMFPU' default=''/> |
|
6322 <param name='ARMRT' default=''/> |
|
6323 + <param name='BYTEPAIRCOMPRESSTARGET' default=''/> |
|
6324 <param name='TESTPATH' default=''/> |
|
6325 <param name='CAPABILITY'/> |
|
6326 + <param name='COMPRESSTARGET' default=''/> |
|
6327 <param name='CPPONLYOPTION' default='-E'/> |
|
6328 <param name='LIBRARY'/> |
|
6329 <param name='LIBRARY_DEBUG'/> |
|
6330 @@ -20,6 +21,7 @@ |
|
6331 <param name='EXPORTUNFROZEN' default=''/> |
|
6332 <param name='FEEDBACK_OPTION' default='--feedback=' /> |
|
6333 <param name='FIRSTLIB' default=''/> |
|
6334 + <param name='INFLATECOMPRESSTARGET' default=''/> |
|
6335 <param name='LINKEROPTION_ARMCC' default=''/> |
|
6336 <param name='LISTING_OPTION' default='-S'/> |
|
6337 <param name='MMPDEFS' default=''/> |
|
6338 @@ -58,9 +60,9 @@ |
|
6339 <param name='EPOCSTACKSIZE' default=''/> |
|
6340 <param name='EPOCFIXEDPROCESS' default=''/> |
|
6341 <param name='EPOCALLOWDLLDATA' default=''/> |
|
6342 + <param name='EPOCNESTEDEXCEPTIONS' default=''/> |
|
6343 <param name='PLATMACROS.WINDOWS' default=''/> |
|
6344 <param name='PLATMACROS.LINUX' default=''/> |
|
6345 - <param name='MAKEDEFFILE' default='1'/> |
|
6346 <param name='STDCPP' default=''/> |
|
6347 <param name='NOSTDCPP' default=''/> |
|
6348 <param name='NEWLIB' default=''/> |
|
6349 @@ -72,7 +74,6 @@ |
|
6350 <param name='CC.VAL.SOFTVFP_MAYBE_VFPV2' default=''/> |
|
6351 <param name='CODE_SEGMENT_START' default=''/> |
|
6352 <param name='TOOLCHAIN' default=''/> |
|
6353 - <param name='TOOLCHAINVERSION' default=''/> |
|
6354 </interface> |
|
6355 <interface name="Symbian.e32abiv2" extends="Symbian.mmp" flm="e32abiv2.flm"> |
|
6356 <param name='SUPPORTS_STDCPP_NEWLIB' default='1'/> |
|
6357 @@ -92,8 +93,9 @@ |
|
6358 <param name='CFLAGS'/> |
|
6359 <param name='COMMANDFILE_OPTION'/> |
|
6360 <param name='COMPILE_ONLY_OPTION'/> |
|
6361 + <param name='COMPILER_FPU_DEFAULT'/> |
|
6362 + <param name='COMPILER_FPU_OPTION'/> |
|
6363 <param name='COMPILER_CIA_FLAGS'/> |
|
6364 - <param name='COMPILER_FPU_FLAGS'/> |
|
6365 <param name='COMPILER_INTERWORK_DEFINES'/> |
|
6366 <param name='COMPILER_SYSTEM_INCLUDE_OPTION'/> |
|
6367 <param name='COMPILER_THUMB_DEFINES'/> |
|
6368 @@ -105,7 +107,6 @@ |
|
6369 <param name='DEBUG_FORMAT'/> |
|
6370 <param name='DEBUG_INFO'/> |
|
6371 <param name='DEPEND_OPTION'/> |
|
6372 - <param name='DEPEND_SKIP' default=''/> |
|
6373 <param name='ELF2E32'/> |
|
6374 <param name='EFREEZE'/> |
|
6375 <param name='EFREEZE_REMOVE_OPTION' default=''/> |
|
6376 @@ -116,6 +117,7 @@ |
|
6377 <param name='FEATURELISTFILES' default=''/> |
|
6378 <param name='FEATUREVARIANT' default=''/> |
|
6379 <param name='FEATUREVARIANTNAME' default=''/> |
|
6380 + <param name='FEATUREVARIANTSAFE' default=''/> |
|
6381 <param name='FPMODE_OPTION'/> |
|
6382 <param name='FROMELF'/> |
|
6383 <param name='FULLVARIANTPATH'/> |
|
6384 @@ -124,6 +126,7 @@ |
|
6385 <param name='LD'/> |
|
6386 <param name='LD_ERRORS_CONTROL_OPTION'/> |
|
6387 <param name='LD_WARNINGS_CONTROL_OPTION'/> |
|
6388 + <param name='LD_WARNINGS_SUPPRESSION_ARMLIBS' default='' /> |
|
6389 <param name='LIBPATH'/> |
|
6390 <param name='LICENSERETRY_OPTION' default=''/> |
|
6391 <param name='LINKER_ADD_STATIC_RUNTIME'/> |
|
6392 @@ -144,6 +147,8 @@ |
|
6393 <param name='PERL'/> |
|
6394 <param name='PERTURBSTARTTIME'/> |
|
6395 <param name='PERTURBMSECS' default='500'/> |
|
6396 + <param name='POSTLINKER_COMPRESSION_DEFAULT'/> |
|
6397 + <param name='POSTLINKER_FPU_DEFAULT'/> |
|
6398 <param name='PREPDEF'/> |
|
6399 <param name='PREINCLUDE'/> |
|
6400 <param name='PREINCLUDE_OPTION'/> |
|
6401 @@ -158,6 +163,7 @@ |
|
6402 <param name='RVCTBIN'/> |
|
6403 <param name='RVCTINC'/> |
|
6404 <param name='RVCTLIB'/> |
|
6405 + <param name='RW_BASE'/> |
|
6406 <param name='RW_BASE_OPTION'/> |
|
6407 <param name='SBSV1MAKE'/> |
|
6408 <param name='NMAKE'/> |
|
6409 @@ -167,6 +173,7 @@ |
|
6410 <param name='SPLIT_OPTION'/> |
|
6411 <param name='KERNEL_STATIC_RUNTIME_LIB'/> |
|
6412 <param name='USER_STATIC_RUNTIME_LIB'/> |
|
6413 + <param name='USER_STATIC_RUNTIME_LIB_NESTED_EXCEPTIONS'/> |
|
6414 <param name='STATIC_LIBS_LIST'/> |
|
6415 <param name='STATIC_LIBS_PATH'/> |
|
6416 <param name='STATIC_LIBRARY_DIR'/> |
|
6417 @@ -207,6 +214,10 @@ |
|
6418 <param name='TARGETTYPE' default="dll"/> |
|
6419 <param name='UID1' default="10000079"/> |
|
6420 </interface> |
|
6421 + <interface name="Symbian.pdll" extends="Symbian.e32abiv2" flm="e32abiv2pdll.flm"> |
|
6422 + <param name='TARGETTYPE' default="pdll"/> |
|
6423 + <param name='UID1' default="10000079"/> |
|
6424 + </interface> |
|
6425 <interface name="Symbian.stddll" extends="Symbian.e32abiv2" flm="e32abiv2stddll.flm"> |
|
6426 <param name='TARGETTYPE' default="stddll"/> |
|
6427 <param name='UID1' default="10000079"/> |
|
6428 @@ -229,6 +240,8 @@ |
|
6429 </interface> |
|
6430 <interface name="Symbian.plugin" extends="Symbian.dll" flm="e32abiv2plugin.flm"> |
|
6431 </interface> |
|
6432 + <interface name="Symbian.plugin3" extends="Symbian.dll" flm="e32abiv2plugin.flm"> |
|
6433 + </interface> |
|
6434 <interface name="Symbian.textnotifier2" extends="Symbian.dll" flm="e32abiv2textnotifier2.flm"> |
|
6435 </interface> |
|
6436 <interface name="Symbian.implib" extends="Symbian.dll" flm="e32abiv2implib.flm"> |
|
6437 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/stringtable.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/stringtable.flm |
|
6438 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/stringtable.flm 2010-05-18 19:32:34.737348805 +0100 |
|
6439 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/stringtable.flm 2010-05-17 18:47:53.056842000 +0100 |
|
6440 @@ -33,9 +33,7 @@ |
|
6441 |
|
6442 EXPORT:: |
|
6443 |
|
6444 - |
|
6445 CLEANTARGETS:= |
|
6446 -CLEANEXPORTS:= |
|
6447 RELEASEEXPORTS:= |
|
6448 CREATABLEPATHS:=$(OUTPUTPATH) $(EXPORTPATH) |
|
6449 |
|
6450 @@ -60,7 +58,6 @@ |
|
6451 $(GNUCP) '$(STRINGTABLEHEADER)' '$$@' \ |
|
6452 $(call endrule,exportstringtableheader) |
|
6453 |
|
6454 -CLEANEXPORTS:=$(EXPORTEDSTRINGTABLEHEADER) |
|
6455 RELEASEEXPORTS:=$(EXPORTEDSTRINGTABLEHEADER) |
|
6456 endef |
|
6457 |
|
6458 @@ -83,24 +80,9 @@ |
|
6459 $(eval $(genstringtable)) |
|
6460 |
|
6461 |
|
6462 -## Clean up and log releasables (using eval to avoid target specific variables) |
|
6463 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),)) |
|
6464 -$(eval $(call GenerateStandardCleanTarget,$(CLEANEXPORTS),,CLEANEXPORT)) |
|
6465 +## Clean up and log releasables |
|
6466 +$(call raptor_clean,$(CLEANTARGETS)) |
|
6467 # make the output directories while reading makefile - some build engines prefer this |
|
6468 $(call makepath,$(CREATABLEPATHS)) |
|
6469 -$(eval $(call whatmacro,$(RELEASEEXPORTS),WHATSTRINGTABLE)) |
|
6470 +$(call raptor_release,$(RELEASEEXPORTS),STRINGTABLE) |
|
6471 |
|
6472 -######################## |
|
6473 -# SBSv1 example: |
|
6474 -######################## |
|
6475 -# GENERATED_FILES= \ |
|
6476 -# $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.cpp \ |
|
6477 -# $(EPOCROOT)epoc32\include\WspParamConstants.h |
|
6478 -# |
|
6479 -# $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.cpp : ..\strings\WspParamConstants.st |
|
6480 -# perl -S ecopyfile.pl ..\strings\WspParamConstants.st $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.st |
|
6481 -# perl $(EPOCROOT)epoc32\tools\stringtable.pl $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.st |
|
6482 -# |
|
6483 -# $(EPOCROOT)epoc32\include\WspParamConstants.h : $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.cpp |
|
6484 -# perl -S ecopyfile.pl $(EPOCROOT)epoc32\build\generated\http\WspParamConstants.h $(EPOCROOT)epoc32\include\WspParamConstants.h |
|
6485 -# |
|
6486 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/template_ext.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/template_ext.flm |
|
6487 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/template_ext.flm 2010-05-18 19:32:34.737348805 +0100 |
|
6488 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/template_ext.flm 2010-05-17 18:47:53.056842000 +0100 |
|
6489 @@ -81,11 +81,10 @@ |
|
6490 # to be target specific to the unique targets |
|
6491 # that we have created. |
|
6492 |
|
6493 -UNIQ:=$(TEMPLATE_EXTENSION_MAKEFILE)$(PLATFORM)$(TO_ROOT)$(TO_BLDINF)$(EPOCBLD)$(EXTENSION_ROOT)$(TEMCOUNT) |
|
6494 +UNIQ:=$(TEMPLATE_EXTENSION_MAKEFILE)$(VARIANTPLATFORM)$(TO_ROOT)$(TO_BLDINF)$(EPOCBLD)$(EXTENSION_ROOT)$(TEMCOUNT) |
|
6495 UNIQ:=$(word 1,$(shell echo $(UNIQ) | $(GNUMD5SUM))) |
|
6496 |
|
6497 # Work out the other FINAL target if we're building both udeb and urel |
|
6498 -ifneq ($($(UNIQ)),) |
|
6499 |
|
6500 ifeq ($(CFG),urel) |
|
6501 OTHER_CFG:=udeb |
|
6502 @@ -100,6 +99,7 @@ |
|
6503 OTHER_CFG:=rel |
|
6504 endif |
|
6505 |
|
6506 +ifneq ($($(UNIQ)_$(OTHER_CFG)),) |
|
6507 OTHER_MAKMAKE:=$(UNIQ)_$(OTHER_CFG)_MAKMAKE |
|
6508 OTHER_BLD:=$(UNIQ)_$(OTHER_CFG)_BLD |
|
6509 OTHER_FREEZE:=$(UNIQ)_$(OTHER_CFG)_FREEZE |
|
6510 @@ -111,7 +111,7 @@ |
|
6511 endif # ifneq ($($(UNIQ)),) |
|
6512 |
|
6513 # Set $($(UNIQ)) so it can be detected if we're run again |
|
6514 -$(UNIQ):=1 |
|
6515 +$(UNIQ)_$(CFG):=1 |
|
6516 |
|
6517 tem_$(notdir $(TEMPLATE_EXTENSION_MAKEFILE))_$(PLATFORM)_$(CFG):=$(tem_$(notdir $(TEMPLATE_EXTENSION_MAKEFILE))_$(PLATFORM)_$(CFG)) $(UNIQ)_$(CFG) |
|
6518 |
|
6519 @@ -121,7 +121,7 @@ |
|
6520 RMDIR RM ERASE MKDIR CP \ |
|
6521 PLATFORM_PATH CFG_PATH \ |
|
6522 TEMPLATE_EXTENSION_MAKEFILE \ |
|
6523 - TARGET SOURCE DEPENDENCIES TOOL PRODUCT_INCLUDE \ |
|
6524 + PRODUCT_INCLUDE \ |
|
6525 RVCTBIN RVCTINC RVCTLIB |
|
6526 |
|
6527 |
|
6528 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2common.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2common.flm |
|
6529 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2common.flm 2010-05-18 19:32:34.749348513 +0100 |
|
6530 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2common.flm 2010-05-17 18:47:53.068842000 +0100 |
|
6531 @@ -1,4 +1,4 @@ |
|
6532 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6533 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6534 # All rights reserved. |
|
6535 # This component and the accompanying materials are made available |
|
6536 # under the terms of the License "Eclipse Public License v1.0" |
|
6537 @@ -18,17 +18,28 @@ |
|
6538 |
|
6539 ## Input parameters |
|
6540 |
|
6541 +ifeq ($(filter win,$(HOSTPLATFORM)),win) |
|
6542 +CDEFS.TOOLS2:=$(CDEFS.WIN32) $(CDEFS) |
|
6543 +CFLAGS:=$(CFLAGS.WIN32) $(CFLAGS) $(OPTION_GCC) |
|
6544 +COMPILER_PATH:=$(COMPILER_PATH.WIN32) |
|
6545 OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)$(TOOLPLATFORMDIR) |
|
6546 - |
|
6547 -ifeq ($(OSTYPE),cygwin) |
|
6548 +else |
|
6549 +ifneq ($(TOOLS2WIN32),) |
|
6550 +# Build win32 tools in Linux |
|
6551 CDEFS.TOOLS2:=$(CDEFS.WIN32) $(CDEFS) |
|
6552 CFLAGS:=$(CFLAGS.WIN32) $(CFLAGS) $(OPTION_GCC) |
|
6553 COMPILER_PATH:=$(COMPILER_PATH.WIN32) |
|
6554 +OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE) |
|
6555 else |
|
6556 +# Build linux tools in Linux |
|
6557 CDEFS.TOOLS2:=$(CDEFS.LINUX) $(CDEFS) |
|
6558 CFLAGS:=$(CFLAGS) $(OPTION_GCC) |
|
6559 COMPILER_PATH=$(COMPILER_PATH.LINUX) |
|
6560 +OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)$(TOOLPLATFORMDIR) |
|
6561 +endif |
|
6562 endif |
|
6563 + |
|
6564 + |
|
6565 CDEFS.TOOLS2:=$(call makemacrodef,$(OPT.D),$(CDEFS.TOOLS2)) |
|
6566 |
|
6567 ## Locally used variables |
|
6568 @@ -75,16 +86,21 @@ |
|
6569 $(compile2object_TARGET): $(1) $(if (DEPENDFILE),,EXPORT) |
|
6570 $(call startrule,compile2object,,$(1)) \ |
|
6571 $(if $(COMPILER_PATH),COMPILER_PATH="$(COMPILER_PATH)",) \ |
|
6572 - $(COMPILER) $(CFLAGS) $(CDEFS.TOOLS2) -MD -MT"$$@" -MF"$(DEPENDFILENAME)" $(INCLUDES) $(OPT.O)"$$@" "$(1)" \ |
|
6573 + $(COMPILER) $(CFLAGS) $(CDEFS.TOOLS2) \ |
|
6574 + $(if $(NO_DEPEND_GENERATE),,-MD -MT"$$@" -MF"$(DEPENDFILENAME)") \ |
|
6575 + $(INCLUDES) $(OPT.O)"$$@" "$(1)" \ |
|
6576 $(call endrule,compile2object) |
|
6577 |
|
6578 -CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
6579 -ifneq "$(DEPENDFILE)" "" |
|
6580 -ifeq ($(NO_DEPEND_INCLUDE),) |
|
6581 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
6582 +ifeq ($(NO_DEPEND_GENERATE),) |
|
6583 + CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
6584 +endif |
|
6585 + |
|
6586 +ifneq ($(DEPENDFILE),) |
|
6587 + ifeq ($(NO_DEPEND_INCLUDE),) |
|
6588 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
6589 -include $(DEPENDFILE) |
|
6590 endif |
|
6591 -endif |
|
6592 + endif |
|
6593 endif |
|
6594 |
|
6595 endef |
|
6596 @@ -99,9 +115,9 @@ |
|
6597 # make the output directories while reading makefile - some build engines prefer this |
|
6598 $(call makepath,$(CREATABLEPATHS)) |
|
6599 |
|
6600 -## Clean up (using eval to avoid target specific variables) |
|
6601 -$(eval $(call GenerateStandardCleanTarget,$(TARGETS) $(OBJECTFILES),$(CREATABLEPATHS),)) |
|
6602 -## WHAT target |
|
6603 -$(eval $(call whatmacro,$(RELEASEABLES),WHATTOOLS2)) |
|
6604 +## Clean up |
|
6605 +$(call raptor_clean,$(CLEANTARGETS) $(OBJECTFILES)) |
|
6606 +## for the --what option and the log file |
|
6607 +$(call raptor_release,$(RELEASABLES)) |
|
6608 |
|
6609 ## The End |
|
6610 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2exe.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2exe.flm |
|
6611 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2exe.flm 2010-05-18 19:32:34.749348513 +0100 |
|
6612 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2exe.flm 2010-05-17 18:47:53.068842000 +0100 |
|
6613 @@ -1,4 +1,4 @@ |
|
6614 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6615 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6616 # All rights reserved. |
|
6617 # This component and the accompanying materials are made available |
|
6618 # under the terms of the License "Eclipse Public License v1.0" |
|
6619 @@ -16,20 +16,28 @@ |
|
6620 # |
|
6621 |
|
6622 ## Outputs - externally relevant targets that this FLM generates |
|
6623 -ifeq ($(OSTYPE),cygwin) |
|
6624 +ifeq ($(filter win,$(HOSTPLATFORM)),win) |
|
6625 SYSTEMLIBS:=$(LIBS.WIN32) |
|
6626 else |
|
6627 +ifneq ($(TOOLS2WIN32),) |
|
6628 +# Build win32 tools in Linux |
|
6629 +SYSTEMLIBS:=$(LIBS.WIN32) |
|
6630 +else |
|
6631 +# Build linux tools in Linux |
|
6632 SYSTEMLIBS:=$(LIBS.LINUX) |
|
6633 endif |
|
6634 +endif |
|
6635 + |
|
6636 |
|
6637 EXETARGET:=$(RELEASEPATH)/$(TARGET)$(DOTEXE) |
|
6638 |
|
6639 +INSTALLED:= |
|
6640 ifneq ($(TOOLSPATH),) |
|
6641 INSTALLED:=$(TOOLSPATH)/$(TARGET)$(DOTEXE) |
|
6642 endif |
|
6643 |
|
6644 ## Target groups |
|
6645 -RELEASEABLES:=$(INSTALLED) |
|
6646 +RELEASABLES:=$(INSTALLED) |
|
6647 TARGETS:=$(EXETARGET) $(INSTALLED) |
|
6648 |
|
6649 ## Common build steps (compiling and cleaning) |
|
6650 @@ -51,7 +59,7 @@ |
|
6651 define tools2linkexe |
|
6652 $(EXETARGET): $(OBJECTFILES) $(STATICLIBS) |
|
6653 $(call startrule,tools2linkexe) \ |
|
6654 - $(LINKER) $(CFLAGS) $(LFLAGS) $(OPT.O)"$(EXETARGET)" $(call dblquote,$(OBJECTFILES)) $(LLIBS) \ |
|
6655 + $(LINKER) $(CFLAGS) $(LFLAGS) $(OPT.O)"$(EXETARGET)" $(call dblquote,$(OBJECTFILES)) $(LLIBS) $(LINKER_OPTIONS) \ |
|
6656 $(if $(SAVESPACE),; $(GNURM) -rf $(OUTPUTPATH); true,) \ |
|
6657 $(call endrule,tools2linkexe) |
|
6658 |
|
6659 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2lib.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2lib.flm |
|
6660 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools2lib.flm 2010-05-18 19:32:34.749348513 +0100 |
|
6661 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools2lib.flm 2010-05-17 18:47:53.068842000 +0100 |
|
6662 @@ -19,7 +19,7 @@ |
|
6663 LIBTARGET:=$(RELEASEPATH)/$(TARGET).a |
|
6664 |
|
6665 ## Target groups |
|
6666 -RELEASEABLES:=$(LIBTARGET) |
|
6667 +RELEASABLES:=$(LIBTARGET) |
|
6668 TARGETS:=$(LIBTARGET) |
|
6669 |
|
6670 ## Common build steps (compiling) |
|
6671 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools.xml /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools.xml |
|
6672 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tools.xml 2010-05-18 19:32:34.745348494 +0100 |
|
6673 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tools.xml 2010-05-17 18:47:53.068842000 +0100 |
|
6674 @@ -27,6 +27,7 @@ |
|
6675 <param name='SYSTEMINCLUDE' default=''/> |
|
6676 <param name='TARGET'/> |
|
6677 <param name='TOOLSPATH'/> |
|
6678 + <param name='TOOLS2WIN32' default=''/> |
|
6679 <param name='USERINCLUDE' default=''/> |
|
6680 <param name='PRODUCT_INCLUDE' default=''/> |
|
6681 <param name='PLATMACROS.WINDOWS'/> |
|
6682 @@ -35,6 +36,7 @@ |
|
6683 </interface> |
|
6684 |
|
6685 <interface name="Tools.exe" extends="Tools.common" flm="tools2exe.flm"> |
|
6686 + <param name='DOTEXE'/> |
|
6687 <param name='LINKER'/> |
|
6688 <param name='LFLAGS'/> |
|
6689 <param name='LIBS.WIN32' default=''/> |
|
6690 @@ -43,6 +45,7 @@ |
|
6691 <param name='OPT.l'/> |
|
6692 <param name='STATICLIBRARY'/> |
|
6693 <param name='TARGETTYPE' default="EXE"/> |
|
6694 + <param name='LINKER_OPTIONS' default=''/> |
|
6695 </interface> |
|
6696 |
|
6697 <interface name="Tools.lib" extends="Tools.common" flm="tools2lib.flm"> |
|
6698 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tracecompiler.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tracecompiler.mk |
|
6699 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/tracecompiler.mk 2010-05-18 19:32:34.749348513 +0100 |
|
6700 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/tracecompiler.mk 2010-05-17 18:47:53.068842000 +0100 |
|
6701 @@ -1,5 +1,4 @@ |
|
6702 -# |
|
6703 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6704 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6705 # All rights reserved. |
|
6706 # This component and the accompanying materials are made available |
|
6707 # under the terms of the License "Eclipse Public License v1.0" |
|
6708 @@ -13,15 +12,44 @@ |
|
6709 # |
|
6710 # Description: |
|
6711 # Run Trace Compiler on source files to generate trace headers and decode files |
|
6712 -# |
|
6713 |
|
6714 +# Set project name as <mmp_name> |
|
6715 TRACE_PRJNAME:=$(basename $(notdir $(PROJECT_META))) |
|
6716 + |
|
6717 +TARGETEXT:=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE)) |
|
6718 + |
|
6719 # Find out TRACE_PATH |
|
6720 +# first look for .*/traces/traces_<target_name>_<target_extension> |
|
6721 +TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces/traces_$(TARGET)_$(TARGETEXT),$(DIR)))) |
|
6722 + |
|
6723 +ifneq ($(TRACE_PATH),) |
|
6724 +# set project name as <target_name>_<target_extension> instead of <mmp_name> |
|
6725 +TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT) |
|
6726 +endif |
|
6727 + |
|
6728 +# if not found look for .*/traces_<mmp_name> |
|
6729 +ifeq ($(TRACE_PATH),) |
|
6730 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces_$(TRACE_PRJNAME),$(DIR)))) |
|
6731 +endif |
|
6732 + |
|
6733 +# if not found look for .*/traces |
|
6734 ifeq ($(TRACE_PATH),) |
|
6735 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces,$(DIR)))) |
|
6736 endif |
|
6737 |
|
6738 +# if not found look for .*/traces_<target_name>_<target_type> |
|
6739 +ifeq ($(TRACE_PATH),) |
|
6740 +TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR)))) |
|
6741 +# set project name as <target_name>_<target_type> instead of <mmp_name> |
|
6742 +TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE) |
|
6743 +endif |
|
6744 + |
|
6745 +# initialise (so what output will be correct if we don't actually run the TC) |
|
6746 +TRACE_DICTIONARY:= |
|
6747 +AUTOGEN_HEADER:= |
|
6748 + |
|
6749 +$(if $(FLMDEBUG),$(info <debug>TRACE_PATH = $(TRACE_PATH)</debug>)) |
|
6750 + |
|
6751 # Run trace compiler only if TRACE_PATH exists |
|
6752 ifneq ($(TRACE_PATH),) |
|
6753 TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_PRJNAME)_$(UID_TC).done |
|
6754 @@ -37,14 +65,24 @@ |
|
6755 |
|
6756 $(TRACE_MARKER) : $(SOURCE) |
|
6757 |
|
6758 +TRACE_HEADERS:=$(foreach SRC,$(SOURCE),$(TRACE_PATH)/$(basename $(notdir $(SRC)))Traces.h) |
|
6759 + |
|
6760 +$(TRACE_HEADERS): $(TRACE_MARKER) |
|
6761 + |
|
6762 ifeq ($(GUARD_$(call sanitise,$(TRACE_MARKER))),) |
|
6763 GUARD_$(call sanitise,$(TRACE_MARKER)):=1 |
|
6764 |
|
6765 +# The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like |
|
6766 +# fred.prd.mmp we want fred_prd |
|
6767 +TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME)) |
|
6768 + |
|
6769 +TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml |
|
6770 +AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/internal/SymbianTraces/autogen/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h |
|
6771 + |
|
6772 JAVA_COMMAND:=$(SBS_JAVATC) |
|
6773 TRACE_COMPILER_PATH:=$(EPOCROOT)/epoc32/tools |
|
6774 TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompiler |
|
6775 |
|
6776 -TRACE_HEADERS:=$(foreach SRC,$(SOURCE),$(TRACE_PATH)/$(basename $(notdir $(SRC)))Traces.h) |
|
6777 |
|
6778 # 1. Use pipe to send inputs to trace compiler to process |
|
6779 # 2. Create a hash regarding to source names and put it in marker. |
|
6780 @@ -56,18 +94,21 @@ |
|
6781 $(GNUCAT) $(TRACE_SOURCE_LIST); \ |
|
6782 echo -en "*ENDOFSOURCEFILES*\n" ) | \ |
|
6783 $(JAVA_COMMAND) $(TRACE_COMPILER_START) $(UID_TC) && \ |
|
6784 - $(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) ; \ |
|
6785 - $(GNUCAT) $(TRACE_SOURCE_LIST) \ |
|
6786 + $(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) && \ |
|
6787 + { $(GNUTOUCH) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER); \ |
|
6788 + $(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \ |
|
6789 $(call endrule,tracecompile) |
|
6790 endef |
|
6791 |
|
6792 $(eval $(trace_compile)) |
|
6793 |
|
6794 -$(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS) $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,)) |
|
6795 +$(eval $(call GenerateStandardCleanTarget, $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,)) |
|
6796 |
|
6797 # End sanity guard |
|
6798 endif |
|
6799 |
|
6800 +$(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS),,)) |
|
6801 + |
|
6802 else |
|
6803 # Indicate to following parts of the FLM that we actually won't run |
|
6804 # trace compiler so they can set dependencies accordingly. |
|
6805 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32dll.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32dll.flm |
|
6806 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32dll.flm 2010-05-18 19:32:34.753348601 +0100 |
|
6807 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32dll.flm 2010-05-17 18:47:53.072842000 +0100 |
|
6808 @@ -30,5 +30,5 @@ |
|
6809 include $(FLMHOME)/win32.flm |
|
6810 |
|
6811 else |
|
6812 -$(error $win32dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)')) |
|
6813 +$(error win32dll.flm called with wrong TARGETTYPE (should be 'dll' but is '$(TARGETTYPE)')) |
|
6814 endif |
|
6815 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32.flm |
|
6816 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32.flm 2010-05-18 19:32:34.749348513 +0100 |
|
6817 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32.flm 2010-05-17 18:47:53.072842000 +0100 |
|
6818 @@ -1,4 +1,4 @@ |
|
6819 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6820 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6821 # All rights reserved. |
|
6822 # This component and the accompanying materials are made available |
|
6823 # under the terms of the License "Eclipse Public License v1.0" |
|
6824 @@ -50,6 +50,7 @@ |
|
6825 MAINLINKAS:= |
|
6826 NEWLIBFILE:= |
|
6827 RELEASABLES:= |
|
6828 +TC_RELEASABLES:= |
|
6829 STATLIBDIR:= |
|
6830 STDCPP_BUILD:= |
|
6831 STDCPPTAGFILE:= |
|
6832 @@ -111,15 +112,22 @@ |
|
6833 endif |
|
6834 endif |
|
6835 |
|
6836 + # Operator new linking depends on both the use of the NEWLIB keyword and whether a component supports a standard |
|
6837 + # CPP build. |
|
6838 ifneq ($(NEWLIB),) |
|
6839 + # If specified, always use the NEWLIB keyword value for operator new library linking |
|
6840 NEWLIBFILE:=$(STATLIBDIR)/$(NEWLIB) |
|
6841 else |
|
6842 + # If not performing a standard CPP build, link to an appropriate default Symbian new library. |
|
6843 + # Standard CPP components defer to the toolchain supplied libraries. |
|
6844 + ifneq ($(STDCPP_BUILD),1) |
|
6845 ifeq ($(SYSTEM_TARGET),1) |
|
6846 NEWLIBFILE:=$(STATLIBDIR)/$(DEFAULT_SYSTEM_NEWLIB) |
|
6847 else |
|
6848 NEWLIBFILE:=$(STATLIBDIR)/$(DEFAULT_NORMAL_NEWLIB) |
|
6849 endif |
|
6850 endif |
|
6851 + endif |
|
6852 endif |
|
6853 |
|
6854 ifeq ($(STDCPP_BUILD),1) |
|
6855 @@ -142,7 +150,7 @@ |
|
6856 endif |
|
6857 |
|
6858 # get the compiler to generate dependencies for us? |
|
6859 -ifeq ($(DEPEND_SKIP),) |
|
6860 +ifeq ($(NO_DEPEND_GENERATE),) |
|
6861 CFLAGS:=$(CFLAGS) $(OPT.DEPEND) |
|
6862 endif |
|
6863 |
|
6864 @@ -197,7 +205,7 @@ |
|
6865 # Run trace compiler ##################################### |
|
6866 TRACE_MARKER_PATH:=$(OUTPUTPATH) |
|
6867 |
|
6868 -ifeq ($(UID3),) |
|
6869 +ifeq ($(subst 0,,$(UID3)),) |
|
6870 ifeq ($(UID2),) |
|
6871 USE_TRACE_COMPILER:= |
|
6872 else |
|
6873 @@ -211,6 +219,7 @@ |
|
6874 # Users can turn TC on by setting it to 1 in user config. |
|
6875 ifneq ($(USE_TRACE_COMPILER),) |
|
6876 include $(FLMHOME)/tracecompiler.mk |
|
6877 + TC_RELEASABLES:=$(TRACE_DICTIONARY) $(AUTOGEN_HEADER) |
|
6878 endif |
|
6879 |
|
6880 |
|
6881 @@ -243,7 +252,6 @@ |
|
6882 ifeq ($(SUPPORTS_IMPORT_LIBRARY),1) |
|
6883 ifneq ($(NOEXPORTLIBRARY),1) |
|
6884 ifneq ($(TARGET_$(call sanitise,$(IMPORTLIBTARGET))),1) |
|
6885 - CLEANTARGETS:=$(CLEANTARGETS) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET)) |
|
6886 RELEASABLES:=$(RELEASABLES) $(if $(or $(EXPORTUNFROZEN),$(DEFFILE)),$(IMPORTLIBTARGET)) |
|
6887 |
|
6888 # import libraries are generated to the UDEB release directory |
|
6889 @@ -290,7 +298,6 @@ |
|
6890 BINTARGETSTATICLINK:=$(BINDIRSTATICLINK)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE)) |
|
6891 endif |
|
6892 |
|
6893 - CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET) $(BINTARGETSTATICLINK) |
|
6894 RELEASABLES:=$(RELEASABLES) $(BINTARGET) $(BINTARGETSTATICLINK) |
|
6895 |
|
6896 # work on a local source files list |
|
6897 @@ -368,20 +375,21 @@ |
|
6898 $(eval DEPENDFILENAME:=$(call mapwin32file,$(1),.o.d)) |
|
6899 $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME))) |
|
6900 |
|
6901 - $(call mapwin32file,$(1),.o): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER)) |
|
6902 + $(call mapwin32file,$(1),.o): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) | $(if $(USE_TRACE_COMPILER),$(TRACE_MARKER)) |
|
6903 $(call startrule,win32compile2object,,$(1)) \ |
|
6904 $(CC) $$(if $$(filter %.C,$(1)),-lang c) $(CFLAGS) $(OPTION_CW) \ |
|
6905 $(if $(STDCPP_BUILD),$$(if $$(filter %.c %.C,$(1)),,$$(call makemacrodef,$(OPT.DEFINE),$(STDCPP_WCHAR_DEF))),) \ |
|
6906 - $(DEFINES) $(INCLUDES) $(OPT.OUT)"$$@" "$(1)" && \ |
|
6907 - $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.o): $1 \1#' $(call mapwin32file,$(1),.dep) > $(call mapwin32file,$(1),.o.d) \ |
|
6908 + $(DEFINES) $(INCLUDES) $(OPT.OUT)"$$@" "$(1)" \ |
|
6909 + $(if $(NO_DEPEND_GENERATE),,&& $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.o): $1 \1#' $(call mapwin32file,$(1),.dep) > $(call mapwin32file,$(1),.o.d)) \ |
|
6910 $(call endrule,win32compile2object) |
|
6911 |
|
6912 - CLEANTARGETS:=$$(CLEANTARGETS) $(call mapwin32file,$(1),.dep) |
|
6913 + ifeq ($(NO_DEPEND_GENERATE),) |
|
6914 + CLEANTARGETS:=$$(CLEANTARGETS) $(call mapwin32file,$(1),.dep) $(DEPENDFILENAME) |
|
6915 + endif |
|
6916 |
|
6917 - CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
6918 - ifneq "$(DEPENDFILE)" "" |
|
6919 + ifneq ($(DEPENDFILE),) |
|
6920 ifeq ($(NO_DEPEND_INCLUDE),) |
|
6921 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
6922 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
6923 -include $(DEPENDFILE) |
|
6924 endif |
|
6925 endif |
|
6926 @@ -412,24 +420,28 @@ |
|
6927 STDMWCINCLUDEPATHS:=$(if $(MWCSym2Includes),$(MWCSym2Includes),$(MWCSYM2INCLUDES)) |
|
6928 |
|
6929 define win32resourcecompile |
|
6930 - # Note that two calls are made to the resource compiler here. There seems to be no means to override the |
|
6931 - # default behaviour of dumping dependency files into the CWD when using -MD. So - we compile once for real, |
|
6932 - # and then pipe dependency output through SED afterwards to create the dependency file where we want it |
|
6933 + # Note that, if dependency files are required, two calls are made to the resource compiler here. |
|
6934 + # There seems to be no means to override the default behaviour of dumping dependency files into the CWD when using -MD. |
|
6935 + # So - we compile once for real, and then pipe dependency output through SED afterwards to create the dependency file where we want it |
|
6936 |
|
6937 $(eval DEPENDFILENAME:=$(call mapwin32file,$(1),.res.d)) |
|
6938 $(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME))) |
|
6939 |
|
6940 $(call mapwin32file,$(1),.res): $(1) $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT) |
|
6941 $(call startrule,win32resourcecompile,,$(1)) \ |
|
6942 - MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) $(OPT.OUT)"$$@" "$(1)" && \ |
|
6943 + MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) $(OPT.OUT)"$$@" "$(1)" \ |
|
6944 + $(if $(NO_DEPEND_GENERATE),,&& \ |
|
6945 MWCIncludes='$(STDMWCINCLUDEPATHS)' $(RC) -make $(OPT.OUT)"$$@" "$(1)" | \ |
|
6946 - $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.res): $1 \1#' > $(call mapwin32file,$(1),.res.d) \ |
|
6947 + $(GNUSED) 's#\\\\\(.\)#/\1#g;s#/ #\\\ #g;s#\([A-Za-z]:\)\\\\#\1/#g;1,1s#.*: .* \(.\)\?$$$$#$(call mapwin32file,$(1),.res): $1 \1#' > $(call mapwin32file,$(1),.res.d)) \ |
|
6948 $(call endrule,win32resourcecompile) |
|
6949 |
|
6950 + ifeq ($(NO_DEPEND_GENERATE),) |
|
6951 CLEANTARGETS:=$$(CLEANTARGETS) $(DEPENDFILENAME) |
|
6952 - ifneq "$(DEPENDFILE)" "" |
|
6953 + endif |
|
6954 + |
|
6955 + ifneq ($(DEPENDFILE),) |
|
6956 ifeq ($(NO_DEPEND_INCLUDE),) |
|
6957 - ifeq "$(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS)))" "" |
|
6958 + ifeq ($(filter %CLEAN,$(call uppercase,$(MAKECMDGOALS))),) |
|
6959 -include $(DEPENDFILE) |
|
6960 endif |
|
6961 endif |
|
6962 @@ -463,7 +475,6 @@ |
|
6963 # link map file (urel only) |
|
6964 ifeq ($(VARIANTTYPE),urel) |
|
6965 MAP:=$(OPT.MAP)$(BINTARGET).map |
|
6966 - CLEANTARGETS:=$(CLEANTARGETS) $(BINTARGET).map |
|
6967 RELEASABLES:=$(RELEASABLES) $(BINTARGET).map |
|
6968 endif |
|
6969 endif |
|
6970 @@ -677,12 +688,11 @@ |
|
6971 BATCHFILE_CREATED_$(BATCHDIR)$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH):=1 |
|
6972 TARGET_CREATED_$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH)_$(TARGET):=1 |
|
6973 RELEASABLES:=$(RELEASABLES) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH) |
|
6974 - CLEANTARGETS:=$(CLEANTARGETS) $(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)/z/test/$(MODULE)/$(VARIANTPLATFORM).$(TESTPATH) |
|
6975 endif |
|
6976 |
|
6977 # clean up |
|
6978 -$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(CREATABLEPATHS),)) |
|
6979 +$(call raptor_clean,$(CLEANTARGETS)) |
|
6980 # make the output directories while reading makefile - some build engines prefer this |
|
6981 $(call makepath,$(CREATABLEPATHS)) |
|
6982 -# for the abld -what target |
|
6983 -$(eval $(call whatmacro,$(RELEASABLES),WHATWINSCW)) |
|
6984 +# for the --what option and the log file |
|
6985 +$(call raptor_release,$(RELEASABLES) $(TC_RELEASABLES)) |
|
6986 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm: win32pdll.flm |
|
6987 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32plugin.flm /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32plugin.flm |
|
6988 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/lib/flm/win32plugin.flm 2010-05-18 19:32:34.753348601 +0100 |
|
6989 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/lib/flm/win32plugin.flm 2010-05-17 18:47:53.076842000 +0100 |
|
6990 @@ -1,4 +1,4 @@ |
|
6991 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
6992 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
6993 # All rights reserved. |
|
6994 # This component and the accompanying materials are made available |
|
6995 # under the terms of the License "Eclipse Public License v1.0" |
|
6996 @@ -16,8 +16,7 @@ |
|
6997 # |
|
6998 # |
|
6999 |
|
7000 -ifeq ($(TARGETTYPE),plugin) |
|
7001 - |
|
7002 +ifneq ($(filter plugin plugin3,$(TARGETTYPE)),) |
|
7003 BASE_TYPE:=dll |
|
7004 CW_STATIC_RUNTIME:=1 |
|
7005 FIRST_STATLIB:= |
|
7006 @@ -24,11 +23,15 @@ |
|
7007 FIXED_EXPORT:=?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z |
|
7008 SUPPORTS_IMPORT_LIBRARY:=0 |
|
7009 SYSTEM_TARGET:=0 |
|
7010 + |
|
7011 UID2_DEFAULT:=10009D8D |
|
7012 +ifeq ($(TARGETTYPE),plugin3) |
|
7013 +UID2_DEFAULT:=10009D93 |
|
7014 +endif |
|
7015 |
|
7016 # Use the general win32 FLM |
|
7017 include $(FLMHOME)/win32.flm |
|
7018 |
|
7019 else |
|
7020 -$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)')) |
|
7021 +$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)')) |
|
7022 endif |
|
7023 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: license.txt |
|
7024 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: notes |
|
7025 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_interface.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_interface.py |
|
7026 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_interface.py 2010-05-18 19:32:34.785348756 +0100 |
|
7027 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_interface.py 2010-05-17 18:47:53.080842000 +0100 |
|
7028 @@ -18,7 +18,7 @@ |
|
7029 |
|
7030 class Filter(object): |
|
7031 |
|
7032 - def open(self, raptor): |
|
7033 + def open(self, params): |
|
7034 return False |
|
7035 |
|
7036 def write(self, text): |
|
7037 @@ -32,3 +32,89 @@ |
|
7038 |
|
7039 def formatError(self, message): |
|
7040 return "sbs: error: " + message + "\n" |
|
7041 + |
|
7042 + def formatWarning(self, message): |
|
7043 + return "sbs: warning: " + message + "\n" |
|
7044 + |
|
7045 +import sys |
|
7046 +import xml.sax |
|
7047 + |
|
7048 +class FilterSAX(Filter, xml.sax.handler.ContentHandler, xml.sax.handler.ErrorHandler): |
|
7049 + "base class for filters using a SAX parser" |
|
7050 + |
|
7051 + # define these methods in your subclass |
|
7052 + |
|
7053 + def startDocument(self): |
|
7054 + "called once before any elements are seen" |
|
7055 + pass |
|
7056 + |
|
7057 + def startElement(self, name, attributes): |
|
7058 + "called on the opening of any element" |
|
7059 + pass |
|
7060 + |
|
7061 + def characters(self, char): |
|
7062 + "called one or more times with body text from an element" |
|
7063 + pass |
|
7064 + |
|
7065 + def endElement(self, name): |
|
7066 + "called on the closing of any element" |
|
7067 + pass |
|
7068 + |
|
7069 + def endDocument(self): |
|
7070 + "called once when all elements are closed" |
|
7071 + pass |
|
7072 + |
|
7073 + def error(self, exception): |
|
7074 + "the parse found an error which is (possibly) recoverable" |
|
7075 + pass |
|
7076 + |
|
7077 + def fatalError(self, exception): |
|
7078 + "the parser thinks an error occurred which should stop everything" |
|
7079 + pass |
|
7080 + |
|
7081 + def warning(self, exception): |
|
7082 + "the parser found something to complain about that might not matter" |
|
7083 + pass |
|
7084 + |
|
7085 + # these methods are from the Filter base class |
|
7086 + |
|
7087 + def open(self, params): |
|
7088 + "initialise" |
|
7089 + |
|
7090 + self.params = params |
|
7091 + self.ok = True |
|
7092 + try: |
|
7093 + self.parser = xml.sax.make_parser(['xml.sax.expatreader']) |
|
7094 + self.parser.setContentHandler(self) |
|
7095 + self.parser.setErrorHandler(self) |
|
7096 + |
|
7097 + except Exception, ex: |
|
7098 + sys.stderr.write(self.formatError(str(ex))) |
|
7099 + self.ok = False |
|
7100 + |
|
7101 + return self.ok |
|
7102 + |
|
7103 + |
|
7104 + def write(self, text): |
|
7105 + "process some log text" |
|
7106 + try: |
|
7107 + self.parser.feed(text) |
|
7108 + except Exception, ex: |
|
7109 + sys.stderr.write(self.formatError(str(ex))) |
|
7110 + self.ok = False |
|
7111 + |
|
7112 + return self.ok |
|
7113 + |
|
7114 + |
|
7115 + def close(self): |
|
7116 + "finish off" |
|
7117 + try: |
|
7118 + self.parser.close() |
|
7119 + except Exception, ex: |
|
7120 + sys.stderr.write(self.formatError(str(ex))) |
|
7121 + self.ok = False |
|
7122 + |
|
7123 + return self.ok |
|
7124 + |
|
7125 + |
|
7126 +# the end |
|
7127 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_utils.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_utils.py |
|
7128 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/filter_utils.py 2010-05-18 19:32:34.785348756 +0100 |
|
7129 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/filter_utils.py 2010-05-17 18:47:53.080842000 +0100 |
|
7130 @@ -198,12 +198,16 @@ |
|
7131 def isError(self, aLine): |
|
7132 """Convenience matcher for basic errors. |
|
7133 Override in sub-classes to specialise.""" |
|
7134 - return True if Recipe.error.match(aLine) else False |
|
7135 + if Recipe.error.match(aLine): |
|
7136 + return True |
|
7137 + return False |
|
7138 |
|
7139 def isWarning(self, aLine): |
|
7140 """Convenience matcher for basic warnings. |
|
7141 Override in sub-classes to specialise.""" |
|
7142 - return True if Recipe.warning.match(aLine) else False |
|
7143 + if Recipe.warning.match(aLine): |
|
7144 + return True |
|
7145 + return False |
|
7146 |
|
7147 def getOutput(self): |
|
7148 """"Return a list of all output that isn't an error or a warning. |
|
7149 @@ -234,16 +238,17 @@ |
|
7150 |
|
7151 def isSuccess(self): |
|
7152 "Convenience method to get overall recipe status." |
|
7153 - return True if self.getDetail(Recipe.exit) == "ok" else False |
|
7154 + return (self.getDetail(Recipe.exit) == "ok") |
|
7155 |
|
7156 |
|
7157 class Win32Recipe(Recipe): |
|
7158 "Win32 tailored recipe class." |
|
7159 def isError(self, aLine): |
|
7160 - return True if mwError.match(aLine) else False |
|
7161 + if mwError.match(aLine): |
|
7162 + return True |
|
7163 + return False |
|
7164 |
|
7165 def isWarning(self, aLine): |
|
7166 - return True if mwWarning.match(aLine) else False |
|
7167 - |
|
7168 - |
|
7169 - |
|
7170 + if mwWarning.match(aLine): |
|
7171 + return True |
|
7172 + return False |
|
7173 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/generic_path.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/generic_path.py |
|
7174 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/generic_path.py 2010-05-18 19:32:34.785348756 +0100 |
|
7175 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/generic_path.py 2010-05-17 18:47:53.084842000 +0100 |
|
7176 @@ -1,5 +1,5 @@ |
|
7177 # |
|
7178 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
7179 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
7180 # All rights reserved. |
|
7181 # This component and the accompanying materials are made available |
|
7182 # under the terms of the License "Eclipse Public License v1.0" |
|
7183 @@ -19,6 +19,7 @@ |
|
7184 import sys |
|
7185 import re |
|
7186 import types |
|
7187 +import ctypes |
|
7188 |
|
7189 # are we on windows, and if so what is the current drive letter |
|
7190 isWin = sys.platform.lower().startswith("win") |
|
7191 @@ -265,6 +266,36 @@ |
|
7192 |
|
7193 return self.path |
|
7194 |
|
7195 + def GetSpaceSafePath(self): |
|
7196 + """Returns a version of the path where spaces don't interfere with shell interpretation. |
|
7197 + |
|
7198 + This functionality only applies to Windows - paths containing spaces are assumed to be problematic |
|
7199 + on non-Windows platforms. |
|
7200 + |
|
7201 + On Windows, the path is returned in Windows-specific 8.3 short path form - tilde are used to replace |
|
7202 + spaces and fit path elements within 8.3 requirements. As 8.3 format paths are not guaranteed to be |
|
7203 + supported on all Windows installs, and can only be calculated if they exist, a newly formated path is |
|
7204 + only returned if it is returned by the Windows API and tested to exist. |
|
7205 + """ |
|
7206 + |
|
7207 + if not isWin: |
|
7208 + return None |
|
7209 + |
|
7210 + from ctypes.wintypes import DWORD, LPSTR, MAX_PATH |
|
7211 + |
|
7212 + GetShortPathNameA = ctypes.windll.kernel32.GetShortPathNameA |
|
7213 + GetShortPathNameA.restype = DWORD |
|
7214 + GetShortPathNameA.argtypes = LPSTR, LPSTR, DWORD |
|
7215 + |
|
7216 + buffer = ctypes.create_string_buffer(MAX_PATH) |
|
7217 + GetShortPathNameA(self.path, buffer, MAX_PATH) |
|
7218 + |
|
7219 + spacesafe = buffer.value |
|
7220 + |
|
7221 + if not spacesafe or not os.path.exists(spacesafe): |
|
7222 + return None |
|
7223 + |
|
7224 + return spacesafe |
|
7225 |
|
7226 # Module functions |
|
7227 |
|
7228 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/mmpparser.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/mmpparser.py |
|
7229 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/mmpparser.py 2010-05-18 19:32:34.785348756 +0100 |
|
7230 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/mmpparser.py 2010-05-17 18:47:53.084842000 +0100 |
|
7231 @@ -1,5 +1,5 @@ |
|
7232 # |
|
7233 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
7234 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
7235 # All rights reserved. |
|
7236 # This component and the accompanying materials are made available |
|
7237 # under the terms of the License "Eclipse Public License v1.0" |
|
7238 @@ -71,6 +71,7 @@ |
|
7239 self.assignment = \ |
|
7240 ( \ |
|
7241 Line(CaselessKeyword('ARMFPU') + String()) ^ \ |
|
7242 + Line(CaselessKeyword('APPLY') + String()) ^ \ |
|
7243 Line(CaselessKeyword('ASSPLIBRARY') + StringList()) ^ \ |
|
7244 Line(CaselessKeyword('CAPABILITY') + StringList()) ^ \ |
|
7245 Line(CaselessKeyword('DOCUMENT') + StringList()) ^ \ |
|
7246 @@ -142,6 +143,7 @@ |
|
7247 CaselessKeyword('EPOCALLOWDLLDATA') ^ \ |
|
7248 CaselessKeyword('EPOCCALLDLLENTRYPOINTS') ^ \ |
|
7249 CaselessKeyword('EPOCFIXEDPROCESS') ^ \ |
|
7250 + CaselessKeyword('EPOCNESTEDEXCEPTIONS') ^ \ |
|
7251 CaselessKeyword('EXPORTUNFROZEN') ^ \ |
|
7252 CaselessKeyword('FEATUREVARIANT') ^ \ |
|
7253 CaselessKeyword('BYTEPAIRCOMPRESSTARGET') ^ \ |
|
7254 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_broken.py |
|
7255 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_bz2log.py |
|
7256 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_carbide.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_carbide.py |
|
7257 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_carbide.py 2010-05-18 19:32:34.785348756 +0100 |
|
7258 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_carbide.py 2010-05-17 18:47:53.084842000 +0100 |
|
7259 @@ -129,5 +129,4 @@ |
|
7260 FilterCarbide.stdout.write("Overall Errors: %d\n" % self.__errors) |
|
7261 FilterCarbide.stdout.write("Overall Warnings: %d\n\n" % self.__warnings) |
|
7262 |
|
7263 - return True if self.__errors == 0 else False |
|
7264 - |
|
7265 + return (self.__errors == 0) |
|
7266 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_checkcomp.py |
|
7267 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_check.py |
|
7268 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_checksource.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_checksource.py |
|
7269 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_checksource.py 2010-05-18 19:32:34.785348756 +0100 |
|
7270 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_checksource.py 2010-05-17 18:47:53.084842000 +0100 |
|
7271 @@ -224,11 +224,11 @@ |
|
7272 |
|
7273 # Do the check for each file |
|
7274 for dep in deplistnodups: |
|
7275 - dep = os.path.normpath(dep).replace('\\', '/') |
|
7276 + dep = os.path.abspath(dep).replace('\\', '/') |
|
7277 self.checksource(dep) |
|
7278 |
|
7279 except Exception, e: |
|
7280 - sys.stderr.write("sbs: could not access temporary file for FilterClean\n") |
|
7281 + sys.stderr.write("sbs: FilterCheckSource failed: %s\n" % str(e)) |
|
7282 |
|
7283 if self.errors == 0: |
|
7284 sys.stdout.write("No checksource errors found\n") |
|
7285 @@ -263,7 +263,7 @@ |
|
7286 def checkcase(self, path): |
|
7287 """Checks the path matches the file system""" |
|
7288 |
|
7289 - path = os.path.normpath(path) |
|
7290 + path = os.path.abspath(path) |
|
7291 path = path.replace('\\', '/') |
|
7292 |
|
7293 if not os.path.exists(path): |
|
7294 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_clean.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_clean.py |
|
7295 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_clean.py 2010-05-18 19:32:34.785348756 +0100 |
|
7296 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_clean.py 2010-05-17 18:47:53.084842000 +0100 |
|
7297 @@ -51,17 +51,23 @@ |
|
7298 |
|
7299 if self.removeTargets: |
|
7300 if line.startswith("<file>"): |
|
7301 - self.doFile(line) |
|
7302 - elif line.startswith("<dir>"): |
|
7303 - self.doDirectory(line) |
|
7304 + self.doFile(line, "file") |
|
7305 + elif line.startswith("<build>"): |
|
7306 + self.doFile(line, "build") |
|
7307 + elif line.startswith("<resource>"): |
|
7308 + self.doFile(line, "resource") |
|
7309 + elif line.startswith("<bitmap>"): |
|
7310 + self.doFile(line, "bitmap") |
|
7311 + elif line.startswith("<stringtable>"): |
|
7312 + self.doFile(line, "stringtable") |
|
7313 |
|
7314 if self.removeExports: |
|
7315 if line.startswith("<export "): |
|
7316 self.doExport(line) |
|
7317 elif line.startswith("<member>"): |
|
7318 - self.doMember(line) |
|
7319 + self.doFile(line, "member") |
|
7320 elif line.startswith("<zipmarker>"): |
|
7321 - self.doZipMarker(line) |
|
7322 + self.doFile(line, "zipmarker") |
|
7323 |
|
7324 return self.ok |
|
7325 |
|
7326 @@ -82,12 +88,13 @@ |
|
7327 if os.path.isfile(path): |
|
7328 self.removeFile(path) |
|
7329 |
|
7330 - elif os.path.isdir(path): |
|
7331 - dirs.add(path) |
|
7332 + directory = os.path.dirname(path) |
|
7333 + if os.path.isdir(directory): |
|
7334 + dirs.add(directory) |
|
7335 |
|
7336 self.tmp.close() # this also deletes the temporary file |
|
7337 - except: |
|
7338 - sys.stderr.write("sbs: could not access temporary file for FilterClean\n") |
|
7339 + except Exception,e: |
|
7340 + sys.stderr.write("sbs: problem reading temporary file for FilterClean: %s\n" % str(e)) |
|
7341 self.ok = False |
|
7342 |
|
7343 # finally remove (empty) directories |
|
7344 @@ -123,48 +130,21 @@ |
|
7345 self.ok = False |
|
7346 |
|
7347 |
|
7348 - def doFile(self, line): |
|
7349 - "remove filenames in <file> tags immediately (not .d or .dep)." |
|
7350 - filename = line[6:-7] # line is "<file>filename</file> |
|
7351 - filename = filename.strip("\"\'") # some names are quoted |
|
7352 + def doFile(self, line, tagname): |
|
7353 + "deal with <tagname>X</tagname>" |
|
7354 |
|
7355 - # dependency files must be deleted at the end, |
|
7356 - # everything else can be deleted straight away. |
|
7357 - if filename.endswith(".d") or filename.endswith(".dep"): |
|
7358 + first = len(tagname) + 2 # line is "<tagname>filename</tagname> |
|
7359 + last = -(first + 1) |
|
7360 + filename = line[first:last] |
|
7361 + filename = filename.strip("\"\'") # some names are quoted |
|
7362 self.saveItem(filename) |
|
7363 - else: |
|
7364 - if os.path.isfile(filename): |
|
7365 - self.removeFile(filename) |
|
7366 - |
|
7367 - |
|
7368 - def doDirectory(self, line): |
|
7369 - "save directories in <dir> tags for the end." |
|
7370 - # assuming <dir>X</dir> |
|
7371 - dirname = line[5:-6] |
|
7372 - self.saveItem(dirname.strip("\"\'")) |
|
7373 |
|
7374 |
|
7375 def doExport(self, line): |
|
7376 - "save exported files in <export> tags for the end." |
|
7377 - # assuming <export destination='X' source='Y' /> |
|
7378 + "deal with <export destination='X' source='Y'/>" |
|
7379 filename = line[21:line.find("'", 21)] |
|
7380 self.saveItem(filename) |
|
7381 |
|
7382 |
|
7383 - def doMember(self, line): |
|
7384 - "save zip exports in <member> tags for the end." |
|
7385 - # assuming <member>X</member> |
|
7386 - filename = line[8:-9] |
|
7387 - self.saveItem(filename) |
|
7388 - |
|
7389 - |
|
7390 - def doZipMarker(self, line): |
|
7391 - "Remove file in <zipmarker> tags" |
|
7392 - # assuming <zipmarker>X</zipmarker> |
|
7393 - filename = line[11:-12] |
|
7394 - if os.path.isfile(filename): |
|
7395 - self.removeFile(filename) |
|
7396 - |
|
7397 - |
|
7398 # the end |
|
7399 |
|
7400 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_logfile.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_logfile.py |
|
7401 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_logfile.py 2010-05-18 19:32:34.785348756 +0100 |
|
7402 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_logfile.py 2010-05-17 18:47:53.088843000 +0100 |
|
7403 @@ -16,6 +16,7 @@ |
|
7404 # Will ultimately do everything that scanlog does |
|
7405 # |
|
7406 |
|
7407 +import errno |
|
7408 import os |
|
7409 import sys |
|
7410 import raptor |
|
7411 @@ -38,7 +39,7 @@ |
|
7412 if dirname and not os.path.isdir(dirname): |
|
7413 os.makedirs(dirname) |
|
7414 except os.error, e: |
|
7415 - if e.errno != os.errno.EEXIST: |
|
7416 + if e.errno != errno.EEXIST: |
|
7417 sys.stderr.write("%s : error: cannot create directory %s\n" % \ |
|
7418 (str(raptor.name), dirname)) |
|
7419 return False |
|
7420 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_splitlog.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_splitlog.py |
|
7421 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_splitlog.py 2010-05-18 19:32:34.785348756 +0100 |
|
7422 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_splitlog.py 2010-05-17 18:47:53.088843000 +0100 |
|
7423 @@ -16,6 +16,7 @@ |
|
7424 # Will ultimately do everything that scanlog does |
|
7425 # |
|
7426 |
|
7427 +import errno |
|
7428 import os |
|
7429 import sys |
|
7430 import raptor |
|
7431 @@ -38,7 +39,7 @@ |
|
7432 if dirname and not os.path.isdir(dirname): |
|
7433 os.makedirs(dirname) |
|
7434 except os.error, e: |
|
7435 - if e.errno != os.errno.EEXIST: |
|
7436 + if e.errno != errno.EEXIST: |
|
7437 sys.stderr.write("%s : error: cannot create directory " + |
|
7438 "%s\n" % (raptor.name, dirname)) |
|
7439 return False |
|
7440 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_tagcount.py |
|
7441 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_terminal.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_terminal.py |
|
7442 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_terminal.py 2010-05-18 19:32:34.789348356 +0100 |
|
7443 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_terminal.py 2010-05-17 18:47:53.088843000 +0100 |
|
7444 @@ -1,5 +1,5 @@ |
|
7445 # |
|
7446 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
7447 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
7448 # All rights reserved. |
|
7449 # This component and the accompanying materials are made available |
|
7450 # under the terms of the License "Eclipse Public License v1.0" |
|
7451 @@ -105,7 +105,7 @@ |
|
7452 |
|
7453 attribute_re = re.compile("([a-z][a-z0-9]*)='([^']*)'",re.I) |
|
7454 maxdots = 40 # if one prints dots then don't print masses |
|
7455 - recipelinelimit = 200 # don't scan ultra-long recipes in case we run out of memory |
|
7456 + recipelinelimit = 1024 # don't scan ultra-long recipes in case we run out of memory |
|
7457 |
|
7458 # recipes that we think most users are interested in |
|
7459 # and the mapping that we will use to output them as |
|
7460 @@ -113,6 +113,7 @@ |
|
7461 "asmcompile" : "asmcompile" , |
|
7462 "compile" : "compile" , |
|
7463 "postlink" : "target", |
|
7464 + "linkandpostlink" : "target", |
|
7465 "resourcecompile" : "resource", |
|
7466 "genstringtable" : "strtable", |
|
7467 "tem" : "tem", |
|
7468 @@ -200,6 +201,9 @@ |
|
7469 if self.raptor.quiet: |
|
7470 self.quiet = True |
|
7471 |
|
7472 + # the build configurations which were reported |
|
7473 + self.built_configs = [] |
|
7474 + |
|
7475 # keep count of errors and warnings |
|
7476 self.err_count = 0 |
|
7477 self.warn_count = 0 |
|
7478 @@ -229,6 +233,8 @@ |
|
7479 # detect the status report from a recipe |
|
7480 if text.find('failed') != -1: |
|
7481 self.failed = True |
|
7482 + if text.find("reason='timeout'") != -1: |
|
7483 + self.timedout = True |
|
7484 else: |
|
7485 self.failed = False |
|
7486 return |
|
7487 @@ -281,7 +287,9 @@ |
|
7488 |
|
7489 # This variable holds all recipe information |
|
7490 self.failed = False # Recipe status |
|
7491 + self.timedout = False # Did it Timeout? |
|
7492 self.recipeBody = [] |
|
7493 + self.recipelineExceeded = 0 |
|
7494 return |
|
7495 elif text.startswith("</recipe>"): |
|
7496 # detect the end of a recipe |
|
7497 @@ -296,13 +304,27 @@ |
|
7498 |
|
7499 if self.failed == True: |
|
7500 if not self.analyseonly: |
|
7501 - sys.stderr.write("\n FAILED %s for %s: %s\n" % \ |
|
7502 + reason="" |
|
7503 + if self.timedout: |
|
7504 + reason="(timeout)" |
|
7505 + |
|
7506 + sys.stderr.write("\n FAILED %s %s for %s: %s\n" % \ |
|
7507 (self.recipe_dict['name'], |
|
7508 + reason, |
|
7509 self.recipe_dict['config'], |
|
7510 self.recipe_dict['name_to_user'])) |
|
7511 |
|
7512 mmppath = generic_path.Path(self.recipe_dict['mmp']).From(generic_path.CurrentDir()).GetShellPath() |
|
7513 + if mmppath is not "": |
|
7514 sys.stderr.write(" mmp: %s\n" % mmppath) |
|
7515 + if self.timedout: |
|
7516 + sys.stderr.write( \ |
|
7517 +""" Timeouts may be due to network related issues (e.g. license servers), |
|
7518 + tool bugs or abnormally large components. TALON_TIMEOUT can be adjusted |
|
7519 + in the make engine configuration if required. Make engines may have |
|
7520 + their own timeouts that Raptor cannot influence |
|
7521 +""") |
|
7522 + else: |
|
7523 for L in self.recipeBody: |
|
7524 if not L.startswith('+'): |
|
7525 sys.stdout.write(" %s\n" % L.rstrip()) |
|
7526 @@ -311,7 +333,7 @@ |
|
7527 r = Recipe.factory(self.recipe_dict['name'], "".join(self.recipeBody)) |
|
7528 warnings = r.warnings() |
|
7529 info = r.info() |
|
7530 - if len(warnings) > 0: |
|
7531 + if len(warnings) or len(info): |
|
7532 if not self.analyseonly: |
|
7533 for L in self.recipeBody: |
|
7534 if not L.startswith('+'): |
|
7535 @@ -336,6 +358,11 @@ |
|
7536 elif text.startswith("]]>"): |
|
7537 if self.inRecipe: |
|
7538 self.inBody = False |
|
7539 + if self.recipelineExceeded > 0: |
|
7540 + self.recipeBody.append("[filter_terminal: OUTPUT TRUNCATED: " + \ |
|
7541 + "Recipe output limit exceeded; see logfile for full output " + \ |
|
7542 + "(%s lines shown out of %s)]" % (FilterTerminal.recipelinelimit, \ |
|
7543 + FilterTerminal.recipelinelimit + self.recipelineExceeded)) |
|
7544 elif text.startswith("<info>Copied"): |
|
7545 if not self.analyseonly and not self.quiet: |
|
7546 start = text.find(" to ") + 4 |
|
7547 @@ -365,8 +392,13 @@ |
|
7548 # we have to keep the output until we find out |
|
7549 # if the recipe failed. But not all of it if it turns |
|
7550 # out to be very long |
|
7551 - if len(self.recipeBody) < FilterTerminal.recipelinelimit: |
|
7552 + if len(self.recipeBody) <= FilterTerminal.recipelinelimit: |
|
7553 self.recipeBody.append(text) |
|
7554 + else: |
|
7555 + self.recipelineExceeded += 1 |
|
7556 + elif text.startswith("<info>Buildable configuration '"): |
|
7557 + # <info>Buildable configuration 'name'</info> |
|
7558 + self.built_configs.append(text[30:-8]) |
|
7559 |
|
7560 def logit(self): |
|
7561 """ log a message """ |
|
7562 @@ -405,10 +437,13 @@ |
|
7563 if self.warn_count > 0 or self.err_count > 0: |
|
7564 sys.stdout.write("\n%s : warnings: %s\n" % (raptor.name, |
|
7565 self.warn_count)) |
|
7566 - sys.stdout.write("%s : errors: %s\n" % (raptor.name, |
|
7567 + sys.stdout.write("%s : errors: %s\n\n" % (raptor.name, |
|
7568 self.err_count)) |
|
7569 else: |
|
7570 - sys.stdout.write("\nno warnings or errors\n") |
|
7571 + sys.stdout.write("\nno warnings or errors\n\n") |
|
7572 + |
|
7573 + for bc in self.built_configs: |
|
7574 + sys.stdout.write("built " + bc + "\n") |
|
7575 |
|
7576 sys.stdout.write("\nRun time %d seconds\n" % self.raptor.runtime); |
|
7577 sys.stdout.write("\n") |
|
7578 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_timing.py |
|
7579 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins: filter_whatcomp.py |
|
7580 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_what.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_what.py |
|
7581 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/plugins/filter_what.py 2010-05-18 19:32:34.789348356 +0100 |
|
7582 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/plugins/filter_what.py 2010-05-17 18:47:53.088843000 +0100 |
|
7583 @@ -1,5 +1,5 @@ |
|
7584 # |
|
7585 -# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
7586 +# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
7587 # All rights reserved. |
|
7588 # This component and the accompanying materials are made available |
|
7589 # under the terms of the License "Eclipse Public License v1.0" |
|
7590 @@ -22,6 +22,11 @@ |
|
7591 |
|
7592 class FilterWhat(filter_interface.Filter): |
|
7593 |
|
7594 + def __init__(self): |
|
7595 + super(filter_interface.Filter,self).__init__() |
|
7596 + self.path_prefix_to_strip = None |
|
7597 + self.path_prefix_to_add_on = None |
|
7598 + self.check = False |
|
7599 |
|
7600 def print_file(self, line, start, end): |
|
7601 "Ensure DOS slashes on Windows" |
|
7602 @@ -29,18 +34,40 @@ |
|
7603 """Use chars between enclosing tags ("<>", "''", etc) |
|
7604 start = opening tag, so the line we need |
|
7605 actually starts at 'start + 1' """ |
|
7606 + |
|
7607 + abs_filename = line[(start + 1):end] |
|
7608 + filename = abs_filename |
|
7609 + |
|
7610 + # Adjust drive letters for case insensitivity on windows |
|
7611 + |
|
7612 + path_prefix_to_strip = self.path_prefix_to_strip |
|
7613 if "win" in self.buildparameters.platform: |
|
7614 - filename = line[(start + 1):end].replace("/","\\") |
|
7615 - else: |
|
7616 - filename = line[(start + 1):end] |
|
7617 + filename = filename[0].upper()+filename[1:] |
|
7618 + filename = filename.replace("/","\\") |
|
7619 + |
|
7620 + if path_prefix_to_strip: |
|
7621 + if "win" in self.buildparameters.platform: |
|
7622 + path_prefix_to_strip = path_prefix_to_strip[0].upper()+path_prefix_to_strip[1:].replace("/","\\") |
|
7623 + if filename.startswith(path_prefix_to_strip): |
|
7624 + filename = filename[len(path_prefix_to_strip):] |
|
7625 + if self.path_prefix_to_add_on != None: |
|
7626 + filename = self.path_prefix_to_add_on + filename |
|
7627 |
|
7628 if self.check: |
|
7629 - if not os.path.isfile(filename): |
|
7630 + if not os.path.isfile(abs_filename): |
|
7631 print "MISSING:", filename |
|
7632 self.ok = False |
|
7633 else: |
|
7634 self.outfile.write(filename+"\n") |
|
7635 |
|
7636 + self.prints += 1 |
|
7637 + |
|
7638 + def start_bldinf(self, bldinf): |
|
7639 + pass |
|
7640 + |
|
7641 + def end_bldinf(self): |
|
7642 + pass |
|
7643 + |
|
7644 |
|
7645 def open(self, build_parameters): |
|
7646 "initialise" |
|
7647 @@ -45,8 +72,10 @@ |
|
7648 def open(self, build_parameters): |
|
7649 "initialise" |
|
7650 |
|
7651 + |
|
7652 self.buildparameters = build_parameters |
|
7653 - self.check = build_parameters.doCheck |
|
7654 + if build_parameters.doCheck: |
|
7655 + self.check = True |
|
7656 self.what = build_parameters.doWhat |
|
7657 |
|
7658 self.outfile = sys.stdout |
|
7659 @@ -78,6 +107,11 @@ |
|
7660 "Regex for zip exports" |
|
7661 self.zip_export_regex = re.compile("^<member>.*") |
|
7662 |
|
7663 + "Regex for determining bld.inf name" |
|
7664 + self.whatlog_regex = re.compile("^<whatlog *bldinf='(?P<bldinf>[^']*)'.*") |
|
7665 + self.current_bldinf = '' |
|
7666 + |
|
7667 + self.prints = 0 |
|
7668 self.ok = True |
|
7669 return self.ok |
|
7670 |
|
7671 @@ -87,10 +121,22 @@ |
|
7672 for line in text.splitlines(): |
|
7673 line = line.rstrip() |
|
7674 |
|
7675 + # we are normally the ONLY filter running so we have to pass on |
|
7676 + # any errors and warnings that emerge |
|
7677 + # |
|
7678 + if line.startswith("<error"): |
|
7679 + sys.stderr.write(self.formatError(line)) |
|
7680 + self.ok = False |
|
7681 + continue |
|
7682 + if line.startswith("<warning"): |
|
7683 + sys.stderr.write(self.formatWarning(line)) |
|
7684 + continue |
|
7685 + |
|
7686 if not line in self.repetitions: |
|
7687 self.repetitions[line] = 0 |
|
7688 |
|
7689 if self.repetitions[line] == 0: |
|
7690 + |
|
7691 if self.regex.match(line) and (self.what or self.check): |
|
7692 "Print the whole line" |
|
7693 self.print_file(line, (-1), len(line)) |
|
7694 @@ -116,10 +162,34 @@ |
|
7695 |
|
7696 self.print_file(line, start, end) |
|
7697 |
|
7698 + "work out what the 'current' bldinf file is" |
|
7699 + m = self.whatlog_regex.match(line) |
|
7700 + if m: |
|
7701 + bi = m.groupdict()['bldinf'] |
|
7702 + if self.current_bldinf != bi: |
|
7703 + if self.current_bldinf != '': |
|
7704 + self.end_bldinf() |
|
7705 + self.current_bldinf = bi |
|
7706 + if bi != '': |
|
7707 + self.start_bldinf(bi) |
|
7708 + |
|
7709 + |
|
7710 + |
|
7711 self.repetitions[line] += 1 |
|
7712 |
|
7713 return self.ok |
|
7714 |
|
7715 + def summary(self): |
|
7716 + if self.prints == 0: |
|
7717 + if self.what: |
|
7718 + message = "no WHAT information found" |
|
7719 + else: |
|
7720 + message = "no CHECK information found" |
|
7721 + |
|
7722 + sys.stderr.write(self.formatError(message)) |
|
7723 + self.ok = False |
|
7724 + return self.ok |
|
7725 + |
|
7726 def close(self): |
|
7727 if self.outfile_close: |
|
7728 self.outfile.close() |
|
7729 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python: raptor_buildplatform.py |
|
7730 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cache.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cache.py |
|
7731 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cache.py 2010-05-18 19:32:34.789348356 +0100 |
|
7732 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cache.py 2010-05-17 18:47:53.092842000 +0100 |
|
7733 @@ -143,7 +143,6 @@ |
|
7734 self.WarnDuplicate("group", self.groups[obj.name], obj) |
|
7735 return |
|
7736 |
|
7737 - obj.SetOwner(self.raptor) |
|
7738 self.groups[obj.name] = obj |
|
7739 |
|
7740 def FindNamedAlias(self, name): |
|
7741 @@ -154,7 +153,6 @@ |
|
7742 self.WarnDuplicate("alias", self.aliases[obj.name], obj) |
|
7743 return |
|
7744 |
|
7745 - obj.SetOwner(self.raptor) |
|
7746 self.aliases[obj.name] = obj |
|
7747 |
|
7748 |
|
7749 @@ -176,7 +174,6 @@ |
|
7750 self.WarnDuplicate("interface", self.interfaces[cacheID][obj.name], obj) |
|
7751 return |
|
7752 |
|
7753 - obj.SetOwner(self.raptor) |
|
7754 obj.cacheID = cacheID |
|
7755 self.interfaces[cacheID][obj.name] = obj |
|
7756 |
|
7757 @@ -192,7 +189,6 @@ |
|
7758 self.WarnDuplicate("variant", self.variants[obj.name], obj) |
|
7759 return |
|
7760 |
|
7761 - obj.SetOwner(self.raptor) |
|
7762 self.variants[obj.name] = obj |
|
7763 |
|
7764 |
|
7765 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cli.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cli.py |
|
7766 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_cli.py 2010-05-18 19:32:34.789348356 +0100 |
|
7767 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_cli.py 2010-05-17 18:47:53.092842000 +0100 |
|
7768 @@ -1,5 +1,5 @@ |
|
7769 # |
|
7770 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
7771 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
7772 # All rights reserved. |
|
7773 # This component and the accompanying materials are made available |
|
7774 # under the terms of the License "Eclipse Public License v1.0" |
|
7775 @@ -34,7 +34,7 @@ |
|
7776 # raptor_cli module attributes |
|
7777 |
|
7778 parser = OptionParser(prog = raptor.name, |
|
7779 - usage = """%prog [--help] [options] [variable=value] [target] ... |
|
7780 + usage = """%prog [--help] [options] [target] ... |
|
7781 |
|
7782 Targets: |
|
7783 |
|
7784 @@ -47,7 +47,7 @@ |
|
7785 LIBRARY Create import libraries from frozen .DEF files |
|
7786 LISTING Create assembler listing files for source files |
|
7787 REALLYCLEAN Same as CLEAN but also remove exported files |
|
7788 -RESOURCE Create resource files and AIFs |
|
7789 +RESOURCE Create resource files |
|
7790 ROMFILE Create an IBY file to be included in a ROM |
|
7791 TARGET Create main executables |
|
7792 WHAT List all releaseable targets |
|
7793 @@ -87,6 +87,9 @@ |
|
7794 parser.add_option("--export-only",action="store_true",dest="doExportOnly", |
|
7795 help="Generate exports only and do not create any make files.") |
|
7796 |
|
7797 +parser.add_option("--noexport",action="store_true",dest="doExport", |
|
7798 + help="Don't export any files - useful in some builds when you know exports have already been done.") |
|
7799 + |
|
7800 parser.add_option("-f","--logfile",action="store",dest="logfile", |
|
7801 help="Name of the log file, or '-' for stdout.") |
|
7802 |
|
7803 @@ -117,6 +120,9 @@ |
|
7804 parser.add_option("--no-depend-include",action="store_true",dest="noDependInclude", |
|
7805 help="Do not include generated dependency files. This is only useful for extremely large non-incremental builds.") |
|
7806 |
|
7807 +parser.add_option("--no-depend-generate",action="store_true",dest="noDependGenerate", |
|
7808 + help="Do not generate dependency files. This is only useful for extremely large non-incremental builds. Implies --no-depend-include.") |
|
7809 + |
|
7810 parser.add_option("-o","--orderlayers",action="store_true",dest="sys_def_order_layers", |
|
7811 help="Build layers in the System Definition XML file in the order listed or, if given, in the order of -l options.") |
|
7812 |
|
7813 @@ -144,10 +150,15 @@ |
|
7814 |
|
7815 "forced" - Check all tool versions. Don't use cached results. |
|
7816 """) |
|
7817 + |
|
7818 +parser.add_option("--timing",action="store_true",dest="timing", |
|
7819 + help="Show extra timing information for various processes in the build.") |
|
7820 + |
|
7821 parser.add_option("--pp",action="store",dest="parallel_parsing", |
|
7822 help="""Controls how metadata (e.g. bld.infs) are parsed in Parallel. |
|
7823 Possible values are: |
|
7824 "on" - Parse bld.infs in parallel (should be faster on clusters/multicore machines) |
|
7825 + "slave" - used internally by Raptor |
|
7826 "off" - Parse bld.infs serially |
|
7827 """) |
|
7828 |
|
7829 @@ -236,12 +247,7 @@ |
|
7830 |
|
7831 # the leftover_args are either variable assignments of the form a=b |
|
7832 # or target names. |
|
7833 - regex = re.compile("^(.+)=(.*)$") |
|
7834 for leftover in leftover_args: |
|
7835 - assignment = regex.findall(leftover) |
|
7836 - if len(assignment) > 0: |
|
7837 - Raptor.SetEnv(assignment[0][0],assignment[0][1]) |
|
7838 - else: |
|
7839 Raptor.AddTarget(leftover) |
|
7840 |
|
7841 # Define the dictionary of functions to be used. |
|
7842 @@ -260,11 +266,13 @@ |
|
7843 'quiet' : Raptor.RunQuietly, |
|
7844 'debugoutput' : Raptor.SetDebugOutput, |
|
7845 'doExportOnly' : Raptor.SetExportOnly, |
|
7846 + 'doExport' : Raptor.SetNoExport, |
|
7847 'keepgoing': Raptor.SetKeepGoing, |
|
7848 'nobuild' : Raptor.SetNoBuild, |
|
7849 'make_engine': Raptor.SetMakeEngine, |
|
7850 'make_option': Raptor.AddMakeOption, |
|
7851 'noDependInclude': Raptor.SetNoDependInclude, |
|
7852 + 'noDependGenerate': Raptor.SetNoDependGenerate, |
|
7853 'number_of_jobs': Raptor.SetJobs, |
|
7854 'project_name' : Raptor.AddProject, |
|
7855 'filter_list' : Raptor.FilterList, |
|
7856 @@ -273,6 +281,7 @@ |
|
7857 'what' : Raptor.SetWhat, |
|
7858 'tries' : Raptor.SetTries, |
|
7859 'toolcheck' : Raptor.SetToolCheck, |
|
7860 + 'timing' : Raptor.SetTiming, |
|
7861 'source_target' : Raptor.AddSourceTarget, |
|
7862 'command_file' : CommandFile, |
|
7863 'parallel_parsing' : Raptor.SetParallelParsing, |
|
7864 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_data.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_data.py |
|
7865 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_data.py 2010-05-18 19:32:34.793348934 +0100 |
|
7866 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_data.py 2010-05-17 18:47:53.096843000 +0100 |
|
7867 @@ -1,5 +1,5 @@ |
|
7868 # |
|
7869 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
7870 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
7871 # All rights reserved. |
|
7872 # This component and the accompanying materials are made available |
|
7873 # under the terms of the License "Eclipse Public License v1.0" |
|
7874 @@ -27,8 +27,13 @@ |
|
7875 import subprocess |
|
7876 from tempfile import gettempdir |
|
7877 from time import time, clock |
|
7878 +import traceback |
|
7879 +import raptor_cache |
|
7880 |
|
7881 |
|
7882 +class MissingInterfaceError(Exception): |
|
7883 + def __init__(self, s): |
|
7884 + Exception.__init__(self,s) |
|
7885 |
|
7886 # What host platforms we recognise |
|
7887 # This allows us to tie some variants to one host platform and some to another |
|
7888 @@ -60,7 +65,7 @@ |
|
7889 |
|
7890 # Make sure not to start up on an unsupported platform |
|
7891 if not HostPlatform.IsKnown(HostPlatform.hostplatform): |
|
7892 - raise Exception("raptor_data module loaded on an unrecognised platform '%s'. Expected one of %s" % (hostplatform, str(hostplatforms))) |
|
7893 + raise Exception("raptor_data module loaded on an unrecognised platform '%s'. Expected one of %s" % (HostPlatform.hostplatform, str(HostPlatform.hostplatforms))) |
|
7894 |
|
7895 |
|
7896 # raptor_data module classes |
|
7897 @@ -68,16 +73,14 @@ |
|
7898 class Model(object): |
|
7899 "Base class for data-model objects" |
|
7900 |
|
7901 + __slots__ = ('host', 'source', 'cacheID') |
|
7902 + |
|
7903 def __init__(self): |
|
7904 - self.owner = None # Raptor object |
|
7905 self.source = None # XML file |
|
7906 - self.indent = " " # for DebugPrint |
|
7907 self.host = None |
|
7908 self.cacheID = "" # default set of cached objects |
|
7909 - |
|
7910 - |
|
7911 - def SetOwner(self, aRaptor): |
|
7912 - self.owner = aRaptor |
|
7913 + # not using the cache parameter - there to make the |
|
7914 + # init for all Model objects "standard" |
|
7915 |
|
7916 |
|
7917 def SetSourceFile(self, filename): |
|
7918 @@ -92,10 +95,6 @@ |
|
7919 raise InvalidChildError() |
|
7920 |
|
7921 |
|
7922 - def DebugPrint(self, prefix = ""): |
|
7923 - if self.owner: |
|
7924 - self.owner.Debug("%s", prefix) |
|
7925 - |
|
7926 def Valid(self): |
|
7927 return False |
|
7928 |
|
7929 @@ -139,9 +138,14 @@ |
|
7930 def Resolve(self): |
|
7931 raise BadReferenceError() |
|
7932 |
|
7933 - def GetModifiers(self): |
|
7934 - cache = self.owner.cache |
|
7935 - return [ cache.FindNamedVariant(m) for m in self.modifiers ] |
|
7936 + def GetModifiers(self, cache): |
|
7937 + mods = [] |
|
7938 + for m in self.modifiers: |
|
7939 + try: |
|
7940 + mods.append(cache.FindNamedVariant(m)) |
|
7941 + except KeyError: |
|
7942 + raise BadReferenceError(m) |
|
7943 + return mods |
|
7944 |
|
7945 def Valid(self): |
|
7946 return self.ref |
|
7947 @@ -154,20 +158,13 @@ |
|
7948 self.variants = [] |
|
7949 |
|
7950 |
|
7951 - def SetOwner(self, aRaptor): |
|
7952 - Model.SetOwner(self, aRaptor) |
|
7953 - for v in self.variants: |
|
7954 - v.SetOwner(aRaptor) |
|
7955 - |
|
7956 - |
|
7957 - def DebugPrint(self, prefix = ""): |
|
7958 - for v in self.variants: |
|
7959 - v.DebugPrint(prefix) |
|
7960 + def __str__(self): |
|
7961 + return "\n".join([str(v) for v in self.variants]) |
|
7962 |
|
7963 |
|
7964 def AddVariant(self, variant): |
|
7965 if type(variant) is types.StringTypes: |
|
7966 - variant = VariantRef(variant) |
|
7967 + variant = VariantRef(ref = variant) |
|
7968 |
|
7969 |
|
7970 # Only add the variant if it's not in the list |
|
7971 @@ -175,15 +172,19 @@ |
|
7972 if not variant in self.variants: |
|
7973 self.variants.append(variant) |
|
7974 |
|
7975 - def GetVariants(self): |
|
7976 + def GetVariants(self, cache): |
|
7977 # resolve any VariantRef objects into Variant objects |
|
7978 + missing_variants = [] |
|
7979 for i,var in enumerate(self.variants): |
|
7980 if isinstance(var, Reference): |
|
7981 try: |
|
7982 - self.variants[i] = var.Resolve() |
|
7983 + self.variants[i] = var.Resolve(cache=cache) |
|
7984 |
|
7985 except BadReferenceError: |
|
7986 - self.owner.Error("Missing variant '%s'", var.ref) |
|
7987 + missing_variants.append(var.ref) |
|
7988 + |
|
7989 + if len(missing_variants) > 0: |
|
7990 + raise MissingVariantException("Missing variants '%s'", " ".join(missing_variants)) |
|
7991 |
|
7992 return self.variants |
|
7993 |
|
7994 @@ -199,27 +200,25 @@ |
|
7995 self.params = [] |
|
7996 self.paramgroups = [] |
|
7997 |
|
7998 - def DebugPrint(self, prefix = ""): |
|
7999 - self.owner.Debug("%s<interface name='%s'>", prefix, self.name) |
|
8000 - self.owner.Debug("%s...", prefix) |
|
8001 - self.owner.Debug("%s</interface>", prefix) |
|
8002 + def __str__(self): |
|
8003 + return "<interface name='%s'>" % self.name + "</interface>" |
|
8004 |
|
8005 - def FindParent(self): |
|
8006 + def FindParent(self, cache): |
|
8007 try: |
|
8008 - return self.owner.cache.FindNamedInterface(self.extends, self.cacheID) |
|
8009 + return cache.FindNamedInterface(self.extends, self.cacheID) |
|
8010 except KeyError: |
|
8011 raise BadReferenceError("Cannot extend interface because it cannot be found: "+str(self.extends)) |
|
8012 |
|
8013 - def GetParams(self): |
|
8014 + def GetParams(self, cache): |
|
8015 if self.extends != None: |
|
8016 - parent = self.FindParent() |
|
8017 + parent = self.FindParent(cache) |
|
8018 |
|
8019 # what parameter names do we have already? |
|
8020 names = set([x.name for x in self.params]) |
|
8021 |
|
8022 # pick up ones we don't have that are in our parent |
|
8023 pp = [] |
|
8024 - for p in parent.GetParams(): |
|
8025 + for p in parent.GetParams(cache): |
|
8026 if not p.name in names: |
|
8027 pp.append(p) |
|
8028 |
|
8029 @@ -229,29 +228,29 @@ |
|
8030 |
|
8031 return self.params |
|
8032 |
|
8033 - def GetParamGroups(self): |
|
8034 + def GetParamGroups(self, cache): |
|
8035 if self.extends != None: |
|
8036 - parent = self.FindParent() |
|
8037 + parent = self.FindParent(cache) |
|
8038 |
|
8039 # what parameter names do we have already? |
|
8040 patterns = set([x.pattern for x in self.paramgroups]) |
|
8041 |
|
8042 # pick up ones we don't have that are in our parent |
|
8043 - for g in parent.GetParamGroups(): |
|
8044 + for g in parent.GetParamGroups(cache): |
|
8045 if not g.pattern in patterns: |
|
8046 self.paramgroups.append(g) |
|
8047 |
|
8048 return self.paramgroups |
|
8049 |
|
8050 |
|
8051 - def GetFLMIncludePath(self): |
|
8052 + def GetFLMIncludePath(self, cache): |
|
8053 "absolute path to the FLM" |
|
8054 |
|
8055 if self.flm == None: |
|
8056 if self.extends != None: |
|
8057 - parent = self.FindParent() |
|
8058 + parent = self.FindParent(cache) |
|
8059 |
|
8060 - return parent.GetFLMIncludePath() |
|
8061 + return parent.GetFLMIncludePath(cache) |
|
8062 else: |
|
8063 raise InvalidPropertyError() |
|
8064 |
|
8065 @@ -295,12 +294,12 @@ |
|
8066 |
|
8067 class InterfaceRef(Reference): |
|
8068 |
|
8069 - def DebugPrint(self, prefix = ""): |
|
8070 - self.owner.Debug("%s<interfaceRef ref='%s'/>", prefix, self.ref) |
|
8071 + def __str__(self): |
|
8072 + return "<interfaceRef ref='%s'/>" % self.ref |
|
8073 |
|
8074 - def Resolve(self): |
|
8075 + def Resolve(self, cache): |
|
8076 try: |
|
8077 - return self.owner.cache.FindNamedInterface(self.ref, self.cacheID) |
|
8078 + return cache.FindNamedInterface(self.ref, self.cacheID) |
|
8079 except KeyError: |
|
8080 raise BadReferenceError() |
|
8081 |
|
8082 @@ -316,24 +315,13 @@ |
|
8083 self.parentSpec = None |
|
8084 |
|
8085 |
|
8086 - def DebugPrint(self, prefix = ""): |
|
8087 - self.owner.Debug("%s<spec name='%s'>", prefix, self.name) |
|
8088 - if self.interface: |
|
8089 - self.interface.DebugPrint(prefix + self.indent) |
|
8090 - VariantContainer.DebugPrint(self, prefix + self.indent) |
|
8091 + def __str__(self): |
|
8092 + s = "<spec name='%s'>" % str(self.name) |
|
8093 + s += VariantContainer.__str__(self) |
|
8094 for c in self.childSpecs: |
|
8095 - c.DebugPrint(prefix + self.indent) |
|
8096 - self.owner.Debug("%s</spec>", prefix) |
|
8097 - |
|
8098 - |
|
8099 - def SetOwner(self, aRaptor): |
|
8100 - VariantContainer.SetOwner(self, aRaptor) |
|
8101 - |
|
8102 - if self.interface != None: |
|
8103 - self.interface.SetOwner(aRaptor) |
|
8104 - |
|
8105 - for s in self.childSpecs: |
|
8106 - s.SetOwner(aRaptor) |
|
8107 + s += str(c) + '\n' |
|
8108 + s += "</spec>" |
|
8109 + return s |
|
8110 |
|
8111 |
|
8112 def SetProperty(self, name, value): |
|
8113 @@ -343,10 +331,10 @@ |
|
8114 raise InvalidPropertyError() |
|
8115 |
|
8116 |
|
8117 - def Configure(self, config): |
|
8118 + def Configure(self, config, cache): |
|
8119 # configure all the children (some may be Filters or parents of) |
|
8120 for spec in self.GetChildSpecs(): |
|
8121 - spec.Configure(config) |
|
8122 + spec.Configure(config, cache = cache) |
|
8123 |
|
8124 |
|
8125 def HasInterface(self): |
|
8126 @@ -358,10 +346,10 @@ |
|
8127 or isinstance(interface, InterfaceRef): |
|
8128 self.interface = interface |
|
8129 else: |
|
8130 - self.interface = InterfaceRef(interface) |
|
8131 + self.interface = InterfaceRef(ref = interface) |
|
8132 |
|
8133 |
|
8134 - def GetInterface(self): |
|
8135 + def GetInterface(self, cache): |
|
8136 """return the Interface (fetching from the cache if it was a ref) |
|
8137 may return None""" |
|
8138 |
|
8139 @@ -371,13 +359,11 @@ |
|
8140 |
|
8141 if isinstance(self.interface, InterfaceRef): |
|
8142 try: |
|
8143 - self.interface = self.interface.Resolve() |
|
8144 + self.interface = self.interface.Resolve(cache=cache) |
|
8145 return self.interface |
|
8146 |
|
8147 except BadReferenceError: |
|
8148 - self.owner.Error("Missing interface %s", self.interface.ref) |
|
8149 - return None |
|
8150 - |
|
8151 + raise MissingInterfaceError("Missing interface %s" % self.interface.ref) |
|
8152 |
|
8153 def AddChild(self, child): |
|
8154 if isinstance(child, Specification): |
|
8155 @@ -409,7 +395,7 @@ |
|
8156 return True |
|
8157 |
|
8158 |
|
8159 - def GetAllVariantsRecursively(self): |
|
8160 + def GetAllVariantsRecursively(self, cache): |
|
8161 """Returns all variants contained in this node and in its ancestors. |
|
8162 |
|
8163 The returned value is a list, the structure of which is [variants-in-parent, |
|
8164 @@ -419,11 +405,11 @@ |
|
8165 the variants themselves. |
|
8166 """ |
|
8167 if self.parentSpec: |
|
8168 - variants = self.parentSpec.GetAllVariantsRecursively() |
|
8169 + variants = self.parentSpec.GetAllVariantsRecursively(cache = cache) |
|
8170 else: |
|
8171 variants = [] |
|
8172 |
|
8173 - variants.extend( self.GetVariants() ) |
|
8174 + variants.extend( self.GetVariants(cache = cache) ) |
|
8175 |
|
8176 return variants |
|
8177 |
|
8178 @@ -438,22 +424,21 @@ |
|
8179 If several Conditions are set, the test is an OR of all of them.""" |
|
8180 |
|
8181 def __init__(self, name = ""): |
|
8182 - Specification.__init__(self, name) # base class constructor |
|
8183 - self.Else = Specification(name) # same for Else part |
|
8184 + Specification.__init__(self, name = name) # base class constructor |
|
8185 + self.Else = Specification(name = name) # same for Else part |
|
8186 self.isTrue = True |
|
8187 self.configNames = set() # |
|
8188 self.variableNames = set() # TO DO: Condition class |
|
8189 self.variableValues = {} # |
|
8190 |
|
8191 - def DebugPrint(self, prefix = ""): |
|
8192 - self.owner.Debug("%s<filter name='%s'>", prefix, self.name) |
|
8193 - self.owner.Debug("%s <if config='%s'>", prefix, " | ".join(self.configNames)) |
|
8194 - Specification.DebugPrint(self, prefix + self.indent) |
|
8195 - self.owner.Debug("%s </if>", prefix) |
|
8196 - self.owner.Debug("%s <else>", prefix) |
|
8197 - self.Else.DebugPrint(prefix + self.indent) |
|
8198 - self.owner.Debug("%s </else>", prefix) |
|
8199 - self.owner.Debug("%s</filter>", prefix) |
|
8200 + def __str__(self, prefix = ""): |
|
8201 + s = "<filter name='%s'>\n"% self.name |
|
8202 + s += "<if config='%s'>\n" % " | ".join(self.configNames) |
|
8203 + s += Specification.__str__(self) |
|
8204 + s += "</if>\n <else>\n" |
|
8205 + s += str(self.Else) |
|
8206 + s += " </else>\n</filter>\n" |
|
8207 + return s |
|
8208 |
|
8209 |
|
8210 def SetConfigCondition(self, configName): |
|
8211 @@ -478,13 +463,14 @@ |
|
8212 self.variableValues[variableName] = set([variableValues]) |
|
8213 |
|
8214 |
|
8215 - def Configure(self, buildUnit): |
|
8216 + def Configure(self, buildUnit, cache): |
|
8217 self.isTrue = False |
|
8218 |
|
8219 if buildUnit.name in self.configNames: |
|
8220 self.isTrue = True |
|
8221 elif self.variableNames: |
|
8222 - evaluator = self.owner.GetEvaluator(self.parentSpec, buildUnit) |
|
8223 + |
|
8224 + evaluator = Evaluator(self.parentSpec, buildUnit, cache=cache) |
|
8225 |
|
8226 for variableName in self.variableNames: |
|
8227 variableValue = evaluator.Get(variableName) |
|
8228 @@ -495,14 +481,7 @@ |
|
8229 |
|
8230 # configure all the children too |
|
8231 for spec in self.GetChildSpecs(): |
|
8232 - spec.Configure(buildUnit) |
|
8233 - |
|
8234 - |
|
8235 - def SetOwner(self, aRaptor): |
|
8236 - # base class method |
|
8237 - Specification.SetOwner(self, aRaptor) |
|
8238 - # same for Else part |
|
8239 - self.Else.SetOwner(aRaptor) |
|
8240 + spec.Configure(buildUnit, cache=cache) |
|
8241 |
|
8242 |
|
8243 def HasInterface(self): |
|
8244 @@ -512,18 +491,18 @@ |
|
8245 return self.Else.HasInterface() |
|
8246 |
|
8247 |
|
8248 - def GetInterface(self): |
|
8249 + def GetInterface(self, cache): |
|
8250 if self.isTrue: |
|
8251 - return Specification.GetInterface(self) |
|
8252 + return Specification.GetInterface(self, cache = cache) |
|
8253 else: |
|
8254 - return self.Else.GetInterface() |
|
8255 + return self.Else.GetInterface(cache = cache) |
|
8256 |
|
8257 |
|
8258 - def GetVariants(self): |
|
8259 + def GetVariants(self, cache): |
|
8260 if self.isTrue: |
|
8261 - return Specification.GetVariants(self) |
|
8262 + return Specification.GetVariants(self, cache = cache) |
|
8263 else: |
|
8264 - return self.Else.GetVariants() |
|
8265 + return self.Else.GetVariants(cache = cache) |
|
8266 |
|
8267 |
|
8268 def SetParentSpec(self, parent): |
|
8269 @@ -591,18 +570,17 @@ |
|
8270 |
|
8271 class Operation(Model): |
|
8272 "Base class for variant operations" |
|
8273 + __slots__ = 'type' |
|
8274 def __init__(self): |
|
8275 Model.__init__(self) # base class constructor |
|
8276 self.type = None |
|
8277 |
|
8278 - |
|
8279 def Apply(self, oldValue): |
|
8280 pass |
|
8281 |
|
8282 |
|
8283 class Append(Operation): |
|
8284 - __slots__ = ('name','value','separator','owner') |
|
8285 - |
|
8286 + __slots__ = ('name', 'value', 'separator') |
|
8287 def __init__(self, name = None, value = None, separator = " "): |
|
8288 Operation.__init__(self) # base class constructor |
|
8289 self.name = name |
|
8290 @@ -610,9 +588,9 @@ |
|
8291 self.separator = separator |
|
8292 |
|
8293 |
|
8294 - def DebugPrint(self, prefix = ""): |
|
8295 + def __str__(self): |
|
8296 attributes = "name='" + self.name + "' value='" + self.value + "' separator='" + self.separator + "'" |
|
8297 - self.owner.Debug("%s<append %s/>", prefix, attributes) |
|
8298 + return "<append %s/>" % attributes |
|
8299 |
|
8300 |
|
8301 def Apply(self, oldValue): |
|
8302 @@ -641,6 +619,7 @@ |
|
8303 |
|
8304 |
|
8305 class Prepend(Operation): |
|
8306 + __slots__ = ('name', 'value', 'separator') |
|
8307 def __init__(self, name = None, value = None, separator = " "): |
|
8308 Operation.__init__(self) # base class constructor |
|
8309 self.name = name |
|
8310 @@ -648,9 +627,9 @@ |
|
8311 self.separator = separator |
|
8312 |
|
8313 |
|
8314 - def DebugPrint(self, prefix = ""): |
|
8315 + def __str__(self, prefix = ""): |
|
8316 attributes = "name='" + self.name + "' value='" + self.value + "' separator='" + self.separator + "'" |
|
8317 - self.owner.Debug("%s<prepend %s/>", prefix, attributes) |
|
8318 + return "<prepend %s/>" % prefix |
|
8319 |
|
8320 |
|
8321 def Apply(self, oldValue): |
|
8322 @@ -679,8 +658,8 @@ |
|
8323 |
|
8324 |
|
8325 class Set(Operation): |
|
8326 + __slots__ = ('name', 'value', 'type', 'versionCommand', 'versionResult') |
|
8327 """implementation of <set> operation""" |
|
8328 - __slots__ = ('name','value', 'type', 'versionCommand', 'versionResult', 'owner') |
|
8329 |
|
8330 def __init__(self, name = None, value = "", type = ""): |
|
8331 Operation.__init__(self) # base class constructor |
|
8332 @@ -691,12 +670,12 @@ |
|
8333 self.versionResult = "" |
|
8334 |
|
8335 |
|
8336 - def DebugPrint(self, prefix = ""): |
|
8337 + def __str__(self): |
|
8338 attributes = "name='" + self.name + "' value='" + self.value + "' type='" + self.type + "'" |
|
8339 if type == "tool": |
|
8340 attributes += " versionCommand='" + self.versionCommand + "' versionResult='" + self.versionResult |
|
8341 |
|
8342 - self.owner.Debug("%s<set %s/>", prefix, attributes) |
|
8343 + return "<set %s/>" % attributes |
|
8344 |
|
8345 |
|
8346 def Apply(self, oldValue): |
|
8347 @@ -724,6 +703,8 @@ |
|
8348 def Valid(self): |
|
8349 return (self.name != None and self.value != None) |
|
8350 |
|
8351 +class BadToolValue(Exception): |
|
8352 + pass |
|
8353 |
|
8354 class Env(Set): |
|
8355 """implementation of <env> operator""" |
|
8356 @@ -733,36 +714,54 @@ |
|
8357 self.default = default |
|
8358 |
|
8359 |
|
8360 - def DebugPrint(self, prefix = ""): |
|
8361 + def __str__(self): |
|
8362 attributes = "name='" + self.name + "' type='" + self.type + "'" |
|
8363 - if default != None: |
|
8364 + if self.default != None: |
|
8365 attributes += " default='" + self.default + "'" |
|
8366 |
|
8367 if type == "tool": |
|
8368 attributes += " versionCommand='" + self.versionCommand + "' versionResult='" + self.versionResult + "'" |
|
8369 |
|
8370 - self.owner.Debug("%s<env %s/>", prefix, attributes) |
|
8371 + return "<env %s/>" % attributes |
|
8372 |
|
8373 |
|
8374 def Apply(self, oldValue): |
|
8375 try: |
|
8376 value = os.environ[self.name] |
|
8377 |
|
8378 - # if this value is a "path" or a "tool" then we need to make sure |
|
8379 + if value: |
|
8380 + if self.type in ["path", "tool", "toolchainpath"]: |
|
8381 + # if this value is some sort of path or tool then we need to make sure |
|
8382 # it is a proper absolute path in our preferred format. |
|
8383 - if value and (self.type == "path" or self.type == "tool"): |
|
8384 try: |
|
8385 path = generic_path.Path(value) |
|
8386 value = str(path.Absolute()) |
|
8387 except ValueError,e: |
|
8388 - self.owner.Error("the environment variable %s is incorrect: %s" % (self.name, str(e))) |
|
8389 - return "NO_VALUE_FOR_" + self.name |
|
8390 + raise BadToolValue("the environment variable %s is incorrect: %s" % (self.name, str(e))) |
|
8391 + |
|
8392 + if self.type in ["tool", "toolchainpath"]: |
|
8393 + # if we're dealing with tool-related values, then make sure that we can get "safe" |
|
8394 + # versions if they contain spaces - if we can't, that's an error, as they won't |
|
8395 + # survive full usage in the toolcheck or when used and/or referenced in FLMs |
|
8396 + if ' ' in value: |
|
8397 + path = generic_path.Path(value) |
|
8398 + spaceSafeValue = path.GetSpaceSafePath() |
|
8399 + |
|
8400 + if not spaceSafeValue: |
|
8401 + raise BadToolValue("the environment variable %s is incorrect - it is a '%s' type but contains spaces that cannot be neutralised: %s" % (self.name, self.type, value)) |
|
8402 + |
|
8403 + value = spaceSafeValue |
|
8404 + elif value.endswith('\\'): |
|
8405 + # if this value ends in an un-escaped backslash, then it will be treated as a line continuation character |
|
8406 + # in makefile parsing - un-escaped backslashes at the end of values are therefore escaped |
|
8407 + count = len(value) - len(value.rstrip('\\')) # an odd number of backslashes means there's one to escape |
|
8408 + if count % 2: |
|
8409 + value += '\\' |
|
8410 except KeyError: |
|
8411 if self.default != None: |
|
8412 value = self.default |
|
8413 else: |
|
8414 - self.owner.Error("%s is not set in the environment and has no default", self.name) |
|
8415 - return "NO_VALUE_FOR_" + self.name |
|
8416 + raise BadToolValue("%s is not set in the environment and has no default" % self.name) |
|
8417 |
|
8418 return value |
|
8419 |
|
8420 @@ -791,7 +790,7 @@ |
|
8421 self.operations = [] |
|
8422 self.variantKey = "" |
|
8423 |
|
8424 - def GetOperations(self): |
|
8425 + def GetOperations(self, cache): |
|
8426 """Return all operations related to this BuildUnit. |
|
8427 |
|
8428 The result is cached, and so will only be computed once per BuildUnit. |
|
8429 @@ -800,7 +799,7 @@ |
|
8430 if self.variantKey != key: |
|
8431 self.variantKey = key |
|
8432 for v in self.variants: |
|
8433 - self.operations.extend( v.GetAllOperationsRecursively() ) |
|
8434 + self.operations.extend( v.GetAllOperationsRecursively(cache=cache) ) |
|
8435 |
|
8436 return self.operations |
|
8437 |
|
8438 @@ -820,7 +819,7 @@ |
|
8439 def ClearModifiers(self): |
|
8440 self.modifiers = [] |
|
8441 |
|
8442 - def GenerateBuildUnits(self): |
|
8443 + def GenerateBuildUnits(self,cache): |
|
8444 """Returns a list of BuildUnits. |
|
8445 |
|
8446 This function must be overridden by derived classes. |
|
8447 @@ -830,6 +829,8 @@ |
|
8448 |
|
8449 class Variant(Model, Config): |
|
8450 |
|
8451 + __slots__ = ('cache','name','host','extends','ops','variantRefs','allOperations') |
|
8452 + |
|
8453 def __init__(self, name = ""): |
|
8454 Model.__init__(self) |
|
8455 Config.__init__(self) |
|
8456 @@ -868,20 +869,10 @@ |
|
8457 def Valid(self): |
|
8458 return self.name |
|
8459 |
|
8460 - def SetOwner(self, aRaptor): |
|
8461 - |
|
8462 - Model.SetOwner(self, aRaptor) |
|
8463 - |
|
8464 - for r in self.variantRefs: |
|
8465 - r.SetOwner(aRaptor) |
|
8466 - |
|
8467 - for op in self.ops: |
|
8468 - op.SetOwner(aRaptor) |
|
8469 - |
|
8470 def AddOperation(self, op): |
|
8471 self.ops.append(op) |
|
8472 |
|
8473 - def GetAllOperationsRecursively(self): |
|
8474 + def GetAllOperationsRecursively(self, cache): |
|
8475 """Returns a list of all operations in this variant. |
|
8476 |
|
8477 The list elements are themselves lists; the overall structure of the |
|
8478 @@ -892,16 +883,16 @@ |
|
8479 |
|
8480 if not self.allOperations: |
|
8481 if self.extends: |
|
8482 - parent = self.owner.cache.FindNamedVariant(self.extends) |
|
8483 - self.allOperations.extend( parent.GetAllOperationsRecursively() ) |
|
8484 + parent = cache.FindNamedVariant(self.extends) |
|
8485 + self.allOperations.extend( parent.GetAllOperationsRecursively(cache = cache) ) |
|
8486 for r in self.variantRefs: |
|
8487 - for v in [ r.Resolve() ] + r.GetModifiers(): |
|
8488 - self.allOperations.extend( v.GetAllOperationsRecursively() ) |
|
8489 + for v in [ r.Resolve(cache = cache) ] + r.GetModifiers(cache = cache): |
|
8490 + self.allOperations.extend( v.GetAllOperationsRecursively(cache = cache) ) |
|
8491 self.allOperations.append(self.ops) |
|
8492 |
|
8493 return self.allOperations |
|
8494 |
|
8495 - def GenerateBuildUnits(self): |
|
8496 + def GenerateBuildUnits(self,cache): |
|
8497 |
|
8498 name = self.name |
|
8499 vars = [self] |
|
8500 @@ -909,32 +900,46 @@ |
|
8501 for m in self.modifiers: |
|
8502 name = name + "." + m.name |
|
8503 vars.append(m) |
|
8504 + return [ BuildUnit(name=name, variants=vars) ] |
|
8505 |
|
8506 - return [ BuildUnit(name, vars) ] |
|
8507 - |
|
8508 - def DebugPrint(self, prefix = ""): |
|
8509 + def isDerivedFrom(self, progenitor, cache): |
|
8510 + if self.name == progenitor: |
|
8511 + return True |
|
8512 |
|
8513 - self.owner.Debug("%s<var name='%s' extends='%s'>", prefix, self.name, self.extends) |
|
8514 - for op in self.ops: |
|
8515 - op.DebugPrint(prefix + self.indent) |
|
8516 + pname = self.extends |
|
8517 + while pname is not None and pname is not '': |
|
8518 + parent = cache.FindNamedVariant(pname) |
|
8519 + if parent is None: |
|
8520 + break |
|
8521 + if parent.name == progenitor: |
|
8522 + return True |
|
8523 + pname = parent.extends |
|
8524 |
|
8525 - self.owner.Debug("%s</var>", prefix) |
|
8526 + return False |
|
8527 |
|
8528 + def __str__(self): |
|
8529 + s = "<var name='%s' extends='%s'>\n" % (self.name, self.extends) |
|
8530 + for op in self.ops: |
|
8531 + s += str(op) + '\n' |
|
8532 + s += "</var>" |
|
8533 + return s |
|
8534 |
|
8535 class VariantRef(Reference): |
|
8536 |
|
8537 def __init__(self, ref=None): |
|
8538 - Reference.__init__(self, ref) |
|
8539 + Reference.__init__(self, ref = ref) |
|
8540 |
|
8541 - def DebugPrint(self, prefix = ""): |
|
8542 - self.owner.Debug("%s<varRef ref='%s'/>", prefix, self.ref) |
|
8543 + def __str__(self): |
|
8544 + return "<varRef ref='%s'/>" % self.ref |
|
8545 |
|
8546 - def Resolve(self): |
|
8547 + def Resolve(self, cache): |
|
8548 try: |
|
8549 - return self.owner.cache.FindNamedVariant(self.ref) |
|
8550 + return cache.FindNamedVariant(self.ref) |
|
8551 except KeyError: |
|
8552 raise BadReferenceError(self.ref) |
|
8553 |
|
8554 +class MissingVariantException(Exception): |
|
8555 + pass |
|
8556 |
|
8557 class Alias(Model, Config): |
|
8558 |
|
8559 @@ -946,8 +951,8 @@ |
|
8560 self.varRefs = [] |
|
8561 self.variants = [] |
|
8562 |
|
8563 - def DebugPrint(self, prefix = ""): |
|
8564 - self.owner.Debug("%s<alias name='%s' meaning='%s'/>", prefix, self.name, self.meaning) |
|
8565 + def __str__(self): |
|
8566 + return "<alias name='%s' meaning='%s'/>" % (self.name, self.meaning) |
|
8567 |
|
8568 def SetProperty(self, key, val): |
|
8569 if key == "name": |
|
8570 @@ -956,45 +961,53 @@ |
|
8571 self.meaning = val |
|
8572 |
|
8573 for u in val.split("."): |
|
8574 - self.varRefs.append( VariantRef(u) ) |
|
8575 + self.varRefs.append( VariantRef(ref = u) ) |
|
8576 else: |
|
8577 raise InvalidPropertyError() |
|
8578 |
|
8579 - def SetOwner(self, raptor): |
|
8580 - Model.SetOwner(self, raptor) |
|
8581 - for r in self.varRefs: |
|
8582 - r.SetOwner(raptor) |
|
8583 - |
|
8584 def Valid(self): |
|
8585 return self.name and self.meaning |
|
8586 |
|
8587 - def GenerateBuildUnits(self): |
|
8588 + def Resolve(self, cache): |
|
8589 if not self.variants: |
|
8590 + missing_variants = [] |
|
8591 for r in self.varRefs: |
|
8592 try: |
|
8593 - self.variants.append( r.Resolve() ) |
|
8594 + self.variants.append( r.Resolve(cache=cache) ) |
|
8595 except BadReferenceError: |
|
8596 - self.owner.Error("Missing variant '%s'", r.ref) |
|
8597 + missing_variants.append(r.ref) |
|
8598 + |
|
8599 + if len(missing_variants) > 0: |
|
8600 + raise MissingVariantException("Missing variants '%s'" % " ".join(missing_variants)) |
|
8601 + |
|
8602 + def GenerateBuildUnits(self, cache): |
|
8603 + self.Resolve(cache) |
|
8604 |
|
8605 name = self.name |
|
8606 |
|
8607 for v in self.modifiers: |
|
8608 name = name + "." + v.name |
|
8609 |
|
8610 - return [ BuildUnit(name, self.variants + self.modifiers) ] |
|
8611 + return [ BuildUnit(name=name, variants=self.variants + self.modifiers) ] |
|
8612 |
|
8613 + def isDerivedFrom(self, progenitor, cache): |
|
8614 + self.Resolve(cache) |
|
8615 + for v in self.variants: |
|
8616 + if v.isDerivedFrom(progenitor,cache): |
|
8617 + return True |
|
8618 + return False |
|
8619 |
|
8620 class AliasRef(Reference): |
|
8621 |
|
8622 def __init__(self, ref=None): |
|
8623 Reference.__init__(self, ref) |
|
8624 |
|
8625 - def DebugPrint(self, prefix = ""): |
|
8626 - self.owner.Debug("%s<aliasRef ref='%s'/>", prefix, self.ref) |
|
8627 + def __str__(self): |
|
8628 + return "<aliasRef ref='%s'/>" % self.ref |
|
8629 |
|
8630 - def Resolve(self): |
|
8631 + def Resolve(self, cache): |
|
8632 try: |
|
8633 - return self.owner.cache.FindNamedAlias(self.ref) |
|
8634 + return cache.FindNamedAlias(self.ref) |
|
8635 except KeyError: |
|
8636 raise BadReferenceError(self.ref) |
|
8637 |
|
8638 @@ -1018,41 +1031,39 @@ |
|
8639 else: |
|
8640 raise InvalidChildError() |
|
8641 |
|
8642 - def SetOwner(self, raptor): |
|
8643 - Model.SetOwner(self, raptor) |
|
8644 - for r in self.childRefs: |
|
8645 - r.SetOwner(raptor) |
|
8646 - |
|
8647 def Valid(self): |
|
8648 return self.name and self.childRefs |
|
8649 |
|
8650 - def DebugPrint(self, prefix = ""): |
|
8651 - |
|
8652 - self.owner.Debug("<group name='%s'>", prefix, self.name) |
|
8653 - |
|
8654 + def __str__(self): |
|
8655 + s = "<group name='%s'>" % self.name |
|
8656 for r in self.childRefs: |
|
8657 - r.DebugPrint(prefix + self.indent) |
|
8658 - |
|
8659 - self.owner.Debug("%s</group>", prefix) |
|
8660 - |
|
8661 - def GenerateBuildUnits(self): |
|
8662 + s += str(r) |
|
8663 + s += "</group>" |
|
8664 + return s |
|
8665 |
|
8666 + def GenerateBuildUnits(self, cache): |
|
8667 units = [] |
|
8668 |
|
8669 + missing_variants = [] |
|
8670 for r in self.childRefs: |
|
8671 - refMods = r.GetModifiers() |
|
8672 - |
|
8673 try: |
|
8674 - obj = r.Resolve() |
|
8675 + obj = r.Resolve(cache=cache) |
|
8676 except BadReferenceError: |
|
8677 - self.owner.Error("Missing variant '%s'", r.ref) |
|
8678 + missing_variants.append(r.ref) |
|
8679 else: |
|
8680 obj.ClearModifiers() |
|
8681 - |
|
8682 + try: |
|
8683 + refMods = r.GetModifiers(cache) |
|
8684 + except BadReferenceError,e: |
|
8685 + missing_variants.append(str(e)) |
|
8686 + else: |
|
8687 for m in refMods + self.modifiers: |
|
8688 obj.AddModifier(m) |
|
8689 |
|
8690 - units.extend( obj.GenerateBuildUnits() ) |
|
8691 + units.extend( obj.GenerateBuildUnits(cache) ) |
|
8692 + |
|
8693 + if len(missing_variants) > 0: |
|
8694 + raise MissingVariantException("Missing variants '%s'" % " ".join(missing_variants)) |
|
8695 |
|
8696 return units |
|
8697 |
|
8698 @@ -1062,19 +1073,102 @@ |
|
8699 def __init__(self, ref=None): |
|
8700 Reference.__init__(self, ref) |
|
8701 |
|
8702 - def DebugPrint(self, prefix = ""): |
|
8703 - mod = ".".join(self.modifiers) |
|
8704 - self.owner.Debug("%s<groupRef ref='%s' mod='%s'/>", prefix, self.ref, mod) |
|
8705 + def __str__(self): |
|
8706 + return "<groupRef ref='%s' mod='%s'/>" % (self.ref, ".".join(self.modifiers)) |
|
8707 |
|
8708 - def Resolve(self): |
|
8709 + def Resolve(self, cache): |
|
8710 try: |
|
8711 - return self.owner.cache.FindNamedGroup(self.ref) |
|
8712 + return cache.FindNamedGroup(self.ref) |
|
8713 except KeyError: |
|
8714 raise BadReferenceError(self.ref) |
|
8715 |
|
8716 +def GetBuildUnits(configNames, cache, logger): |
|
8717 + """expand a list of config strings like "arm.v5.urel" into a list |
|
8718 + of BuildUnit objects that can be queried for settings. |
|
8719 + |
|
8720 + The expansion tries to be tolerant of errors in the XML so that a |
|
8721 + typo in one part of a group does not invalidate the whole group. |
|
8722 + """ |
|
8723 + |
|
8724 + # turn dot-separated name strings into Model objects (Group, Alias, Variant) |
|
8725 + models = [] |
|
8726 + |
|
8727 + for c in set(configNames): |
|
8728 + ok = True |
|
8729 + names = c.split(".") |
|
8730 + |
|
8731 + base = names[0] |
|
8732 + mods = names[1:] |
|
8733 + |
|
8734 + if base in cache.groups: |
|
8735 + x = cache.FindNamedGroup(base) |
|
8736 + elif base in cache.aliases: |
|
8737 + x = cache.FindNamedAlias(base) |
|
8738 + elif base in cache.variants: |
|
8739 + x = cache.FindNamedVariant(base) |
|
8740 + else: |
|
8741 + logger.Error("Unknown build configuration '%s'" % base) |
|
8742 + continue |
|
8743 + |
|
8744 + x.ClearModifiers() |
|
8745 + |
|
8746 + for m in mods: |
|
8747 + if m in cache.variants: |
|
8748 + x.AddModifier( cache.FindNamedVariant(m) ) |
|
8749 + else: |
|
8750 + logger.Error("Unknown build variant '%s'" % m) |
|
8751 + ok = False |
|
8752 + |
|
8753 + if ok: |
|
8754 + models.append(copy.copy(x)) |
|
8755 + |
|
8756 + # turn Model objects into BuildUnit objects |
|
8757 + # |
|
8758 + # all objects have a GenerateBuildUnits method but don't use |
|
8759 + # that for Groups because it is not tolerant of errors (the |
|
8760 + # first error raises an exception and the rest of the group is |
|
8761 + # abandoned) |
|
8762 + units = [] |
|
8763 + |
|
8764 + while len(models) > 0: |
|
8765 + x = models.pop() |
|
8766 + try: |
|
8767 + if isinstance(x, (Alias, Variant)): |
|
8768 + # these we just turn straight into BuildUnits |
|
8769 + units.extend(x.GenerateBuildUnits(cache)) |
|
8770 + elif isinstance(x, Group): |
|
8771 + # deal with each part of the group separately (later) |
|
8772 + for child in x.childRefs: |
|
8773 + modChild = copy.copy(child) |
|
8774 + modChild.modifiers = child.modifiers + [m.name for m in x.modifiers] |
|
8775 + models.append(modChild) |
|
8776 + elif isinstance(x, Reference): |
|
8777 + # resolve references and their modifiers |
|
8778 + try: |
|
8779 + obj = x.Resolve(cache) |
|
8780 + modObj = copy.copy(obj) |
|
8781 + modObj.modifiers = x.GetModifiers(cache) |
|
8782 + except BadReferenceError,e: |
|
8783 + logger.Error("Unknown reference '%s'" % str(e)) |
|
8784 + else: |
|
8785 + models.append(modObj) |
|
8786 + except Exception, e: |
|
8787 + logger.Error(str(e)) |
|
8788 + |
|
8789 + return units |
|
8790 + |
|
8791 +class ToolErrorException(Exception): |
|
8792 + def __init__(self, s): |
|
8793 + Exception.__init__(self,s) |
|
8794 + |
|
8795 class Tool(object): |
|
8796 """Represents a tool that might be used by raptor e.g. a compiler""" |
|
8797 |
|
8798 + # It's difficult and expensive to give each tool a log reference but a class one |
|
8799 + # will facilitate debugging when that is needed without being a design flaw the |
|
8800 + # rest of the time. |
|
8801 + log = raptor_utilities.nulllog |
|
8802 + |
|
8803 # For use in dealing with tools that return non-ascii version strings. |
|
8804 nonascii = "" |
|
8805 identity_chartable = chr(0) |
|
8806 @@ -1084,7 +1178,7 @@ |
|
8807 nonascii += chr(c) |
|
8808 identity_chartable += " " |
|
8809 |
|
8810 - def __init__(self, name, command, versioncommand, versionresult, id="", log = raptor_utilities.nulllog): |
|
8811 + def __init__(self, name, command, versioncommand, versionresult, id=""): |
|
8812 self.name = name |
|
8813 self.command = command |
|
8814 self.versioncommand = versioncommand |
|
8815 @@ -1097,7 +1191,6 @@ |
|
8816 # version until someone proves that it's OK |
|
8817 self.valid = False |
|
8818 |
|
8819 - self.log=log |
|
8820 |
|
8821 def expand(self, toolset): |
|
8822 self.versioncommand = toolset.ExpandAll(self.versioncommand) |
|
8823 @@ -1117,7 +1210,7 @@ |
|
8824 # If it really is not a simple command then we won't be able to get a date and |
|
8825 # we won't be able to tell if it is altered or updated - too bad! |
|
8826 testfile = generic_path.Where(self.command) |
|
8827 - self.log.Debug("toolcheck: tool '%s' was found on the path at '%s' ", self.command, testfile) |
|
8828 + #self.log.Debug("toolcheck: tool '%s' was found on the path at '%s' ", self.command, testfile) |
|
8829 if testfile is None: |
|
8830 raise Exception("Can't be found in path") |
|
8831 |
|
8832 @@ -1127,18 +1220,20 @@ |
|
8833 testfile_stat = os.stat(testfile) |
|
8834 self.date = testfile_stat.st_mtime |
|
8835 except Exception,e: |
|
8836 - self.log.Debug("toolcheck: '%s=%s' cannot be dated - this is ok, but the toolcheck won't be able to tell when a new of the tool is installed. (%s)", self.name, self.command, str(e)) |
|
8837 + # We really don't mind if the tool could not be dated - for any reason |
|
8838 + Tool.log.Debug("toolcheck: '%s=%s' cannot be dated - this is ok, but the toolcheck won't be able to tell when a new version of the tool is installed. (%s)", self.name, self.command, str(e)) |
|
8839 + pass |
|
8840 |
|
8841 |
|
8842 - def check(self, shell, evaluator): |
|
8843 + def check(self, shell, evaluator, log = raptor_utilities.nulllog): |
|
8844 |
|
8845 self.vre = re.compile(self.versionresult) |
|
8846 |
|
8847 try: |
|
8848 self.log.Debug("Pre toolcheck: '%s' for version '%s'", self.name, self.versionresult) |
|
8849 p = subprocess.Popen(args=[shell, "-c", self.versioncommand], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) |
|
8850 + log.Debug("Checking tool '%s' for version '%s'", self.name, self.versionresult) |
|
8851 versionoutput,err = p.communicate() |
|
8852 - self.log.Debug("Checking tool '%s' for version '%s'", self.name, self.versionresult) |
|
8853 except Exception,e: |
|
8854 versionoutput=None |
|
8855 |
|
8856 @@ -1148,12 +1243,11 @@ |
|
8857 versionoutput_a = versionoutput.translate(Tool.identity_chartable,"") |
|
8858 |
|
8859 if versionoutput_a and self.vre.search(versionoutput_a) != None: |
|
8860 - self.log.Debug("tool '%s' returned an acceptable version '%s' at %s", self.name, versionoutput_a, str(self.date)) |
|
8861 + log.Debug("tool '%s' returned an acceptable version '%s'", self.name, versionoutput_a) |
|
8862 self.valid = True |
|
8863 else: |
|
8864 - self.log.Error("tool '%s' from config '%s' did not return version '%s' as required.\nCommand '%s' returned:\n%s\nCheck your environment and configuration.\n", self.name, self.id, self.versionresult, self.versioncommand, versionoutput_a) |
|
8865 self.valid = False |
|
8866 - return self.valid |
|
8867 + raise ToolErrorException("tool '%s' from config '%s' did not return version '%s' as required.\nCommand '%s' returned:\n%s\nCheck your environment and configuration.\n" % (self.name, self.id, self.versionresult, self.versioncommand, versionoutput_a)) |
|
8868 |
|
8869 def envhash(irrelevant_vars): |
|
8870 """Determine something unique about this environment to identify it. |
|
8871 @@ -1175,6 +1269,9 @@ |
|
8872 write() is used to flush the cache to disc. |
|
8873 """ |
|
8874 # The raptor shell - this is not mutable. |
|
8875 + if 'SBS_SHELL' in os.environ: |
|
8876 + shell = os.environ['SBS_SHELL'] |
|
8877 + else: |
|
8878 hostbinaries = os.path.join(os.environ['SBS_HOME'], |
|
8879 os.environ['HOSTPLATFORM_DIR']) |
|
8880 |
|
8881 @@ -1256,7 +1353,6 @@ |
|
8882 log.Info("Ignoring garbled toolcheck cache: %s (%s)\n", self.cachefilename, str(e)) |
|
8883 self.__toolcheckcache = {} |
|
8884 |
|
8885 - |
|
8886 else: |
|
8887 log.Info("Toolcheck cache %s ignored - environment changed\n", self.cachefilename) |
|
8888 else: |
|
8889 @@ -1316,8 +1412,11 @@ |
|
8890 |
|
8891 self.log.Debug("toolcheck done: %s -key: %s" % (tool.name, tool.key)) |
|
8892 |
|
8893 - if not tool.check(ToolSet.shell, evaluator): |
|
8894 + try: |
|
8895 + tool.check(ToolSet.shell, evaluator, log = self.log) |
|
8896 + except ToolErrorException, e: |
|
8897 self.valid = False |
|
8898 + self.log.Error("%s\n" % str(e)) |
|
8899 |
|
8900 # Tool failures are cached just like successes - don't want to repeat them |
|
8901 cache[tool.key] = { "name" : tool.name, "valid" : tool.valid, "age" : 0 , "date" : tool.date } |
|
8902 @@ -1356,6 +1455,11 @@ |
|
8903 self.log.Info("Could not write toolcheck cache: %s", str(e)) |
|
8904 return self.valid |
|
8905 |
|
8906 +class UninitialisedVariableException(Exception): |
|
8907 + pass |
|
8908 + |
|
8909 +class RecursionException(Exception): |
|
8910 + pass |
|
8911 |
|
8912 class Evaluator(object): |
|
8913 """Determine the values of variables under different Configurations. |
|
8914 @@ -1364,11 +1468,11 @@ |
|
8915 |
|
8916 refRegex = re.compile("\$\((.+?)\)") |
|
8917 |
|
8918 - def __init__(self, Raptor, specification, buildUnit, gathertools = False): |
|
8919 - self.raptor = Raptor |
|
8920 + def __init__(self, specification, buildUnit, cache, gathertools = False): |
|
8921 self.dict = {} |
|
8922 self.tools = [] |
|
8923 self.gathertools = gathertools |
|
8924 + self.cache = cache |
|
8925 |
|
8926 specName = "none" |
|
8927 configName = "none" |
|
8928 @@ -1377,14 +1481,18 @@ |
|
8929 opsLists = [] |
|
8930 |
|
8931 if buildUnit: |
|
8932 - opsLists.extend( buildUnit.GetOperations() ) |
|
8933 + ol = buildUnit.GetOperations(cache) |
|
8934 + self.buildUnit = buildUnit |
|
8935 + |
|
8936 + opsLists.extend( ol ) |
|
8937 |
|
8938 if specification: |
|
8939 - for v in specification.GetAllVariantsRecursively(): |
|
8940 - opsLists.extend( v.GetAllOperationsRecursively() ) |
|
8941 + for v in specification.GetAllVariantsRecursively(cache): |
|
8942 + opsLists.extend( v.GetAllOperationsRecursively(cache) ) |
|
8943 |
|
8944 tools = {} |
|
8945 |
|
8946 + unfound_values = [] |
|
8947 for opsList in opsLists: |
|
8948 for op in opsList: |
|
8949 # applying an Operation to a non-existent variable |
|
8950 @@ -1394,13 +1502,20 @@ |
|
8951 except KeyError: |
|
8952 oldValue = "" |
|
8953 |
|
8954 + try: |
|
8955 newValue = op.Apply(oldValue) |
|
8956 + except BadToolValue, e: |
|
8957 + unfound_values.append(str(e)) |
|
8958 + newValue = "NO_VALUE_FOR_" + op.name |
|
8959 + |
|
8960 self.dict[op.name] = newValue |
|
8961 |
|
8962 if self.gathertools: |
|
8963 if op.type == "tool" and op.versionCommand and op.versionResult: |
|
8964 - tools[op.name] = Tool(op.name, newValue, op.versionCommand, op.versionResult, configName, log = self.raptor) |
|
8965 + tools[op.name] = Tool(op.name, newValue, op.versionCommand, op.versionResult, configName) |
|
8966 |
|
8967 + if len(unfound_values) > 0: |
|
8968 + raise UninitialisedVariableException("\n".join(unfound_values)) |
|
8969 |
|
8970 if self.gathertools: |
|
8971 self.tools = tools.values() |
|
8972 @@ -1417,8 +1532,7 @@ |
|
8973 unresolved = False |
|
8974 for k, v in self.dict.items(): |
|
8975 if v.find('$(' + k + ')') != -1: |
|
8976 - self.raptor.Error("Recursion Detected in variable '%s' in configuration '%s' ",k,configName) |
|
8977 - expanded = "RECURSIVE_INVALID_STRING" |
|
8978 + raise RecursionException("Recursion Detected in variable '%s' in configuration '%s' " % (k,configName)) |
|
8979 else: |
|
8980 expanded = self.ExpandAll(v, specName, configName) |
|
8981 |
|
8982 @@ -1466,20 +1580,24 @@ |
|
8983 |
|
8984 refs = Evaluator.refRegex.findall(value) |
|
8985 |
|
8986 + # store up all the unset variables before raising an exception |
|
8987 + # to allow us to find them all |
|
8988 + unset_variables = [] |
|
8989 + |
|
8990 for r in set(refs): |
|
8991 expansion = None |
|
8992 |
|
8993 - if r in self.raptor.override: |
|
8994 - expansion = self.raptor.override[r] |
|
8995 - elif r in self.dict: |
|
8996 + if r in self.dict: |
|
8997 expansion = self.dict[r] |
|
8998 else: |
|
8999 # no expansion for $(r) |
|
9000 - self.raptor.Error("Unset variable '%s' used in spec '%s' with config '%s'", |
|
9001 - r, spec, config) |
|
9002 + unset_variables.append("Unset variable '%s' used in spec '%s' with config '%s'" % (r, spec, config)) |
|
9003 if expansion != None: |
|
9004 value = value.replace("$(" + r + ")", expansion) |
|
9005 |
|
9006 + if len(unset_variables) > 0: # raise them all |
|
9007 + raise UninitialisedVariableException(". ".join(unset_variables)) |
|
9008 + |
|
9009 return value |
|
9010 |
|
9011 |
|
9012 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_makefile.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_makefile.py |
|
9013 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_makefile.py 2010-05-18 19:32:34.793348934 +0100 |
|
9014 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_makefile.py 2010-05-17 18:47:53.096843000 +0100 |
|
9015 @@ -134,6 +134,15 @@ |
|
9016 |
|
9017 return True |
|
9018 |
|
9019 + def addInclude(self, makefilename): |
|
9020 + """ |
|
9021 + """ |
|
9022 + # create the directory if it does not exist |
|
9023 + |
|
9024 + self.open() |
|
9025 + # now we can write the values into the makefile |
|
9026 + self.file.write("include %s\n" % (makefilename+"."+self.selector.name)) |
|
9027 + |
|
9028 def close(self): |
|
9029 if self.file is not None: |
|
9030 if self.epilogue != None: |
|
9031 @@ -191,6 +200,11 @@ |
|
9032 for f in self.makefiles: |
|
9033 f.addCall(specname, configname, ifname, useAllInterfaces, flmpath, parameters, guard) |
|
9034 |
|
9035 + def addInclude(self, makefilename): |
|
9036 + """include a makefile from each of the makefiles in the set - has the selector name appended to it.""" |
|
9037 + for f in self.makefiles: |
|
9038 + f.addInclude(makefilename) |
|
9039 + |
|
9040 def makefileNames(self): |
|
9041 for mf in self.makefiles: |
|
9042 yield str(mf.filename) |
|
9043 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_make.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_make.py |
|
9044 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_make.py 2010-05-18 19:32:34.793348934 +0100 |
|
9045 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_make.py 2010-05-17 18:47:53.096843000 +0100 |
|
9046 @@ -1,5 +1,5 @@ |
|
9047 # |
|
9048 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
9049 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
9050 # All rights reserved. |
|
9051 # This component and the accompanying materials are made available |
|
9052 # under the terms of the License "Eclipse Public License v1.0" |
|
9053 @@ -20,27 +20,120 @@ |
|
9054 import os |
|
9055 import random |
|
9056 import raptor |
|
9057 -import raptor_data |
|
9058 +import raptor_timing |
|
9059 import raptor_utilities |
|
9060 import raptor_version |
|
9061 +import raptor_data |
|
9062 import re |
|
9063 import subprocess |
|
9064 import time |
|
9065 from raptor_makefile import * |
|
9066 +import traceback |
|
9067 +import sys |
|
9068 +from xml.sax.saxutils import escape |
|
9069 +from xml.sax.saxutils import unescape |
|
9070 + |
|
9071 + |
|
9072 +class BadMakeEngineException(Exception): |
|
9073 + pass |
|
9074 + |
|
9075 +def string_following(prefix, str): |
|
9076 + """If str starts with prefix then return the rest of str, otherwise None""" |
|
9077 + if str.startswith(prefix): |
|
9078 + return str[len(prefix):] |
|
9079 + else: |
|
9080 + return None |
|
9081 + |
|
9082 +def XMLEscapeLog(stream): |
|
9083 + """ A generator that reads a raptor log from a stream and performs an XML escape |
|
9084 + on all text between tags, which is usually make output that could contain |
|
9085 + illegal characters that upset XML-based log parsers. |
|
9086 + This function yields "xml-safe" output line by line. |
|
9087 + """ |
|
9088 + inRecipe = False |
|
9089 + |
|
9090 + for line in stream: |
|
9091 + if line.startswith("<recipe"): |
|
9092 + inRecipe = True |
|
9093 + elif line.startswith("</recipe"): |
|
9094 + inRecipe = False |
|
9095 + |
|
9096 + # unless we are inside a "recipe", any line not starting |
|
9097 + # with "<" is free text that must be escaped. |
|
9098 + if inRecipe or line.startswith("<"): |
|
9099 + yield line |
|
9100 + else: |
|
9101 + yield escape(line) |
|
9102 + |
|
9103 +def AnnoFileParseOutput(annofile): |
|
9104 + """ A generator that extracts log output from an emake annotation file, |
|
9105 + perform an XML-unescape on it and "yields" it line by line. """ |
|
9106 + af = open(annofile, "r") |
|
9107 + |
|
9108 + inOutput = False |
|
9109 + |
|
9110 + buildid = "" |
|
9111 + for line in af: |
|
9112 + line = line.rstrip("\n\r") |
|
9113 + |
|
9114 + |
|
9115 + if not inOutput: |
|
9116 + o = string_following("<output>", line) |
|
9117 + if not o: |
|
9118 + o = string_following('<output src="prog">', line) |
|
9119 + |
|
9120 + if o: |
|
9121 + inOutput = True |
|
9122 + yield unescape(o)+'\n' |
|
9123 + continue |
|
9124 + |
|
9125 + |
|
9126 + o = string_following('<build id="',line) |
|
9127 + if o: |
|
9128 + buildid = o[:o.find('"')] |
|
9129 + yield "Starting build: "+buildid+"\n" |
|
9130 + continue |
|
9131 + |
|
9132 + o = string_following('<metric name="duration">', line) |
|
9133 + if o: |
|
9134 + secs = int(o[:o.find('<')]) |
|
9135 + if secs != 0: |
|
9136 + duration = "%d:%d" % (secs/60, secs % 60) |
|
9137 + else: |
|
9138 + duration = "0:0" |
|
9139 + continue |
|
9140 + |
|
9141 + |
|
9142 + o = string_following('<metric name="clusterAvailability">', line) |
|
9143 + if o: |
|
9144 + availability = o[:o.find('<')] |
|
9145 + continue |
|
9146 + |
|
9147 + else: |
|
9148 + end_output = line.find("</output>") |
|
9149 + |
|
9150 + if end_output != -1: |
|
9151 + line = line[:end_output] |
|
9152 + inOutput = False |
|
9153 + |
|
9154 + if line != "": |
|
9155 + yield unescape(line)+'\n' |
|
9156 + |
|
9157 + yield "Finished build: %s Duration: %s (m:s) Cluster availability: %s%%\n" %(buildid,duration,availability) |
|
9158 + af.close() |
|
9159 + |
|
9160 + |
|
9161 |
|
9162 # raptor_make module classes |
|
9163 |
|
9164 class MakeEngine(object): |
|
9165 |
|
9166 - def __init__(self, Raptor): |
|
9167 + def __init__(self, Raptor, engine="make_engine"): |
|
9168 self.raptor = Raptor |
|
9169 self.valid = True |
|
9170 - self.makefileset = None |
|
9171 self.descrambler = None |
|
9172 self.descrambler_started = False |
|
9173 |
|
9174 - engine = Raptor.makeEngine |
|
9175 - |
|
9176 # look for an alias first as this gives end-users a chance to modify |
|
9177 # the shipped variant rather than completely replacing it. |
|
9178 if engine in Raptor.cache.aliases: |
|
9179 @@ -48,12 +141,14 @@ |
|
9180 elif engine in Raptor.cache.variants: |
|
9181 avar = Raptor.cache.FindNamedVariant(engine) |
|
9182 else: |
|
9183 - Raptor.Error("No settings found for build engine '%s'", engine) |
|
9184 - return |
|
9185 + raise BadMakeEngineException("'%s' does not appear to be a make engine - no settings found for it" % engine) |
|
9186 + |
|
9187 + if not avar.isDerivedFrom("make_engine", Raptor.cache): |
|
9188 + raise BadMakeEngineException("'%s' is not a build engine (it's a variant but it does not extend 'make_engine')" % engine) |
|
9189 |
|
9190 # find the variant and extract the values |
|
9191 try: |
|
9192 - units = avar.GenerateBuildUnits() |
|
9193 + units = avar.GenerateBuildUnits(Raptor.cache) |
|
9194 evaluator = Raptor.GetEvaluator( None, units[0] , gathertools=True) |
|
9195 |
|
9196 # shell |
|
9197 @@ -75,6 +170,25 @@ |
|
9198 self.jobsOption = evaluator.Get("jobs") |
|
9199 self.defaultMakeOptions = evaluator.Get("defaultoptions") |
|
9200 |
|
9201 + # Logging |
|
9202 + # copylogfromannofile means, for emake, that we should ignore |
|
9203 + # emake's console output and instead extract output from its annotation |
|
9204 + # file. This is a workaround for a problem where some emake |
|
9205 + # console output is lost. The annotation file has a copy of this |
|
9206 + # output in the "parse" job and it turns out to be uncorrupted. |
|
9207 + self.copyLogFromAnnoFile = (evaluator.Get("copylogfromannofile") == "true") |
|
9208 + self.annoFileName = None |
|
9209 + |
|
9210 + if self.copyLogFromAnnoFile: |
|
9211 + for o in self.raptor.makeOptions: |
|
9212 + self.annoFileName = string_following("--emake-annofile=", o) |
|
9213 + if self.annoFileName: |
|
9214 + self.raptor.Info("annofile: " + o) |
|
9215 + |
|
9216 + if not self.annoFileName: |
|
9217 + self.raptor.Info("Cannot copy log from annotation file as no annotation filename was specified via the option --mo=--emake-annofile=<filename>") |
|
9218 + self.copyLogFromAnnoFile = False |
|
9219 + |
|
9220 # buffering |
|
9221 self.scrambled = (evaluator.Get("scrambled") == "true") |
|
9222 |
|
9223 @@ -101,14 +215,13 @@ |
|
9224 self.selectors = [] |
|
9225 |
|
9226 except KeyError: |
|
9227 - Raptor.Error("Bad '%s' configuration found.", engine) |
|
9228 self.valid = False |
|
9229 - return |
|
9230 + raise BadMakeEngineException("Bad '%s' configuration found." % engine) |
|
9231 |
|
9232 # there must at least be a build command... |
|
9233 if not self.buildCommand: |
|
9234 - Raptor.Error("No build command for '%s'", engine) |
|
9235 self.valid = False |
|
9236 + raise BadMakeEngineException("No build command for '%s'"% engine) |
|
9237 |
|
9238 |
|
9239 if self.usetalon: |
|
9240 @@ -123,7 +236,7 @@ |
|
9241 component='$$COMPONENT_NAME'\ |
|
9242 bldinf='$$COMPONENT_META' mmp='$$PROJECT_META'\ |
|
9243 config='$$SBS_CONFIGURATION' platform='$$PLATFORM'\ |
|
9244 - phase='$$MAKEFILE_GROUP' source='$$SOURCE |
|
9245 + phase='$$MAKEFILE_GROUP' source='$$SOURCE' |
|
9246 export TALON_RECIPEATTRIBUTES TALON_SHELL TALON_TIMEOUT |
|
9247 USE_TALON:=%s |
|
9248 |
|
9249 @@ -135,7 +248,21 @@ |
|
9250 """ |
|
9251 |
|
9252 |
|
9253 + timing_start = "$(info " + \ |
|
9254 + raptor_timing.Timing.custom_string(tag = "start", |
|
9255 + object_type = "makefile", task = "parse", |
|
9256 + key = "$(THIS_FILENAME)", |
|
9257 + time="$(shell date +%s.%N)").rstrip("\n") + ")" |
|
9258 + |
|
9259 + timing_end = "$(info " + \ |
|
9260 + raptor_timing.Timing.custom_string(tag = "end", |
|
9261 + object_type = "makefile", task = "parse", |
|
9262 + key = "$(THIS_FILENAME)", |
|
9263 + time="$(shell date +%s.%N)").rstrip("\n") + ")" |
|
9264 + |
|
9265 + |
|
9266 self.makefile_prologue = """ |
|
9267 + |
|
9268 # generated by %s %s |
|
9269 |
|
9270 HOSTPLATFORM:=%s |
|
9271 @@ -143,12 +270,13 @@ |
|
9272 OSTYPE:=%s |
|
9273 FLMHOME:=%s |
|
9274 SHELL:=%s |
|
9275 +THIS_FILENAME:=$(firstword $(MAKEFILE_LIST)) |
|
9276 |
|
9277 %s |
|
9278 |
|
9279 include %s |
|
9280 |
|
9281 -""" % ( raptor.name, raptor_version.Version(), |
|
9282 +""" % ( raptor.name, raptor_version.fullversion(), |
|
9283 " ".join(raptor.hostplatform), |
|
9284 raptor.hostplatform_dir, |
|
9285 self.raptor.filesystem, |
|
9286 @@ -157,8 +285,32 @@ |
|
9287 talon_settings, |
|
9288 self.raptor.systemFLM.Append('globals.mk') ) |
|
9289 |
|
9290 + # Unless dependency processing has been eschewed via the CLI, use a .DEFAULT target to |
|
9291 + # trap missing dependencies (ignoring user config files that we know are usually absent) |
|
9292 + if not (self.raptor.noDependGenerate or self.raptor.noDependInclude): |
|
9293 + self.makefile_prologue += """ |
|
9294 + |
|
9295 +$(FLMHOME)/user/final.mk: |
|
9296 +$(FLMHOME)/user/default.flm: |
|
9297 +$(FLMHOME)/user/globals.mk: |
|
9298 + |
|
9299 +.DEFAULT:: |
|
9300 + @echo "<warning>Missing dependency detected: $@</warning>" |
|
9301 |
|
9302 - self.makefile_epilogue = """ |
|
9303 +""" |
|
9304 + |
|
9305 + # Only output timings if requested on CLI |
|
9306 + if self.raptor.timing: |
|
9307 + self.makefile_prologue += "\n# Print Start-time of Makefile parsing\n" \ |
|
9308 + + timing_start + "\n\n" |
|
9309 + |
|
9310 + |
|
9311 + self.makefile_epilogue = "\n\n# Print End-time of Makefile parsing\n" \ |
|
9312 + + timing_end + "\n" |
|
9313 + else: |
|
9314 + self.makefile_epilogue = "" |
|
9315 + |
|
9316 + self.makefile_epilogue += """ |
|
9317 |
|
9318 include %s |
|
9319 |
|
9320 @@ -168,14 +320,17 @@ |
|
9321 """Generate a set of makefiles, or one big Makefile.""" |
|
9322 |
|
9323 if not self.valid: |
|
9324 - return |
|
9325 + return None |
|
9326 + |
|
9327 + self.raptor.Debug("Writing Makefile '%s'" % (str(toplevel))) |
|
9328 |
|
9329 self.toplevel = toplevel |
|
9330 |
|
9331 # create the top-level makefiles |
|
9332 + makefileset = None |
|
9333 |
|
9334 try: |
|
9335 - self.makefileset = MakefileSet(directory = str(toplevel.Dir()), |
|
9336 + makefileset = MakefileSet(directory = str(toplevel.Dir()), |
|
9337 selectors = self.selectors, |
|
9338 filenamebase = str(toplevel.File()), |
|
9339 prologue = self.makefile_prologue, |
|
9340 @@ -190,11 +345,10 @@ |
|
9341 self.many = not self.raptor.writeSingleMakefile |
|
9342 |
|
9343 # add a makefile for each spec under each config |
|
9344 - config_makefileset = self.makefileset |
|
9345 - |
|
9346 + config_makefileset = makefileset |
|
9347 for c in configs: |
|
9348 if self.many: |
|
9349 - config_makefileset = self.makefileset.createChild(c.name) |
|
9350 + config_makefileset = makefileset.createChild(c.name) |
|
9351 |
|
9352 # make sure the config_wide spec item is put out first so that it |
|
9353 # can affect everything. |
|
9354 @@ -207,16 +361,22 @@ |
|
9355 ordered_specs.append(s) |
|
9356 |
|
9357 if config_wide_spec is not None: |
|
9358 - config_wide_spec.Configure(c) |
|
9359 + config_wide_spec.Configure(c, cache = self.raptor.cache) |
|
9360 self.WriteConfiguredSpec(config_makefileset, config_wide_spec, c, True) |
|
9361 |
|
9362 for s in ordered_specs: |
|
9363 - s.Configure(c) |
|
9364 + s.Configure(c, cache = self.raptor.cache) |
|
9365 self.WriteConfiguredSpec(config_makefileset, s, c, False) |
|
9366 |
|
9367 - self.makefileset.close() |
|
9368 + makefileset.close() |
|
9369 except Exception,e: |
|
9370 - self.raptor.Error("Failed to write makefile '%s': %s" % (str(toplevel),str(e))) |
|
9371 + tb = traceback.format_exc() |
|
9372 + if not self.raptor.debugOutput: |
|
9373 + tb="" |
|
9374 + self.raptor.Error("Failed to write makefile '%s': %s : %s" % (str(toplevel),str(e),tb)) |
|
9375 + makefileset = None |
|
9376 + |
|
9377 + return makefileset |
|
9378 |
|
9379 |
|
9380 def WriteConfiguredSpec(self, parentMakefileSet, spec, config, useAllInterfaces): |
|
9381 @@ -233,9 +393,10 @@ |
|
9382 guard = None |
|
9383 if hasInterface: |
|
9384 # find the Interface (it may be a ref) |
|
9385 - iface = spec.GetInterface() |
|
9386 + try: |
|
9387 + iface = spec.GetInterface(self.raptor.cache) |
|
9388 |
|
9389 - if iface == None: |
|
9390 + except raptor_data.MissingInterfaceError, e: |
|
9391 self.raptor.Error("No interface for '%s'", spec.name) |
|
9392 return |
|
9393 |
|
9394 @@ -268,12 +429,12 @@ |
|
9395 md5hash.update(value) |
|
9396 |
|
9397 # parameters required by the interface |
|
9398 - for p in iface.GetParams(): |
|
9399 + for p in iface.GetParams(self.raptor.cache): |
|
9400 val = evaluator.Resolve(p.name) |
|
9401 addparam(p.name,val,p.default) |
|
9402 |
|
9403 # Use Patterns to fetch a group of parameters |
|
9404 - for g in iface.GetParamGroups(): |
|
9405 + for g in iface.GetParamGroups(self.raptor.cache): |
|
9406 for k,v in evaluator.ResolveMatching(g.patternre): |
|
9407 addparam(k,v,g.default) |
|
9408 |
|
9409 @@ -301,7 +462,7 @@ |
|
9410 |
|
9411 # generate the call to the FLM |
|
9412 if iface is not None: |
|
9413 - makefileset.addCall(spec.name, config.name, iface.name, useAllInterfaces, iface.GetFLMIncludePath(), parameters, guard) |
|
9414 + makefileset.addCall(spec.name, config.name, iface.name, useAllInterfaces, iface.GetFLMIncludePath(self.raptor.cache), parameters, guard) |
|
9415 |
|
9416 # recursive includes |
|
9417 |
|
9418 @@ -341,7 +502,7 @@ |
|
9419 return False |
|
9420 |
|
9421 # Save file names to a list, to allow the order to be reversed |
|
9422 - fileName_list = list(self.makefileset.makefileNames()) |
|
9423 + fileName_list = list(makefileset.makefileNames()) |
|
9424 |
|
9425 # Iterate through args passed to raptor, searching for CLEAN or REALLYCLEAN |
|
9426 clean_flag = False |
|
9427 @@ -354,6 +515,9 @@ |
|
9428 if clean_flag: |
|
9429 fileName_list.reverse() |
|
9430 |
|
9431 + # Report number of makefiles to be built |
|
9432 + self.raptor.InfoDiscovery(object_type = "makefile", count = len(fileName_list)) |
|
9433 + |
|
9434 # Process each file in turn |
|
9435 for makefile in fileName_list: |
|
9436 if not os.path.exists(makefile): |
|
9437 @@ -364,7 +528,7 @@ |
|
9438 command = self.buildCommand |
|
9439 |
|
9440 if self.makefileOption: |
|
9441 - command += " " + self.makefileOption + " " + '"' + str(makefile) + '"' |
|
9442 + command += " " + self.makefileOption + " " + ' "' + str(makefile) + '" ' |
|
9443 |
|
9444 if self.raptor.keepGoing and self.keepGoingOption: |
|
9445 command += " " + self.keepGoingOption |
|
9446 @@ -377,12 +541,20 @@ |
|
9447 command += " " + self.defaultMakeOptions |
|
9448 # Can supply options on the commandline to override default settings. |
|
9449 if len(self.raptor.makeOptions) > 0: |
|
9450 - command += " " + " ".join(self.raptor.makeOptions) |
|
9451 + for o in self.raptor.makeOptions: |
|
9452 + if o.find(";") != -1 or o.find("\\") != -1: |
|
9453 + command += " " + "'" + o + "'" |
|
9454 + else: |
|
9455 + command += " " + o |
|
9456 |
|
9457 # Switch off dependency file including? |
|
9458 - if self.raptor.noDependInclude: |
|
9459 + if self.raptor.noDependInclude or self.raptor.noDependGenerate: |
|
9460 command += " NO_DEPEND_INCLUDE=1" |
|
9461 |
|
9462 + # Switch off dependency file generation (and, implicitly, inclusion)? |
|
9463 + if self.raptor.noDependGenerate: |
|
9464 + command += " NO_DEPEND_GENERATE=1" |
|
9465 + |
|
9466 if self.usetalon: |
|
9467 # use the descrambler if we set it up |
|
9468 command += ' TALON_DESCRAMBLE=' |
|
9469 @@ -401,7 +573,7 @@ |
|
9470 |
|
9471 # targets go at the end, if the makefile supports them |
|
9472 addTargets = self.raptor.targets[:] |
|
9473 - ignoreTargets = self.makefileset.ignoreTargets(makefile) |
|
9474 + ignoreTargets = makefileset.ignoreTargets(makefile) |
|
9475 if addTargets and ignoreTargets: |
|
9476 for target in self.raptor.targets: |
|
9477 if re.match(ignoreTargets, target): |
|
9478 @@ -410,6 +582,23 @@ |
|
9479 if addTargets: |
|
9480 command += " " + " ".join(addTargets) |
|
9481 |
|
9482 + # Send stderr to a file so that it can't mess up the log (e.g. |
|
9483 + # clock skew messages from some build engines scatter their |
|
9484 + # output across our xml. |
|
9485 + stderrfilename = makefile+'.stderr' |
|
9486 + stdoutfilename = makefile+'.stdout' |
|
9487 + command += " 2>'%s' " % stderrfilename |
|
9488 + |
|
9489 + # Keep a copy of the stdout too in the case of using the |
|
9490 + # annofile - so that we can trap the problem that |
|
9491 + # makes the copy-log-from-annofile workaround necessary |
|
9492 + # and perhaps determine when we can remove it. |
|
9493 + if self.copyLogFromAnnoFile: |
|
9494 + command += " >'%s' " % stdoutfilename |
|
9495 + |
|
9496 + # Substitute the makefile name for any occurrence of #MAKEFILE# |
|
9497 + command = command.replace("#MAKEFILE#", str(makefile)) |
|
9498 + |
|
9499 self.raptor.Info("Executing '%s'", command) |
|
9500 |
|
9501 # execute the build. |
|
9502 @@ -417,6 +606,10 @@ |
|
9503 # bufsize=1 means "line buffered" |
|
9504 # |
|
9505 try: |
|
9506 + # Time the build |
|
9507 + self.raptor.InfoStartTime(object_type = "makefile", |
|
9508 + task = "build", key = str(makefile)) |
|
9509 + |
|
9510 makeenv=os.environ.copy() |
|
9511 if self.usetalon: |
|
9512 makeenv['TALON_RECIPEATTRIBUTES']="none" |
|
9513 @@ -423,28 +616,55 @@ |
|
9514 makeenv['TALON_SHELL']=self.talonshell |
|
9515 makeenv['TALON_BUILDID']=str(self.buildID) |
|
9516 makeenv['TALON_TIMEOUT']=str(self.talontimeout) |
|
9517 + |
|
9518 if self.raptor.filesystem == "unix": |
|
9519 - p = subprocess.Popen(command, bufsize=65535, |
|
9520 + p = subprocess.Popen([command], bufsize=65535, |
|
9521 stdout=subprocess.PIPE, |
|
9522 stderr=subprocess.STDOUT, |
|
9523 close_fds=True, env=makeenv, shell=True) |
|
9524 else: |
|
9525 - p = subprocess.Popen(command, bufsize=65535, |
|
9526 + p = subprocess.Popen(args = |
|
9527 + [raptor_data.ToolSet.shell, '-c', command], |
|
9528 + bufsize=65535, |
|
9529 stdout=subprocess.PIPE, |
|
9530 stderr=subprocess.STDOUT, |
|
9531 + shell = False, |
|
9532 universal_newlines=True, env=makeenv) |
|
9533 stream = p.stdout |
|
9534 |
|
9535 + inRecipe = False |
|
9536 |
|
9537 - line = " " |
|
9538 - while line: |
|
9539 - line = stream.readline() |
|
9540 - self.raptor.out.write(line) |
|
9541 + if not self.copyLogFromAnnoFile: |
|
9542 + for l in XMLEscapeLog(stream): |
|
9543 + self.raptor.out.write(l) |
|
9544 |
|
9545 - # should be done now |
|
9546 returncode = p.wait() |
|
9547 + else: |
|
9548 + returncode = p.wait() |
|
9549 + |
|
9550 + annofilename = self.annoFileName.replace("#MAKEFILE#", makefile) |
|
9551 + self.raptor.Info("copylogfromannofile: Copying log from annotation file %s to work around a potential problem with the console output", annofilename) |
|
9552 + try: |
|
9553 + for l in XMLEscapeLog(AnnoFileParseOutput(annofilename)): |
|
9554 + self.raptor.out.write(l) |
|
9555 + except Exception,e: |
|
9556 + self.raptor.Error("Couldn't complete stdout output from annofile %s for %s - '%s'", annofilename, command, str(e)) |
|
9557 |
|
9558 |
|
9559 + # Take all the stderr output that went into the .stderr file |
|
9560 + # and put it back into the log, but safely so it can't mess up |
|
9561 + # xml parsers. |
|
9562 + try: |
|
9563 + e = open(stderrfilename,"r") |
|
9564 + for line in e: |
|
9565 + self.raptor.out.write(escape(line)) |
|
9566 + e.close() |
|
9567 + except Exception,e: |
|
9568 + self.raptor.Error("Couldn't complete stderr output for %s - '%s'", command, str(e)) |
|
9569 + # Report end-time of the build |
|
9570 + self.raptor.InfoEndTime(object_type = "makefile", |
|
9571 + task = "build", key = str(makefile)) |
|
9572 + |
|
9573 if returncode != 0 and not self.raptor.keepGoing: |
|
9574 self.Tidy() |
|
9575 return False |
|
9576 @@ -452,6 +672,9 @@ |
|
9577 except Exception,e: |
|
9578 self.raptor.Error("Exception '%s' during '%s'", str(e), command) |
|
9579 self.Tidy() |
|
9580 + # Still report end-time of the build |
|
9581 + self.raptor.InfoEndTime(object_type = "Building", task = "Makefile", |
|
9582 + key = str(makefile)) |
|
9583 return False |
|
9584 |
|
9585 # run any shutdown script |
|
9586 @@ -496,7 +719,7 @@ |
|
9587 looking = (os.system(command) != 0) |
|
9588 tries += 1 |
|
9589 if looking: |
|
9590 - self.raptor.Error("Failed to initilaise the talon shell for this build") |
|
9591 + self.raptor.Error("Failed to initialise the talon shell for this build") |
|
9592 self.talonctl = "" |
|
9593 return False |
|
9594 |
|
9595 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_meta.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_meta.py |
|
9596 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_meta.py 2010-05-18 19:32:34.793348934 +0100 |
|
9597 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_meta.py 2010-05-17 18:47:53.100842000 +0100 |
|
9598 @@ -1,5 +1,5 @@ |
|
9599 # |
|
9600 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
9601 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
9602 # All rights reserved. |
|
9603 # This component and the accompanying materials are made available |
|
9604 # under the terms of the License "Eclipse Public License v1.0" |
|
9605 @@ -31,6 +31,7 @@ |
|
9606 import generic_path |
|
9607 import subprocess |
|
9608 import zipfile |
|
9609 +from xml.sax.saxutils import escape |
|
9610 from mmpparser import * |
|
9611 |
|
9612 import time |
|
9613 @@ -232,6 +233,19 @@ |
|
9614 return commentDetail |
|
9615 |
|
9616 |
|
9617 +def getSpecName(aFileRoot, fullPath=False): |
|
9618 + """Returns a build spec name: this is the file root (full path |
|
9619 + or simple file name) made safe for use as a file name.""" |
|
9620 + |
|
9621 + if fullPath: |
|
9622 + specName = str(aFileRoot).replace("/","_") |
|
9623 + specName = specName.replace(":","") |
|
9624 + else: |
|
9625 + specName = aFileRoot.File() |
|
9626 + |
|
9627 + return specName.lower() |
|
9628 + |
|
9629 + |
|
9630 # Classes |
|
9631 |
|
9632 class MetaDataError(Exception): |
|
9633 @@ -284,9 +298,8 @@ |
|
9634 def call(self, aArgs, sourcefilename): |
|
9635 """ Override call so that we can do our own error handling.""" |
|
9636 tool = self._ExternalTool__Tool |
|
9637 - try: |
|
9638 commandline = tool + " " + aArgs + " " + str(sourcefilename) |
|
9639 - |
|
9640 + try: |
|
9641 # the actual call differs between Windows and Unix |
|
9642 if raptor_utilities.getOSFileSystem() == "unix": |
|
9643 p = subprocess.Popen(commandline, \ |
|
9644 @@ -332,7 +345,7 @@ |
|
9645 raise MetaDataError("Errors in %s" % str(sourcefilename)) |
|
9646 |
|
9647 except Exception,e: |
|
9648 - raise MetaDataError("Preprocessor exception: %s" % str(e)) |
|
9649 + raise MetaDataError("Preprocessor exception: '%s' : in command : '%s'" % (str(e), commandline)) |
|
9650 |
|
9651 return 0 # all OK |
|
9652 |
|
9653 @@ -398,11 +411,13 @@ |
|
9654 on the selected build platform. This class provides a generic means of wrapping |
|
9655 up the preprocessing of such files.""" |
|
9656 |
|
9657 - def __init__(self, aFilename, gnucpp, aRootLocation=None, log=None): |
|
9658 + def __init__(self, aFilename, gnucpp, depfiles, aRootLocation=None, log=None): |
|
9659 """ |
|
9660 @param aFilename An MMP, bld.inf or other preprocessable build spec file |
|
9661 @param aDefaultPlatform Default preprocessed version of this file |
|
9662 @param aCPP location of GNU CPP |
|
9663 + @param depfiles list to add dependency file tuples to |
|
9664 + @param aRootLocation where the file is |
|
9665 @param log A class with Debug(<string>), Info(<string>) and Error(<string>) methods |
|
9666 """ |
|
9667 self.filename = aFilename |
|
9668 @@ -410,6 +425,7 @@ |
|
9669 # Dictionary with key of build platform and a text string of processed output as values |
|
9670 self.__PreProcessedContent = {} |
|
9671 self.log = log |
|
9672 + self.depfiles = depfiles |
|
9673 |
|
9674 self.__gnucpp = gnucpp |
|
9675 if gnucpp is None: |
|
9676 @@ -436,7 +452,7 @@ |
|
9677 else: |
|
9678 metatarget = "'$(PARSETARGET)'" |
|
9679 generateDepsOptions = "-MD -MF%s -MT%s" % (adepfilename, metatarget) |
|
9680 - aBuildPlatform['METADEPS'].append((adepfilename, metatarget)) |
|
9681 + self.depfiles.append((adepfilename, metatarget)) |
|
9682 try: |
|
9683 os.makedirs(os.path.dirname(adepfilename)) |
|
9684 except Exception, e: |
|
9685 @@ -515,15 +531,17 @@ |
|
9686 on the selected build platform. This class provides a generic means of wrapping |
|
9687 up the preprocessing of such files.""" |
|
9688 |
|
9689 - def __init__(self, aFilename, gnucpp, bldinf, log=None): |
|
9690 + def __init__(self, aFilename, gnucpp, bldinf, depfiles, log=None): |
|
9691 """ |
|
9692 @param aFilename An MMP, bld.inf or other preprocessable build spec file |
|
9693 @param gnucpp location of GNU CPP |
|
9694 - @param bldinf the bldinf file that this mmp comes from |
|
9695 + @param bldinf the bld.inf file this mmp was specified in |
|
9696 + @param depfiles list to fill with mmp dependency files |
|
9697 @param log A class with Debug(<string>), Info(<string>) and Error(<string>) methods |
|
9698 """ |
|
9699 - super(MMPFile, self).__init__(aFilename, gnucpp, str(bldinf.filename.Dir()), log) |
|
9700 + super(MMPFile, self).__init__(aFilename, gnucpp, depfiles, str(bldinf.filename.Dir()), log) |
|
9701 self.__bldinf = bldinf |
|
9702 + self.depfiles = depfiles |
|
9703 |
|
9704 self.__gnucpp = gnucpp |
|
9705 if gnucpp is None: |
|
9706 @@ -878,8 +896,8 @@ |
|
9707 class BldInfFile(MetaDataFile): |
|
9708 """Representation of a Symbian bld.inf file""" |
|
9709 |
|
9710 - def __init__(self, aFilename, gnucpp, log=None): |
|
9711 - MetaDataFile.__init__(self, aFilename, gnucpp, None, log) |
|
9712 + def __init__(self, aFilename, gnucpp, depfiles, log=None): |
|
9713 + MetaDataFile.__init__(self, aFilename, gnucpp, depfiles, None, log) |
|
9714 self.__Raptor = log |
|
9715 self.testManual = 0 |
|
9716 self.testAuto = 0 |
|
9717 @@ -1194,7 +1212,9 @@ |
|
9718 super(MMPRaptorBackend,self).__init__() |
|
9719 self.platformblock = None |
|
9720 self.__Raptor = aRaptor |
|
9721 - self.BuildVariant = raptor_data.Variant() |
|
9722 + self.__debug("-----+++++ %s " % aMmpfilename) |
|
9723 + self.BuildVariant = raptor_data.Variant(name = "mmp") |
|
9724 + self.ApplyVariants = [] |
|
9725 self.ResourceVariants = [] |
|
9726 self.BitmapVariants = [] |
|
9727 self.StringTableVariants = [] |
|
9728 @@ -1208,11 +1228,12 @@ |
|
9729 self.__systeminclude = "" |
|
9730 self.__bitmapSourcepath = self.__sourcepath |
|
9731 self.__current_resource = "" |
|
9732 - self.__capabilities = [] |
|
9733 self.__resourceFiles = [] |
|
9734 self.__pageConflict = [] |
|
9735 self.__debuggable = "" |
|
9736 + self.__compressionKeyword = "" |
|
9737 self.sources = [] |
|
9738 + self.capabilities = [] |
|
9739 |
|
9740 self.__TARGET = "" |
|
9741 self.__TARGETEXT = "" |
|
9742 @@ -1283,16 +1304,15 @@ |
|
9743 elif varname == 'PAGED': |
|
9744 self.BuildVariant.AddOperation(raptor_data.Set(varname, "1")) |
|
9745 self.__debug( "Set switch PAGE ON") |
|
9746 + # PAGED is equivalent to PAGEDCODE |
|
9747 self.BuildVariant.AddOperation(raptor_data.Set("PAGEDCODE_OPTION", "paged")) |
|
9748 self.__debug( "Set switch PAGEDCODE ON") |
|
9749 - self.BuildVariant.AddOperation(raptor_data.Set("PAGEDDATA_OPTION", "paged")) |
|
9750 - self.__debug( "Set data PAGEDDATA ON") |
|
9751 self.__pageConflict.append("PAGEDCODE") |
|
9752 - self.__pageConflict.append("PAGEDDATA") |
|
9753 |
|
9754 elif varname == 'UNPAGED': |
|
9755 self.BuildVariant.AddOperation(raptor_data.Set("PAGED", "0")) |
|
9756 self.__debug( "Set switch PAGED OFF") |
|
9757 + # UNPAGED is equivalent to UNPAGEDCODE *and* UNPAGEDDATA |
|
9758 self.BuildVariant.AddOperation(raptor_data.Set("PAGEDCODE_OPTION", "unpaged")) |
|
9759 self.__debug( "Set switch PAGEDCODE OFF") |
|
9760 self.BuildVariant.AddOperation(raptor_data.Set("PAGEDDATA_OPTION", "unpaged")) |
|
9761 @@ -1314,6 +1334,7 @@ |
|
9762 self.BuildVariant.AddOperation(raptor_data.Set("PAGEDCODE_OPTION", "unpaged")) |
|
9763 self.__debug( "Set switch " + varname + " ON") |
|
9764 self.__pageConflict.append(varname) |
|
9765 + |
|
9766 elif varname == 'UNPAGEDDATA': |
|
9767 self.BuildVariant.AddOperation(raptor_data.Set("PAGEDDATA_OPTION", "unpaged")) |
|
9768 self.__debug( "Set switch " + varname + " ON") |
|
9769 @@ -1322,6 +1343,7 @@ |
|
9770 elif varname == 'NOLINKTIMECODEGENERATION': |
|
9771 self.BuildVariant.AddOperation(raptor_data.Set("LTCG","")) |
|
9772 self.__debug( "Set switch " + varname + " OFF") |
|
9773 + |
|
9774 elif varname == 'NOMULTIFILECOMPILATION': |
|
9775 self.BuildVariant.AddOperation(raptor_data.Set("MULTIFILE_ENABLED","")) |
|
9776 self.__debug( "Set switch " + varname + " OFF") |
|
9777 @@ -1331,13 +1353,19 @@ |
|
9778 self.__debuggable = "udeb urel" |
|
9779 else: |
|
9780 self.__Raptor.Warn("DEBUGGABLE keyword ignored as DEBUGGABLE_UDEBONLY is already specified") |
|
9781 + |
|
9782 elif varname == 'DEBUGGABLE_UDEBONLY': |
|
9783 if self.__debuggable != "": |
|
9784 self.__Raptor.Warn("DEBUGGABLE keyword has no effect as DEBUGGABLE or DEBUGGABLE_UDEBONLY is already set") |
|
9785 self.__debuggable = "udeb" |
|
9786 + |
|
9787 elif varname == 'FEATUREVARIANT': |
|
9788 self.BuildVariant.AddOperation(raptor_data.Set(varname,"1")) |
|
9789 self.featureVariant = True |
|
9790 + |
|
9791 + elif varname in ['COMPRESSTARGET', 'NOCOMPRESSTARGET', 'INFLATECOMPRESSTARGET', 'BYTEPAIRCOMPRESSTARGET']: |
|
9792 + self.resolveCompressionKeyword(varname) |
|
9793 + |
|
9794 else: |
|
9795 self.__debug( "Set switch "+toks[0]+" ON") |
|
9796 self.BuildVariant.AddOperation(raptor_data.Set(prefix+varname, "1")) |
|
9797 @@ -1423,9 +1451,12 @@ |
|
9798 |
|
9799 elif varname=='CAPABILITY': |
|
9800 for cap in toks[1]: |
|
9801 - self.BuildVariant.AddOperation(raptor_data.Append(varname,cap," ")) |
|
9802 + cap = cap.lower() |
|
9803 self.__debug("Setting "+toks[0]+": " + cap) |
|
9804 - self.__capabilities.append(cap.lower()) |
|
9805 + if not cap.startswith("-"): |
|
9806 + if not cap.startswith("+"): |
|
9807 + cap = "+" + cap |
|
9808 + self.capabilities.append(cap) |
|
9809 elif varname=='DEFFILE': |
|
9810 self.__defFileRoot = self.__currentMmpFile |
|
9811 self.deffile = toks[1] |
|
9812 @@ -1450,8 +1481,10 @@ |
|
9813 |
|
9814 # add in the minor number |
|
9815 minor = 0 |
|
9816 - if len(version) > 1: |
|
9817 + if version[1] is not None: |
|
9818 minor = int(version[2],10) |
|
9819 + else: |
|
9820 + self.__Raptor.Warn("VERSION (%s) missing '.minor' in %s, using '.0'" % (toks[1],self.__currentMmpFile)) |
|
9821 |
|
9822 self.__versionhex = "%04x%04x" % (major, minor) |
|
9823 self.BuildVariant.AddOperation(raptor_data.Set(varname, "%d.%d" %(major, minor))) |
|
9824 @@ -1517,7 +1550,8 @@ |
|
9825 toks1 = re.sub("[,'\[\]]", "", toks1).replace("//","/") |
|
9826 self.__debug("Set "+toks[0]+" to " + toks1) |
|
9827 self.BuildVariant.AddOperation(raptor_data.Set(varname,toks1)) |
|
9828 - |
|
9829 + elif varname=='APPLY': |
|
9830 + self.ApplyVariants.append(toks[1]) |
|
9831 else: |
|
9832 self.__debug("Set "+toks[0]+" to " + str(toks[1])) |
|
9833 self.BuildVariant.AddOperation(raptor_data.Set(varname,"".join(toks[1]))) |
|
9834 @@ -1687,7 +1721,7 @@ |
|
9835 def getDefaultResourceTargetPath(self, targettype): |
|
9836 # the different default TARGETPATH values should come from the |
|
9837 # configuration rather than being hard-coded here. |
|
9838 - if targettype == "plugin": |
|
9839 + if targettype in ["plugin", "plugin3"]: |
|
9840 return "resource/plugins" |
|
9841 if targettype == "pdl": |
|
9842 return "resource/printers" |
|
9843 @@ -1884,7 +1918,7 @@ |
|
9844 self.__currentLineNumber += 1 |
|
9845 self.__debug("Start BITMAP "+toks[1]) |
|
9846 |
|
9847 - self.__currentBitmapVariant = raptor_data.Variant(toks[1].replace('.','_')) |
|
9848 + self.__currentBitmapVariant = raptor_data.Variant(name = toks[1].replace('.','_')) |
|
9849 # Use BMTARGET and BMTARGET_lower because that prevents |
|
9850 # confusion with the TARGET and TARGET_lower of our parent MMP |
|
9851 # when setting the OUTPUTPATH. This in turn allows us to |
|
9852 @@ -1974,7 +2008,7 @@ |
|
9853 self.__debug("stringtable: " + toks[1]) |
|
9854 self.__debug("adjusted stringtable source=" + source) |
|
9855 |
|
9856 - self.__currentStringTableVariant = raptor_data.Variant(uniqname) |
|
9857 + self.__currentStringTableVariant = raptor_data.Variant(name = uniqname) |
|
9858 self.__currentStringTableVariant.AddOperation(raptor_data.Set("SOURCE", source)) |
|
9859 self.__currentStringTableVariant.AddOperation(raptor_data.Set("EXPORTPATH", "")) |
|
9860 self.__stringtableExported = False |
|
9861 @@ -2142,6 +2176,9 @@ |
|
9862 self.BuildVariant.AddOperation(raptor_data.Set("DEFFILEKEYWORD", deffile_keyword)) |
|
9863 self.__debug("Set DEFFILEKEYWORD to '%s'",deffile_keyword) |
|
9864 |
|
9865 + # If target type is "implib" it must have a def file |
|
9866 + self.checkImplibDefFile(resolvedDefFile) |
|
9867 + |
|
9868 # if this target type has a default TARGETPATH other than "" for |
|
9869 # resources then we need to add that default to all resources which |
|
9870 # do not explicitly set the TARGETPATH themselves. |
|
9871 @@ -2167,16 +2204,20 @@ |
|
9872 self.ResourceVariants[i].AddOperation(raptor_data.Set("MAIN_TARGET_lower", self.__TARGET.lower())) |
|
9873 self.ResourceVariants[i].AddOperation(raptor_data.Set("MAIN_REQUESTEDTARGETEXT", self.__TARGETEXT.lower())) |
|
9874 |
|
9875 + # Create Capability variable in one SET operation (more efficient than multiple appends) |
|
9876 + |
|
9877 + self.BuildVariant.AddOperation(raptor_data.Set("CAPABILITY","".join(self.capabilities))) |
|
9878 + |
|
9879 # Resolve combined capabilities as hex flags, for configurations that require them |
|
9880 capabilityFlag1 = 0 |
|
9881 capabilityFlag2 = 0 # Always 0 |
|
9882 |
|
9883 - for capability in self.__capabilities: |
|
9884 + for capability in self.capabilities: |
|
9885 invert = 0 |
|
9886 |
|
9887 if capability.startswith('-'): |
|
9888 invert = 0xffffffff |
|
9889 - capability = capability.lstrip('-') |
|
9890 + capability = capability[1:] |
|
9891 |
|
9892 if MMPRaptorBackend.supportedCapabilities.has_key(capability): |
|
9893 capabilityFlag1 = capabilityFlag1 ^ invert |
|
9894 @@ -2205,12 +2246,21 @@ |
|
9895 for x in self.__pageConflict: |
|
9896 if x == "PAGEDCODE" or x == "UNPAGEDCODE": |
|
9897 self.__Raptor.Warn("Both PAGEDCODE and UNPAGEDCODE are specified. The last one %s will take effect" % x) |
|
9898 + if x == "PAGEDCODE": |
|
9899 + self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET") |
|
9900 break |
|
9901 + elif "PAGEDCODE" in self.__pageConflict: |
|
9902 + self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET") |
|
9903 + |
|
9904 if "PAGEDDATA" in self.__pageConflict and "UNPAGEDDATA" in self.__pageConflict: |
|
9905 for x in self.__pageConflict: |
|
9906 if x == "PAGEDDATA" or x == "UNPAGEDDATA": |
|
9907 self.__Raptor.Warn("Both PAGEDDATA and UNPAGEDDATA are specified. The last one %s will take effect" % x) |
|
9908 + if x == "PAGEDDATA": |
|
9909 + self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET") |
|
9910 break |
|
9911 + elif "PAGEDDATA" in self.__pageConflict: |
|
9912 + self.resolveCompressionKeyword("BYTEPAIRCOMPRESSTARGET") |
|
9913 |
|
9914 # Set Debuggable |
|
9915 self.BuildVariant.AddOperation(raptor_data.Set("DEBUGGABLE", self.__debuggable)) |
|
9916 @@ -2229,6 +2279,27 @@ |
|
9917 """Target type in lower case - the standard format""" |
|
9918 return self.__targettype.lower() |
|
9919 |
|
9920 + def resolveCompressionKeyword(self, aCompressionKeyword): |
|
9921 + """If a compression keyword is set more than once either explicitly |
|
9922 + or implicitly a warning is given and the last one takes effect |
|
9923 + """ |
|
9924 + if self.__compressionKeyword and self.__compressionKeyword != aCompressionKeyword: |
|
9925 + self.__Raptor.Warn("%s keyword in %s overrides earlier use of %s" % \ |
|
9926 + (aCompressionKeyword, self.__currentMmpFile, self.__compressionKeyword)) |
|
9927 + self.BuildVariant.AddOperation(raptor_data.Set(self.__compressionKeyword, "")) |
|
9928 + self.__debug( "Set switch " + self.__compressionKeyword + " OFF") |
|
9929 + self.BuildVariant.AddOperation(raptor_data.Set(aCompressionKeyword,"1")) |
|
9930 + self.__debug( "Set switch " + aCompressionKeyword + " ON") |
|
9931 + self.__compressionKeyword = aCompressionKeyword |
|
9932 + |
|
9933 + def checkImplibDefFile(self, defFile): |
|
9934 + """Project with target type implib must have DEFFILE defined |
|
9935 + explicitly or implicitly, otherwise it is an error |
|
9936 + """ |
|
9937 + if self.getTargetType() == 'implib' and defFile == '': |
|
9938 + self.__Raptor.Error("No DEF File for IMPLIB target type in " + \ |
|
9939 + self.__currentMmpFile, bldinf=self.__bldInfFilename) |
|
9940 + |
|
9941 def resolveDefFile(self, aTARGET, aBuildPlatform): |
|
9942 """Returns a fully resolved DEFFILE entry depending on .mmp file location and TARGET, DEFFILE and NOSTRICTDEF |
|
9943 entries in the .mmp file itself (where appropriate). |
|
9944 @@ -2283,6 +2354,32 @@ |
|
9945 return resolvedDefFile |
|
9946 |
|
9947 |
|
9948 +def CheckedGet(self, key, default = None): |
|
9949 + """extract a value from an self and raise an exception if None. |
|
9950 + |
|
9951 + An optional default can be set to replace a None value. |
|
9952 + |
|
9953 + This function belongs in the Evaluator class logically. But |
|
9954 + Evaluator doesn't know how to raise a Metadata error. Since |
|
9955 + being able to raise a metadata error is the whole point of |
|
9956 + the method, it makes sense to adapt the Evaluator class from |
|
9957 + raptor_meta for the use of everything inside raptor_meta. |
|
9958 + |
|
9959 + ... so it will be added to the Evaluator class. |
|
9960 + """ |
|
9961 + |
|
9962 + value = self.Get(key) |
|
9963 + if value == None: |
|
9964 + if default == None: |
|
9965 + raise MetaDataError("configuration " + self.buildUnit.name + |
|
9966 + " has no variable " + key) |
|
9967 + else: |
|
9968 + return default |
|
9969 + return value |
|
9970 + |
|
9971 +raptor_data.Evaluator.CheckedGet = CheckedGet |
|
9972 + |
|
9973 + |
|
9974 class MetaReader(object): |
|
9975 """Entry point class for Symbian metadata processing. |
|
9976 |
|
9977 @@ -2299,10 +2396,10 @@ |
|
9978 # Get the version of CPP that we are using |
|
9979 metadata = self.__Raptor.cache.FindNamedVariant("meta") |
|
9980 evaluator = self.__Raptor.GetEvaluator(None, raptor_data.BuildUnit(metadata.name, [metadata]) ) |
|
9981 - self.__gnucpp = self.CheckValue(evaluator, "GNUCPP") |
|
9982 - self.__defaultplatforms = self.CheckValue(evaluator, "DEFAULT_PLATFORMS") |
|
9983 - self.__basedefaultplatforms = self.CheckValue(evaluator, "BASE_DEFAULT_PLATFORMS") |
|
9984 - self.__baseuserdefaultplatforms = self.CheckValue(evaluator, "BASE_USER_DEFAULT_PLATFORMS") |
|
9985 + self.__gnucpp = evaluator.CheckedGet("GNUCPP") |
|
9986 + self.__defaultplatforms = evaluator.CheckedGet("DEFAULT_PLATFORMS") |
|
9987 + self.__basedefaultplatforms = evaluator.CheckedGet("BASE_DEFAULT_PLATFORMS") |
|
9988 + self.__baseuserdefaultplatforms = evaluator.CheckedGet("BASE_USER_DEFAULT_PLATFORMS") |
|
9989 |
|
9990 # Only read each variant.cfg once |
|
9991 variantCfgs = {} |
|
9992 @@ -2321,24 +2418,35 @@ |
|
9993 # with the same "export platform". |
|
9994 exports = {} |
|
9995 |
|
9996 - for buildConfig in configsToBuild: |
|
9997 + # We sort configurations by name here. This is solely to deal with situations |
|
9998 + # where macros linked to builds end up being used in preprocessor conditionals |
|
9999 + # within bld.inf files that then wrap exports under PRJ_EXPORTS statements. |
|
10000 + # Having exports that are conditional on these macros isn't supported, but |
|
10001 + # as there are areas of the source base that make this assumption, and |
|
10002 + # fail if emulator macros are used instead of arm ones, we ensure that arm |
|
10003 + # configurations come first when multiple configurations are active, and so are |
|
10004 + # used first for determining exports. |
|
10005 + sortedConfigsToBuild = sorted(configsToBuild,key=lambda config: config.name) |
|
10006 + |
|
10007 + self.__Raptor.Debug("MetaReader: sortedConfigsToBuild: %s", [b.name for b in sortedConfigsToBuild]) |
|
10008 + for buildConfig in sortedConfigsToBuild: |
|
10009 # get everything we need to know about the configuration |
|
10010 evaluator = self.__Raptor.GetEvaluator(None, buildConfig) |
|
10011 |
|
10012 detail = {} |
|
10013 - detail['PLATFORM'] = self.CheckValue(evaluator, "TRADITIONAL_PLATFORM") |
|
10014 - epocroot = self.CheckValue(evaluator, "EPOCROOT") |
|
10015 + detail['PLATFORM'] = evaluator.CheckedGet("TRADITIONAL_PLATFORM") |
|
10016 + epocroot = evaluator.CheckedGet("EPOCROOT") |
|
10017 detail['EPOCROOT'] = generic_path.Path(epocroot) |
|
10018 |
|
10019 - sbs_build_dir = self.CheckValue(evaluator, "SBS_BUILD_DIR") |
|
10020 + sbs_build_dir = evaluator.CheckedGet("SBS_BUILD_DIR") |
|
10021 detail['SBS_BUILD_DIR'] = generic_path.Path(sbs_build_dir) |
|
10022 - flm_export_dir = self.CheckValue(evaluator, "FLM_EXPORT_DIR") |
|
10023 + flm_export_dir = evaluator.CheckedGet("FLM_EXPORT_DIR") |
|
10024 detail['FLM_EXPORT_DIR'] = generic_path.Path(flm_export_dir) |
|
10025 detail['CACHEID'] = flm_export_dir |
|
10026 if raptor_utilities.getOSPlatform().startswith("win"): |
|
10027 - detail['PLATMACROS'] = self.CheckValue(evaluator,"PLATMACROS.WINDOWS") |
|
10028 + detail['PLATMACROS'] = evaluator.CheckedGet("PLATMACROS.WINDOWS") |
|
10029 else: |
|
10030 - detail['PLATMACROS'] = self.CheckValue(evaluator,"PLATMACROS.LINUX") |
|
10031 + detail['PLATMACROS'] = evaluator.CheckedGet("PLATMACROS.LINUX") |
|
10032 |
|
10033 # Apply OS variant provided we are not ignoring this |
|
10034 if not self.__Raptor.ignoreOsDetection: |
|
10035 @@ -2350,11 +2458,11 @@ |
|
10036 # is this a feature variant config or an ordinary variant |
|
10037 fv = evaluator.Get("FEATUREVARIANTNAME") |
|
10038 if fv: |
|
10039 - variantHdr = self.CheckValue(evaluator, "VARIANT_HRH") |
|
10040 + variantHdr = evaluator.CheckedGet("VARIANT_HRH") |
|
10041 variantHRH = generic_path.Path(variantHdr) |
|
10042 detail['ISFEATUREVARIANT'] = True |
|
10043 else: |
|
10044 - variantCfg = self.CheckValue(evaluator, "VARIANT_CFG") |
|
10045 + variantCfg = evaluator.CheckedGet("VARIANT_CFG") |
|
10046 variantCfg = generic_path.Path(variantCfg) |
|
10047 if not variantCfg in variantCfgs: |
|
10048 # get VARIANT_HRH from the variant.cfg file |
|
10049 @@ -2369,19 +2477,18 @@ |
|
10050 |
|
10051 detail['VARIANT_HRH'] = variantHRH |
|
10052 self.__Raptor.Info("'%s' uses variant hrh file '%s'", buildConfig.name, variantHRH) |
|
10053 - detail['SYSTEMINCLUDE'] = self.CheckValue(evaluator, "SYSTEMINCLUDE") |
|
10054 + detail['SYSTEMINCLUDE'] = evaluator.CheckedGet("SYSTEMINCLUDE") |
|
10055 |
|
10056 - detail['METADEPS'] = [] # Dependency targets for all metadata files in this platform |
|
10057 |
|
10058 # find all the interface names we need |
|
10059 - ifaceTypes = self.CheckValue(evaluator, "INTERFACE_TYPES") |
|
10060 + ifaceTypes = evaluator.CheckedGet("INTERFACE_TYPES") |
|
10061 interfaces = ifaceTypes.split() |
|
10062 |
|
10063 for iface in interfaces: |
|
10064 - detail[iface] = self.CheckValue(evaluator, "INTERFACE." + iface) |
|
10065 + detail[iface] = evaluator.CheckedGet("INTERFACE." + iface) |
|
10066 |
|
10067 # not test code unless positively specified |
|
10068 - detail['TESTCODE'] = self.CheckValue(evaluator, "TESTCODE", "") |
|
10069 + detail['TESTCODE'] = evaluator.CheckedGet("TESTCODE", "") |
|
10070 |
|
10071 # make a key that identifies this platform uniquely |
|
10072 # - used to tell us whether we have done the pre-processing |
|
10073 @@ -2390,7 +2497,8 @@ |
|
10074 key = str(detail['VARIANT_HRH']) \ |
|
10075 + str(detail['EPOCROOT']) \ |
|
10076 + detail['SYSTEMINCLUDE'] \ |
|
10077 - + detail['PLATFORM'] |
|
10078 + + detail['PLATFORM'] \ |
|
10079 + + detail['PLATMACROS'] |
|
10080 |
|
10081 # Keep a short version of the key for use in filenames. |
|
10082 uniq = hashlib.md5() |
|
10083 @@ -2426,11 +2534,7 @@ |
|
10084 # Is this an unseen build platform? |
|
10085 # concatenate all the values we care about in a fixed order |
|
10086 # and use that as a signature for the platform. |
|
10087 - items = ['PLATFORM', 'EPOCROOT', 'VARIANT_HRH', 'SYSTEMINCLUDE', 'TESTCODE'] |
|
10088 - if raptor_utilities.getOSPlatform().startswith("win"): |
|
10089 - items.append('PLATMACROS.WINDOWS') |
|
10090 - else: |
|
10091 - items.append('PLATMACROS.LINUX') |
|
10092 + items = ['PLATFORM', 'PLATMACROS', 'EPOCROOT', 'VARIANT_HRH', 'SYSTEMINCLUDE', 'TESTCODE'] |
|
10093 |
|
10094 items.extend(interfaces) |
|
10095 platform = "" |
|
10096 @@ -2452,20 +2556,8 @@ |
|
10097 # that are supposedly platform independent (e.g. PRJ_PLATFORMS) |
|
10098 self.defaultPlatform = self.ExportPlatforms[0] |
|
10099 |
|
10100 - def CheckValue(self, evaluator, key, default = None): |
|
10101 - """extract a value from an evaluator and raise an exception if None. |
|
10102 - |
|
10103 - An optional default can be set to replace a None value.""" |
|
10104 - value = evaluator.Get(key) |
|
10105 - if value == None: |
|
10106 - if default == None: |
|
10107 - raise MetaDataError("configuration " + evaluator.config.name + |
|
10108 - " has no variable " + key) |
|
10109 - else: |
|
10110 - return default |
|
10111 - return value |
|
10112 |
|
10113 - def ReadBldInfFiles(self, aFileList, doExportOnly): |
|
10114 + def ReadBldInfFiles(self, aComponentList, doexport, dobuild = True): |
|
10115 """Take a list of bld.inf files and return a list of build specs. |
|
10116 |
|
10117 The returned specification nodes will be suitable for all the build |
|
10118 @@ -2475,7 +2567,7 @@ |
|
10119 # we need a Filter node per export platform |
|
10120 exportNodes = [] |
|
10121 for i,ep in enumerate(self.ExportPlatforms): |
|
10122 - filter = raptor_data.Filter("export_" + str(i)) |
|
10123 + filter = raptor_data.Filter(name = "export_" + str(i)) |
|
10124 |
|
10125 # what configurations is this node active for? |
|
10126 for config in ep['configs']: |
|
10127 @@ -2486,7 +2578,7 @@ |
|
10128 # we need a Filter node per build platform |
|
10129 platformNodes = [] |
|
10130 for i,bp in enumerate(self.BuildPlatforms): |
|
10131 - filter = raptor_data.Filter("build_" + str(i)) |
|
10132 + filter = raptor_data.Filter(name = "build_" + str(i)) |
|
10133 |
|
10134 # what configurations is this node active for? |
|
10135 for config in bp['configs']: |
|
10136 @@ -2502,18 +2594,18 @@ |
|
10137 |
|
10138 # check that each bld.inf exists and add a Specification node for it |
|
10139 # to the nodes of the export and build platforms that it supports. |
|
10140 - for bif in aFileList: |
|
10141 - if bif.isFile(): |
|
10142 - self.__Raptor.Info("Processing %s", str(bif)) |
|
10143 + for c in aComponentList: |
|
10144 + if c.bldinf_filename.isFile(): |
|
10145 + self.__Raptor.Info("Processing %s", str(c.bldinf_filename)) |
|
10146 try: |
|
10147 - self.AddComponentNodes(bif, exportNodes, platformNodes) |
|
10148 + self.AddComponentNodes(c, exportNodes, platformNodes) |
|
10149 |
|
10150 except MetaDataError, e: |
|
10151 - self.__Raptor.Error(e.Text, bldinf=str(bif)) |
|
10152 + self.__Raptor.Error(e.Text, bldinf=str(c.bldinf_filename)) |
|
10153 if not self.__Raptor.keepGoing: |
|
10154 return [] |
|
10155 else: |
|
10156 - self.__Raptor.Error("build info file does not exist", bldinf=str(bif)) |
|
10157 + self.__Raptor.Error("build info file does not exist", bldinf=str(c.bldinf_filename)) |
|
10158 if not self.__Raptor.keepGoing: |
|
10159 return [] |
|
10160 |
|
10161 @@ -2545,6 +2637,7 @@ |
|
10162 # before we can do anything else (because raptor itself must do |
|
10163 # some exports before the MMP files that include them can be |
|
10164 # processed). |
|
10165 + if doexport: |
|
10166 for i,p in enumerate(exportNodes): |
|
10167 exportPlatform = self.ExportPlatforms[i] |
|
10168 for s in p.GetChildSpecs(): |
|
10169 @@ -2555,10 +2648,12 @@ |
|
10170 self.__Raptor.Error("%s",e.Text) |
|
10171 if not self.__Raptor.keepGoing: |
|
10172 return [] |
|
10173 + else: |
|
10174 + self.__Raptor.Info("Not Processing Exports (--noexport enabled)") |
|
10175 |
|
10176 # this is a switch to return the function at this point if export |
|
10177 # only option is specified in the run |
|
10178 - if (self.__Raptor.doExportOnly): |
|
10179 + if dobuild is not True: |
|
10180 self.__Raptor.Info("Processing Exports only") |
|
10181 return[] |
|
10182 |
|
10183 @@ -2601,8 +2696,8 @@ |
|
10184 |
|
10185 def LeftPortionOf(pth,sep): |
|
10186 """ Internal function to return portion of str that is to the left of sep. |
|
10187 - The partition is case-insentive.""" |
|
10188 - length = len((pth.lower().partition(sep.lower()))[0]) |
|
10189 + The split is case-insensitive.""" |
|
10190 + length = len((pth.lower().split(sep.lower()))[0]) |
|
10191 return pth[0:length] |
|
10192 |
|
10193 modulePath = LeftPortionOf(LeftPortionOf(os.path.dirname(aBldInfPath), "group"), "ongoing") |
|
10194 @@ -2615,37 +2710,30 @@ |
|
10195 return moduleName |
|
10196 |
|
10197 |
|
10198 - def AddComponentNodes(self, buildFile, exportNodes, platformNodes): |
|
10199 + def AddComponentNodes(self, component, exportNodes, platformNodes): |
|
10200 """Add Specification nodes for a bld.inf to the appropriate platforms.""" |
|
10201 - bldInfFile = BldInfFile(buildFile, self.__gnucpp, self.__Raptor) |
|
10202 - |
|
10203 - specName = self.getSpecName(buildFile, fullPath=True) |
|
10204 + bldInfFile = BldInfFile(component.bldinf_filename, self.__gnucpp, component.depfiles, self.__Raptor) |
|
10205 + component.bldinf = bldInfFile |
|
10206 |
|
10207 - if isinstance(buildFile, raptor_xml.SystemModelComponent): |
|
10208 - # this component came from a system_definition.xml |
|
10209 - layer = buildFile.GetContainerName("layer") |
|
10210 - component = buildFile.GetContainerName("component") |
|
10211 - else: |
|
10212 - # this is a plain old bld.inf file from the command-line |
|
10213 - layer = "" |
|
10214 - component = "" |
|
10215 + specName = getSpecName(component.bldinf_filename, fullPath=True) |
|
10216 |
|
10217 # exports are independent of build platform |
|
10218 for i,ep in enumerate(self.ExportPlatforms): |
|
10219 - specNode = raptor_data.Specification(specName) |
|
10220 + specNode = raptor_data.Specification(name = specName) |
|
10221 |
|
10222 # keep the BldInfFile object for later |
|
10223 - specNode.bldinf = bldInfFile |
|
10224 + specNode.component = component |
|
10225 |
|
10226 # add some basic data in a component-wide variant |
|
10227 - var = raptor_data.Variant() |
|
10228 - var.AddOperation(raptor_data.Set("COMPONENT_META", str(buildFile))) |
|
10229 - var.AddOperation(raptor_data.Set("COMPONENT_NAME", component)) |
|
10230 - var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer)) |
|
10231 + var = raptor_data.Variant(name='component-wide') |
|
10232 + var.AddOperation(raptor_data.Set("COMPONENT_META", str(component.bldinf_filename))) |
|
10233 + var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname)) |
|
10234 + var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername)) |
|
10235 specNode.AddVariant(var) |
|
10236 |
|
10237 # add this bld.inf Specification to the export platform |
|
10238 exportNodes[i].AddChild(specNode) |
|
10239 + component.exportspecs.append(specNode) |
|
10240 |
|
10241 # get the relevant build platforms |
|
10242 listedPlatforms = bldInfFile.getBuildPlatforms(self.defaultPlatform) |
|
10243 @@ -2655,34 +2743,36 @@ |
|
10244 self.__baseuserdefaultplatforms) |
|
10245 |
|
10246 |
|
10247 - |
|
10248 - outputDir = BldInfFile.outputPathFragment(buildFile) |
|
10249 + outputDir = BldInfFile.outputPathFragment(component.bldinf_filename) |
|
10250 |
|
10251 # Calculate "module name" |
|
10252 - modulename = self.ModuleName(str(buildFile)) |
|
10253 + modulename = self.ModuleName(str(component.bldinf_filename)) |
|
10254 |
|
10255 for i,bp in enumerate(self.BuildPlatforms): |
|
10256 + plat = bp['PLATFORM'] |
|
10257 if bp['PLATFORM'] in platforms: |
|
10258 - specNode = raptor_data.Specification(specName) |
|
10259 + specNode = raptor_data.Specification(name = specName) |
|
10260 |
|
10261 - # keep the BldInfFile object for later |
|
10262 - specNode.bldinf = bldInfFile |
|
10263 + # remember what component this spec node comes from for later |
|
10264 + specNode.component = component |
|
10265 |
|
10266 # add some basic data in a component-wide variant |
|
10267 - var = raptor_data.Variant() |
|
10268 - var.AddOperation(raptor_data.Set("COMPONENT_META",str(buildFile))) |
|
10269 - var.AddOperation(raptor_data.Set("COMPONENT_NAME", component)) |
|
10270 - var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer)) |
|
10271 + var = raptor_data.Variant(name='component-wide-settings-' + plat) |
|
10272 + var.AddOperation(raptor_data.Set("COMPONENT_META",str(component.bldinf_filename))) |
|
10273 + var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname)) |
|
10274 + var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername)) |
|
10275 var.AddOperation(raptor_data.Set("MODULE", modulename)) |
|
10276 var.AddOperation(raptor_data.Append("OUTPUTPATHOFFSET", outputDir, '/')) |
|
10277 var.AddOperation(raptor_data.Append("OUTPUTPATH", outputDir, '/')) |
|
10278 var.AddOperation(raptor_data.Append("BLDINF_OUTPUTPATH",outputDir, '/')) |
|
10279 |
|
10280 - var.AddOperation(raptor_data.Set("TEST_OPTION", specNode.bldinf.getRomTestType(bp))) |
|
10281 + var.AddOperation(raptor_data.Set("TEST_OPTION", component.bldinf.getRomTestType(bp))) |
|
10282 specNode.AddVariant(var) |
|
10283 |
|
10284 # add this bld.inf Specification to the build platform |
|
10285 platformNodes[i].AddChild(specNode) |
|
10286 + # also attach it into the component |
|
10287 + component.specs.append(specNode) |
|
10288 |
|
10289 def ProcessExports(self, componentNode, exportPlatform): |
|
10290 """Do the exports for a given platform and skeleton bld.inf node. |
|
10291 @@ -2694,18 +2784,18 @@ |
|
10292 [some MMP files #include exported .mmh files] |
|
10293 """ |
|
10294 if exportPlatform["TESTCODE"]: |
|
10295 - exports = componentNode.bldinf.getTestExports(exportPlatform) |
|
10296 + exports = componentNode.component.bldinf.getTestExports(exportPlatform) |
|
10297 else: |
|
10298 - exports = componentNode.bldinf.getExports(exportPlatform) |
|
10299 + exports = componentNode.component.bldinf.getExports(exportPlatform) |
|
10300 |
|
10301 self.__Raptor.Debug("%i exports for %s", |
|
10302 - len(exports), str(componentNode.bldinf.filename)) |
|
10303 + len(exports), str(componentNode.component.bldinf.filename)) |
|
10304 if exports: |
|
10305 |
|
10306 # each export is either a 'copy' or 'unzip' |
|
10307 # maybe we should trap multiple exports to the same location here? |
|
10308 epocroot = str(exportPlatform["EPOCROOT"]) |
|
10309 - bldinf_filename = str(componentNode.bldinf.filename) |
|
10310 + bldinf_filename = str(componentNode.component.bldinf.filename) |
|
10311 exportwhatlog="<whatlog bldinf='%s' mmp='' config=''>\n" % bldinf_filename |
|
10312 for export in exports: |
|
10313 expSrc = export.getSource() |
|
10314 @@ -2728,11 +2818,11 @@ |
|
10315 # export the file |
|
10316 exportwhatlog += self.CopyExport(fromFile, toFile, bldinf_filename) |
|
10317 else: |
|
10318 - # unzip the zip |
|
10319 - exportwhatlog += ("<archive zipfile='" + str(fromFile) + "'>\n") |
|
10320 members = self.UnzipExport(fromFile, toFile, |
|
10321 str(exportPlatform['SBS_BUILD_DIR']), |
|
10322 bldinf_filename) |
|
10323 + |
|
10324 + exportwhatlog += ("<archive zipfile='" + str(fromFile) + "'>\n") |
|
10325 if members != None: |
|
10326 exportwhatlog += members |
|
10327 exportwhatlog += "</archive>\n" |
|
10328 @@ -2767,8 +2857,10 @@ |
|
10329 |
|
10330 sourceMTime = 0 |
|
10331 destMTime = 0 |
|
10332 + sourceStat = 0 |
|
10333 try: |
|
10334 - sourceMTime = os.stat(source_str)[stat.ST_MTIME] |
|
10335 + sourceStat = os.stat(source_str) |
|
10336 + sourceMTime = sourceStat[stat.ST_MTIME] |
|
10337 destMTime = os.stat(dest_str)[stat.ST_MTIME] |
|
10338 except OSError, e: |
|
10339 if sourceMTime == 0: |
|
10340 @@ -2782,6 +2874,9 @@ |
|
10341 if os.path.exists(dest_str): |
|
10342 os.chmod(dest_str,stat.S_IREAD | stat.S_IWRITE) |
|
10343 shutil.copyfile(source_str, dest_str) |
|
10344 + |
|
10345 + # Ensure that the destination file remains executable if the source was also: |
|
10346 + os.chmod(dest_str,sourceStat[stat.ST_MODE] | stat.S_IREAD | stat.S_IWRITE | stat.S_IWGRP ) |
|
10347 self.__Raptor.Info("Copied %s to %s", source_str, dest_str) |
|
10348 else: |
|
10349 self.__Raptor.Info("Up-to-date: %s", dest_str) |
|
10350 @@ -2845,7 +2940,7 @@ |
|
10351 for file in files: |
|
10352 if not file.endswith('/'): |
|
10353 expfilename = str(generic_path.Join(destination, file)) |
|
10354 - exportwhatlog += "<member>" + expfilename + "</member>\n" |
|
10355 + exportwhatlog += "<member>" + escape(expfilename) + "</member>\n" |
|
10356 |
|
10357 self.__Raptor.PrintXML("<clean bldinf='" + bldinf_filename + "' mmp='' config=''>\n") |
|
10358 self.__Raptor.PrintXML("<zipmarker>" + markerfilename + "</zipmarker>\n") |
|
10359 @@ -2876,6 +2971,11 @@ |
|
10360 expfile = open(expfilename, 'wb') |
|
10361 expfile.write(exportzip.read(file)) |
|
10362 expfile.close() |
|
10363 + |
|
10364 + # Resurrect any file execution permissions present in the archived version |
|
10365 + if (exportzip.getinfo(file).external_attr >> 16L) & 0100: |
|
10366 + os.chmod(expfilename, stat.S_IMODE(os.stat(expfilename).st_mode) | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH) |
|
10367 + |
|
10368 # Each file keeps its modified time the same as what it was before unzipping |
|
10369 accesstime = time.time() |
|
10370 datetime = exportzip.getinfo(file).date_time |
|
10371 @@ -2885,7 +2985,7 @@ |
|
10372 os.utime(expfilename,(accesstime, modifiedtime)) |
|
10373 |
|
10374 filecount += 1 |
|
10375 - exportwhatlog+="<member>" + expfilename + "</member>\n" |
|
10376 + exportwhatlog+="<member>" + escape(expfilename) + "</member>\n" |
|
10377 except IOError, e: |
|
10378 message = "Could not unzip %s to %s: file %s: %s" %(source, destination, expfilename, str(e)) |
|
10379 if not self.__Raptor.keepGoing: |
|
10380 @@ -2899,7 +2999,7 @@ |
|
10381 self.__Raptor.PrintXML("<zipmarker>" + markerfilename + "</zipmarker>\n") |
|
10382 self.__Raptor.PrintXML("</clean>\n") |
|
10383 |
|
10384 - except IOError: |
|
10385 + except IOError, e: |
|
10386 self.__Raptor.Warn("Problem while unzipping export %s to %s: %s",source,destination,str(e)) |
|
10387 |
|
10388 self.__Raptor.Info("Unzipped %d files from %s to %s", filecount, source, destination) |
|
10389 @@ -2915,12 +3015,12 @@ |
|
10390 return # feature variation does not run extensions at all |
|
10391 |
|
10392 if buildPlatform["TESTCODE"]: |
|
10393 - extensions = componentNode.bldinf.getTestExtensions(buildPlatform) |
|
10394 + extensions = componentNode.component.bldinf.getTestExtensions(buildPlatform) |
|
10395 else: |
|
10396 - extensions = componentNode.bldinf.getExtensions(buildPlatform) |
|
10397 + extensions = componentNode.component.bldinf.getExtensions(buildPlatform) |
|
10398 |
|
10399 self.__Raptor.Debug("%i template extension makefiles for %s", |
|
10400 - len(extensions), str(componentNode.bldinf.filename)) |
|
10401 + len(extensions), str(componentNode.component.bldinf.filename)) |
|
10402 |
|
10403 for i,extension in enumerate(extensions): |
|
10404 if self.__Raptor.projects: |
|
10405 @@ -2999,14 +3099,20 @@ |
|
10406 gnuList = [] |
|
10407 makefileList = [] |
|
10408 |
|
10409 + |
|
10410 + component = componentNode.component |
|
10411 + |
|
10412 + |
|
10413 if buildPlatform["TESTCODE"]: |
|
10414 - MMPList = componentNode.bldinf.getTestMMPList(buildPlatform) |
|
10415 + MMPList = component.bldinf.getTestMMPList(buildPlatform) |
|
10416 else: |
|
10417 - MMPList = componentNode.bldinf.getMMPList(buildPlatform) |
|
10418 + MMPList = component.bldinf.getMMPList(buildPlatform) |
|
10419 |
|
10420 - bldInfFile = componentNode.bldinf.filename |
|
10421 + bldInfFile = component.bldinf.filename |
|
10422 |
|
10423 for mmpFileEntry in MMPList['mmpFileList']: |
|
10424 + component.AddMMP(mmpFileEntry.filename) # Tell the component another mmp is specified (for this platform) |
|
10425 + |
|
10426 projectname = mmpFileEntry.filename.File().lower() |
|
10427 |
|
10428 if self.__Raptor.projects: |
|
10429 @@ -3024,7 +3130,8 @@ |
|
10430 |
|
10431 mmpFile = MMPFile(foundmmpfile, |
|
10432 self.__gnucpp, |
|
10433 - bldinf = componentNode.bldinf, |
|
10434 + component.bldinf, |
|
10435 + component.depfiles, |
|
10436 log = self.__Raptor) |
|
10437 |
|
10438 mmpFilename = mmpFile.filename |
|
10439 @@ -3058,7 +3165,7 @@ |
|
10440 continue |
|
10441 |
|
10442 # now build the specification tree |
|
10443 - mmpSpec = raptor_data.Specification(self.getSpecName(mmpFilename)) |
|
10444 + mmpSpec = raptor_data.Specification(generic_path.Path(getSpecName(mmpFilename))) |
|
10445 var = backend.BuildVariant |
|
10446 |
|
10447 var.AddOperation(raptor_data.Set("PROJECT_META", str(mmpFilename))) |
|
10448 @@ -3094,7 +3201,7 @@ |
|
10449 |
|
10450 # Although not part of the MMP, some MMP-based build specs additionally require knowledge of their |
|
10451 # container bld.inf exported headers |
|
10452 - for export in componentNode.bldinf.getExports(buildPlatform): |
|
10453 + for export in componentNode.component.bldinf.getExports(buildPlatform): |
|
10454 destination = export.getDestination() |
|
10455 if isinstance(destination, list): |
|
10456 exportfile = str(destination[0]) |
|
10457 @@ -3108,6 +3215,16 @@ |
|
10458 mmpSpec.AddVariant(var) |
|
10459 componentNode.AddChild(mmpSpec) |
|
10460 |
|
10461 + # if there are APPLY variants then add them to the mmpSpec too |
|
10462 + for applyVar in backend.ApplyVariants: |
|
10463 + try: |
|
10464 + mmpSpec.AddVariant(self.__Raptor.cache.FindNamedVariant(applyVar)) |
|
10465 + except KeyError: |
|
10466 + self.__Raptor.Error("APPLY unknown variant '%s' in %s", |
|
10467 + applyVar, |
|
10468 + str(mmpFileEntry.filename), |
|
10469 + bldinf=str(bldInfFile)) |
|
10470 + |
|
10471 # resources, stringtables and bitmaps are sub-nodes of this project |
|
10472 # (do not add these for feature variant builds) |
|
10473 |
|
10474 @@ -3150,7 +3267,7 @@ |
|
10475 self.projectList.remove(projectname) |
|
10476 |
|
10477 self.__Raptor.Debug("%i gnumakefile extension makefiles for %s", |
|
10478 - len(gnuList), str(componentNode.bldinf.filename)) |
|
10479 + len(gnuList), str(componentNode.component.bldinf.filename)) |
|
10480 var = raptor_data.Variant() |
|
10481 gnuSpec = raptor_data.Specification("gnumakefile " + str(g.getMakefileName())) |
|
10482 interface = buildPlatform["ext_makefile"] |
|
10483 @@ -3182,7 +3299,7 @@ |
|
10484 projectList.remove(projectname) |
|
10485 |
|
10486 self.__Raptor.Debug("%i makefile extension makefiles for %s", |
|
10487 - len(makefileList), str(componentNode.bldinf.filename)) |
|
10488 + len(makefileList), str(componentNode.component.bldinf.filename)) |
|
10489 var = raptor_data.Variant() |
|
10490 gnuSpec = raptor_data.Specification("makefile " + str(m.getMakefileName())) |
|
10491 interface = buildPlatform["ext_makefile"] |
|
10492 @@ -3203,17 +3320,6 @@ |
|
10493 gnuSpec.AddVariant(var) |
|
10494 componentNode.AddChild(gnuSpec) |
|
10495 |
|
10496 - def getSpecName(self, aFileRoot, fullPath=False): |
|
10497 - """Returns a build spec name: this is the file root (full path |
|
10498 - or simple file name) made safe for use as a file name.""" |
|
10499 - |
|
10500 - if fullPath: |
|
10501 - specName = str(aFileRoot).replace("/","_") |
|
10502 - specName = specName.replace(":","") |
|
10503 - else: |
|
10504 - specName = aFileRoot.File() |
|
10505 - |
|
10506 - return specName.lower() |
|
10507 |
|
10508 def ApplyOSVariant(self, aBuildUnit, aEpocroot): |
|
10509 # Form path to kif.xml and path to buildinfo.txt |
|
10510 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor.py |
|
10511 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor.py 2010-05-18 19:32:34.789348356 +0100 |
|
10512 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor.py 2010-05-17 18:47:53.092842000 +0100 |
|
10513 @@ -1,5 +1,5 @@ |
|
10514 # |
|
10515 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
10516 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
10517 # All rights reserved. |
|
10518 # This component and the accompanying materials are made available |
|
10519 # under the terms of the License "Eclipse Public License v1.0" |
|
10520 @@ -32,7 +32,9 @@ |
|
10521 import raptor_cli |
|
10522 import raptor_data |
|
10523 import raptor_make |
|
10524 +import raptor_makefile |
|
10525 import raptor_meta |
|
10526 +import raptor_timing |
|
10527 import raptor_utilities |
|
10528 import raptor_version |
|
10529 import raptor_xml |
|
10530 @@ -40,7 +42,6 @@ |
|
10531 import sys |
|
10532 import types |
|
10533 import time |
|
10534 -import re |
|
10535 import traceback |
|
10536 import pluginbox |
|
10537 from xml.sax.saxutils import escape |
|
10538 @@ -54,15 +55,19 @@ |
|
10539 hostplatform_dir = os.environ["HOSTPLATFORM_DIR"] |
|
10540 |
|
10541 # defaults can use EPOCROOT |
|
10542 + |
|
10543 if "EPOCROOT" in os.environ: |
|
10544 - epocroot = os.environ["EPOCROOT"].replace("\\","/") |
|
10545 + incoming_epocroot = os.environ["EPOCROOT"] |
|
10546 + epocroot = incoming_epocroot.replace("\\","/") |
|
10547 else: |
|
10548 - if 'linux' in hostplatform: |
|
10549 - epocroot=os.environ['HOME'] + os.sep + "epocroot" |
|
10550 - os.environ["EPOCROOT"] = epocroot |
|
10551 - else: |
|
10552 + if 'win' in hostplatform: |
|
10553 + incoming_epocroot = os.sep |
|
10554 epocroot = "/" |
|
10555 os.environ["EPOCROOT"] = os.sep |
|
10556 + else: |
|
10557 + epocroot=os.environ['HOME'] + os.sep + "epocroot" |
|
10558 + os.environ["EPOCROOT"] = epocroot |
|
10559 + incoming_epocroot = epocroot |
|
10560 |
|
10561 if "SBS_BUILD_DIR" in os.environ: |
|
10562 sbs_build_dir = os.environ["SBS_BUILD_DIR"] |
|
10563 @@ -70,7 +75,6 @@ |
|
10564 sbs_build_dir = (epocroot + "/epoc32/build").replace("//","/") |
|
10565 |
|
10566 |
|
10567 - |
|
10568 # only use default XML from the epoc32 tree if it exists |
|
10569 defaultSystemConfig = "lib/config" |
|
10570 epoc32UserConfigDir = generic_path.Join(epocroot, "epoc32/sbs_config") |
|
10571 @@ -105,91 +109,219 @@ |
|
10572 } |
|
10573 |
|
10574 |
|
10575 -class ComponentGroup(object): |
|
10576 - """ Some components that should be built togther |
|
10577 - e.g. a Layer in the system definition. |
|
10578 + |
|
10579 +class ModelNode(object): |
|
10580 + """ Represents any node in a a tree of build information |
|
10581 + e.g. a tree of bld.infs, mmps and finally things like resource blocks and string table blocks. |
|
10582 + This is before they are produced into "build" specs. |
|
10583 """ |
|
10584 - def __init__(self, name, componentlist=[]): |
|
10585 - self.components = componentlist |
|
10586 - self.name = name |
|
10587 + |
|
10588 + def __init__(self, id, parent = None): |
|
10589 + self.id = id |
|
10590 + self.type = type |
|
10591 + self.specs = [] |
|
10592 + self.deps = [] |
|
10593 + self.children = set() |
|
10594 + self.unfurled = False |
|
10595 + self.parent = parent |
|
10596 + |
|
10597 + # Allow one to make a set |
|
10598 + def __hash__(self): |
|
10599 + return hash(self.id) |
|
10600 + |
|
10601 + def __cmp__(self,other): |
|
10602 + return cmp(self.id, other) |
|
10603 |
|
10604 def __iter__(self): |
|
10605 - return iter(self.components) |
|
10606 + return iter(self.children) |
|
10607 |
|
10608 def __getitem__(self,x): |
|
10609 if isinstance(x, slice): |
|
10610 - return self.components[x.start:x.stop] |
|
10611 - return self.components[x] |
|
10612 + return self.children[x.start:x.stop] |
|
10613 + return self.children[x] |
|
10614 |
|
10615 def __setitem__(self,k, v): |
|
10616 - self.components[k] = v |
|
10617 + self.children[k] = v |
|
10618 |
|
10619 def __len__(self): |
|
10620 - return len(self.components) |
|
10621 + return len(self.children) |
|
10622 + |
|
10623 + def add(self, item): |
|
10624 + return self.children.add(item) |
|
10625 + |
|
10626 + def isunfurled(self, c): |
|
10627 + return self.unfurled == False |
|
10628 + |
|
10629 + def unfurl(self, build): |
|
10630 + """Find any children of this node by processing it, produces specs""" |
|
10631 + pass |
|
10632 + |
|
10633 + def unfurl_all(self, build): |
|
10634 + """Unfurl self and all children - preparatory e.g for realisation""" |
|
10635 + if not self.unfurled: |
|
10636 + self.unfurl(build) |
|
10637 + |
|
10638 + self.realise_exports(build) # permit communication of dependencies between children |
|
10639 + |
|
10640 + for c in self.children: |
|
10641 + c.unfurl_all(build) |
|
10642 + |
|
10643 + |
|
10644 + def realise_exports(self, build): |
|
10645 + """Do the things that are needed such that we can fully unfurl all |
|
10646 + sibling nodes. i.e. this step is here to "take care" of the dependencies |
|
10647 + between siblings. |
|
10648 + """ |
|
10649 + pass |
|
10650 + |
|
10651 + def realise_makefile(self, build, specs): |
|
10652 + makefilename_base = build.topMakefile |
|
10653 + if self.name is not None: |
|
10654 + makefile = generic_path.Path(str(makefilename_base) + "_" + raptor_utilities.sanitise(self.name)) |
|
10655 + else: |
|
10656 + makefile = generic_path.Path(str(makefilename_base)) |
|
10657 + |
|
10658 + # insert the start time into the Makefile name? |
|
10659 + makefile.path = makefile.path.replace("%TIME", build.timestring) |
|
10660 + |
|
10661 + build.InfoDiscovery(object_type = "layers", count = 1) |
|
10662 + build.InfoStartTime(object_type = "layer", task = "parse", |
|
10663 + key = str(makefile.path)) |
|
10664 + makefileset = build.maker.Write(makefile, specs, build.buildUnitsToBuild) |
|
10665 + build.InfoEndTime(object_type = "layer", task = "parse", |
|
10666 + key = str(makefile.path)) |
|
10667 + |
|
10668 + return makefileset |
|
10669 + |
|
10670 + |
|
10671 + |
|
10672 + def realise(self, build): |
|
10673 + """Give the spec trees to the make engine and actually |
|
10674 + "build" the product represented by this model node""" |
|
10675 + # Must ensure that all children are unfurled at this point |
|
10676 + self.unfurl_all(build) |
|
10677 + |
|
10678 + sp = self.specs |
|
10679 |
|
10680 - def extend(self, c): |
|
10681 - self.components.extend(c) |
|
10682 + build.AssertBuildOK() |
|
10683 + |
|
10684 + m = self.realise_makefile(build, sp) |
|
10685 + |
|
10686 + build.InfoStartTime(object_type = "layer", task = "build", |
|
10687 + key = (str(m.directory) + "/" + str(m.filenamebase))) |
|
10688 + result = build.Make(m) |
|
10689 + build.InfoEndTime(object_type = "layer", task = "build", |
|
10690 + key = (str(m.directory) + "/" + str(m.filenamebase))) |
|
10691 + |
|
10692 + |
|
10693 + return result |
|
10694 + |
|
10695 + |
|
10696 + |
|
10697 +class Project(ModelNode): |
|
10698 + """A project or, in symbian-speak, an MMP |
|
10699 + """ |
|
10700 + def __init__(self, filename, parent = None): |
|
10701 + super(Project,self).__init__(filename, parent = parent) |
|
10702 + # Assume that components are specified in mmp files for now |
|
10703 + # One day that tyranny might end. |
|
10704 + self.mmp_name = str(generic_path.Path.Absolute(filename)) |
|
10705 + self.id = self.mmp_name |
|
10706 + self.unfurled = False |
|
10707 + |
|
10708 + def makefile(self, makefilename_base, engine, named = False): |
|
10709 + """Makefiles for individual mmps not feasible at the moment""" |
|
10710 + pass |
|
10711 + # Cannot, currently, "unfurl an mmp" directly but do want |
|
10712 + # to be able to simulate the overall recursive unfurling of a build. |
|
10713 + |
|
10714 +class Component(ModelNode): |
|
10715 + """A group of projects or, in symbian-speak, a bld.inf. |
|
10716 + """ |
|
10717 + def __init__(self, filename, layername="", componentname=""): |
|
10718 + super(Component,self).__init__(filename) |
|
10719 + # Assume that components are specified in bld.inf files for now |
|
10720 + # One day that tyranny might end. |
|
10721 + self.bldinf = None # Slot for a bldinf object if we spot one later |
|
10722 + self.bldinf_filename = generic_path.Path.Absolute(filename) |
|
10723 + |
|
10724 + self.id = str(self.bldinf_filename) |
|
10725 + self.exportspecs = [] |
|
10726 + self.depfiles = [] |
|
10727 + self.unfurled = False # We can parse this |
|
10728 + |
|
10729 + # Extra metadata optionally supplied with system definition file gathered components |
|
10730 + self.layername = layername |
|
10731 + self.componentname = componentname |
|
10732 + |
|
10733 + def AddMMP(self, filename): |
|
10734 + self.children.add(Project(filename)) |
|
10735 + |
|
10736 + |
|
10737 +class Layer(ModelNode): |
|
10738 + """ Some components that should be built togther |
|
10739 + e.g. a Layer in the system definition. |
|
10740 + |
|
10741 + Components that come from system definition files can |
|
10742 + have extra surrounding metadata that we need to pass |
|
10743 + on for use in log output. |
|
10744 + """ |
|
10745 + def __init__(self, name, componentlist=[]): |
|
10746 + super(Layer,self).__init__(name) |
|
10747 + self.name = name |
|
10748 |
|
10749 - def append(self, c): |
|
10750 - self.components.append(c) |
|
10751 + for c in componentlist: |
|
10752 + if isinstance(c, raptor_xml.SystemModelComponent): |
|
10753 + # this component came from a system_definition.xml |
|
10754 + self.children.add(Component(c, c.GetContainerName("layer"), c.GetContainerName("component"))) |
|
10755 + else: |
|
10756 + # this is a plain old bld.inf file from the command-line |
|
10757 + self.children.add(Component(c)) |
|
10758 |
|
10759 - def GenerateSpecs(self, genericspecs, configs): |
|
10760 - """Return a build spec hierarchy for a ComponentGroup. This involves parsing the component MetaData (bld.infs, mmps). |
|
10761 + def unfurl(self, build): |
|
10762 + """Discover the children of this layer. This involves parsing the component MetaData (bld.infs, mmps). |
|
10763 Takes a raptor object as a parameter (build), together with a list of Configurations. |
|
10764 |
|
10765 - Returns a tuple consisting of a list of specification objects and a list of dependency files |
|
10766 - that relate to these specs. |
|
10767 + We currently have parsers that work on collections of components/bld.infs and that cannot |
|
10768 + parse at a "finer" level. So one can't 'unfurl' an mmp at the moment. |
|
10769 + |
|
10770 + Returns True if the object was successfully unfurled. |
|
10771 """ |
|
10772 |
|
10773 - self.specs = [] |
|
10774 - self.specs.extend(genericspecs) |
|
10775 - self.configs = configs |
|
10776 - self.dependencies = set() |
|
10777 + # setup all our components |
|
10778 + for c in self.children: |
|
10779 + c.specs = [] |
|
10780 + |
|
10781 + self.configs = build.buildUnitsToBuild |
|
10782 + |
|
10783 |
|
10784 metaReader = None |
|
10785 - if len (self.components): |
|
10786 + if len (self.children): |
|
10787 try: |
|
10788 # create a MetaReader that is aware of the list of |
|
10789 # configurations that we are trying to build. |
|
10790 - metaReader = raptor_meta.MetaReader(build, configs) |
|
10791 + metaReader = raptor_meta.MetaReader(build, build.buildUnitsToBuild) |
|
10792 |
|
10793 # convert the list of bld.inf files into a specification |
|
10794 # hierarchy suitable for all the configurations we are using. |
|
10795 - self.specs.extend(metaReader.ReadBldInfFiles(self.components,build.doExportOnly)) |
|
10796 + self.specs = list(build.generic_specs) |
|
10797 + self.specs.extend(metaReader.ReadBldInfFiles(self.children, doexport = build.doExport, dobuild = not build.doExportOnly)) |
|
10798 |
|
10799 except raptor_meta.MetaDataError, e: |
|
10800 - log.Error(e.Text) |
|
10801 - |
|
10802 - log.Info("Buildable specification group '%s'", name) |
|
10803 - build.AttachSpecs(self.specs) |
|
10804 - |
|
10805 - # Get a unique list of the dependency files that were created |
|
10806 - if metaReader: |
|
10807 - for c in metaReader.BuildPlatforms: |
|
10808 - self.dependencies.update(c["METADEPS"]) |
|
10809 - |
|
10810 - |
|
10811 - def CreateMakefile(self, makefilename_base, engine, named = False): |
|
10812 - if len(self.specs) <= 0: |
|
10813 - return None |
|
10814 - |
|
10815 - if named: |
|
10816 - makefile = generic_path.Path(str(makefilename_base) + "_" + raptor_utilities.sanitise(self.name)) |
|
10817 - else: |
|
10818 - makefile = generic_path.Path(str(makefilename_base)) |
|
10819 - |
|
10820 - # insert the start time into the Makefile name? |
|
10821 - makefile.path = makefile.path.replace("%TIME", build.timestring) |
|
10822 + build.Error(e.Text) |
|
10823 |
|
10824 - engine.Write(makefile, self.specs, self.configs) |
|
10825 + self.unfurled = True |
|
10826 |
|
10827 - return makefile |
|
10828 |
|
10829 + def meta_realise(self, build): |
|
10830 + """Generate specs that can be used to "take care of" finding out more |
|
10831 + about this metaunit - i.e. one doesn't want to parse it immediately |
|
10832 + but to create a makefile that will parse it. |
|
10833 + In this case it allows bld.infs to be parsed in parallel by make.""" |
|
10834 |
|
10835 - def GenerateMetadataSpecs(self, configs): |
|
10836 # insert the start time into the Makefile name? |
|
10837 |
|
10838 - self.configs = build.GetConfig("build").GenerateBuildUnits() |
|
10839 + self.configs = build.buildUnitsToBuild |
|
10840 |
|
10841 # Pass certain CLI flags through to the makefile-generating sbs calls |
|
10842 cli_options = "" |
|
10843 @@ -206,34 +338,53 @@ |
|
10844 if build.quiet == True: |
|
10845 cli_options += " -q" |
|
10846 |
|
10847 + if build.timing == True: |
|
10848 + cli_options += " --timing" |
|
10849 |
|
10850 - nc = len(self.components) |
|
10851 - number_blocks = 16 |
|
10852 + if build.noDependInclude == True: |
|
10853 + cli_options += " --no-depend-include" |
|
10854 + |
|
10855 + if build.noDependGenerate == True: |
|
10856 + cli_options += " --no-depend-generate" |
|
10857 + |
|
10858 + |
|
10859 + nc = len(self.children) |
|
10860 + number_blocks = build.jobs |
|
10861 block_size = (nc / number_blocks) + 1 |
|
10862 component_blocks = [] |
|
10863 spec_nodes = [] |
|
10864 |
|
10865 b = 0 |
|
10866 + childlist = list(self.children) |
|
10867 while b < nc: |
|
10868 - component_blocks.append(self.components[b:b+block_size]) |
|
10869 + component_blocks.append(childlist[b:b+block_size]) |
|
10870 b += block_size |
|
10871 |
|
10872 - if len(component_blocks[-1]) <= 0: |
|
10873 + while len(component_blocks[-1]) <= 0: |
|
10874 component_blocks.pop() |
|
10875 + number_blocks -= 1 |
|
10876 + |
|
10877 + build.Info("Parallel Parsing: bld.infs split into %d blocks\n", number_blocks) |
|
10878 + # Cause the binding makefiles to have the toplevel makefile's |
|
10879 + # name. The bindee's have __pp appended. |
|
10880 + tm = build.topMakefile.Absolute() |
|
10881 + binding_makefiles = raptor_makefile.MakefileSet(str(tm.Dir()), build.maker.selectors, makefiles=None, filenamebase=str(tm.File())) |
|
10882 + build.topMakefile = generic_path.Path(str(build.topMakefile) + "_pp") |
|
10883 |
|
10884 loop_number = 0 |
|
10885 for block in component_blocks: |
|
10886 loop_number += 1 |
|
10887 specNode = raptor_data.Specification("metadata_" + self.name) |
|
10888 |
|
10889 - componentList = " ".join([str(c) for c in block]) |
|
10890 - configList = " ".join([c.name for c in configs]) |
|
10891 + componentList = " ".join([str(c.bldinf_filename) for c in block]) |
|
10892 + |
|
10893 + |
|
10894 + configList = " ".join([c.name for c in self.configs if c.name != "build" ]) |
|
10895 |
|
10896 makefile_path = str(build.topMakefile) + "_" + str(loop_number) |
|
10897 try: |
|
10898 os.unlink(makefile_path) # until we have dependencies working properly |
|
10899 - except Exception,e: |
|
10900 - # print "couldn't unlink %s: %s" %(componentMakefileName, str(e)) |
|
10901 + except Exception: |
|
10902 pass |
|
10903 |
|
10904 # add some basic data in a component-wide variant |
|
10905 @@ -242,13 +393,19 @@ |
|
10906 var.AddOperation(raptor_data.Set("MAKEFILE_PATH", makefile_path)) |
|
10907 var.AddOperation(raptor_data.Set("CONFIGS", configList)) |
|
10908 var.AddOperation(raptor_data.Set("CLI_OPTIONS", cli_options)) |
|
10909 + |
|
10910 + |
|
10911 + # Allow the flm to skip exports. Note: this parameter |
|
10912 + doexport_str = '1' |
|
10913 + if not build.doExport: |
|
10914 + doexport_str = '' |
|
10915 + var.AddOperation(raptor_data.Set("DOEXPORT", doexport_str )) |
|
10916 + |
|
10917 # Pass on '-n' (if specified) to the makefile-generating sbs calls |
|
10918 if build.noBuild: |
|
10919 var.AddOperation(raptor_data.Set("NO_BUILD", "1")) |
|
10920 specNode.AddVariant(var) |
|
10921 |
|
10922 - |
|
10923 - |
|
10924 try: |
|
10925 interface = build.cache.FindNamedInterface("build.makefiles") |
|
10926 specNode.SetInterface(interface) |
|
10927 @@ -256,15 +413,30 @@ |
|
10928 build.Error("Can't find flm interface 'build.makefiles' ") |
|
10929 |
|
10930 spec_nodes.append(specNode) |
|
10931 + binding_makefiles.addInclude(str(makefile_path)+"_all") |
|
10932 |
|
10933 + build.InfoDiscovery(object_type = "layers", count = 1) |
|
10934 + build.InfoStartTime(object_type = "layer", task = "parse", |
|
10935 + key = str(build.topMakefile)) |
|
10936 + m = self.realise_makefile(build, spec_nodes) |
|
10937 + m.close() |
|
10938 + gen_result = build.Make(m) |
|
10939 + |
|
10940 + build.InfoEndTime(object_type = "layer", task = "parse", |
|
10941 + key = str(build.topMakefile)) |
|
10942 + build.InfoStartTime(object_type = "layer", task = "build", |
|
10943 + key = str(build.topMakefile)) |
|
10944 + build.Debug("Binding Makefile base name is %s ", binding_makefiles.filenamebase) |
|
10945 + binding_makefiles.close() |
|
10946 + b = build.Make(binding_makefiles) |
|
10947 + build.InfoEndTime(object_type = "layer", task = "build", |
|
10948 + key = str(build.topMakefile)) |
|
10949 + return b |
|
10950 |
|
10951 |
|
10952 - ## possibly some error handling here? |
|
10953 - |
|
10954 - self.specs = spec_nodes |
|
10955 |
|
10956 |
|
10957 -class BuildCompleteException(Exception): |
|
10958 +class BuildCannotProgressException(Exception): |
|
10959 pass |
|
10960 |
|
10961 # raptor module classes |
|
10962 @@ -326,8 +498,8 @@ |
|
10963 # things to initialise |
|
10964 self.args = [] |
|
10965 |
|
10966 - self.componentGroups = [] |
|
10967 - self.orderComponentGroups = False |
|
10968 + self.layers = [] |
|
10969 + self.orderLayers = False |
|
10970 self.commandlineComponents = [] |
|
10971 |
|
10972 self.systemModel = None |
|
10973 @@ -343,8 +515,10 @@ |
|
10974 self.maker = None |
|
10975 self.debugOutput = False |
|
10976 self.doExportOnly = False |
|
10977 + self.doExport = True |
|
10978 self.noBuild = False |
|
10979 self.noDependInclude = False |
|
10980 + self.noDependGenerate = False |
|
10981 self.projects = set() |
|
10982 |
|
10983 self.cache = raptor_cache.Cache(self) |
|
10984 @@ -360,6 +534,7 @@ |
|
10985 # what platform and filesystem are we running on? |
|
10986 self.filesystem = raptor_utilities.getOSFileSystem() |
|
10987 |
|
10988 + self.timing = False |
|
10989 self.toolset = None |
|
10990 |
|
10991 self.starttime = time.time() |
|
10992 @@ -374,6 +549,9 @@ |
|
10993 return True |
|
10994 |
|
10995 def AddConfigName(self, name): |
|
10996 + if name == "build": |
|
10997 + traceback.print_stack((sys.stdout)) |
|
10998 + sys.exit(1) |
|
10999 self.configNames.append(name) |
|
11000 return True |
|
11001 |
|
11002 @@ -439,6 +617,16 @@ |
|
11003 |
|
11004 def SetExportOnly(self, TrueOrFalse): |
|
11005 self.doExportOnly = TrueOrFalse |
|
11006 + if not self.doExport: |
|
11007 + self.Error("The --noexport and --export-only options are incompatible - won't to do anything useful") |
|
11008 + return False |
|
11009 + return True |
|
11010 + |
|
11011 + def SetNoExport(self, TrueOrFalse): |
|
11012 + self.doExport = not TrueOrFalse |
|
11013 + if self.doExportOnly: |
|
11014 + self.Error("The --noexport and --export-only options are incompatible - won't to do anything useful") |
|
11015 + return False |
|
11016 return True |
|
11017 |
|
11018 def SetNoBuild(self, TrueOrFalse): |
|
11019 @@ -449,6 +637,10 @@ |
|
11020 self.noDependInclude = TrueOrFalse |
|
11021 return True |
|
11022 |
|
11023 + def SetNoDependGenerate(self, TrueOrFalse): |
|
11024 + self.noDependGenerate = TrueOrFalse |
|
11025 + return True |
|
11026 + |
|
11027 def SetKeepGoing(self, TrueOrFalse): |
|
11028 self.keepGoing = TrueOrFalse |
|
11029 return True |
|
11030 @@ -503,10 +695,16 @@ |
|
11031 |
|
11032 return True |
|
11033 |
|
11034 + def SetTiming(self, TrueOrFalse): |
|
11035 + self.timing = TrueOrFalse |
|
11036 + return True |
|
11037 + |
|
11038 def SetParallelParsing(self, type): |
|
11039 type = type.lower() |
|
11040 if type == "on": |
|
11041 self.doParallelParsing = True |
|
11042 + elif type == "slave": |
|
11043 + self.isParallelParsingSlave = True |
|
11044 elif type == "off": |
|
11045 self.doParallelParsing = False |
|
11046 else: |
|
11047 @@ -529,7 +727,7 @@ |
|
11048 |
|
11049 def PrintVersion(self,dummy): |
|
11050 global name |
|
11051 - print name, "version", raptor_version.Version() |
|
11052 + print name, "version", raptor_version.fullversion() |
|
11053 self.mission = Raptor.M_VERSION |
|
11054 return False |
|
11055 |
|
11056 @@ -538,7 +736,7 @@ |
|
11057 def Introduction(self): |
|
11058 """Print a header of useful information about Raptor""" |
|
11059 |
|
11060 - self.Info("%s: version %s\n", name, raptor_version.Version()) |
|
11061 + self.Info("%s: version %s\n", name, raptor_version.fullversion()) |
|
11062 |
|
11063 self.Info("%s %s", env, str(self.home)) |
|
11064 self.Info("Set-up %s", str(self.raptorXML)) |
|
11065 @@ -546,8 +744,8 @@ |
|
11066 self.Info("Current working directory %s", os.getcwd()) |
|
11067 |
|
11068 # the inherited environment |
|
11069 - for e, value in os.environ.items(): |
|
11070 - self.Info("Environment %s=%s", e, value) |
|
11071 + for e, value in sorted( os.environ.items() ): |
|
11072 + self.Info("Environment %s=%s", e, value.replace("]]>", "]]>")) |
|
11073 |
|
11074 # and some general debug stuff |
|
11075 self.Debug("Platform %s", "-".join(hostplatform)) |
|
11076 @@ -659,32 +857,6 @@ |
|
11077 |
|
11078 self.cache.Load(self.systemFLM) |
|
11079 |
|
11080 - def GetConfig(self, configname): |
|
11081 - names = configname.split(".") |
|
11082 - |
|
11083 - cache = self.cache |
|
11084 - |
|
11085 - base = names[0] |
|
11086 - mods = names[1:] |
|
11087 - |
|
11088 - if base in cache.groups: |
|
11089 - x = cache.FindNamedGroup(base) |
|
11090 - elif base in cache.aliases: |
|
11091 - x = cache.FindNamedAlias(base) |
|
11092 - elif base in cache.variants: |
|
11093 - x = cache.FindNamedVariant(base) |
|
11094 - else: |
|
11095 - raise Exception("Unknown build configuration '%s'" % configname) |
|
11096 - |
|
11097 - x.ClearModifiers() |
|
11098 - |
|
11099 - |
|
11100 - try: |
|
11101 - for m in mods: x.AddModifier( cache.FindNamedVariant(m) ) |
|
11102 - except KeyError: |
|
11103 - raise Exception("Unknown build configuration '%s'" % configname) |
|
11104 - return x |
|
11105 - |
|
11106 def GetBuildUnitsToBuild(self, configNames): |
|
11107 """Return a list of the configuration objects that correspond to the |
|
11108 list of configuration names in the configNames parameter. |
|
11109 @@ -700,15 +872,7 @@ |
|
11110 else: |
|
11111 configNames.append(self.defaultConfig) |
|
11112 |
|
11113 - buildUnitsToBuild = set() |
|
11114 - |
|
11115 - |
|
11116 - for c in set(configNames): |
|
11117 - try: |
|
11118 - x = self.GetConfig(c) |
|
11119 - buildUnitsToBuild.update( x.GenerateBuildUnits() ) |
|
11120 - except Exception, e: |
|
11121 - self.FatalError(str(e)) |
|
11122 + buildUnitsToBuild = raptor_data.GetBuildUnits(configNames, self.cache, self) |
|
11123 |
|
11124 for b in buildUnitsToBuild: |
|
11125 self.Info("Buildable configuration '%s'", b.name) |
|
11126 @@ -770,13 +934,13 @@ |
|
11127 systemModel.DumpLayerInfo(layer) |
|
11128 |
|
11129 if systemModel.IsLayerBuildable(layer): |
|
11130 - layersToBuild.append(ComponentGroup(layer, |
|
11131 + layersToBuild.append(Layer(layer, |
|
11132 systemModel.GetLayerComponents(layer))) |
|
11133 |
|
11134 return layersToBuild |
|
11135 |
|
11136 |
|
11137 - # Add bld.inf or system definition xml to command line componentGroups (depending on preference) |
|
11138 + # Add bld.inf or system definition xml to command line layers (depending on preference) |
|
11139 def FindSysDefIn(self, aDir = None): |
|
11140 # Find a system definition file |
|
11141 |
|
11142 @@ -801,22 +965,12 @@ |
|
11143 dir = generic_path.Path(aDir) |
|
11144 |
|
11145 bldInf = dir.Append(self.buildInformation) |
|
11146 - componentgroup = [] |
|
11147 |
|
11148 if bldInf.isFile(): |
|
11149 return bldInf |
|
11150 |
|
11151 return None |
|
11152 |
|
11153 - def AttachSpecs(self, groups): |
|
11154 - # tell the specs which Raptor object they work for (so that they can |
|
11155 - # access the cache and issue warnings and errors) |
|
11156 - for spec in groups: |
|
11157 - spec.SetOwner(self) |
|
11158 - self.Info("Buildable specification '%s'", spec.name) |
|
11159 - if self.debugOutput: |
|
11160 - spec.DebugPrint() |
|
11161 - |
|
11162 def GenerateGenericSpecs(self, configsToBuild): |
|
11163 # if a Configuration has any config-wide interfaces |
|
11164 # then add a Specification node to call each of them. |
|
11165 @@ -832,7 +986,7 @@ |
|
11166 filter.AddConfigCondition(c.name) |
|
11167 else: |
|
11168 # create a new node |
|
11169 - filter = raptor_data.Filter("config_wide") |
|
11170 + filter = raptor_data.Filter(name = "config_wide") |
|
11171 filter.AddConfigCondition(c.name) |
|
11172 for i in iface.split(): |
|
11173 spec = raptor_data.Specification(i) |
|
11174 @@ -842,50 +996,25 @@ |
|
11175 configWide[iface] = filter |
|
11176 genericSpecs.append(filter) |
|
11177 |
|
11178 - self.AttachSpecs(genericSpecs) |
|
11179 - |
|
11180 return genericSpecs |
|
11181 |
|
11182 |
|
11183 - def WriteMetadataDepsMakefile(self, component_group): |
|
11184 - """ Takes a list of (filename, target) tuples that indicate where """ |
|
11185 - # Create a Makefile that includes all the dependency information for this spec group |
|
11186 - build_metamakefile_name = \ |
|
11187 - os.path.abspath(sbs_build_dir).replace('\\','/').rstrip('/') + \ |
|
11188 - '/metadata_%s.mk' % component_group.name.lower() |
|
11189 - bmkmf = open(build_metamakefile_name, "w+") |
|
11190 - bmkmf.write("# Build Metamakefile - Dependencies for metadata during the 'previous' build\n\n") |
|
11191 - bmkmf.write("PARSETARGET:=%s\n" % build_metamakefile_name) |
|
11192 - bmkmf.write("%s: \n" % build_metamakefile_name) |
|
11193 - bmkmf.write("\t@echo -e \"\\nRE-RUNNING SBS with previous parameters\"\n") |
|
11194 - bmkmf.write("\t@echo pretend-sbs %s\n" % " ".join(self.args)) |
|
11195 - try: |
|
11196 - for m in component_group.dependencies: |
|
11197 - filename, target = m |
|
11198 - bmkmf.write("-include %s\n\n" % filename) |
|
11199 - finally: |
|
11200 - bmkmf.close() |
|
11201 - |
|
11202 - return build_metamakefile_name |
|
11203 - |
|
11204 - |
|
11205 def GetEvaluator(self, specification, configuration, gathertools=False): |
|
11206 """ this will perform some caching later """ |
|
11207 - return raptor_data.Evaluator(self, specification, configuration, gathertools=gathertools) |
|
11208 - |
|
11209 - |
|
11210 - def areMakefilesUptodate(self): |
|
11211 - return False |
|
11212 + return raptor_data.Evaluator(specification, configuration, gathertools=gathertools, cache = self.cache) |
|
11213 |
|
11214 |
|
11215 - def Make(self, makefile): |
|
11216 - |
|
11217 - if self.maker.Make(makefile): |
|
11218 + def Make(self, makefileset): |
|
11219 + if not self.noBuild and makefileset is not None: |
|
11220 + if self.maker.Make(makefileset): |
|
11221 self.Info("The make-engine exited successfully.") |
|
11222 return True |
|
11223 else: |
|
11224 self.Error("The make-engine exited with errors.") |
|
11225 return False |
|
11226 + else: |
|
11227 + self.Info("No build performed") |
|
11228 + |
|
11229 |
|
11230 |
|
11231 def Report(self): |
|
11232 @@ -898,10 +1027,10 @@ |
|
11233 self.Info("Run time %s seconds" % self.runtime) |
|
11234 |
|
11235 def AssertBuildOK(self): |
|
11236 - """Raise a BuildCompleteException if no further processing is required |
|
11237 + """Raise a BuildCannotProgressException if no further processing is required |
|
11238 """ |
|
11239 if self.Skip(): |
|
11240 - raise BuildCompleteException("") |
|
11241 + raise BuildCannotProgressException("") |
|
11242 |
|
11243 return True |
|
11244 |
|
11245 @@ -934,17 +1063,17 @@ |
|
11246 self.out.write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n") |
|
11247 |
|
11248 namespace = "http://symbian.com/xml/build/log" |
|
11249 + progress_namespace = "http://symbian.com/xml/build/log/progress" |
|
11250 schema = "http://symbian.com/xml/build/log/1_0.xsd" |
|
11251 |
|
11252 - self.out.write("<buildlog sbs_version=\"%s\" xmlns=\"%s\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"%s %s\">\n" |
|
11253 - % (raptor_version.Version(), namespace, namespace, schema)) |
|
11254 + self.out.write("<buildlog sbs_version=\"%s\" xmlns=\"%s\" xmlns:progress=\"%s\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"%s %s\">\n" |
|
11255 + % (raptor_version.fullversion(), namespace, progress_namespace, namespace, schema)) |
|
11256 self.logOpen = True |
|
11257 except Exception,e: |
|
11258 self.out = sys.stdout # make sure that we can actually get errors out. |
|
11259 self.logOpen = False |
|
11260 self.FatalError("Unable to open the output logs: %s" % str(e)) |
|
11261 |
|
11262 - |
|
11263 def CloseLog(self): |
|
11264 if self.logOpen: |
|
11265 self.out.summary() |
|
11266 @@ -976,6 +1105,30 @@ |
|
11267 self.out.write("<info" + self.attributeString(attributes) + ">" + |
|
11268 escape(format % extras) + "</info>\n") |
|
11269 |
|
11270 + def InfoDiscovery(self, object_type, count): |
|
11271 + if self.timing: |
|
11272 + try: |
|
11273 + self.out.write(raptor_timing.Timing.discovery_string(object_type = object_type, |
|
11274 + count = count)) |
|
11275 + except Exception, exception: |
|
11276 + self.Error(exception.Text, function = "InfoDiscoveryTime") |
|
11277 + |
|
11278 + def InfoStartTime(self, object_type, task, key): |
|
11279 + if self.timing: |
|
11280 + try: |
|
11281 + self.out.write(raptor_timing.Timing.start_string(object_type = object_type, |
|
11282 + task = task, key = key)) |
|
11283 + except Exception, exception: |
|
11284 + self.Error(exception.Text, function = "InfoStartTime") |
|
11285 + |
|
11286 + def InfoEndTime(self, object_type, task, key): |
|
11287 + if self.timing: |
|
11288 + try: |
|
11289 + self.out.write(raptor_timing.Timing.end_string(object_type = object_type, |
|
11290 + task = task, key = key)) |
|
11291 + except Exception, exception: |
|
11292 + self.Error(exception.Text, function = "InfoEndTime") |
|
11293 + |
|
11294 def Debug(self, format, *extras, **attributes): |
|
11295 "Send a debugging message to the configured channel" |
|
11296 |
|
11297 @@ -1019,28 +1172,11 @@ |
|
11298 if format: |
|
11299 self.out.write(format % extras) |
|
11300 |
|
11301 - |
|
11302 - def MakeComponentGroup(self, cg): |
|
11303 - if not self.maker: |
|
11304 - self.maker = raptor_make.MakeEngine(self) |
|
11305 - |
|
11306 - if self.maker == None: |
|
11307 - self.Error("No make engine present") |
|
11308 - return None |
|
11309 - |
|
11310 - makefile = cg.CreateMakefile(self.topMakefile, self.maker, self.systemDefinitionOrderLayers) |
|
11311 - if (not self.noBuild and makefile is not None) \ |
|
11312 - or self.doParallelParsing: |
|
11313 - # run the build for a single group of specs |
|
11314 - self.Make(makefile) |
|
11315 - else: |
|
11316 - self.Info("No build performed for %s" % cg.name) |
|
11317 - |
|
11318 - def GetComponentGroupsFromCLI(self): |
|
11319 - """Returns the list of componentGroups as specified by the |
|
11320 + def GetLayersFromCLI(self): |
|
11321 + """Returns the list of layers as specified by the |
|
11322 commandline interface to Raptor e.g. parameters |
|
11323 or the current directory""" |
|
11324 - componentGroups=[] |
|
11325 + layers=[] |
|
11326 # Look for bld.infs or sysdefs in the current dir if none were specified |
|
11327 if self.systemDefinitionFile == None and len(self.commandlineComponents) == 0: |
|
11328 if not self.preferBuildInfoToSystemDefinition: |
|
11329 @@ -1049,38 +1185,39 @@ |
|
11330 if self.systemDefinitionFile == None: |
|
11331 aComponent = self.FindComponentIn(cwd) |
|
11332 if aComponent: |
|
11333 - componentGroups.append(ComponentGroup('default',[aComponent])) |
|
11334 + layers.append(Layer('default',[aComponent])) |
|
11335 else: |
|
11336 aComponent = self.FindComponentIn(cwd) |
|
11337 if aComponent is None: |
|
11338 self.systemDefinitionFile = self.FindSysDefIn(cwd) |
|
11339 else: |
|
11340 - componentGroups.append(ComponentGroup('default',[aComponent])) |
|
11341 + layers.append(Layer('default',[aComponent])) |
|
11342 |
|
11343 - if len(componentGroups) <= 0 and self.systemDefinitionFile == None: |
|
11344 + if len(layers) <= 0 and self.systemDefinitionFile == None: |
|
11345 self.Warn("No default bld.inf or system definition file found in current directory (%s)", cwd) |
|
11346 |
|
11347 # If we now have a System Definition to parse then get the layers of components |
|
11348 if self.systemDefinitionFile != None: |
|
11349 systemModel = raptor_xml.SystemModel(self, self.systemDefinitionFile, self.systemDefinitionBase) |
|
11350 - componentGroups = self.GatherSysModelLayers(systemModel, self.systemDefinitionRequestedLayers) |
|
11351 + layers = self.GatherSysModelLayers(systemModel, self.systemDefinitionRequestedLayers) |
|
11352 |
|
11353 # Now get components specified on a commandline - build them after any |
|
11354 # layers in the system definition. |
|
11355 if len(self.commandlineComponents) > 0: |
|
11356 - componentGroups.append(ComponentGroup('commandline',self.commandlineComponents)) |
|
11357 + layers.append(Layer('commandline',self.commandlineComponents)) |
|
11358 |
|
11359 # If we aren't building components in order then flatten down |
|
11360 # the groups |
|
11361 if not self.systemDefinitionOrderLayers: |
|
11362 # Flatten the layers into one group of components if |
|
11363 # we are not required to build them in order. |
|
11364 - newcg = ComponentGroup("all") |
|
11365 - for cg in componentGroups: |
|
11366 - newcg.extend(cg) |
|
11367 - componentGroups = [newcg] |
|
11368 + newcg = Layer("all") |
|
11369 + for cg in layers: |
|
11370 + for c in cg: |
|
11371 + newcg.add(c) |
|
11372 + layers = [newcg] |
|
11373 |
|
11374 - return componentGroups |
|
11375 + return layers |
|
11376 |
|
11377 def Build(self): |
|
11378 |
|
11379 @@ -1102,20 +1239,24 @@ |
|
11380 |
|
11381 # find out what configurations to build |
|
11382 self.AssertBuildOK() |
|
11383 - buildUnitsToBuild = set() |
|
11384 buildUnitsToBuild = self.GetBuildUnitsToBuild(self.configNames) |
|
11385 |
|
11386 + if len(buildUnitsToBuild) == 0: |
|
11387 + raise BuildCannotProgressException("No configurations to build.") |
|
11388 + |
|
11389 + self.buildUnitsToBuild = buildUnitsToBuild |
|
11390 + |
|
11391 # find out what components to build, and in what way |
|
11392 - componentGroups = [] |
|
11393 + layers = [] |
|
11394 |
|
11395 self.AssertBuildOK() |
|
11396 if len(buildUnitsToBuild) >= 0: |
|
11397 - componentGroups = self.GetComponentGroupsFromCLI() |
|
11398 + layers = self.GetLayersFromCLI() |
|
11399 |
|
11400 - componentCount = reduce(lambda x,y : x + y, [len(cg) for cg in componentGroups]) |
|
11401 + componentCount = reduce(lambda x,y : x + y, [len(cg) for cg in layers]) |
|
11402 |
|
11403 if not componentCount > 0: |
|
11404 - raise BuildCompleteException("No components to build.") |
|
11405 + raise BuildCannotProgressException("No components to build.") |
|
11406 |
|
11407 # check the configurations (tools versions) |
|
11408 self.AssertBuildOK() |
|
11409 @@ -1123,35 +1264,36 @@ |
|
11410 if self.toolcheck != 'off': |
|
11411 self.CheckConfigs(buildUnitsToBuild) |
|
11412 else: |
|
11413 - self.Info(" Not Checking Tool Versions") |
|
11414 + self.Info("Not Checking Tool Versions") |
|
11415 |
|
11416 self.AssertBuildOK() |
|
11417 |
|
11418 + # Setup a make engine. |
|
11419 + if not self.maker: |
|
11420 + try: |
|
11421 + self.maker = raptor_make.MakeEngine(self, self.makeEngine) |
|
11422 + except raptor_make.BadMakeEngineException,e: |
|
11423 + self.Error("Unable to use make engine: %s " % str(e)) |
|
11424 |
|
11425 - # if self.doParallelParsing and not (len(componentGroups) == 1 and len(componentGroups[0]) == 1): |
|
11426 + |
|
11427 + self.AssertBuildOK() |
|
11428 + |
|
11429 + # if self.doParallelParsing and not (len(layers) == 1 and len(layers[0]) == 1): |
|
11430 if self.doParallelParsing: |
|
11431 # Create a Makefile to parse components in parallel and build them |
|
11432 - for cg in componentGroups: |
|
11433 - cg.GenerateMetadataSpecs(buildUnitsToBuild) |
|
11434 - self.MakeComponentGroup(cg) |
|
11435 - if self.noBuild: |
|
11436 - self.Info("No build performed") |
|
11437 + for l in layers: |
|
11438 + l.meta_realise(self) |
|
11439 else: |
|
11440 # Parse components serially, creating one set of makefiles |
|
11441 # create non-component specs |
|
11442 - self.AssertBuildOK() |
|
11443 - generic_specs = self.GenerateGenericSpecs(buildUnitsToBuild) |
|
11444 + self.generic_specs = self.GenerateGenericSpecs(buildUnitsToBuild) |
|
11445 |
|
11446 self.AssertBuildOK() |
|
11447 - for cg in componentGroups: |
|
11448 + for l in layers: |
|
11449 # create specs for a specific group of components |
|
11450 - cg.GenerateSpecs(generic_specs, buildUnitsToBuild) |
|
11451 - self.WriteMetadataDepsMakefile(cg) |
|
11452 + l.realise(self) |
|
11453 |
|
11454 - # generate the makefiles for one group of specs |
|
11455 - self.MakeComponentGroup(cg) |
|
11456 - |
|
11457 - except BuildCompleteException,b: |
|
11458 + except BuildCannotProgressException,b: |
|
11459 if str(b) != "": |
|
11460 self.Info(str(b)) |
|
11461 |
|
11462 @@ -1185,6 +1327,8 @@ |
|
11463 class BuildStats(object): |
|
11464 |
|
11465 def __init__(self, raptor_instance): |
|
11466 + self.incoming_epocroot = incoming_epocroot |
|
11467 + self.epocroot = epocroot |
|
11468 self.logFileName = raptor_instance.logFileName |
|
11469 self.quiet = raptor_instance.quiet |
|
11470 self.doCheck = raptor_instance.doCheck |
|
11471 @@ -1212,17 +1356,7 @@ |
|
11472 # object which represents a build |
|
11473 b = Raptor.CreateCommandlineBuild(argv) |
|
11474 |
|
11475 - # allow all objects to log to the |
|
11476 - # build they're being used in |
|
11477 - global build |
|
11478 - global log |
|
11479 - build = b |
|
11480 - log = b |
|
11481 - |
|
11482 - |
|
11483 - result = b.Build() |
|
11484 - |
|
11485 - return result |
|
11486 + return b.Build() |
|
11487 |
|
11488 |
|
11489 def DisplayBanner(): |
|
11490 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python: raptor_timing.py |
|
11491 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_version.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_version.py |
|
11492 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_version.py 2010-05-18 19:32:34.793348934 +0100 |
|
11493 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_version.py 2010-05-17 18:47:53.100842000 +0100 |
|
11494 @@ -1,5 +1,5 @@ |
|
11495 # |
|
11496 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11497 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11498 # All rights reserved. |
|
11499 # This component and the accompanying materials are made available |
|
11500 # under the terms of the License "Eclipse Public License v1.0" |
|
11501 @@ -13,8 +13,15 @@ |
|
11502 # |
|
11503 # Description: |
|
11504 # raptor version information module |
|
11505 -# |
|
11506 |
|
11507 -def Version(): |
|
11508 +# replace CHANGESET with the Hg changeset for ANY release |
|
11509 + |
|
11510 +version=(2,13,0,"2010-04-12","symbian build system","CHANGESET") |
|
11511 + |
|
11512 +def numericversion(): |
|
11513 + """Raptor version string""" |
|
11514 + return "%d.%d.%d" % version[:3] |
|
11515 + |
|
11516 +def fullversion(): |
|
11517 """Raptor version string""" |
|
11518 - return "2.10.1 [2009-10-27 sf prerelease]" |
|
11519 + return "%d.%d.%d [%s %s %s]" % version |
|
11520 Only in /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python: raptor_version.py.bak |
|
11521 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_xml.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_xml.py |
|
11522 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/python/raptor_xml.py 2010-05-18 19:32:34.793348934 +0100 |
|
11523 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/python/raptor_xml.py 2010-05-17 18:47:53.100842000 +0100 |
|
11524 @@ -1,5 +1,5 @@ |
|
11525 # |
|
11526 -# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11527 +# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11528 # All rights reserved. |
|
11529 # This component and the accompanying materials are made available |
|
11530 # under the terms of the License "Eclipse Public License v1.0" |
|
11531 @@ -144,9 +144,10 @@ |
|
11532 """Path sub-class that wraps up a component bld.inf file with |
|
11533 system_definition.xml context information.""" |
|
11534 |
|
11535 - def __init__(self, aBldInfFile, aContainerNames, aSystemDefinitionFile, aSystemDefinitionBase, aSystemDefinitionVersion): |
|
11536 + def __init__(self, aBldInfFile, aLayerName, aContainerNames, aSystemDefinitionFile, aSystemDefinitionBase, aSystemDefinitionVersion): |
|
11537 generic_path.Path.__init__(self, aBldInfFile.Absolute().path) |
|
11538 self.__ContainerNames = aContainerNames |
|
11539 + self.__LayerName = aLayerName |
|
11540 self.__SystemDefinitionFile = aSystemDefinitionFile |
|
11541 self.__SystemDefinitionBase = aSystemDefinitionBase |
|
11542 self.__SystemDefinitionVersion = aSystemDefinitionVersion |
|
11543 @@ -157,9 +158,12 @@ |
|
11544 def GetSystemDefinitionBase(self): |
|
11545 return self.__SystemDefinitionBase |
|
11546 |
|
11547 - def GetSystemDefinitionFile(self): |
|
11548 + def GetSystemDefinitionVersion(self): |
|
11549 return self.__SystemDefinitionVersion |
|
11550 |
|
11551 + def GetLayerName(self): |
|
11552 + return self.__LayerName |
|
11553 + |
|
11554 def GetContainerName(self, aContainerType): |
|
11555 if self.__ContainerNames.has_key(aContainerType): |
|
11556 return self.__ContainerNames[aContainerType] |
|
11557 @@ -174,6 +178,7 @@ |
|
11558 self.__SystemDefinitionFile = aSystemDefinitionFile.GetLocalString() |
|
11559 self.__SystemDefinitionBase = aSystemDefinitionBase.GetLocalString() |
|
11560 self.__Version = {'MAJOR':0,'MID':0,'MINOR':0} |
|
11561 + self.__IdAttribute = "name" |
|
11562 self.__ComponentRoot = "" |
|
11563 self.__TotalComponents = 0 |
|
11564 self.__LayerList = [] |
|
11565 @@ -222,6 +227,10 @@ |
|
11566 def DumpInfo(self): |
|
11567 self.__Logger.Info("Found %d bld.inf references in %s within %d layers:", len(self.GetAllComponents()), self.__SystemDefinitionFile, len(self.GetLayerNames())) |
|
11568 self.__Logger.Info("\t%s", ", ".join(self.GetLayerNames())) |
|
11569 + self.__Logger.InfoDiscovery(object_type = "layers", |
|
11570 + count = len(self.GetLayerNames())) |
|
11571 + self.__Logger.InfoDiscovery(object_type = "bld.inf references", |
|
11572 + count = len(self.GetAllComponents())) |
|
11573 |
|
11574 def __Read(self): |
|
11575 if not os.path.exists(self.__SystemDefinitionFile): |
|
11576 @@ -259,42 +268,62 @@ |
|
11577 |
|
11578 if self.__Version['MAJOR'] == 1 and self.__Version['MID'] > 2: |
|
11579 self.__ComponentRoot = self.__SystemDefinitionBase |
|
11580 - elif self.__Version['MAJOR'] == 2: |
|
11581 - # 2.0.0 format supports SOURCEROOT as an environment specified base - we respect this, unless |
|
11582 + elif self.__Version['MAJOR'] == 2 or self.__Version['MAJOR'] == 3: |
|
11583 + # 2.0.x and 3.0.0 formats support SOURCEROOT or SRCROOT as an environment specified base - we respect this, unless |
|
11584 # explicitly overridden on the command line |
|
11585 - if os.environ.has_key('SOURCEROOT'): |
|
11586 + if os.environ.has_key('SRCROOT'): |
|
11587 + self.__ComponentRoot = generic_path.Path(os.environ['SRCROOT']) |
|
11588 + elif os.environ.has_key('SOURCEROOT'): |
|
11589 self.__ComponentRoot = generic_path.Path(os.environ['SOURCEROOT']) |
|
11590 + |
|
11591 if self.__SystemDefinitionBase and self.__SystemDefinitionBase != ".": |
|
11592 self.__ComponentRoot = self.__SystemDefinitionBase |
|
11593 - if os.environ.has_key('SOURCEROOT'): |
|
11594 + if os.environ.has_key('SRCROOT'): |
|
11595 + self.__Logger.Info("Command line specified System Definition file base \'%s\' overriding environment SRCROOT \'%s\'", self.__SystemDefinitionBase, os.environ['SRCROOT']) |
|
11596 + elif os.environ.has_key('SOURCEROOT'): |
|
11597 self.__Logger.Info("Command line specified System Definition file base \'%s\' overriding environment SOURCEROOT \'%s\'", self.__SystemDefinitionBase, os.environ['SOURCEROOT']) |
|
11598 else: |
|
11599 self.__Logger.Error("Cannot process schema version %s of file %s", version.string, self.__SystemDefinitionFile) |
|
11600 return False |
|
11601 |
|
11602 + if self.__Version['MAJOR'] >= 3: |
|
11603 + # id is the unique identifier for 3.0 and later schema |
|
11604 + self.__IdAttribute = "id" |
|
11605 + |
|
11606 return True |
|
11607 |
|
11608 def __Parse(self): |
|
11609 - # find the <systemModel> element (there can be 0 or 1) and search any <layer> elements for <unit> elements with "bldFile" attributes |
|
11610 + # For 2.0 and earlier: find the <systemModel> element (there can be 0 or 1) and search any <layer> elements for <unit> elements with "bldFile" attributes |
|
11611 # the <layer> context of captured "bldFile" attributes is recorded as we go |
|
11612 + # For 3.0 and later, process any architectural topmost element, use the topmost element with an id as the "layer" |
|
11613 for child in self.__SystemDefinitionElement.childNodes: |
|
11614 - if child.localName == "systemModel": |
|
11615 + if child.localName in ["systemModel", "layer", "package", "collection", "component"]: |
|
11616 self.__ProcessSystemModelElement(child) |
|
11617 |
|
11618 def __CreateComponent(self, aBldInfFile, aUnitElement): |
|
11619 # take a resolved bld.inf file and associated <unit/> element and returns a populated Component object |
|
11620 containers = {} |
|
11621 self.__GetElementContainers(aUnitElement, containers) |
|
11622 - component = SystemModelComponent(aBldInfFile, containers, self.__SystemDefinitionFile, self.__SystemDefinitionBase, self.__Version) |
|
11623 + layer = self.__GetEffectiveLayer(aUnitElement) |
|
11624 + component = SystemModelComponent(aBldInfFile, layer, containers, self.__SystemDefinitionFile, self.__SystemDefinitionBase, self.__Version) |
|
11625 |
|
11626 return component |
|
11627 |
|
11628 + def __GetEffectiveLayer(self, aElement): |
|
11629 + #' return the ID of the topmost item which has an ID. For 1.x and 2.x, this will always be layer, for 3.x, it will be the topmost ID'd element in the file |
|
11630 + # never call this on the root element |
|
11631 + if aElement.parentNode.hasAttribute(self.__IdAttribute): |
|
11632 + return self.__GetEffectiveLayer(aElement.parentNode) |
|
11633 + elif aElement.hasAttribute(self.__IdAttribute): |
|
11634 + return aElement.getAttribute(self.__IdAttribute) |
|
11635 + return "" |
|
11636 + |
|
11637 def __GetElementContainers(self, aElement, aContainers): |
|
11638 # take a <unit/> element and creates a type->name dictionary of all of its parent containers |
|
11639 # We're only interested in parent nodes if they're not the top-most node |
|
11640 if aElement.parentNode.parentNode: |
|
11641 parent = aElement.parentNode |
|
11642 - name = parent.getAttribute("name") |
|
11643 + name = parent.getAttribute(self.__IdAttribute) |
|
11644 |
|
11645 if name: |
|
11646 aContainers[parent.tagName] = name |
|
11647 @@ -305,8 +334,9 @@ |
|
11648 """Search for XML <unit/> elements with 'bldFile' attributes and resolve concrete bld.inf locations |
|
11649 with an appreciation of different schema versions.""" |
|
11650 |
|
11651 - if aElement.tagName == "layer": |
|
11652 - currentLayer = aElement.getAttribute("name") |
|
11653 + # The effective "layer" is the item whose parent does not have an id (or name in 2.x and earlier) |
|
11654 + if not aElement.parentNode.hasAttribute(self.__IdAttribute) : |
|
11655 + currentLayer = aElement.getAttribute(self.__IdAttribute) |
|
11656 |
|
11657 if not self.__LayerDetails.has_key(currentLayer): |
|
11658 self.__LayerDetails[currentLayer] = [] |
|
11659 @@ -320,10 +350,10 @@ |
|
11660 if bldFileValue: |
|
11661 bldInfRoot = self.__ComponentRoot |
|
11662 |
|
11663 - if self.__Version['MAJOR'] == 1 and self.__Version['MID'] == 4: |
|
11664 - # version 1.4.x schema paths can use DOS slashes |
|
11665 + if self.__Version['MAJOR'] == 1: |
|
11666 + # version 1.x schema paths can use DOS slashes |
|
11667 bldFileValue = raptor_utilities.convertToUnixSlash(bldFileValue) |
|
11668 - elif self.__Version['MAJOR'] == 2: |
|
11669 + elif self.__Version['MAJOR'] >= 2: |
|
11670 # version 2.x.x schema paths are subject to a "root" attribute off-set, if it exists |
|
11671 rootValue = aElement.getAttribute("root") |
|
11672 |
|
11673 @@ -338,8 +368,14 @@ |
|
11674 |
|
11675 group = generic_path.Path(bldFileValue) |
|
11676 |
|
11677 + if self.__Version['MAJOR'] < 3: |
|
11678 + # absolute paths are not changed by root var in 1.x and 2.x |
|
11679 if not group.isAbsolute() and bldInfRoot: |
|
11680 group = generic_path.Join(bldInfRoot, group) |
|
11681 + else: |
|
11682 + # only absolute paths are changed by root var in 3.x |
|
11683 + if group.isAbsolute() and bldInfRoot: |
|
11684 + group = generic_path.Join(bldInfRoot, group) |
|
11685 |
|
11686 bldinf = generic_path.Join(group, "bld.inf").FindCaseless() |
|
11687 |
|
11688 @@ -347,7 +383,7 @@ |
|
11689 self.__Logger.Error("No bld.inf found at %s in %s", group.GetLocalString(), self.__SystemDefinitionFile) |
|
11690 else: |
|
11691 component = self.__CreateComponent(bldinf, aElement) |
|
11692 - layer = component.GetContainerName("layer") |
|
11693 + layer = component.GetLayerName() |
|
11694 if layer: |
|
11695 self.__LayerDetails[layer].append(component) |
|
11696 self.__TotalComponents += 1 |
|
11697 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: RELEASE-NOTES.html |
|
11698 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/schema/build/log/1_0.xsd /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/schema/build/log/1_0.xsd |
|
11699 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/schema/build/log/1_0.xsd 2010-05-18 19:32:34.797348465 +0100 |
|
11700 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/schema/build/log/1_0.xsd 2010-05-17 18:47:53.100842000 +0100 |
|
11701 @@ -3,7 +3,7 @@ |
|
11702 |
|
11703 <xsd:annotation> |
|
11704 <xsd:documentation xml:lang="en"> |
|
11705 - Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11706 + Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11707 All rights reserved. |
|
11708 This component and the accompanying materials are made available |
|
11709 uunder the terms of the License "Eclipse Public License v1.0" |
|
11710 @@ -60,7 +60,8 @@ |
|
11711 <xsd:attribute name="name" type="xsd:string"/> |
|
11712 <xsd:attribute name="project" type="xsd:string"/> |
|
11713 <xsd:attribute name="component" type="xsd:string"/> |
|
11714 - <xsd:attribute name="forcesuccess" type="xsd:string"/> |
|
11715 + <xsd:attribute name="flags" type="xsd:string"/> |
|
11716 + <xsd:attribute name="reason" type="xsd:string"/> |
|
11717 </xsd:complexType> |
|
11718 </xsd:element> |
|
11719 </xsd:sequence> |
|
11720 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor: test |
|
11721 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util: build |
|
11722 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/config.h /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/config.h |
|
11723 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/config.h 2010-05-18 19:32:34.797348465 +0100 |
|
11724 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/config.h 2010-05-17 18:47:53.584842000 +0100 |
|
11725 @@ -1,5 +1,5 @@ |
|
11726 /* |
|
11727 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11728 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11729 * All rights reserved. |
|
11730 * This component and the accompanying materials are made available |
|
11731 * under the terms of the License "Eclipse Public License v1.0" |
|
11732 @@ -21,6 +21,7 @@ |
|
11733 #define HAS_GETCOMMANDLINE 1 |
|
11734 #define HAS_MILLISECONDSLEEP 1 |
|
11735 #define HAS_MSVCRT 1 |
|
11736 +#define HAS_WINSOCK2 1 |
|
11737 #else |
|
11738 #define HAS_POLL 1 |
|
11739 #define HAS_SETENV 1 |
|
11740 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/gccprogram.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/gccprogram.mk |
|
11741 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/gccprogram.mk 2010-05-18 19:32:35.141349393 +0100 |
|
11742 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/gccprogram.mk 2010-05-17 18:47:53.976844000 +0100 |
|
11743 @@ -1,5 +1,5 @@ |
|
11744 # |
|
11745 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11746 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11747 # All rights reserved. |
|
11748 # This component and the accompanying materials are made available |
|
11749 # under the terms of the License "Eclipse Public License v1.0" |
|
11750 @@ -62,7 +62,7 @@ |
|
11751 $(foreach SOURCEFILE,$(SOURCES),$(c2obj)) |
|
11752 |
|
11753 $(BINDIR)/$(TARGET)$(PROGRAMEXT): $$(OBJECTS) |
|
11754 - gcc $(LDFLAGS) $$^ -o $$@ |
|
11755 + gcc $$^ $(LDFLAGS) -o $$@ |
|
11756 |
|
11757 $$(shell mkdir -p $(OUTPUTPATH)/$(TARGET)) |
|
11758 |
|
11759 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-linux/package_sbs.sh /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-linux/package_sbs.sh |
|
11760 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-linux/package_sbs.sh 2010-05-18 19:32:35.141349393 +0100 |
|
11761 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-linux/package_sbs.sh 2010-05-17 18:47:53.984845000 +0100 |
|
11762 @@ -1,6 +1,6 @@ |
|
11763 #!/bin/bash |
|
11764 |
|
11765 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11766 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11767 # All rights reserved. |
|
11768 # This component and the accompanying materials are made available |
|
11769 # under the terms of the License "Eclipse Public License v1.0" |
|
11770 @@ -61,7 +61,7 @@ |
|
11771 fi |
|
11772 |
|
11773 |
|
11774 - echo init.xml LICENSE.txt RELEASE-NOTES.txt; cd $SBS_HOME && find bin lib $BINARIES python test schema util | |
|
11775 + cd $SBS_HOME && find license.txt RELEASE-NOTES.html bin lib notes $BINARIES python test schema util | |
|
11776 grep -v "$TMPSBS"'/python/\.py$' | |
|
11777 grep -v 'flm/test' | |
|
11778 grep -v 'util/build' | |
|
11779 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py |
|
11780 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py 2010-05-18 19:32:35.169348622 +0100 |
|
11781 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallermaker.py 2010-05-17 18:47:54.040845000 +0100 |
|
11782 @@ -1,5 +1,5 @@ |
|
11783 # |
|
11784 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11785 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11786 # All rights reserved. |
|
11787 # This component and the accompanying materials are made available |
|
11788 # under the terms of the License "Eclipse Public License v1.0" |
|
11789 @@ -30,40 +30,83 @@ |
|
11790 tempdir = "" |
|
11791 |
|
11792 parser = optparse.OptionParser() |
|
11793 -parser.add_option("-s", "--sbs_home", dest="sbs_home", |
|
11794 - help="Path to use as SBS_HOME environment variable. If not present the script exits.") |
|
11795 + |
|
11796 +parser.add_option("-s", "--sbs-home", dest="sbshome", help="Path to use as SBS_HOME environment variable. If not present the script exits.") |
|
11797 + |
|
11798 +parser.add_option("-w", "--win32-support", dest="win32support", help="Path to Win32 support directory. If not present the script exits.") |
|
11799 + |
|
11800 +parser.add_option("-b", "--bv", dest="bv", help="Path to Binary variation CPP \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.") |
|
11801 + |
|
11802 +parser.add_option("-c", "--cygwin", dest="cygwin", help="Path to Cygwin \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.") |
|
11803 + |
|
11804 +parser.add_option("-m", "--mingw", dest="mingw", help="Path to MinGW \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.") |
|
11805 + |
|
11806 +parser.add_option("-p", "--python", dest="python", help="Path to Python \"root\" directory. Can be a full/relatitve path; prefix with \"WIN32SUPPORT\\\" to be relative to the Win32 support directory. Omitting this value will assume a default to a path inside the Win32 support directory.") |
|
11807 + |
|
11808 +parser.add_option("--prefix", dest="versionprefix", help="A string to use as a prefix to the Raptor version string. This will be present in the Raptor installer's file name, the installer's pages as well as the in output from sbs -v.", type="string", default="") |
|
11809 + |
|
11810 +parser.add_option("--postfix", dest="versionpostfix", help="A string to use as a postfix to the Raptor version string. This will be present in the Raptor installer's file name, the installer's pages as well as the in output from sbs -v.", type="string", default="") |
|
11811 |
|
11812 (options, args) = parser.parse_args() |
|
11813 |
|
11814 -if options.sbs_home == None: |
|
11815 +# Required directories inside the win32-support repository |
|
11816 +win32supportdirs = {"bv":"bv", "cygwin":"cygwin", "mingw":"mingw", "python":"python264"} |
|
11817 + |
|
11818 +if options.sbshome == None: |
|
11819 print "ERROR: no SBS_HOME passed in. Exiting..." |
|
11820 sys.exit(2) |
|
11821 |
|
11822 +if options.win32support == None: |
|
11823 + print "ERROR: no win32support directory specified. Unable to proceed. Exiting..." |
|
11824 + sys.exit(2) |
|
11825 +else: |
|
11826 + # Check for command line overrides to defaults |
|
11827 + for directory in win32supportdirs: |
|
11828 + print "TEST %s" % directory |
|
11829 + value = getattr(options,directory) |
|
11830 + print "value = %s" % str(value) |
|
11831 + if value != None: # Command line override |
|
11832 + if value.lower().startswith("win32support"): |
|
11833 + # Strip off "WIN32SUPPORT\" and join to Win32 support location |
|
11834 + win32supportdirs[directory] = os.path.join(options.win32support, value[13:]) |
|
11835 + else: |
|
11836 + # Relative to current directory |
|
11837 + win32supportdirs[directory] = value |
|
11838 + |
|
11839 + else: # Use default location |
|
11840 + win32supportdirs[directory] = os.path.join(options.win32support, win32supportdirs[directory]) |
|
11841 + |
|
11842 + print "\n\nwin32supportdirs = %s\n\n" % win32supportdirs |
|
11843 + |
|
11844 + # Check that all the specified directories exist and exit if any of them is missing. |
|
11845 + for directory in win32supportdirs: |
|
11846 + dir = win32supportdirs[directory] |
|
11847 + if os.path.isdir(dir): |
|
11848 + print "Found directory %s" % dir |
|
11849 + else: |
|
11850 + print "ERROR: directory %s does not exist. Cannot build installer. Exiting..." % dir |
|
11851 + sys.exit(2) |
|
11852 |
|
11853 -def parseconfig(xmlFile="raptorinstallermaker.xml"): |
|
11854 - pass |
|
11855 - |
|
11856 -def generateinstallerversionheader(sbs_home = None): |
|
11857 - os.environ["SBS_HOME"] = sbs_home |
|
11858 - os.environ["PATH"] = os.path.join(os.environ["SBS_HOME"], "bin") + os.pathsep + os.environ["PATH"] |
|
11859 +def generateinstallerversionheader(sbshome = None): |
|
11860 + shellenv = os.environ.copy() |
|
11861 + shellenv["PYTHONPATH"] = os.path.join(sbshome, "python") |
|
11862 |
|
11863 - versioncommand = "sbs -v" |
|
11864 + raptorversioncommand = "python -c \"import raptor_version; print raptor_version.numericversion()\"" |
|
11865 |
|
11866 - # Raptor version string looks like this |
|
11867 - # sbs version 2.5.0 [2009-02-20 release] |
|
11868 + # Raptor version is obtained from raptor_version module's numericversion function. |
|
11869 sbs_version_matcher = re.compile(".*(\d+\.\d+\.\d+).*", re.I) |
|
11870 |
|
11871 # Create Raptor subprocess |
|
11872 - sbs = subprocess.Popen(versioncommand, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) |
|
11873 - |
|
11874 + versioncommand = subprocess.Popen(raptorversioncommand, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=shellenv) |
|
11875 + raptorversion = "" |
|
11876 # Get all the lines matching the RE |
|
11877 - for line in sbs.stdout.readlines(): |
|
11878 + for line in versioncommand.stdout.readlines(): |
|
11879 res = sbs_version_matcher.match(line) |
|
11880 if res: |
|
11881 raptorversion = res.group(1) |
|
11882 print "Successfully determined Raptor version %s" % raptorversion |
|
11883 |
|
11884 - sbs.wait() # Wait for process to end |
|
11885 + versioncommand.wait() # Wait for process to end |
|
11886 |
|
11887 raptorversion_nsis_header_string = "# Raptor version file\n\n!define RAPTOR_VERSION %s\n" % raptorversion |
|
11888 |
|
11889 @@ -73,6 +116,29 @@ |
|
11890 print "Wrote raptorversion.nsh" |
|
11891 return 0 |
|
11892 |
|
11893 +def generateinstallerversion(sbshome = None): |
|
11894 + shellenv = os.environ.copy() |
|
11895 + shellenv["PYTHONPATH"] = os.path.join(sbshome, "python") |
|
11896 + |
|
11897 + raptorversioncommand = "python -c \"import raptor_version; print raptor_version.numericversion()\"" |
|
11898 + |
|
11899 + # Raptor version is obtained from raptor_version module's numericversion function. |
|
11900 + sbs_version_matcher = re.compile(".*(\d+\.\d+\.\d+).*", re.I) |
|
11901 + |
|
11902 + # Create Raptor subprocess |
|
11903 + versioncommand = subprocess.Popen(raptorversioncommand, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=shellenv) |
|
11904 + raptorversion = "" |
|
11905 + # Get all the lines matching the RE |
|
11906 + for line in versioncommand.stdout.readlines(): |
|
11907 + res = sbs_version_matcher.match(line) |
|
11908 + if res: |
|
11909 + raptorversion = res.group(1) |
|
11910 + print "Successfully determined Raptor version %s" % raptorversion |
|
11911 + |
|
11912 + versioncommand.wait() # Wait for process to end |
|
11913 + |
|
11914 + return raptorversion |
|
11915 + |
|
11916 def unzipnsis(pathtozip): |
|
11917 global tempdir |
|
11918 tempdir = tempfile.mkdtemp() |
|
11919 @@ -94,11 +160,22 @@ |
|
11920 global tempdir |
|
11921 print "Cleaning up temporary directory %s" % tempdir |
|
11922 shutil.rmtree(tempdir,True) |
|
11923 + try: |
|
11924 + os.remove("raptorversion.nsh") |
|
11925 + print "Successfully deleted raptorversion.nsh." |
|
11926 + except: |
|
11927 + print "ERROR: failed to remove raptorversion.nsh - remove manually if needed." |
|
11928 print "Done." |
|
11929 |
|
11930 makensispath = unzipnsis(".\\NSIS.zip") |
|
11931 -generateinstallerversionheader(options.sbs_home) |
|
11932 -nsiscommand = makensispath + " /DRAPTOR_LOCATION=%s raptorinstallerscript.nsi" % options.sbs_home |
|
11933 +# generateinstallerversionheader(options.sbshome) |
|
11934 +raptorversion = options.versionprefix + generateinstallerversion(options.sbshome) + options.versionpostfix |
|
11935 +nsiscommand = makensispath + " /DRAPTOR_LOCATION=%s /DBV_LOCATION=%s /DCYGWIN_LOCATION=%s /DMINGW_LOCATION=%s /DPYTHON_LOCATION=%s /DRAPTOR_VERSION=%s raptorinstallerscript.nsi" % (options.sbshome, |
|
11936 + win32supportdirs["bv"], |
|
11937 + win32supportdirs["cygwin"], |
|
11938 + win32supportdirs["mingw"], |
|
11939 + win32supportdirs["python"], |
|
11940 + raptorversion) |
|
11941 print "nsiscommand = %s" % nsiscommand |
|
11942 runmakensis(nsiscommand) |
|
11943 cleanup() |
|
11944 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi |
|
11945 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi 2010-05-18 19:32:35.169348622 +0100 |
|
11946 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/install-windows/raptorinstallerscript.nsi 2010-05-17 18:47:54.040845000 +0100 |
|
11947 @@ -1,4 +1,4 @@ |
|
11948 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
11949 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
11950 # All rights reserved. |
|
11951 # This component and the accompanying materials are made available |
|
11952 # under the terms of the License "Eclipse Public License v1.0" |
|
11953 @@ -44,10 +44,9 @@ |
|
11954 |
|
11955 # Custom includes (depend on above variables so much be here) |
|
11956 !include "raptorinstallerutils.nsh" # Functions and macros for handling environment variables |
|
11957 -!include "raptorversion.nsh" # Define the RAPTOR_VERSION variable |
|
11958 +# !include "raptorversion.nsh" # Define the RAPTOR_VERSION variable |
|
11959 |
|
11960 # Defines |
|
11961 -# !define /date DATE_STAMP "%Y-%m-%d-%H-%M-%S" |
|
11962 !define INSTALLER_NAME "Raptor v${RAPTOR_VERSION}" |
|
11963 !define RAPTOR "sbs" |
|
11964 !define INSTALLER_FILENAME "${RAPTOR}-${RAPTOR_VERSION}.exe" |
|
11965 @@ -79,8 +78,7 @@ |
|
11966 |
|
11967 ##################### Pages in the installer ##################### |
|
11968 !insertmacro MUI_PAGE_WELCOME |
|
11969 -# Temporarily useing RELEASE-NOTES.txt as there is not license.txt |
|
11970 -!insertmacro MUI_PAGE_LICENSE ${RAPTOR_LOCATION}\RELEASE-NOTES.txt |
|
11971 +!insertmacro MUI_PAGE_LICENSE ${RAPTOR_LOCATION}\license.txt |
|
11972 !define MUI_PAGE_HEADER_TEXT "Installation type" |
|
11973 Page custom UserOrSysInstall UserOrSysInstallLeave |
|
11974 !define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirLeave # Directory page exit function - disallow spaces in $INSTDIR |
|
11975 @@ -103,20 +101,30 @@ |
|
11976 |
|
11977 # Install Raptor |
|
11978 SetOutPath "$INSTDIR\bin" |
|
11979 - File /r ${RAPTOR_LOCATION}\bin\*.* |
|
11980 + File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\bin\*.* |
|
11981 SetOutPath "$INSTDIR\examples" |
|
11982 - File /r ${RAPTOR_LOCATION}\examples\*.* |
|
11983 + File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\examples\*.* |
|
11984 SetOutPath "$INSTDIR\lib" |
|
11985 - File /r ${RAPTOR_LOCATION}\lib\*.* |
|
11986 + File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\lib\*.* |
|
11987 SetOutPath "$INSTDIR\python" |
|
11988 - File /r ${RAPTOR_LOCATION}\python\*.* |
|
11989 + File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\python\*.* |
|
11990 SetOutPath "$INSTDIR\schema" |
|
11991 - File /r ${RAPTOR_LOCATION}\schema\*.* |
|
11992 - SetOutPath "$INSTDIR\win32" |
|
11993 - File /r ${RAPTOR_LOCATION}\win32\*.* |
|
11994 + File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\schema\*.* |
|
11995 + SetOutPath "$INSTDIR\win32\bin" |
|
11996 + File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\win32\bin\*.* |
|
11997 + SetOutPath "$INSTDIR\win32\bv" |
|
11998 + File /r /x distribution.policy.s60 /x .hg ${BV_LOCATION}\*.* |
|
11999 + SetOutPath "$INSTDIR\win32\cygwin" |
|
12000 + File /r /x distribution.policy.s60 /x .hg ${CYGWIN_LOCATION}\*.* |
|
12001 + SetOutPath "$INSTDIR\win32\mingw" |
|
12002 + File /r /x distribution.policy.s60 /x .hg ${MINGW_LOCATION}\*.* |
|
12003 + SetOutPath "$INSTDIR\win32\python264" |
|
12004 + File /r /x distribution.policy.s60 /x .hg ${PYTHON_LOCATION}\*.* |
|
12005 |
|
12006 SetOutPath "$INSTDIR" |
|
12007 - File ${RAPTOR_LOCATION}\RELEASE-NOTES.txt |
|
12008 + File ${RAPTOR_LOCATION}\RELEASE-NOTES.html |
|
12009 + SetOutPath "$INSTDIR\notes" |
|
12010 + File /r /x distribution.policy.s60 ${RAPTOR_LOCATION}\notes\*.* |
|
12011 |
|
12012 |
|
12013 ${Unless} $INSTALL_TYPE == "NO_ENV" |
|
12014 @@ -180,6 +188,7 @@ |
|
12015 |
|
12016 # Generate batch file to set environment variables for Raptor |
|
12017 StrCpy $RESULT "@REM Environment variables for ${INSTALLER_NAME}$\r$\nset SBS_HOME=$INSTDIR$\r$\nset PATH=%SBS_HOME%\bin;%PATH%$\r$\n" |
|
12018 + SetOutPath "$INSTDIR" |
|
12019 !insertmacro WriteFile "RaptorEnv.bat" "$RESULT" |
|
12020 SectionEnd |
|
12021 |
|
12022 @@ -326,7 +335,8 @@ |
|
12023 RmDir /r $INSTDIR\python |
|
12024 RmDir /r $INSTDIR\schema |
|
12025 RmDir /r $INSTDIR\win32 |
|
12026 - Delete $INSTDIR\RELEASE-NOTES.txt |
|
12027 + Delete $INSTDIR\RELEASE-NOTES.html |
|
12028 + RmDir /r $INSTDIR\notes |
|
12029 Delete $INSTDIR\RaptorEnv.bat |
|
12030 Delete $INSTDIR\${UNINSTALLER_FILENAME} |
|
12031 |
|
12032 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon: chomp.c |
|
12033 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon: chomp.h |
|
12034 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/lock.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/lock.c |
|
12035 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/lock.c 2010-05-18 19:32:35.173348431 +0100 |
|
12036 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/lock.c 2010-05-17 18:47:54.048842000 +0100 |
|
12037 @@ -12,7 +12,7 @@ |
|
12038 * Contributors: |
|
12039 * |
|
12040 * Description: |
|
12041 -* |
|
12042 +* Test program for grabbing and releasing the talon output semaphore. |
|
12043 */ |
|
12044 |
|
12045 |
|
12046 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/Makefile /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/Makefile |
|
12047 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/Makefile 2010-05-18 19:32:35.173348431 +0100 |
|
12048 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/Makefile 2010-05-17 18:47:54.044845000 +0100 |
|
12049 @@ -1,4 +1,4 @@ |
|
12050 -# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12051 +# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12052 # All rights reserved. |
|
12053 # This component and the accompanying materials are made available |
|
12054 # under the terms of the License "Eclipse Public License v1.0" |
|
12055 @@ -21,10 +21,17 @@ |
|
12056 include $(SBS_HOME:\=/)/util/gccprogram.mk |
|
12057 |
|
12058 ifeq ($(filter win,$(HOSTPLATFORM)),win) |
|
12059 +CHOMP_C:=chomp.c |
|
12060 PROCESS_C:=process_win.c |
|
12061 CFLAGS:=-DHOST_WIN |
|
12062 +ifeq ($(SBS_MINGW),) |
|
12063 LDFLAGS:=$(subst \,/,$(SBS_HOME:\=/)\win32\mingw\lib\libiberty.a) |
|
12064 else |
|
12065 +LDFLAGS:=$(subst \,/,$(SBS_MINGW:\=/)\lib\libiberty.a) |
|
12066 +endif |
|
12067 +LDFLAGS:=$(LDFLAGS) -Wl,-lws2_32 |
|
12068 +else |
|
12069 +CHOMP_C:= |
|
12070 PROCESS_C:=process.c |
|
12071 CFLAGS:=-g |
|
12072 linux_PTHREADLIBS:=-lpthread |
|
12073 @@ -39,8 +46,7 @@ |
|
12074 MANIFEST:=$(SOURCEDIR)/manifest |
|
12075 |
|
12076 TARGET:=talon |
|
12077 -SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C)) |
|
12078 -#$(info $(cprogram)) |
|
12079 +SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C) $(CHOMP_C)) |
|
12080 $(eval $(cprogram)) |
|
12081 |
|
12082 TARGET:=talonctl |
|
12083 @@ -59,3 +65,7 @@ |
|
12084 SOURCES:=$(addprefix $(SOURCEDIR)/,lock.c sema.c log.c) |
|
12085 $(eval $(cprogram)) |
|
12086 |
|
12087 +TARGET:=testchomp |
|
12088 +SOURCES:=$(addprefix $(SOURCEDIR)/,testchomp.c chomp.c log.c) |
|
12089 +$(eval $(cprogram)) |
|
12090 + |
|
12091 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/process.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/process.c |
|
12092 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/process.c 2010-05-18 19:32:35.173348431 +0100 |
|
12093 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/process.c 2010-05-17 18:47:54.048842000 +0100 |
|
12094 @@ -1,5 +1,5 @@ |
|
12095 /* |
|
12096 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12097 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12098 * All rights reserved. |
|
12099 * This component and the accompanying materials are made available |
|
12100 * under the terms of the License "Eclipse Public License v1.0" |
|
12101 @@ -176,11 +176,15 @@ |
|
12102 p->returncode = WEXITSTATUS(status); |
|
12103 DEBUG(("process exited normally \n")); |
|
12104 } else { |
|
12105 + if (p->causeofdeath == PROC_TIMEOUTDEATH) |
|
12106 + p->returncode = 128; |
|
12107 + else { |
|
12108 p->causeofdeath = PROC_SOMEODDDEATH; |
|
12109 if (WIFSIGNALED(status)) |
|
12110 p->returncode = WTERMSIG(status); |
|
12111 else |
|
12112 p->returncode = 128; |
|
12113 + } |
|
12114 DEBUG(("process terminated \n")); |
|
12115 } |
|
12116 |
|
12117 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/talon.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/talon.c |
|
12118 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/talon.c 2010-05-18 19:32:35.173348431 +0100 |
|
12119 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/talon.c 2010-05-17 18:47:54.048842000 +0100 |
|
12120 @@ -1,5 +1,5 @@ |
|
12121 /* |
|
12122 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12123 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12124 * All rights reserved. |
|
12125 * This component and the accompanying materials are made available |
|
12126 * under the terms of the License "Eclipse Public License v1.0" |
|
12127 @@ -16,6 +16,11 @@ |
|
12128 */ |
|
12129 |
|
12130 |
|
12131 +#ifdef HAS_WINSOCK2 |
|
12132 +#include <winsock2.h> |
|
12133 +#include <ws2tcpip.h> |
|
12134 +#define WIN32_LEAN_AND_MEAN |
|
12135 +#endif |
|
12136 |
|
12137 |
|
12138 #include <stdlib.h> |
|
12139 @@ -33,17 +38,23 @@ |
|
12140 #include "buffer.h" |
|
12141 #include "../config.h" |
|
12142 |
|
12143 +#ifdef HAS_GETCOMMANDLINE |
|
12144 +#include "chomp.h" |
|
12145 +#endif |
|
12146 + |
|
12147 /* The output semaphore. */ |
|
12148 sbs_semaphore talon_sem; |
|
12149 |
|
12150 #define TALON_ATTEMPT_STRMAX 32 |
|
12151 #define RECIPETAG_STRMAX 2048 |
|
12152 -#define STATUS_STRMAX 100 |
|
12153 +#define STATUS_STRMAX 120 |
|
12154 |
|
12155 #define TALONDELIMITER '|' |
|
12156 #define VARNAMEMAX 100 |
|
12157 #define VARVALMAX 1024 |
|
12158 |
|
12159 +#define HOSTNAME_MAX 100 |
|
12160 + |
|
12161 |
|
12162 #include "log.h" |
|
12163 |
|
12164 @@ -125,7 +137,7 @@ |
|
12165 att++; |
|
12166 } while ( e < (VARNAMEMAX-1) && (isalnum(*att) || *att == '_')); |
|
12167 envvarname[e] = '\0'; |
|
12168 -/* DEBUG(("envvarname: %s\n", envvarname)); */ |
|
12169 + /* DEBUG(("envvarname: %s\n", envvarname));*/ |
|
12170 v = talon_getenv(envvarname); |
|
12171 if (v) |
|
12172 { |
|
12173 @@ -229,9 +241,20 @@ |
|
12174 char *recipe = NULL; |
|
12175 int talon_returncode = 0; |
|
12176 |
|
12177 +#ifdef HAS_WINSOCK2 |
|
12178 + WSADATA wsaData; |
|
12179 + |
|
12180 + WSAStartup(MAKEWORD(2,2), &wsaData); |
|
12181 + |
|
12182 + /* We ignore the result as we are only doing this to use gethostname |
|
12183 + and if that fails then leaving the host attribute blank is perfectly |
|
12184 + acceptable. |
|
12185 + */ |
|
12186 + |
|
12187 +#endif |
|
12188 + |
|
12189 #ifdef HAS_GETCOMMANDLINE |
|
12190 char *commandline= GetCommandLine(); |
|
12191 - DEBUG(("talon: commandline: %s\n", commandline)); |
|
12192 /* |
|
12193 * The command line should be either, |
|
12194 * talon -c "some shell commands" |
|
12195 @@ -240,20 +263,12 @@ |
|
12196 * |
|
12197 * talon could be an absolute path and may have a .exe extension. |
|
12198 */ |
|
12199 - recipe = strstr(commandline, "-c"); |
|
12200 - if (recipe) |
|
12201 - { |
|
12202 - /* there was a -c so extract the quoted commands */ |
|
12203 |
|
12204 - while (*recipe != '"' && *recipe != '\0') |
|
12205 - recipe++; |
|
12206 |
|
12207 - if (*recipe != '"') /* we found -c but no following quote */ |
|
12208 + recipe = chompCommand(commandline); |
|
12209 + if (recipe) |
|
12210 { |
|
12211 - error("talon: error: unquoted recipe in shell call '%s'\n", commandline); |
|
12212 - return 1; |
|
12213 - } |
|
12214 - recipe++; |
|
12215 + /* there was a -c so extract the quoted commands */ |
|
12216 |
|
12217 int recipelen = strlen(recipe); |
|
12218 if (recipelen > 0 && recipe[recipelen - 1] == '"') |
|
12219 @@ -337,6 +352,20 @@ |
|
12220 |
|
12221 DEBUG(("talon: recipe: %s\n", recipe)); |
|
12222 |
|
12223 + /* Make sure that the agent's hostname can be put into the host attribute */ |
|
12224 + char hostname[HOSTNAME_MAX]; |
|
12225 + int hostresult=0; |
|
12226 + |
|
12227 + hostresult = gethostname(hostname, HOSTNAME_MAX-1); |
|
12228 + if (0 != hostresult) |
|
12229 + { |
|
12230 + DEBUG(("talon: failed to get hostname: %d\n", hostresult)); |
|
12231 + hostname[0] = '\0'; |
|
12232 + } |
|
12233 + |
|
12234 + talon_setenv("HOSTNAME", hostname); |
|
12235 + DEBUG(("talon: setenv: hostname: %s\n", hostname)); |
|
12236 + |
|
12237 |
|
12238 char varname[VARNAMEMAX]; |
|
12239 char varval[VARVALMAX]; |
|
12240 @@ -549,14 +578,18 @@ |
|
12241 |
|
12242 if (dotagging) |
|
12243 { |
|
12244 - char *forcesuccessstr = force_success == 0 ? "" : " forcesuccess='FORCESUCCESS'"; |
|
12245 + char *flagsstr = force_success == 0 ? "" : " flags='FORCESUCCESS'"; |
|
12246 + char *reasonstr = "" ; |
|
12247 + |
|
12248 + if (p->causeofdeath == PROC_TIMEOUTDEATH) |
|
12249 + reasonstr = " reason='timeout'"; |
|
12250 |
|
12251 if (p->returncode != 0) |
|
12252 { |
|
12253 - char *exitstr = retries > 0 ? "retry" : "failed"; |
|
12254 - snprintf(status, STATUS_STRMAX - 1, "\n<status exit='%s' code='%d' attempt='%d'%s />", exitstr, p->returncode, attempt, forcesuccessstr ); |
|
12255 + char *exitstr = (force_success || retries <= 0) ? "failed" : "retry"; |
|
12256 + snprintf(status, STATUS_STRMAX - 1, "\n<status exit='%s' code='%d' attempt='%d'%s%s />", exitstr, p->returncode, attempt, flagsstr, reasonstr ); |
|
12257 } else { |
|
12258 - snprintf(status, STATUS_STRMAX - 1, "\n<status exit='ok' attempt='%d'%s />", attempt, forcesuccessstr ); |
|
12259 + snprintf(status, STATUS_STRMAX - 1, "\n<status exit='ok' attempt='%d'%s%s />", attempt, flagsstr, reasonstr ); |
|
12260 } |
|
12261 status[STATUS_STRMAX-1] = '\0'; |
|
12262 |
|
12263 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testbuffer.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testbuffer.c |
|
12264 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testbuffer.c 2010-05-18 19:32:35.173348431 +0100 |
|
12265 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testbuffer.c 2010-05-17 18:47:54.052842000 +0100 |
|
12266 @@ -1,5 +1,5 @@ |
|
12267 /* |
|
12268 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12269 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12270 * All rights reserved. |
|
12271 * This component and the accompanying materials are made available |
|
12272 * under the terms of the License "Eclipse Public License v1.0" |
|
12273 @@ -12,7 +12,10 @@ |
|
12274 * Contributors: |
|
12275 * |
|
12276 * Description: |
|
12277 -* |
|
12278 +* This program reads from stdin into a "buffer" structure. It is designed to be |
|
12279 +* run from within valgrind to detect memory corruption errors. |
|
12280 +* The buffer is then written to /tmp/outfile where it can be compared |
|
12281 +* with the input to determine if they are the same |
|
12282 */ |
|
12283 |
|
12284 |
|
12285 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon: testchomp.c |
|
12286 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testprocess.c /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testprocess.c |
|
12287 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/testprocess.c 2010-05-18 19:32:35.177348591 +0100 |
|
12288 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/testprocess.c 2010-05-17 18:47:54.052842000 +0100 |
|
12289 @@ -1,5 +1,5 @@ |
|
12290 /* |
|
12291 -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12292 +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12293 * All rights reserved. |
|
12294 * This component and the accompanying materials are made available |
|
12295 * under the terms of the License "Eclipse Public License v1.0" |
|
12296 @@ -12,7 +12,11 @@ |
|
12297 * Contributors: |
|
12298 * |
|
12299 * Description: |
|
12300 -* |
|
12301 +* This programs tests the process execution functions in talon. |
|
12302 +* it executes it's first argument with the following arguments |
|
12303 +* as parameters to it. Output is buffered and finally printed. |
|
12304 +* Should be run from within valgrind if possible to detect memory |
|
12305 +* corruption errors. |
|
12306 */ |
|
12307 |
|
12308 |
|
12309 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests: config.sh |
|
12310 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests: run.sh |
|
12311 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t3.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t3.mk |
|
12312 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t3.mk 2010-05-18 19:32:35.177348591 +0100 |
|
12313 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t3.mk 2010-05-17 18:47:54.052842000 +0100 |
|
12314 @@ -1,5 +1,5 @@ |
|
12315 # |
|
12316 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12317 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12318 # All rights reserved. |
|
12319 # This component and the accompanying materials are made available |
|
12320 # under the terms of the License "Eclipse Public License v1.0" |
|
12321 @@ -13,8 +13,8 @@ |
|
12322 # |
|
12323 # Description: |
|
12324 # |
|
12325 +include settings.mk |
|
12326 |
|
12327 -SHELL:=$(TALON) |
|
12328 TALON_RECIPEATTRIBUTES:=name='$$RECIPENAME' host='$$HOSTNAME' |
|
12329 export TALON_RECIPEATTRIBUTES |
|
12330 |
|
12331 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t4.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t4.mk |
|
12332 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t4.mk 2010-05-18 19:32:35.177348591 +0100 |
|
12333 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t4.mk 2010-05-17 18:47:54.052842000 +0100 |
|
12334 @@ -1,5 +1,5 @@ |
|
12335 # |
|
12336 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12337 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12338 # All rights reserved. |
|
12339 # This component and the accompanying materials are made available |
|
12340 # under the terms of the License "Eclipse Public License v1.0" |
|
12341 @@ -14,7 +14,7 @@ |
|
12342 # Description: |
|
12343 # |
|
12344 |
|
12345 -SHELL:=$(TALON) |
|
12346 +include settings.mk |
|
12347 TALON_TIMEOUT:=4000 |
|
12348 TALON_RETRIES:=4 |
|
12349 TALON_RECIPEATTRIBUTES:=platform='$$PLATFORM' mmp='$$MMP' bldinf='$$BLDINF' |
|
12350 @@ -23,6 +23,11 @@ |
|
12351 $(info testing timeouts) |
|
12352 $(info ) |
|
12353 |
|
12354 -all: |
|
12355 +.PHONY: all passed |
|
12356 + |
|
12357 +all: passed |
|
12358 + @echo "t4-PASSED" |
|
12359 + |
|
12360 +passed: |
|
12361 @|PLATFORM=armv5;MMP=barney.mmp;BLDINF=somebld.inf;|echo "Started a slow command under talon (attempt $$TALON_ATTEMPT):";echo "SHELL=$$SHELL";if (( $$TALON_ATTEMPT <4 )); then echo sleeping 6; sleep 6; echo "hi"; else echo "Not sleeping this time"; fi; echo "this should not appear in the recipe tags unless you try 4 times." |
|
12362 |
|
12363 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t5.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t5.mk |
|
12364 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t5.mk 2010-05-18 19:32:35.177348591 +0100 |
|
12365 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t5.mk 2010-05-17 18:47:54.052842000 +0100 |
|
12366 @@ -1,5 +1,5 @@ |
|
12367 # |
|
12368 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12369 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12370 # All rights reserved. |
|
12371 # This component and the accompanying materials are made available |
|
12372 # under the terms of the License "Eclipse Public License v1.0" |
|
12373 @@ -13,6 +13,7 @@ |
|
12374 # |
|
12375 # Description: |
|
12376 # |
|
12377 +include settings.mk |
|
12378 |
|
12379 all: |
|
12380 ||"echo this command should cause a bash error which should be visible" |
|
12381 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests: t6.mk |
|
12382 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t.mk |
|
12383 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/t.mk 2010-05-18 19:32:35.177348591 +0100 |
|
12384 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/t.mk 2010-05-17 18:47:54.052842000 +0100 |
|
12385 @@ -14,6 +14,7 @@ |
|
12386 # Description: |
|
12387 # |
|
12388 |
|
12389 +include settings.mk |
|
12390 |
|
12391 HOSTNAME:=fred |
|
12392 COMPONENT_LAYER:=base |
|
12393 diff -u -r -b -B -E -x '*.hg*' -x '*cross-plat-dev-utils*' -x '*baseline.txt' -x '*README' -x '*TODO' -x '*NEWS' -x '*.pyc' -x '*~' -x '*linux-unknown-libc2_11*' /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/xcopystdin.mk /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/xcopystdin.mk |
|
12394 --- /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/util/talon/tests/xcopystdin.mk 2010-05-18 19:32:35.177348591 +0100 |
|
12395 +++ /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/util/talon/tests/xcopystdin.mk 2010-05-17 18:47:54.056843000 +0100 |
|
12396 @@ -1,5 +1,5 @@ |
|
12397 # |
|
12398 -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
12399 +# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). |
|
12400 # All rights reserved. |
|
12401 # This component and the accompanying materials are made available |
|
12402 # under the terms of the License "Eclipse Public License v1.0" |
|
12403 @@ -14,9 +14,7 @@ |
|
12404 # Description: |
|
12405 # |
|
12406 |
|
12407 -SHELL:=$(SBS_HOME)/win32/bin/talon.exe |
|
12408 -TALON_SHELL:=$(SBS_HOME)/win32/cygwin/bin/bash.exe |
|
12409 -TALON_BUILDID:=1 |
|
12410 +include settings.mk |
|
12411 TALON_RECIPEATTRIBUTES:=123 |
|
12412 |
|
12413 export |
|
12414 Binary files /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/win32/bin/ransleep.exe and /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin/ransleep.exe differ |
|
12415 Binary files /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/win32/bin/talonctl.exe and /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin/talonctl.exe differ |
|
12416 Binary files /home/imk/symbian/epocroot-pdk-3.0.i/latest_build/build/sbsv2/raptor/win32/bin/talon.exe and /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin/talon.exe differ |
|
12417 Only in /home/imk/symbian/epocroot-pdk-3.0.i/linux_build/sbsv2/raptor/win32/bin: unhide_ci_refs.exe |