View Single Post
Old 08-19-2012, 01:26 PM   #106
twobob
( ͡° ͜ʖ ͡°){ʇlnɐɟ ƃǝs}Týr
twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.twobob ought to be getting tired of karma fortunes by now.
 
twobob's Avatar
 
Posts: 6,586
Karma: 6299993
Join Date: Jun 2012
Location: uti gratia usura (Yao ying da ying; Mo ying da yieng)
Device: PW-WIFI|K5-3G+WIFI| K4|K3-3G|DXG|K2| Rooted Nook Touch
Adding new packages 101 - Customising BR.

Replies and Moans about "I do what with the headers? Bah :\"
Spoiler:
@knc1 exactly what you said. Oh and I spent ALL DAY looking for the post where you told me how to link recursively the arm-blah-gedoofer-gcc to gcc.

Still never found the damn thing. SO. Instead I'm doing including aalib the "proper" way. The universe was clearly telling me something.

@geekmaster. Err, okay. Sorry I thought you meant that there was some task to be undertaken. Yes reading code around a general procedural workflow is always helpful. thanks.

@Niluje okay mate. In that case I am 100% confident I am correct.
To clone or to amend is a details. amend = easiest so I may go there.

I have studied the man diff and patch till the cows come home and still am foggy about how it references paths but no doubt "readthrough 'n'" may actually sink it in to me. I have custom versions of your patch now that do the job. just need to get them applied relatively. I'll work it out. your help has been incredibly beneficial.

NOTES ON USING THE AMAZON KERNEL HEADERS:

a) Use Nilujes Patch to fix the unifdef issue - Find from top post.
(extract just that hunk or just "don't apply this patch" fail the Makefile bit)
https://svn.ak-team.com/svn/Configs/...buildfix.patch

apply it the in root of your extracted amazon kernel source folder

you@dev /usr/local/src/BUILD_KERNAL $ patch -p1 <kernel-headers.patch
(if it fails to find the file just give it the absolute path to unifdef.c - it's in scripts)

Ensure you have an X-compiler that is configured in the the way outlined here:
https://www.mobileread.com/forums/sho...&postcount=271

Then ensure your X-compiler is in your path:

you@dev /usr/local/src/BUILD_KERNAL/linux-2.6.26 $ echo $PATH
/opt/qemu111/bin:/home/you/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Then run:
you@dev /usr/local/src/BUILD_KERNAL/linux-2.6.26 $ DESTDIR=/opt/arm-2012.03 sudo make headers_install ARCH=arm INSTALL_HDR_PATH=/opt/arm-2012.03

where that is the path to your TC.

Bish Bash Bosh.

Thanks Niluje. Superstar.


Okay so to the thrust of this post:

Adding new packages 101 - Customising BR. (It's easy, honest).

the main docs are here:
http://buildroot.uclibc.org/download...s_to_buildroot

This reallife guide is what I intend to take the project where knc1 wanted.

The guide:

We assume that you have some knowledge.

${foo} is a reference to a variable.

you would test conditions like
if(${foo})
blar
endif

read up on Makefile and configure files. that will help.

Including AALIB in BR...

mkdir /home/you/GIT/buildroot/package/aalib

cd /home/you/GIT/buildroot/package/aalib

nano -w aalib.mk

Spoiler:
PHP Code:
#############################################################
#
# aalib
#
#############################################################
AALIB_VERSION 1.4rc4
AALIB_SOURCE 
aalib-$(AALIB_VERSION).tar.gz
AALIB_SITE 
http://prdownloads.sourceforge.net/aa-project
AALIB_INSTALL_STAGING YES
AALIB_INSTALL_TARGET 
YES

AALIB_DEPENDENCIES 
host-pkg-config
AALIB_MAKE 
= $(MAKE1)
AALIB_AUTORECONF YES

AALIB_CONF_OPT 
= --enable-shared --with-x11-driver=no --exec-prefix=/mnt/us --prefix=/mnt/us 

ifeq 
($(BR2_PACKAGE_SLANG),y)
AALIB_CONF_OPT+=--with-slang-driver=yes
AALIB_DEPENDENCIES 
+= slang
else
AALIB_CONF_OPT+=--with-slang-driver=no
endif

ifeq ($(BR2_PACKAGE_CURSES),y)
AALIB_CONF_OPT+=--with-curses-driver=yes
AALIB_DEPENDENCIES 
+= curses
else
AALIB_CONF_OPT+=--with-slang-driver=no
endif

$(eval $(
autotools-package)) 


save it


nano -w Config.in

Spoiler:
PHP Code:
config BR2_PACKAGE_AALIB
    bool 
"aalib"
    
help
      AAlib is an portable ascii art GFX library
. If you wish to see some examples of AAlib technologyplease browse AA-project homepage.
      
      
http://aa-project.sourceforge.net/index.html 


save it.



In this next section you can choose to include it in the packages directories.
I choose LIBRARIES: GRAPHICS because I think that is the best fit.

nano /home/you/GIT/buildroot/package/Config.in

add source "package/aalib/Config.in" in the relevant section
(see pictures for my example)


Adding Support in existing BR applications:

In this next section we are optionally adding support for the new package in existing packages like so: (adding support in SDL)

nano /home/you/GIT/buildroot/package/sdl/Config.in

Spoiler:
PHP Code:
config BR2_PACKAGE_SDL
    bool 
"SDL"
    
help
      Simple DirectMedia Layer 
SDL is a library that allows
      programs portable low level access to a video framebuffer
,
      
audio outputmouse, and keyboard.

      
http://www.libsdl.org/

if BR2_PACKAGE_SDL

config BR2_PACKAGE_SDL_FBCON
    bool 
"SDL framebuffer console video driver"
    
default y

config BR2_PACKAGE_SDL_DIRECTFB
    bool 
"SDL DirectFB video driver"
    
depends on BR2_PACKAGE_DIRECTFB

config BR2_PACKAGE_SDL_QTOPIA
    bool 
"SDL Qtopia video driver"
    
depends on BR2_PACKAGE_QT

config BR2_PACKAGE_SDL_AALIB
    bool 
"SDL aalib ascii driver"
    
depends on BR2_PACKAGE_AALIB

config BR2_PACKAGE_SDL_X11
    bool 
"SDL X11 video driver"
    
depends on BR2_PACKAGE_XORG7
    select BR2_PACKAGE_XLIB_LIBX11
    select BR2_PACKAGE_XLIB_LIBXEXT

endif 


save it.

Edit the mk to include the call.

Run make xconfig from BuildRoot Root.

You should see the new things as pictured below.

The example I posted here also includes the use of making another application require support which is the start of integration.

HTH.
Attached Thumbnails
Click image for larger version

Name:	Selection_011.png
Views:	356
Size:	31.3 KB
ID:	90992   Click image for larger version

Name:	Selection_012.png
Views:	366
Size:	13.4 KB
ID:	90993   Click image for larger version

Name:	Selection_010.png
Views:	328
Size:	7.8 KB
ID:	90994   Click image for larger version

Name:	Selection_009.png
Views:	353
Size:	12.4 KB
ID:	90995  

Last edited by twobob; 10-01-2012 at 01:08 PM. Reason: vice versa taggage
twobob is offline   Reply With Quote