From e62c6157576f94a04b534ebe8f70d05fd86e1862 Mon Sep 17 00:00:00 2001 From: Richard Frith-MacDonald Date: Sat, 25 Jun 2016 07:12:41 +0000 Subject: [PATCH] Changed to restructure subdirectory layout for binaries and system dependent resources in a non-flattened installation. First step towards seamless Debian multiarch support. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@39918 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 32 ++++++++++++++++++++++ Documentation/releasenotes.texi | 15 +++++++++++ GNUmakefile.in | 6 ++--- GNUstep.csh.in | 4 +-- GNUstep.sh.in | 4 +-- Master/rules.make | 20 +++----------- common.make | 48 +++++++-------------------------- config-noarch.make.in | 19 +++++-------- gnustep-config.in | 24 +++++++++++++++++ openapp.in | 2 +- opentool.in | 8 +++--- rules.make | 28 ++++++++++--------- 12 files changed, 117 insertions(+), 93 deletions(-) diff --git a/ChangeLog b/ChangeLog index 375e74e2..d236ea48 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,35 @@ +2016-06-25 Richard Frith-Macdonald + + * Documentation/releasenotes.texi: + * GNUmakefile.in: + * GNUstep.csh.in: + * GNUstep.sh.in: + * Master/rules.make: + * common.make: + * config-noarch.make.in: + * gnustep-config.in: + * openapp.in: + * opentool.in: + * rules.make: + When building non-flattened, the subdirectory name for + libraries/binaries is changed for Debian compatibility (and simplicity) + to use a directory whose name is of the form architecture/library-combo + rather than nested directories of the form cpu/os-abi/library-combo. + The architecture name format is a sanitised triplet cpu-os-abi (where + previously we had cpu/os-abi). + When building non-flattened, header files are now installed in an + architecture and library-combo dependent subdirectory in the same way + that binary libraries are installed. This removes an inconsistency and + makes sense with Debian multiarch support which puts headers in an + architecture specific subdirectory. + These changes are the first step in making GNUstep work seamlessly + with Debian multiarch. To use them you will need to rebuild your + entire gnustep installation, and in particular build a version of + gnustep-base which has correspoinding changes to know where to look + up resources at runtime. + However, the changes should have no effect on a flattened installation + (currently the default). + 2016-05-19 Seong Gu Lee * Instance/application.make: diff --git a/Documentation/releasenotes.texi b/Documentation/releasenotes.texi index c7cf7f17..6dd430c3 100644 --- a/Documentation/releasenotes.texi +++ b/Documentation/releasenotes.texi @@ -4,6 +4,21 @@ The release notes include descriptions of API changes, behavior changes and other information that might help developers and users migrate to using a newer version of the make system. +@section Version 2.7.0 + +When building non-flattened, the subdirectory name for libraries/binaries +is changed for Debian compatibility (and simplicity) to use a directory +whose name is of the form architecture/library-combo rather than nested +directories of the form cpu/os-abi/library-combo. The architecture name +format is a sanitised triplet cpu-os-abi (where previously we had cpu/os-abi). + +When building non-flattened, header files are now installed in an architecture +and library-combo dependent subdirectory in the same way that binary libraries +are installed. This removes an inconsistency and makes sense with Debian +multiarch support which puts headers in an architecture specific subdirectory. + +The long since deprecated GNUSTEP_INSTALLATION_DIR is removed. + @section Version 2.6.8 Configure option '--with-library-combo=ng-gnu-gnu' to use the 'Next Generation' setup of the latest ObjectiveC-2 runtime and compiler features rather than traditional runtime. Requires the new runtime and a recent clang compiler. diff --git a/GNUmakefile.in b/GNUmakefile.in index c63c40be..a210d105 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -85,7 +85,7 @@ override GNUSTEP_TARGET_OS = @clean_target_os@ override GNUSTEP_LIB_COMBO = @ac_cv_library_combo@ ifeq ($(GNUSTEP_IS_FLATTENED), no) - override GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS) + override GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)-$(GNUSTEP_TARGET_OS) override GNUSTEP_TARGET_LDIR = $(GNUSTEP_TARGET_DIR)/$(GNUSTEP_LIB_COMBO) override MAYBE_LIBRARY_COMBO = $(GNUSTEP_LIB_COMBO) override MAKE_CONFIG_DIR = $(GNUSTEP_TARGET_LDIR) @@ -93,7 +93,7 @@ else override GNUSTEP_TARGET_DIR = . override GNUSTEP_TARGET_LDIR = . override MAYBE_LIBRARY_COMBO = . - override MAKE_CONFIG_DIR = $(GNUSTEP_LIB_COMBO) + override MAKE_CONFIG_DIR = . endif export GNUSTEP_TARGET_DIR @@ -192,10 +192,8 @@ install: generated-files echo "Creating makefile directories in: $(makedir)"; \ "$(srcdir)/mkinstalldirs" \ "$(makedir)" \ - "$(makedir)/$(GNUSTEP_TARGET_CPU)" \ "$(makedir)/$(GNUSTEP_TARGET_DIR)" \ "$(makedir)/$(GNUSTEP_TARGET_LDIR)" \ - "$(makedir)/$(GNUSTEP_LIB_COMBO)" \ "$(makedir)/Additional" \ "$(makedir)/Auxiliary" \ "$(makedir)/Master" \ diff --git a/GNUstep.csh.in b/GNUstep.csh.in index 9e8290c6..336c2dd3 100755 --- a/GNUstep.csh.in +++ b/GNUstep.csh.in @@ -220,7 +220,7 @@ end foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_TOOLS_PATHLIST}"'; do echo $i; done'` ) set path_fragment="${dir}" if ( "${GNUSTEP_IS_FLATTENED}" == "no" ) then - set path_fragment="${dir}:${dir}/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:${dir}/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}" + set path_fragment="${dir}:${dir}/${GNUSTEP_HOST_CPU}-${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:${dir}/${GNUSTEP_HOST_CPU}-${GNUSTEP_HOST_OS}" endif if ( ! ${?PATH} ) then @@ -238,7 +238,7 @@ foreach dir ( `/bin/sh -c 'IFS=:; for i in '"${GNUSTEP_LIBRARIES_PATHLIST}"'; do if ( "$GNUSTEP_IS_FLATTENED" == "yes" ) then set path_fragment="$dir" else - set path_fragment="$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" + set path_fragment="$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS" endif switch ( "${GNUSTEP_HOST_OS}" ) diff --git a/GNUstep.sh.in b/GNUstep.sh.in index 35a84677..ef091bd8 100755 --- a/GNUstep.sh.in +++ b/GNUstep.sh.in @@ -332,7 +332,7 @@ for dir in $GNUSTEP_TOOLS_PATHLIST; do # Prepare the path_fragment if [ "$GNUSTEP_IS_FLATTENED" = "no" ]; then - path_fragment="$dir:$dir/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:$dir/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}" + path_fragment="$dir:$dir/${GNUSTEP_HOST_CPU}-${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:$dir/${GNUSTEP_HOST_CPU}-${GNUSTEP_HOST_OS}" else path_fragment="$dir" fi @@ -366,7 +366,7 @@ IFS=: if [ "$GNUSTEP_IS_FLATTENED" = "yes" ]; then path_fragment="$dir" else - path_fragment="$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" + path_fragment="$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS" fi # Append the path_fragment to lib_paths ... in a different way, diff --git a/Master/rules.make b/Master/rules.make index 52ab368d..65cf93ba 100644 --- a/Master/rules.make +++ b/Master/rules.make @@ -77,8 +77,8 @@ $(GNUSTEP_OBJ_DIR): # install depends on all as per GNU/Unix habits, conventions and standards. # The very first top-most make invocation we want to have install -# depend on internal-check-install-permissions and on all, and -# distclean depend on clean. We used to check MAKELEVEL=0 here to +# depend on all, and distclean depend on clean. +# We used to check MAKELEVEL=0 here to # determine if this is the top-most invocation of make, but that does # not work if the top-most invocation of make is done from within a # (non-gnustep-make) makefile itself! So we use a marker variable. @@ -87,7 +87,7 @@ $(GNUSTEP_OBJ_DIR): # subinvocations will have it set and we can distinguish them. ifeq ($(_GNUSTEP_TOP_INVOCATION_DONE),) # Top-most invocation of make -install:: internal-check-install-permissions all \ +install:: all \ before-install internal-install after-install internal-after-install distclean:: clean before-distclean internal-distclean after-distclean @@ -127,20 +127,6 @@ internal-jar:: after-jar:: -ifneq ($(GNUSTEP_INSTALLATION_DIR),) -internal-check-install-permissions: - @if [ -d "$(GNUSTEP_INSTALLATION_DIR)" \ - -a ! -w "$(GNUSTEP_INSTALLATION_DIR)" ]; then \ - echo "*ERROR*: the software is configured to install itself into $(GNUSTEP_INSTALLATION_DIR)"; \ - echo "but you do not have permissions to write in that directory:";\ - echo "Aborting installation."; \ - echo ""; \ - exit 1; \ - fi -else -internal-check-install-permissions: -endif - # By adding an ADDITIONAL_INSTALL_DIRS variable you can request # additional installation directories to be created before the first # installation target is executed. You can also have xxx_INSTALL_DIRS diff --git a/common.make b/common.make index 3269ecbf..736736b8 100644 --- a/common.make +++ b/common.make @@ -143,8 +143,8 @@ export LIBRARY_COMBO = $(OBJC_RUNTIME_LIB)-$(FOUNDATION_LIB)-$(GUI_LIB) ifeq ($(GNUSTEP_IS_FLATTENED), no) - GNUSTEP_HOST_DIR = $(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS) - GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS) + GNUSTEP_HOST_DIR = $(GNUSTEP_HOST_CPU)-$(GNUSTEP_HOST_OS) + GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)-$(GNUSTEP_TARGET_OS) GNUSTEP_HOST_LDIR = $(GNUSTEP_HOST_DIR)/$(LIBRARY_COMBO) GNUSTEP_TARGET_LDIR = $(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO) else @@ -159,9 +159,10 @@ endif # this includes CC, OPTFLAG etc. # ifeq ($(GNUSTEP_IS_FLATTENED),yes) - include $(GNUSTEP_MAKEFILES)/$(LIBRARY_COMBO)/config.make + include $(GNUSTEP_MAKEFILES)/config.make else - include $(GNUSTEP_MAKEFILES)/$(GNUSTEP_TARGET_LDIR)/config.make + -include $(GNUSTEP_MAKEFILES)/config.make + -include $(GNUSTEP_MAKEFILES)/$(GNUSTEP_TARGET_LDIR)/config.make endif # Then, work out precisely library combos etc @@ -327,7 +328,7 @@ ifneq ($(GNUSTEP_INSTALLATION_DIR),) ifeq ($(GNUSTEP_IS_FLATTENED),yes) GNUSTEP_HEADERS = $(GNUSTEP_INSTALLATION_DIR)/Library/Headers else - GNUSTEP_HEADERS = $(GNUSTEP_INSTALLATION_DIR)/Library/Headers/$(LIBRARY_COMBO) + GNUSTEP_HEADERS = $(GNUSTEP_INSTALLATION_DIR)/Library/Headers/$(GNUSTEP_TARGET_LDIR) endif GNUSTEP_APPLICATION_SUPPORT = $(GNUSTEP_LIBRARY)/ApplicationSupport GNUSTEP_BUNDLES = $(GNUSTEP_LIBRARY)/Bundles @@ -366,7 +367,7 @@ else ifeq ($(GNUSTEP_IS_FLATTENED),yes) GNUSTEP_HEADERS = $(MAYBE_DESTDIR)$(GNUSTEP_$(GNUSTEP_INSTALLATION_DOMAIN)_HEADERS) else - GNUSTEP_HEADERS = $(MAYBE_DESTDIR)$(GNUSTEP_$(GNUSTEP_INSTALLATION_DOMAIN)_HEADERS)/$(LIBRARY_COMBO) + GNUSTEP_HEADERS = $(MAYBE_DESTDIR)$(GNUSTEP_$(GNUSTEP_INSTALLATION_DOMAIN)_HEADERS)/$(GNUSTEP_TARGET_LDIR) endif GNUSTEP_APPLICATION_SUPPORT = $(MAYBE_DESTDIR)$(GNUSTEP_$(GNUSTEP_INSTALLATION_DOMAIN)_APPLICATION_SUPPORT) GNUSTEP_BUNDLES = $(MAYBE_DESTDIR)$(GNUSTEP_$(GNUSTEP_INSTALLATION_DOMAIN)_BUNDLES) @@ -457,8 +458,8 @@ ifeq ($(GNUSTEP_IS_FLATTENED), no) # Later, we'll systematically replace domain with USER, the LOCAL, # then NETWORK, then SYSTEM. GS_HEADER_PATH = \ - $(GNUSTEP_$(domain)_HEADERS)/$(LIBRARY_COMBO)/$(GNUSTEP_TARGET_DIR) \ - $(GNUSTEP_$(domain)_HEADERS)/$(LIBRARY_COMBO) \ + $(GNUSTEP_$(domain)_HEADERS)/$(GNUSTEP_TARGET_LDIR) \ + $(GNUSTEP_$(domain)_HEADERS)/$(GNUSTEP_TARGET_DIR) \ $(GNUSTEP_$(domain)_HEADERS) GS_LIBRARY_PATH = \ @@ -609,37 +610,6 @@ ifeq ($(OBJC_RUNTIME_LIB), gnu) OBJC_RUNTIME = GNU endif -# If all of the following really needed ? If the system is not -# flattened, multiple Foundation libraries are not permitted anyway, -# so libFoundation could just put his headers in Foundation/. If -# library combos are used, all headers are in a library-combo -# directory, so libFoundation could still put his headers in -# Foundation/ and no conflict should arise. As for the -# GNUSTEP_TARGET_DIR, maybe we should key all of our headers in a -# GNUSTEP_TARGET_LDIR directory (rather than just a LIBRARY_COMBO -# directory). But does it really matter in practice anyway ? -ifeq ($(GNUSTEP_IS_FLATTENED),yes) -GNUSTEP_HEADERS_FND_DIRS = \ - $(GNUSTEP_USER_HEADERS)/libFoundation \ - $(GNUSTEP_LOCAL_HEADERS)/libFoundation \ - $(GNUSTEP_NETWORK_HEADERS)/libFoundation \ - $(GNUSTEP_SYSTEM_HEADERS)/libFoundation \ - $(GNUSTEP_USER_HEADERS)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \ - $(GNUSTEP_LOCAL_HEADERS)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \ - $(GNUSTEP_NETWORK_HEADERS)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \ - $(GNUSTEP_SYSTEM_HEADERS)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) -else -GNUSTEP_HEADERS_FND_DIRS = \ - $(GNUSTEP_USER_HEADERS)/$(LIBRARY_COMBO)/libFoundation \ - $(GNUSTEP_LOCAL_HEADERS)/$(LIBRARY_COMBO)/libFoundation \ - $(GNUSTEP_NETWORK_HEADERS)/$(LIBRARY_COMBO)/libFoundation \ - $(GNUSTEP_SYSTEM_HEADERS)/$(LIBRARY_COMBO)/libFoundation \ - $(GNUSTEP_USER_HEADERS)/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \ - $(GNUSTEP_LOCAL_HEADERS)/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \ - $(GNUSTEP_NETWORK_HEADERS)/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \ - $(GNUSTEP_SYSTEM_HEADERS)/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) -endif - ifeq ($(REMOVE_EMPTY_DIRS), yes) # Build the GNUSTEP_HEADERS_FND_FLAG by removing the empty dirs # from GNUSTEP_HEADERS_FND_DIRS, then prepending -I to each of them diff --git a/config-noarch.make.in b/config-noarch.make.in index 17d1ceda..57f807f5 100644 --- a/config-noarch.make.in +++ b/config-noarch.make.in @@ -74,12 +74,10 @@ endif # not set in the config files (or on the command-line or in # environment). ifeq ($(GNUSTEP_MAKE_STRICT_V2_MODE),yes) -# FIXME: These should abort if the variables are ever evaluated, but -# it needs testing. -# GNUSTEP_SYSTEM_ROOT = $(error GNUSTEP_SYSTEM_ROOT is obsolete) -# GNUSTEP_LOCAL_ROOT = $(error GNUSTEP_LOCAL_ROOT is obsolete) -# GNUSTEP_NETWORK_ROOT = $(error GNUSTEP_NETWORK_ROOT is obsolete) -# GNUSTEP_USER_DIR = $(error GNUSTEP_USER_DIR is obsolete) + GNUSTEP_SYSTEM_ROOT = $(error GNUSTEP_SYSTEM_ROOT is obsolete) + GNUSTEP_LOCAL_ROOT = $(error GNUSTEP_LOCAL_ROOT is obsolete) + GNUSTEP_NETWORK_ROOT = $(error GNUSTEP_NETWORK_ROOT is obsolete) + GNUSTEP_USER_DIR = $(error GNUSTEP_USER_DIR is obsolete) else GNUSTEP_SYSTEM_ROOT = @GNUSTEP_SYSTEM_ROOT@ GNUSTEP_LOCAL_ROOT = @GNUSTEP_LOCAL_ROOT@ @@ -111,8 +109,7 @@ endif # GNUSTEP_FLATTENED is obsolete, please use GNUSTEP_IS_FLATTENED # instead ifeq ($(GNUSTEP_MAKE_STRICT_V2_MODE),yes) -# FIXME: Test that this is OK -# GNUSTEP_FLATTENED = $(error GNUSTEP_FLATTENED is obsolete) + GNUSTEP_FLATTENED = $(error GNUSTEP_FLATTENED is obsolete) else GNUSTEP_FLATTENED = @GNUSTEP_FLATTENED@ endif @@ -131,9 +128,7 @@ ifneq ($(GNUSTEP_MAKE_STRICT_V2_MODE),yes) GNUSTEP_USER_ROOT = $(GNUSTEP_HOME)/$(GNUSTEP_USER_DIR) endif else -# FIXME: Test that this is OK. When I use it, it seems to -# abort even if GNUSTEP_USER_ROOT is never referenced! -# GNUSTEP_USER_ROOT = $(error GNUSTEP_USER_ROOT is obsolete) + GNUSTEP_USER_ROOT = $(error GNUSTEP_USER_ROOT is obsolete) endif # FIXME: Shouldn't the following go into config.make ? They are @@ -164,4 +159,4 @@ endif # an additional make invocation which is performed when compiling an # executable or library; that invocation does not use .NOTPARALLEL and # will compile all the files of the executable or library in parallel. -GNUSTEP_MAKE_PARALLEL_BUILDING = @GNUSTEP_MAKE_PARALLEL_BUILDING@ \ No newline at end of file +GNUSTEP_MAKE_PARALLEL_BUILDING = @GNUSTEP_MAKE_PARALLEL_BUILDING@ diff --git a/gnustep-config.in b/gnustep-config.in index 27acc301..6dc4223f 100755 --- a/gnustep-config.in +++ b/gnustep-config.in @@ -39,7 +39,11 @@ case "$1" in --objc-libs) ;; --base-libs) ;; --gui-libs) ;; + --host-dir) ;; + --host-ldir) ;; --installation-domain-for=*) ;; + --target-dir-for=*) ;; + --target-ldir-for=*) ;; *) # An unrecognized option echo "Unrecognized option: $1" @@ -97,10 +101,18 @@ if [ "$1" = "--help" ]; then echo echo "--gui-libs: prints all the flags required to link a GUI ObjC program" echo + echo "--host-dir: prints the host architecture name" + echo + echo "--host-ldir: prints the host architecture and library combo name" + echo echo "--installation-domain-for=xxx: prints the value of the default installation domain" echo " for the package xxx. The result could be 'SYSTEM', 'NETWORK', 'LOCAL'" echo " or 'USER'. This command always returns LOCAL unless the system has been" echo " personalized using an installation-domains.conf file." + echo "--target-dir-for=xxx: prints the standardised target architecture directory" + echo + echo "--target-ldir-for=xxx: prints the target architecture and library combo name" + echo exit 0 fi @@ -186,9 +198,21 @@ case "$1" in exit 0;; --gui-libs) @GNUMAKE@ --no-print-directory -s -f "$GNUSTEP_MAKEFILES/empty.make" print-gnustep-make-gui-libs quiet=yes 2>/dev/null exit 0;; + --host-dir) @GNUMAKE@ --no-print-directory -s -f "$GNUSTEP_MAKEFILES/empty.make" print-gnustep-make-host-dir quiet=yes 2>/dev/null + exit 0;; + --host-ldir) @GNUMAKE@ --no-print-directory -s -f "$GNUSTEP_MAKEFILES/empty.make" print-gnustep-make-host-ldir quiet=yes 2>/dev/null + exit 0;; --installation-domain-for=*) gs_package_name=`echo "$1" | sed -e 's/--installation-domain-for=//'` @GNUMAKE@ --no-print-directory -s -f "$GNUSTEP_MAKEFILES/empty.make" print-gnustep-make-installation-domain PACKAGE_NAME="$gs_package_name" quiet=yes 2>/dev/null exit 0;; + --target-dir-for=*) + gs_target=`echo "$1" | sed -e 's/--target-dir-for=//'` + @GNUMAKE@ --no-print-directory -s -f "$GNUSTEP_MAKEFILES/empty.make" print-gnustep-make-target-dir target="$gs_target" quiet=yes 2>/dev/null + exit 0;; + --target-ldir-for=*) + gs_target=`echo "$1" | sed -e 's/--target-ldir-for=//'` + @GNUMAKE@ --no-print-directory -s -f "$GNUSTEP_MAKEFILES/empty.make" print-gnustep-make-target-ldir target="$gs_target" quiet=yes 2>/dev/null + exit 0;; esac # diff --git a/openapp.in b/openapp.in index e8aaecae..20a70ebc 100755 --- a/openapp.in +++ b/openapp.in @@ -269,7 +269,7 @@ if [ "$GNUSTEP_IS_FLATTENED" = "no" ]; then case "$LIBRARY_COMBO" in apple-*) openapp_app_executable="$openapp_full_appname/Contents/MacOS/$openapp_appname";; - *) openapp_app_executable="$openapp_full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$openapp_appname";; + *) openapp_app_executable="$openapp_full_appname/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$openapp_appname";; esac else diff --git a/opentool.in b/opentool.in index 69cd6fae..414556d0 100644 --- a/opentool.in +++ b/opentool.in @@ -153,16 +153,16 @@ case "$tool" in # GNUSTEP_NETWORK_TOOLS # GNUSTEP_SYSTEM_TOOLS # - # We look in the GNUSTEP_HOST_CPU/GNUSTEP_HOST_OS/LIBRARY_COMBO - # subdirectory first, then the GNUSTEP_HOST_CPU/GNUSTEP_HOST_OS + # We look in the GNUSTEP_HOST_CPU-GNUSTEP_HOST_OS/LIBRARY_COMBO + # subdirectory first, then the GNUSTEP_HOST_CPU-GNUSTEP_HOST_OS # subdirectory, then the top-level directory. # (For flattened systems we skip the first two options. # # TODO: Also search Admin Tools directories if appropriate for dir in "$GNUSTEP_USER_TOOLS" "$GNUSTEP_LOCAL_TOOLS" "$GNUSTEP_NETWORK_TOOLS" "$GNUSTEP_SYSTEM_TOOLS" ; do if [ "$GNUSTEP_IS_FLATTENED" = "no" ]; then - tmpgnudir="$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" - tmplibdir="$dir/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO" + tmpgnudir="$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS" + tmplibdir="$dir/$GNUSTEP_HOST_CPU-$GNUSTEP_HOST_OS/$LIBRARY_COMBO" # echo "$tmplibdir/$tool"; if [ -x "$tmplibdir/$tool" ]; then # echo "Found: $tmplibdir/$tool"; diff --git a/rules.make b/rules.make index a33b6cea..a7663a66 100644 --- a/rules.make +++ b/rules.make @@ -674,18 +674,6 @@ endif $(GNUSTEP_MAKEFILES)/*.make: ; -ifeq ($(GNUSTEP_IS_FLATTENED), no) -# If this file can't be found, we can't load the config for that -# library combo / target, so we can't do anything. We print an -# error and exit. -$(GNUSTEP_MAKEFILES)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/config.make: - $(ECHO_NOTHING)\ - echo "Error - can not find configuration for '$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)'"; \ - echo "Please configure, make and make install gnustep-make again using"; \ - echo "./configure --with-library-combo=$(LIBRARY_COMBO)"; \ - exit 1$(END_ECHO) -endif - $(GNUSTEP_MAKEFILES)/Additional/*.make: ; $(GNUSTEP_MAKEFILES)/Master/*.make: ; @@ -720,6 +708,10 @@ endif print-gnustep-make-base-libs \ print-gnustep-make-gui-libs \ print-gnustep-make-installation-domain \ + print-gnustep-make-host-dir \ + print-gnustep-make-host-ldir \ + print-gnustep-make-target-dir \ + print-gnustep-make-target-ldir \ print-gnustep-install-headers \ print-gnustep-install-libraries @@ -761,6 +753,18 @@ print-gnustep-make-gui-libs: print-gnustep-make-installation-domain: @(echo $(GNUSTEP_INSTALLATION_DOMAIN)) +print-gnustep-make-host-dir: + @(echo $(GNUSTEP_HOST_DIR)) + +print-gnustep-make-target-ldir: + @(echo $(GNUSTEP_TARGET_LDIR)) + +print-gnustep-make-target-dir: + @(echo $(GNUSTEP_TARGET_DIR)) + +print-gnustep-make-host-ldir: + @(echo $(GNUSTEP_HOST_LDIR)) + # These targets are used if gnustep-config can't be found but GNUSTEP_MAKEFILES # is defined ... they let you get libraries and their headers (eg libobjc2) # installed in the right place.