[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] mini-os: New makefile structure for different architectures


  • To: Grzegorz Milos <gm281@xxxxxxxxx>
  • From: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
  • Date: Mon, 27 Nov 2006 13:56:57 +0100
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Mon, 27 Nov 2006 04:57:09 -0800
  • Domainkey-signature: s=s768; d=fujitsu-siemens.com; c=nofws; q=dns; b=JbyLiuene7Nf0QJqf+6jATG7QaSjBsJZ1HiFlwF2uU9hdZBJqozKe9iTSNSGbdlacU7qed9tUSLb0tYO7s8HeXa0Tl7btIKYoRT+7ZyupPewSg0HCiEgGA1Dn1cxRfE+;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi Gregor,

> Yes, having Makefiles in each subdirectory is the way to go. The only
> reason we have one is that historically everything lived in mini-os

I tried a complete rewrite of the make structure for mini-os to get better 
support for different architectures (for me ia64).
Please have a look at it and give your comments. It's really needed to get 
publish the ia64 mini-os.
Thanks.

Dietmar.


Following structure:
 mini-os/Makefile   - common makefile.
 mini-os/mini-os.mk - common makerules.
 arch/x86/Makefile  - x86 family special makefile
 arch/x86/arch.mk   - x86 family special make rules
 arch/ia64/Makefile - ia64 family special makefile
 arch/ia64/arch.mk  - ia64 family special make rules

On start of make (with common makefile) tries to extract the correct 
architecture and sets up (and exports) some variables.
TARGET_ARCH     - x86_32 or x86_64 or ia64 or ...
TARGET_ARCH_FAM - x86 (for x86_32, ...) or ia64 or ...
TARGET_ARCH_DIR - arch/x86 or arch/ia64 or ...
MINI-OS_ROOT    - The complete path to mini-os directory.

It includes the architecture specific arch.mk and mini-os.mk
With both the make flags are built.

It tries to build libminios.a from
mini-os/*.c
console/*.c
xenbus/*.c
This is done like in the old make structure.

It goes to the arch/... directory and starts the special architecture 
Makefile, which must build the architecture specific library (e.g. 
libx86_32.a or libia64.a)
This Makefile includes the architecture special makerules file arch.mk and the 
global rule file ../../mini-os.mk 

All architecture specific files are moved to the arch/... directory. This 
includes the linker script minios-*.lds and the assembler file with the 
_start function (e.g. x86_32.S). In the new make structure this file is 
handled separatly in the makerules to get it right on linking (see 
HEAD_ARCH_OBJ and HEAD_ARCH in minios.mk).


Attachment: mini-os_make.patch
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.