Implemented NEEDS_GUI as a general variable to turn on/off linking against the gui library

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@26103 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2008-02-19 14:15:08 +00:00
parent bf5b212e0e
commit 400bb44e99
12 changed files with 77 additions and 19 deletions

View file

@ -1,3 +1,22 @@
2008-02-19 Nicola Pero <nicola.pero@meta-innovation.com>
You can now set NEEDS_GUI = YES / NO in your GNUmakefile to change
the behaviour for all targets/projects in one go.
* Instance/rules.make: Renamed NEEDS_GUI to INTERNAL_NEEDS_GUI and
DEFAULT_NEEDS_GUI to NEEDS_GUI.
* Instance/application.make (DEFAULT_NEEDS_GUI): Renamed to
NEEDS_GUI; do not set if already set.
* Instance/bundle.make: Same change.
* Instance/framework.make: Same change.
* Instance/gswapp.make: Same change.
* Instance/gswbundle.make: Same change.
* Instance/library.make: Same change.
* Instance/palette.make: Same change.
* Instance/tool.make: Same change.
* Documentation/releasenotes.texi: Added NEEDS_GUI.
* RELEASENOTES: Regenerated.
2008-02-19 Nicola Pero <nicola.pero@meta-innovation.com>
Implemented new variable xxx_NEEDS_GUI that can be used to

View file

@ -21,13 +21,22 @@ before or after sourcing GNUstep.sh. The same applies to
This new variable can be used to specify that a project needs to be
linked against the gui library (or not). If set to YES, the gui
library will be linked; if set to NO, the gui library will not be
linked. If unspecified, the behaviour depends on the project type
linked. If unspecified, the generic variable NEEDS_GUI is used; if
that is also unspecified, the behaviour depends on the project type
(and is backwards-compatible): applications, bundles, frameworks,
palettes and libraries link automatically against the gui library;
other project types do not. It is recommended that you set
xxx_NEEDS_GUI for all bundles, frameworks and libraries to clarify how
the linking should be done.
@item NEEDS_GUI
This new variable can be used to specify that all projects built by
this GNUmakefile need to be linked against the gui library (or not).
If set to YES, the gui library will be linked; if set to NO, the gui
library will not be linked. This behaviour can be overridden for
specific project targets by using the xxx_NEEDS_GUI variable (see
above).
@end table
@section Version 2.0.0

View file

@ -22,7 +22,9 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Applications usually link against a gui library (if available).
DEFAULT_NEEDS_GUI = YES
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = YES
endif
#
# Include in the common makefile rules

View file

@ -23,7 +23,9 @@
# Bundles usually link against a gui library (if available). If you
# don't need a gui library, use xxx_NEEDS_GUI = NO.
DEFAULT_NEEDS_GUI = YES
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = YES
endif
ifeq ($(RULES_MAKE_LOADED),)
include $(GNUSTEP_MAKEFILES)/rules.make

View file

@ -22,7 +22,9 @@
# Frameworks usually link against a gui library (if available). If
# you don't need a gui library, use xxx_NEEDS_GUI = NO.
DEFAULT_NEEDS_GUI = YES
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = YES
endif
ifeq ($(RULES_MAKE_LOADED),)
include $(GNUSTEP_MAKEFILES)/rules.make

View file

@ -23,7 +23,9 @@
# If not, write to the Free Software Foundation,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
DEFAULT_NEEDS_GUI = NO
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = NO
endif
ifeq ($(RULES_MAKE_LOADED),)
include $(GNUSTEP_MAKEFILES)/rules.make

View file

@ -21,7 +21,9 @@
# If not, write to the Free Software Foundation,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
DEFAULT_NEEDS_GUI = NO
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = NO
endif
ifeq ($(RULES_MAKE_LOADED),)
include $(GNUSTEP_MAKEFILES)/rules.make

View file

