|
From: | adrian15 |
Subject: | Re: how to add a new command |
Date: | Fri, 15 Jun 2007 14:48:31 +0200 |
User-agent: | Thunderbird 1.5.0.8 (X11/20061107) |
Alex Roman escribió:
On 12/06/07, adrian15 <address@hidden> wrote:Once I write a new command like map.c or pause.c how am I supposed toadd it to the standard grub?Should I write the makefiles manually?! or should I use some of the .shfiles at the grub2 source code root folder?I've been editing the .rmk files in conf/ which should cause the .mk files to get updated (at least that's my understanding of it, so far). Make sure the command is placed in the right Makefile... I had the problem where I was including the command in both grub-emu and grub/i386-pc and grub-emu didn't link due to undefined symbols (because those didn't exist in grub-emu). Cheers!
I've finally edit conf/i386-pc.rmk, copy-pasted the play.c code and find/replace with map.c. Then I run make: make prompts this: address@hidden:~/Desktop/gnu/grub2/grub2_2007_05_31_map$ make if test "x" = x; then \ touch conf/i386-pc.mk; \ else \ ./genmk.rb < conf/i386-pc.rmk > conf/i386-pc.mk; \ fi make: No se hace nada para `all'. If you check: i386-pc.mk then there is no reference to: "/map.c" If I delete i386-pc.mk and run make again: address@hidden:~/Desktop/gnu/grub2/grub2_2007_05_31_map$ make Makefile:111: conf/i386-pc.mk: No existe el fichero o el directorio if test "x" = x; then \ touch conf/i386-pc.mk; \ else \ ./genmk.rb < conf/i386-pc.rmk > conf/i386-pc.mk; \ fi make: No se hace nada para `all'. and a empty i386-pc.mk file is created. I check genmk.rb and it is not an executable file. I give it execution permission. I delete the empty i386-pc.mk file and run make again: Makefile:111: conf/i386-pc.mk: No existe el fichero o el directorio if test "x" = x; then \ touch conf/i386-pc.mk; \ else \ ./genmk.rb < conf/i386-pc.rmk > conf/i386-pc.mk; \ fi make: No se hace nada para `all'. Now if I run manually: ruby genmk.rb < conf/i386-pc.rmk > conf/i386-pc.mk Then conf/i386-pc.mk has the map.c string and then make reads the map.c file at last. I think the problem is in the Makefile here: if test "x$(RUBY)" = x; then \ touch $@; \ else \ $(RUBY) $(srcdir)/genmk.rb < $< > $@; \ fi and if you check above the definitions you get: RUBY = Let me do some checks... Running: make distclean ./configure generates another Makefile which does contain: RUBY = /usr/bin/ruby and why's that? Because meanwhile I was compiling I've done a symbolic link from /usr/bin/ruby to /usr/bin/ruby1.9 I mean... I've installed ruby1.9 as you requested but your grub2 isn't unable to use it. Now it seems that everything goes fine.Should not be adviced in the INSTALL or README file that you have to put a symlink from /usr/bin/ruby to /usr/bin/ruby1.9 ??
adrian15
[Prev in Thread] | Current Thread | [Next in Thread] |