Added new option --disable-packages to gnustep-make's configure. It allows you to change the default installation domain for core pacakages to SYSTEM

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@27332 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2008-12-18 18:37:09 +00:00
parent e9423328a3
commit ef00408a11
5 changed files with 134 additions and 2 deletions

View file

@ -1,3 +1,16 @@
2008-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac: New option --disable-packages that causes
gnustep-make to assume packages are never involved, so it defaults
to installing 'core' software into System by default.
* configure: Regenerated.
* config-noarch.make.in: Added new variable
GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN.
* common.make: If GNUSTEP_INSTALLATION_DOMAIN is not set,
GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN is set to 'YES' and
GNUSTEP_CORE_SOFTWARE is set to 'YES', set
GNUSTEP_INSTALLATION_DOMAIN to SYSTEM.
2008-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
* Documentation/README.Packaging: New file providing complete

View file

@ -136,7 +136,17 @@ include $(GNUSTEP_MAKEFILES)/filesystem.make
#
ifeq ($(GNUSTEP_INSTALLATION_DOMAIN), )
GNUSTEP_INSTALLATION_DOMAIN = LOCAL
endif
# Exception - support the GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN option (turned
# on by using "./configure --disable-packages" in gnustep-make) which causes
# it to install by default into SYSTEM (instead of LOCAL) all 'core' GNUstep
# software - which has the GNUSTEP_CORE_SOFTWARE variable set.
ifeq ($(GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN), YES)
ifeq ($(GNUSTEP_CORE_SOFTWARE), YES)
GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
endif
endif
endif
# Safety check. Very annoying when you mistype and you end up
# installing into /. ;-)

View file

@ -152,3 +152,5 @@ ifeq ("@GNUSTEP_MULTI_PLATFORM@","")
GNUSTEP_HOST_VENDOR = @clean_target_vendor@
GNUSTEP_HOST_OS = @clean_target_os@
endif
GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN = @GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN@

60
configure vendored
View file

