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

build initcode
author anatofuz
date Fri, 26 Jul 2019 19:24:31 +0900
parents 2fdcb0f953bb
children f236eba62a76
line wrap: on
line diff
--- a/src/gearsTools/pmake.pl	Fri Jul 26 18:46:36 2019 +0900
+++ b/src/gearsTools/pmake.pl	Fri Jul 26 19:24:31 2019 +0900
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-my ($cc,$cflags,$asm,$ld,$ldflags,$libgcc,$cmake,$kernel_cflags,$kernel_ld_flags,$kernel_ld_command);
+my ($cc,$cflags,$asm,$ld,$ldflags,$libgcc,$cmake,$kernel_cflags,$kernel_ld_flags,$kernel_ld_command, $initcode_cflags, $initcode_ld_command);
 
 $cmake = 'cmake';
 
@@ -28,12 +28,25 @@
     # -DX_CMAKE_C_LINK_EXECUTABLE=\"$ld $ldflags  -o kernel.elf <OBJECTS> $libgcc   -b binary initcode usr/fs.img\"
     $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';
     $kernel_ld_command = "$ld $kernel_ld_flags";
+    $initcode_cflags = '-march=armv6   -nostdinc -I. -c';
+    $initcode_ld_command = "$ld -L.  -N -e start -Ttext 0 <OBJECTS> -o <TARGET> <LINK_LIBRARIES>";
 }
 
 $cflags =~ s/\n//g;
 create_link_script();
 
-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);
+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",
+    "-DINITOCDE_CFLAGS=\"$initcode_cflags\"",
+    "-DINITOCDE_LINK_EXECUTABLE=\"$initcode_ld_command\"",
+@ARGV);
 
 system("make");
 #system("sh","link.sh");