[Darwin/iphone] Build for armv7+s when targeting 6.0+, armv6+7 when targeting 3.0+, and armv6 only when targeting 2.0+. Throw an error when trying to deploy to iOS versions less than 4.3 when building against 6.0.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@568 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[instance/rules] If code signing is enabled, link the resulting binary as [name].unsigned and sign it and rename it as a separate signing step.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@569 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[instance/rules] Get rid of the _THEOS_TEMPLATE_NOWARNING_LINKING_RULE in favour of a 'nowarn' argument on _THEOS_TEMPLATE_DEFAULT_LINKING_RULE.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@570 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[makefiles] Build full bundles in THEOS_OBJ_DIR during compilation instead of only creating them during staging.  THEOS_SHARED_BUNDLE_RESOURCE_PATH is now usable during building AND staging and will contain the appropriate value for either, to avoid breaking old custom bundle staging rules.

Fix some Darwin flat bundle path naming inconsistencies which resulted
in double-slashes. Rename some variables in instance/shared/bundle.mk to
more accurately identify their purposes. Frameworks are bundles too, so
they now support xxx_BUNDLE_NAME.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@571 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[bootstrap] Build a generic ARM binary (force-allow cpu subtype mismatches), sidestep the new framework bundle layout issue for native CydiaSubstrate, and streamline the build-and-lipo process.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@572 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[makefiles] Use target.pl to calculate all __THEOS_TARGET_ARG_{n} values and write them out to an auxiliary temporary makefile. Only do this once per direct invocation. This makes TARGET=iphone::5.0 acceptable - it was not prior because 'word' delimits on spaces, not one single space.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@573 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[Darwin/iphone] Add support for an optional :clang argument, which pushes back the SDK and deployment versions one place. TARGET=iphone:clang:sdk:deploy, or TARGET=:clang (assuming a default target of 'iphone'), will suffice (among many other variants.)

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@574 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Bail early if we can't create the project directory.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@575 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Abort depth mapping (and abort processing the file) if we get to a depth below 0.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@576 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[rules] Mark .unsigned files as .INTERMEDIATE, indicating that they should not be rebuilt simply for the sake of rebuilding them.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@577 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[rules] Tag object files with a hash of the flags used to build the instance. This allows two instances to refer to the same file and build it with different flags, and grants automatic recompilation on all flags changes.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@578 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[makefiles] *FLAGS reform.

Kill {AUXILIARY,SHARED,DEBUG}_CFLAGS. Do not modify ADDITIONAL_CFLAGS,
as it is for the user to specify. Replace INTERNAL_*FLAGS with
_THEOS_INTERNAL_*FLAGS and TARGET_*FLAGS with _THEOS_TARGET_*FLAGS.
merge the previous behaviour of AUXILIARY_*FLAGS into
_THEOS_INTERNAL_*FLAGS - that is, specifying the libraries to link as
well as the type-specific flags.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@579 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[makefiles] Add __theos_bool and _THEOS_{TRUE,FALSE}. __theos_bool standardizes yes/YES/y/Y/1 to _THEOS_TRUE and everything else to _THEOS_FALSE. Use it for messages and DEBUG.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@580 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[common] Don't check $(messages) multiple times, instead opting for _THEOS_VERBOSE.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@581 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[makefiles] Make __theos_bool take a variable value instead of a variable name, and use that to extend the lowercase/CAPS convention to debug/DEBUG and messages/MESSAGES.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@582 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Add Group::initRequired, which returns 1 if it must be initialized.

The criteria for initialization are:
* A contained class has a hooked method.
* A contained class is a subclass.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@583 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Generate a constructor for all non-explicit init-required groups. Do not generate a constructor if no groups match this criterion.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@584 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Complain about all non-initialized groups that require initialization (instead of only explicit groups that are not initialized).

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@585 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Include logos/logos.h in the Base preamble, and prepend that to all Generator preambles. logos.h is currently blank.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@586 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Update %c() to evaluate to a static (and inlinable) caching lookup function.

This breaks the dependence of runtime class lookup on _ungrouped. %c can
now safely be used anywhere.

* The StaticClassGroup no longer needs to be initialized.
* Introduce the LOGOS_INLINE define to logos/logos.h.
* Do not refer to global state when initializing hooks.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@587 4410221e-0ddf-4ce3-99c0-2db6c0dbc727