Mercurial > hg > Members > anatofuz > CbC_xv6
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 { |