comparison src/gearsTools/pmake.pl @ 66:101b229f182d cmake

build initcode
author anatofuz
date Fri, 26 Jul 2019 19:24:31 +0900
parents 2fdcb0f953bb
children f236eba62a76
comparison
equal deleted inserted replaced
65:2fdcb0f953bb 66:101b229f182d
1 #!/usr/bin/env perl 1 #!/usr/bin/env perl
2 use strict; 2 use strict;
3 use warnings; 3 use warnings;
4 4
5 my ($cc,$cflags,$asm,$ld,$ldflags,$libgcc,$cmake,$kernel_cflags,$kernel_ld_flags,$kernel_ld_command); 5 my ($cc,$cflags,$asm,$ld,$ldflags,$libgcc,$cmake,$kernel_cflags,$kernel_ld_flags,$kernel_ld_command, $initcode_cflags, $initcode_ld_command);
6 6
7 $cmake = 'cmake'; 7 $cmake = 'cmake';
8 8
9 if ($^O =~ /darwin/){ 9 if ($^O =~ /darwin/){
10 $cc = $ENV{CBC_LANG_COMPILER}; 10 $cc = $ENV{CBC_LANG_COMPILER};
26 $ldflags = " -L. -T kernel-cmake.ld"; 26 $ldflags = " -L. -T kernel-cmake.ld";
27 $kernel_cflags = '-march=armv6 -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -Werror -I. -g -O0 -iquote ../ -c'; 27 $kernel_cflags = '-march=armv6 -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -Werror -I. -g -O0 -iquote ../ -c';
28 # -DX_CMAKE_C_LINK_EXECUTABLE=\"$ld $ldflags -o kernel.elf <OBJECTS> $libgcc -b binary initcode usr/fs.img\" 28 # -DX_CMAKE_C_LINK_EXECUTABLE=\"$ld $ldflags -o kernel.elf <OBJECTS> $libgcc -b binary initcode usr/fs.img\"
29 $kernel_ld_flags = ' -L. -N -e main -Ttext 0 <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L ../ /mnt/dalmore-home/one/src/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a'; 29 $kernel_ld_flags = ' -L. -N -e main -Ttext 0 <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L ../ /mnt/dalmore-home/one/src/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/libgcc.a';
30 $kernel_ld_command = "$ld $kernel_ld_flags"; 30 $kernel_ld_command = "$ld $kernel_ld_flags";
31 $initcode_cflags = '-march=armv6 -nostdinc -I. -c';
32 $initcode_ld_command = "$ld -L. -N -e start -Ttext 0 <OBJECTS> -o <TARGET> <LINK_LIBRARIES>";
31 } 33 }
32 34
33 $cflags =~ s/\n//g; 35 $cflags =~ s/\n//g;
34 create_link_script(); 36 create_link_script();
35 37
36 print_exec_system($cmake, "-DGCC_LIB=$libgcc", "-DCBC_COM=$cc", "-DPMAKE_ARGS=\"$cflags\"","-DCMAKE_ASM_COMPILER=$cc","-DX_CMAKE_LINKER=$ld","-DX_CMAKE_C_LINK_EXECUTABLE=\"$ld $ldflags -o kernel.elf <OBJECTS> $libgcc -b binary initcode fs.img\"","-DKERNEL_LINK_EXECUTABLE=\"$kernel_ld_command\"","-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE",@ARGV); 38 print_exec_system($cmake,
39 "-DGCC_LIB=$libgcc",
40 "-DCBC_COM=$cc",
41 "-DPMAKE_ARGS=\"$cflags\"",
42 "-DCMAKE_ASM_COMPILER=$cc",
43 "-DX_CMAKE_LINKER=$ld",
44 "-DX_CMAKE_C_LINK_EXECUTABLE=\"$ld $ldflags -o kernel.elf <OBJECTS> $libgcc -b binary initcode fs.img\"",
45 "-DKERNEL_LINK_EXECUTABLE=\"$kernel_ld_command\"",
46 "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE",
47 "-DINITOCDE_CFLAGS=\"$initcode_cflags\"",
48 "-DINITOCDE_LINK_EXECUTABLE=\"$initcode_ld_command\"",
49 @ARGV);
37 50
38 system("make"); 51 system("make");
39 #system("sh","link.sh"); 52 #system("sh","link.sh");
40 53
41 sub create_link_script { 54 sub create_link_script {