@ -23,7 +23,9 @@
# Libraries usually link against a gui library (if available). If you
# don't need a gui library, use xxx_NEEDS_GUI = NO.
DEFAULT_NEEDS_GUI = YES
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = YES
endif
ifeq ($(RULES_MAKE_LOADED),)
include $(GNUSTEP_MAKEFILES)/rules.make

View file

@ -23,7 +23,9 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Palettes usually link against a gui library (if available).
DEFAULT_NEEDS_GUI = YES
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = YES
endif
ifeq ($(RULES_MAKE_LOADED),)
include $(GNUSTEP_MAKEFILES)/rules.make

View file

@ -364,26 +364,31 @@ LIBRARIES_DEPEND_UPON += $($(GNUSTEP_INSTANCE)_LIBRARIES_DEPEND_UPON)
# You can control whether you want to link against the gui library
# by using one of the two commands --
#
# xxx_NEEDS_GUI = YES
# xxx_NEEDS_GUI = NO
# (where 'xxx' is the name of your application/bundle/etc.)
#
# If you don't specify anything, the default for the project type
# will be used (this is the DEFAULT_NEEDS_GUI = YES/NO that is
# at the top of all project types).
# You can also change it for all applications/bundles/etc by doing
#
# NEEDS_GUI = YES (or NO)
#
# If you don't specify anything, the default for the project type will
# be used (this is the NEEDS_GUI = YES/NO that is at the top of all
# project types).
#
# If the project type doesn't specify anything (eg, doesn't need
# linking to ObjC libraries, or it is buggy/old or it is from a
# third-party and hasn't been updated yet) then the default is NO.
NEEDS_GUI = $($(GNUSTEP_INSTANCE)_NEEDS_GUI)
INTERNAL_NEEDS_GUI = $($(GNUSTEP_INSTANCE)_NEEDS_GUI)
ifeq ($(NEEDS_GUI),)
ifeq ($(INTERNAL_NEEDS_GUI),)
NEEDS_GUI = $(DEFAULT_NEEDS_GUI)
INTERNAL_NEEDS_GUI = $(NEEDS_GUI)
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = NO
ifeq ($(INTERNAL_NEEDS_GUI),)
INTERNAL_NEEDS_GUI = NO
endif
endif
@ -391,7 +396,7 @@ endif
# Now we prepare a variable, ALL_LIBS, containing the list of all LIBS
# that should be used when linking. This is different depending on
# whether we need to link against the gui library or not.
ifeq ($(NEEDS_GUI), YES)
ifeq ($(INTERNAL_NEEDS_GUI), YES)
# Please note that you usually need to add ALL_LIB_DIRS before
# ALL_LIBS when linking. It's kept separate because sometimes (eg,
# bundles) we only use ALL_LIB_DIRS and not ALL_LIBS (not sure how

View file

@ -21,7 +21,9 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Tools don't link against gui by default
DEFAULT_NEEDS_GUI = NO
ifeq ($(NEEDS_GUI),)
NEEDS_GUI = NO
endif
#
# The name of the tools is in the TOOL_NAME variable.

View file

@ -21,13 +21,22 @@ using a newer version of the make system.
This new variable can be used to specify that a project needs to be
linked against the gui library (or not). If set to YES, the gui
library will be linked; if set to NO, the gui library will not be
linked. If unspecified, the behaviour depends on the project type
linked. If unspecified, the generic variable NEEDS_GUI is used; if
that is also unspecified, the behaviour depends on the project type
(and is backwards-compatible): applications, bundles, frameworks,
palettes and libraries link automatically against the gui library;
other project types do not. It is recommended that you set
xxx_NEEDS_GUI for all bundles, frameworks and libraries to clarify
how the linking should be done.
`NEEDS_GUI'
This new variable can be used to specify that all projects built by
this GNUmakefile need to be linked against the gui library (or
not). If set to YES, the gui library will be linked; if set to
NO, the gui library will not be linked. This behaviour can be
overridden for specific project targets by using the xxx_NEEDS_GUI
variable (see above).
1.2 Version 2.0.0
=================