@ -273,7 +273,7 @@ PACKAGE_BUGREPORT=
ac_unique_file="application.make"
ac_default_prefix=NONE
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CXX CXXFLAGS ac_ct_CXX build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os ac_cv_library_combo cc_cppprecomp cc_bundle CYGWIN RANLIB AR DLLTOOL ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S TAR CHOWN GNUSTEP_MAKE_STRICT_V2_MODE GNUSTEP_ABSOLUTE_INSTALL_PATHS GNUSTEP_CONFIG_FILE GNUSTEP_USER_CONFIG_FILE GNUSTEP_USER_DEFAULTS_DIR GNUSTEP_MAKEFILES HOST_INSTALL GNUSTEP_FLATTENED GNUSTEP_IS_FLATTENED GNUSTEP_SYSTEM_APPS GNUSTEP_SYSTEM_ADMIN_APPS GNUSTEP_SYSTEM_WEB_APPS GNUSTEP_SYSTEM_TOOLS GNUSTEP_SYSTEM_ADMIN_TOOLS GNUSTEP_SYSTEM_LIBRARY GNUSTEP_SYSTEM_HEADERS GNUSTEP_SYSTEM_LIBRARIES GNUSTEP_SYSTEM_DOC GNUSTEP_SYSTEM_DOC_INFO GNUSTEP_SYSTEM_DOC_MAN GNUSTEP_NETWORK_APPS GNUSTEP_NETWORK_ADMIN_APPS GNUSTEP_NETWORK_WEB_APPS GNUSTEP_NETWORK_TOOLS GNUSTEP_NETWORK_ADMIN_TOOLS GNUSTEP_NETWORK_LIBRARY GNUSTEP_NETWORK_HEADERS GNUSTEP_NETWORK_LIBRARIES GNUSTEP_NETWORK_DOC GNUSTEP_NETWORK_DOC_INFO GNUSTEP_NETWORK_DOC_MAN GNUSTEP_LOCAL_APPS GNUSTEP_LOCAL_ADMIN_APPS GNUSTEP_LOCAL_WEB_APPS GNUSTEP_LOCAL_TOOLS GNUSTEP_LOCAL_ADMIN_TOOLS GNUSTEP_LOCAL_LIBRARY GNUSTEP_LOCAL_HEADERS GNUSTEP_LOCAL_LIBRARIES GNUSTEP_LOCAL_DOC GNUSTEP_LOCAL_DOC_INFO GNUSTEP_LOCAL_DOC_MAN GNUSTEP_USER_DIR_APPS GNUSTEP_USER_DIR_ADMIN_APPS GNUSTEP_USER_DIR_WEB_APPS GNUSTEP_USER_DIR_TOOLS GNUSTEP_USER_DIR_ADMIN_TOOLS GNUSTEP_USER_DIR_LIBRARY GNUSTEP_USER_DIR_HEADERS GNUSTEP_USER_DIR_LIBRARIES GNUSTEP_USER_DIR_DOC GNUSTEP_USER_DIR_DOC_INFO GNUSTEP_USER_DIR_DOC_MAN GNUSTEP_SYSTEM_USERS_DIR GNUSTEP_NETWORK_USERS_DIR GNUSTEP_LOCAL_USERS_DIR GNUSTEP_SYSTEM_ROOT GNUSTEP_NETWORK_ROOT GNUSTEP_LOCAL_ROOT GNUSTEP_USER_DIR GNUSTEP_MULTI_PLATFORM BACKEND_BUNDLE objc_threaded ac_cv_objc_threaded USE_OBJC_EXCEPTIONS AUTO_DEPENDENCIES GCC_WITH_PRECOMPILED_HEADERS SOLARIS_SHARED INCLUDES LIB_DIR OBJCFLAGS GNUMAKE MAKE_WITH_INFO_FUNCTION GNUSTEP_STRIP_MAKEFILES GNUSTEP_MAKE_VERSION GNUSTEP_MAKE_MAJOR_VERSION GNUSTEP_MAKE_MINOR_VERSION GNUSTEP_MAKE_SUBMINOR_VERSION clean_target_os clean_target_cpu clean_target_vendor LATEX2HTML LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CXX CXXFLAGS ac_ct_CXX build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os ac_cv_library_combo cc_cppprecomp cc_bundle CYGWIN RANLIB AR DLLTOOL ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S TAR CHOWN GNUSTEP_MAKE_STRICT_V2_MODE GNUSTEP_ABSOLUTE_INSTALL_PATHS GNUSTEP_CONFIG_FILE GNUSTEP_USER_CONFIG_FILE GNUSTEP_USER_DEFAULTS_DIR GNUSTEP_MAKEFILES HOST_INSTALL GNUSTEP_FLATTENED GNUSTEP_IS_FLATTENED GNUSTEP_SYSTEM_APPS GNUSTEP_SYSTEM_ADMIN_APPS GNUSTEP_SYSTEM_WEB_APPS GNUSTEP_SYSTEM_TOOLS GNUSTEP_SYSTEM_ADMIN_TOOLS GNUSTEP_SYSTEM_LIBRARY GNUSTEP_SYSTEM_HEADERS GNUSTEP_SYSTEM_LIBRARIES GNUSTEP_SYSTEM_DOC GNUSTEP_SYSTEM_DOC_INFO GNUSTEP_SYSTEM_DOC_MAN GNUSTEP_NETWORK_APPS GNUSTEP_NETWORK_ADMIN_APPS GNUSTEP_NETWORK_WEB_APPS GNUSTEP_NETWORK_TOOLS GNUSTEP_NETWORK_ADMIN_TOOLS GNUSTEP_NETWORK_LIBRARY GNUSTEP_NETWORK_HEADERS GNUSTEP_NETWORK_LIBRARIES GNUSTEP_NETWORK_DOC GNUSTEP_NETWORK_DOC_INFO GNUSTEP_NETWORK_DOC_MAN GNUSTEP_LOCAL_APPS GNUSTEP_LOCAL_ADMIN_APPS GNUSTEP_LOCAL_WEB_APPS GNUSTEP_LOCAL_TOOLS GNUSTEP_LOCAL_ADMIN_TOOLS GNUSTEP_LOCAL_LIBRARY GNUSTEP_LOCAL_HEADERS GNUSTEP_LOCAL_LIBRARIES GNUSTEP_LOCAL_DOC GNUSTEP_LOCAL_DOC_INFO GNUSTEP_LOCAL_DOC_MAN GNUSTEP_USER_DIR_APPS GNUSTEP_USER_DIR_ADMIN_APPS GNUSTEP_USER_DIR_WEB_APPS GNUSTEP_USER_DIR_TOOLS GNUSTEP_USER_DIR_ADMIN_TOOLS GNUSTEP_USER_DIR_LIBRARY GNUSTEP_USER_DIR_HEADERS GNUSTEP_USER_DIR_LIBRARIES GNUSTEP_USER_DIR_DOC GNUSTEP_USER_DIR_DOC_INFO GNUSTEP_USER_DIR_DOC_MAN GNUSTEP_SYSTEM_USERS_DIR GNUSTEP_NETWORK_USERS_DIR GNUSTEP_LOCAL_USERS_DIR GNUSTEP_SYSTEM_ROOT GNUSTEP_NETWORK_ROOT GNUSTEP_LOCAL_ROOT GNUSTEP_USER_DIR GNUSTEP_MULTI_PLATFORM GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN BACKEND_BUNDLE objc_threaded ac_cv_objc_threaded USE_OBJC_EXCEPTIONS AUTO_DEPENDENCIES GCC_WITH_PRECOMPILED_HEADERS SOLARIS_SHARED INCLUDES LIB_DIR OBJCFLAGS GNUMAKE MAKE_WITH_INFO_FUNCTION GNUSTEP_STRIP_MAKEFILES GNUSTEP_MAKE_VERSION GNUSTEP_MAKE_MAJOR_VERSION GNUSTEP_MAKE_MINOR_VERSION GNUSTEP_MAKE_SUBMINOR_VERSION clean_target_os clean_target_cpu clean_target_vendor LATEX2HTML LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -886,6 +886,31 @@ Optional Features:
by a variety of machines with different hardware and o/s.
--disable-packages
Disabling packages causes 'core' GNUstep software to be installed
into the System domain by default.
The System domain is normally reserved for 'packages', that is
the components shipped with your GNUstep system. But if you're
building everything from source yourself, the System domain would
never be used then. In that case, you can use this option to change
the default installation domain for 'core' GNUstep software,
installing them into System (instead of Local) by default. Then,
gnustep-make will by default install your 'core' GNUstep software
into System, and everything else into Local. This is only the
default; you can always install a specific piece of software into
whatever domain you want by using GNUSTEP_INSTALLATION_DOMAIN as
in 'make install GNUSTEP_INSTALLATION_DOMAIN=LOCAL'.
Disabling 'packages' is very dangerous for end-users since they might be
overwriting their System installation if they compile and install
source code downloaded from the internet (eg, if they're trying a new
version of Gorm). Unless you are one of these guys building
everything from source and with a reason to put core packages into
System, please do not use this configure option. In particular,
whenever packages are involved, packages must *not* be disabled.
Packagers (people building ready-to-use GNUstep distributions to be
distributed to end-users) must never use this option.
--disable-backend-bundle
Compile GUI backend as a library. Use this option if the default
compilation of the GUI backend as a bundle (loadable module) is
@ -4532,6 +4557,38 @@ else
fi
#--------------------------------------------------------------------
# Do we need to install 'core' software into the System domain ?
#--------------------------------------------------------------------
#
# This option install the 'core' GNUstep software into the System
# domain; as an option, it conflicts with packages - the System domain
# is supposed to be reserved for them. It is extremely dangerous to
# enable it whenever packages are involved, and for this reason we
# named it "--disable-packages" so that no packager will be tempted
# to use it. :-)
#
echo "$as_me:$LINENO: checking if we should assume packages are never involved so we install core software into System by default" >&5
echo $ECHO_N "checking if we should assume packages are never involved so we install core software into System by default... $ECHO_C" >&6
# Check whether --enable-packages or --disable-packages was given.
if test "${enable_packages+set}" = set; then
enableval="$enable_packages"
ac_cv_packages=$enableval
else
ac_cv_packages="undefined"
fi;
if test "$ac_cv_packages" = "no"; then
GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN=YES
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6;
else
GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN=NO
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6;
fi
#--------------------------------------------------------------------
# Build backend bundles (on by default)
#--------------------------------------------------------------------
@ -6301,6 +6358,7 @@ s,@GNUSTEP_NETWORK_ROOT@,$GNUSTEP_NETWORK_ROOT,;t t
s,@GNUSTEP_LOCAL_ROOT@,$GNUSTEP_LOCAL_ROOT,;t t
s,@GNUSTEP_USER_DIR@,$GNUSTEP_USER_DIR,;t t
s,@GNUSTEP_MULTI_PLATFORM@,$GNUSTEP_MULTI_PLATFORM,;t t
s,@GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN@,$GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN,;t t
s,@BACKEND_BUNDLE@,$BACKEND_BUNDLE,;t t
s,@objc_threaded@,$objc_threaded,;t t
s,@ac_cv_objc_threaded@,$ac_cv_objc_threaded,;t t

