[ros-dev] rbuild: module attributes

Casper Hornstrup ch at csh-consult.dk
Sat Jul 30 12:32:49 CEST 2005


Well, that's a 30+ hour change. It's not clear to me what problem
you are trying to solve. If the meaning of the module types are not
clear, we can rename them. If more module types are needed, we can
add them.

Module types
------------
The module type determines the actions that is to be carried out to process the module. The defined module types are seen below:
	buildtool - Builds a tool that can be run (invoked) when building ReactOS. Default extension is .exe when building on
Windows and nothing when building on Linux. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for
this module type.

	staticlibrary - Builds a static library containing object files that can be linked together with other modules. Default
extension is .a. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this module type.

	objectlibrary - Builds object files that can be linked together with other modules. Default extension is .o. The entrypoint,
baseaddress, and mangledsymbols module attributes are not applicable for this module type.
	kernel - Builds ntoskrnl.exe. Default extension is .exe. Default entrypoint is _NtProcessStartup. 

	kernelmodedll - Builds a kernel-mode DLL. Default extension is .dll. Default entrypoint is _DriverEntry at 8.

	kernelmodedriver - Builds a kernel-mode driver. Default extension is .sys. Default entrypoint is _DriverEntry at 8.

	nativedll - Builds a native DLL. Default extension is .dll. Default entrypoint is _DllMainCRTStartup at 12.

	win32dll - Builds a Win32 DLL. Default extension is .dll. Default entrypoint is _DllMain at 12.

	win32cui - Builds a Win32 console executable. Default extension is .exe. Default entrypoint is _mainCRTStartup. The
baseaddress module attribute is not applicable for this module type.

	win32gui - Builds a Win32 GUI executable. Default extension is .exe. Default entrypoint is _WinMainCRTStartup. The
baseaddress module attribute is not applicable for this module type.

	bootloader - Builds a bootloader. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for
this module type.

	bootsector - Builds one or more bootsector binaries. The entrypoint, baseaddress, and mangledsymbols module attributes are
not applicable for this module type.

	iso - Builds a bootable CD. The entrypoint, baseaddress, and mangledsymbols module attributes are not applicable for this
module type.

	test - Builds a testsuite. Default extension is .exe. Default entrypoint is _mainCRTStartup. The baseaddress module
attribute is not applicable for this module type.

	rpcserver - Generates and builds server code for an RPC interface. Default extension is .o. The entrypoint, baseaddress, and
mangledsymbols module attributes are not applicable for this module type.

	rpcclient - Generates and builds client code for an RPC interface. Default extension is .o. The entrypoint, baseaddress, and
mangledsymbols module attributes are not applicable for this module type.

	alias - Module is an alias for another module. This module type is the only module type for which the aliasof attribute is
applicable. Only the module install functionality is aliased.


> -----Original Message-----
> From: ros-dev-bounces at reactos.com [mailto:ros-dev-bounces at reactos.com] On Behalf Of Emanuele
> Aliberti
> Sent: 30. juli 2005 10:26
> To: ReactOS Development List
> Subject: [ros-dev] rbuild: module attributes
> 
> Hi all,
> 
> I think the *module* node needs two more attributes - *subsystem* and
> *windows* - because at present module type and module subsystem are
> merged in the *type*  attribute and its values are a bit confusing to
> me; also cui/gui information is hidden into value names.
> 
> I don't know the rbuild code and I can't therefore say if it is an easy
> task splitting the logic behind the *type* attribute into tree
> attributes whitout affecting the whole program logic.
> 
> A short rationale follows.
> 
> ___
> 
> Valid values for the *type* attribute should be:
> - library (static)
> - hal
> - driver
> - program
> - dll
> 
> Valid values for the *subsystem* attribute should be:
> - none
> - native
> - windows
> - posix
> - os2
> - vms
> (default "windows"; "none" required for type "library"; "native"
> required for types "hal", "driver")
> 
> Valid values for the *windows* attribute should be:
> - no
> - yes
> (default "no"; "no" required for types "library", "hal", "driver")
> 
> ___
> 
> Examples:
> 
> *ntdll.dll*
> 
> <module name="ntdll" type="dll" ...>
> 
> note that, at present, it is incorrectly described this way
> 
> <module name="ntdll" type="dll" subsystem="native" ...>
> 
> *ntoskrnl.exe*
> 
> <module name="ntoskrnl" type="program" subsystem="native" ...>
> 
> *atapi.sys*
> 
> <module name="atapi" type="driver" subsystem="native" ...>
> 
> 
> --
> :Emanuele Aliberti
> 
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.com
> http://reactos.com:8080/mailman/listinfo/ros-dev



More information about the Ros-dev mailing list