diff -r 820b22e13ff1 -r 39c28ec933dd cross-plat-dev-utils/fix_epoc32_linux.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cross-plat-dev-utils/fix_epoc32_linux.pl Mon May 10 19:54:49 2010 +0100 @@ -0,0 +1,54 @@ +#!/usr/bin/perl +# Copyright (c) 2010 Symbian Foundation Ltd +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Mike Kinghan, mikek@symbian.org for Symbian Foundation Ltd - initial contribution. + + +# Script to apply fixes to epoc32 tree on Linux so that:- +# - Case-sensitivity bug #1399 is worked around +# - Provide a valid pre-include header file to enable +# compiling of the tools code with gcc 4.4.x + + +use strict; +use File::Spec; +use apply_patch_file; +use usage; +use check_os; + +require_os_linux(); + +usage(\@ARGV,"This script makes required fixes to epoc32 tree in Linux"); +set_epocroot(); +my $epocroot = $ENV{'EPOCROOT'}; +my $wrong_product_variant_hrh = File::Spec->catfile("$epocroot","epoc32","include","ProductVariant.hrh"); +my $right_product_variant_hrh = File::Spec->catfile("$epocroot","epoc32","include","productvariant.hrh"); +if (! -f $right_product_variant_hrh and ! -l $right_product_variant_hrh) { + print ">>> Creating symlink \"$wrong_product_variant_hrh\" -> \"$right_product_variant_hrh\"\n"; + print ">>> (workaround for bug #1399)\n"; + symlink($wrong_product_variant_hrh,$right_product_variant_hrh) or die $!; +} +my $gcc_include_dir = File::Spec->catfile("$epocroot","epoc32","include","gcc"); +if (! -d $gcc_include_dir) { + print ">>> Creating \"$gcc_include_dir\"\n"; + mkdir $gcc_include_dir or die $!; +} +my $gcc_441_prelinclude_hdr_rel = File::Spec->catfile("epoc32","include","gcc","gcc_4_4_1.h"); +my $gcc_441_prelinclude_hdr_abs = File::Spec->catfile("$epocroot","$gcc_441_prelinclude_hdr_rel"); +my $gcc_prelinclude_hdr = File::Spec->catfile("$epocroot","epoc32","include","gcc","gcc.h"); +if (! -f $gcc_441_prelinclude_hdr_abs) { + print ">>> Creating \"$gcc_441_prelinclude_hdr_abs\"\n"; + apply_patch_file($gcc_441_prelinclude_hdr_rel); + unlink($gcc_prelinclude_hdr) +} +if (! -l $gcc_prelinclude_hdr) { + print ">>> Creating symlink \"$gcc_441_prelinclude_hdr_abs\" -> \"$gcc_prelinclude_hdr\"\n"; + symlink($gcc_441_prelinclude_hdr_abs,$gcc_prelinclude_hdr); +} +exit 0; +