View file

@ -959,6 +959,55 @@ else
fi
AC_SUBST(GNUSTEP_MULTI_PLATFORM)
#--------------------------------------------------------------------
# Do we need to install 'core' software into the System domain ?
#--------------------------------------------------------------------
#
# This option install the 'core' GNUstep software into the System
# domain; as an option, it conflicts with packages - the System domain
# is supposed to be reserved for them. It is extremely dangerous to
# enable it whenever packages are involved, and for this reason we
# named it "--disable-packages" so that no packager will be tempted
# to use it. :-)
#
AC_MSG_CHECKING(if we should assume packages are never involved so we install core software into System by default)
AC_ARG_ENABLE(packages, [
--disable-packages
Disabling packages causes 'core' GNUstep software to be installed
into the System domain by default.
The System domain is normally reserved for 'packages', that is
the components shipped with your GNUstep system. But if you're
building everything from source yourself, the System domain would
never be used then. In that case, you can use this option to change
the default installation domain for 'core' GNUstep software,
installing them into System (instead of Local) by default. Then,
gnustep-make will by default install your 'core' GNUstep software
into System, and everything else into Local. This is only the
default; you can always install a specific piece of software into
whatever domain you want by using GNUSTEP_INSTALLATION_DOMAIN as
in 'make install GNUSTEP_INSTALLATION_DOMAIN=LOCAL'.
Disabling 'packages' is very dangerous for end-users since they might be
overwriting their System installation if they compile and install
source code downloaded from the internet (eg, if they're trying a new
version of Gorm). Unless you are one of these guys building
everything from source and with a reason to put core packages into
System, please do not use this configure option. In particular,
whenever packages are involved, packages must *not* be disabled.
Packagers (people building ready-to-use GNUstep distributions to be
distributed to end-users) must never use this option.
],
ac_cv_packages=$enableval,
ac_cv_packages="undefined")
if test "$ac_cv_packages" = "no"; then
GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN=YES
AC_MSG_RESULT(yes);
else
GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN=NO
AC_MSG_RESULT(no);
fi
AC_SUBST(GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN)
#--------------------------------------------------------------------
# Build backend bundles (on by default)
#--------------------------------------------------------------------