? ld_fw_path.csh
? ld_fw_path.sh
? make.patch.txt
? make.patch.txt.gz
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/ChangeLog,v
retrieving revision 1.1057
diff -u -r1.1057 ChangeLog
--- ChangeLog	9 Mar 2004 23:22:36 -0000	1.1057
+++ ChangeLog	11 Mar 2004 10:31:07 -0000
@@ -1,3 +1,14 @@
+2004-03-10  David Ayers  <d.ayers@inode.at>
+
+	* config.make.in (HAVE_FRAMEWORK_SUPPORT): New variable.
+	* common.make (GS_FRAMEWORK_PATH, GNUSTEP_FRAMEWORKS_DIRS,
+	GNUSTEP_FRAMEWORKS_FLAGS): New variables.  Use new 
+	GNUSTEP_FRAMEWORKS_DIRS to un/set GNUSTEP_FRAMEWORKS_FLAGS.
+	* rules.make (ALL_OBJCFLAGS, ALL_CFLAGS, ALL_LIB_DIRS): Use
+	new GNUSTEP_FRAMEWORKS_FLAGS.
+	* native-library.make: Use HAVE_FRAMEWORK_SUPPORT in favor
+	of (FOUNDATION_LIB).
+	
 2004-03-09  Adam Fedor  <fedor@gnu.org>
 
 	* Documentation/GNUMakefile.in (GNUSTEP_TEXI2HTML_FLAGS): Add
Index: GNUmakefile.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/GNUmakefile.in,v
retrieving revision 1.119
diff -u -r1.119 GNUmakefile.in
--- GNUmakefile.in	19 Oct 2003 14:24:07 -0000	1.119
+++ GNUmakefile.in	11 Mar 2004 10:31:07 -0000
@@ -155,8 +155,9 @@
 	 $(EC)(for f in config.guess config.sub install-sh mkinstalldirs \
 		clean_cpu.sh clean_os.sh \
 		clean_vendor.sh cpu.sh GNUstep-reset.sh \
-		ld_lib_path.sh os.sh transform_paths.sh vendor.sh \
-		ld_lib_path.csh relative_path.sh ; do \
+		ld_lib_path.sh ld_fw_path.sh \
+		os.sh transform_paths.sh vendor.sh \
+		ld_lib_path.csh ld_fw_path.sh relative_path.sh ; do \
 	     $(INSTALL_PROGRAM) -m 755 $(srcdir)/$$f $(makedir); \
 	   done)
 	$(EC)($(INSTALL_PROGRAM) -m 755 GNUstep.sh $(makedir); \
@@ -211,9 +212,9 @@
 	rm -f $(makedir)/$(GNUSTEP_TARGET_DIR)/user_home$(EXEEXT)
 	for f in config.guess config.sub install-sh mkinstalldirs \
 		clean_cpu.sh clean_os.sh \
-		clean_vendor.sh cpu.sh ld_lib_path.sh os.sh \
+		clean_vendor.sh cpu.sh ld_lib_path.sh ld_fw_path.sh os.sh \
 		transform_paths.sh vendor.sh \
-		ld_lib_path.csh fixpath.sh \
+		ld_lib_path.csh ld_fw_path.sh fixpath.sh \
 	        GNUstep.sh GNUstep.csh ; do \
 	  rm -f $(makedir)/$$f; \
 	done
Index: GNUstep.csh.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/GNUstep.csh.in,v
retrieving revision 1.59
diff -u -r1.59 GNUstep.csh.in
--- GNUstep.csh.in	28 Apr 2003 02:25:33 -0000	1.59
+++ GNUstep.csh.in	11 Mar 2004 10:31:07 -0000
@@ -102,6 +102,7 @@
 unset temp_path dir
 
 source "${GNUSTEP_MAKEFILES}/ld_lib_path.csh"
+source "${GNUSTEP_MAKEFILES}/ld_fw_path.csh"
 
 # FIXME/TODO - use GNUSTEP_PATHLIST here
 set gnustep_class_path="${GNUSTEP_USER_ROOT}/Library/Libraries/Java:${GNUSTEP_LOCAL_ROOT}/Library/Libraries/Java:${GNUSTEP_NETWORK_ROOT}/Library/Libraries/Java:${GNUSTEP_SYSTEM_ROOT}/Library/Libraries/Java"
Index: GNUstep.sh.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/GNUstep.sh.in,v
retrieving revision 1.81
diff -u -r1.81 GNUstep.sh.in
--- GNUstep.sh.in	28 Apr 2003 02:25:33 -0000	1.81
+++ GNUstep.sh.in	11 Mar 2004 10:31:08 -0000
@@ -224,6 +224,7 @@
 export PATH
 
 . $GNUSTEP_MAKEFILES/ld_lib_path.sh
+. $GNUSTEP_MAKEFILES/ld_fw_path.sh
 
 tmp_IFS="$IFS"
 IFS=:
Index: common.make
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/common.make,v
retrieving revision 1.142
diff -u -r1.142 common.make
--- common.make	9 Mar 2004 17:38:18 -0000	1.142
+++ common.make	11 Mar 2004 10:31:08 -0000
@@ -60,6 +60,7 @@
   WHICH_LIB_SCRIPT = $(GNUSTEP_MAKEFILES)/which_lib
 endif
 LD_LIB_PATH_SCRIPT     = $(GNUSTEP_MAKEFILES)/ld_lib_path.sh
+LD_FW_PATH_SCRIPT      = $(GNUSTEP_MAKEFILES)/ld_fw_path.sh
 TRANSFORM_PATHS_SCRIPT = $(GNUSTEP_MAKEFILES)/transform_paths.sh
 REL_PATH_SCRIPT        = $(GNUSTEP_MAKEFILES)/relative_path.sh
 
@@ -245,6 +246,9 @@
 
 endif
 
+# Currently framework installation doesn't honor GNUSTEP_FLATTENED
+GS_FRAMEWORK_PATH = $(dir)/Library/Frameworks
+
 # First, we add paths based on GNUSTEP_USER_ROOT.
 
 # Please note that the following causes GS_HEADER_PATH to be evaluated
@@ -252,6 +256,7 @@
 # effect we wanted.
 GNUSTEP_HEADERS_DIRS = $(foreach dir,$(GNUSTEP_USER_ROOT),$(GS_HEADER_PATH))
 GNUSTEP_LIBRARIES_DIRS = $(foreach dir,$(GNUSTEP_USER_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS = $(foreach dir,$(GNUSTEP_USER_ROOT),$(GS_FRAMEWORK_PATH))
 
 # Second, if GNUSTEP_LOCAL_ROOT is different from GNUSTEP_USER_ROOT
 # (which has already been added), we add the paths based on
@@ -259,6 +264,7 @@
 ifneq ($(GNUSTEP_LOCAL_ROOT), $(GNUSTEP_USER_ROOT))
 GNUSTEP_HEADERS_DIRS += $(foreach dir,$(GNUSTEP_LOCAL_ROOT),$(GS_HEADER_PATH))
 GNUSTEP_LIBRARIES_DIRS += $(foreach dir,$(GNUSTEP_LOCAL_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS += $(foreach dir,$(GNUSTEP_LOCAL_ROOT),$(GS_FRAMEWORK_PATH))
 endif
 
 # Third, if GNUSTEP_NETWORK_ROOT is different from GNUSTEP_USER_ROOT and
@@ -268,6 +274,7 @@
 ifneq ($(GNUSTEP_NETWORK_ROOT), $(GNUSTEP_LOCAL_ROOT))
 GNUSTEP_HEADERS_DIRS += $(foreach dir,$(GNUSTEP_NETWORK_ROOT),$(GS_HEADER_PATH))
 GNUSTEP_LIBRARIES_DIRS += $(foreach dir,$(GNUSTEP_NETWORK_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS += $(foreach dir,$(GNUSTEP_NETWORK_ROOT),$(GS_FRAMEWORK_PATH))
 endif
 endif
 
@@ -279,6 +286,7 @@
 ifneq ($(GNUSTEP_SYSTEM_ROOT), $(GNUSTEP_NETWORK_ROOT))
 GNUSTEP_HEADERS_DIRS += $(foreach dir,$(GNUSTEP_SYSTEM_ROOT),$(GS_HEADER_PATH))
 GNUSTEP_LIBRARIES_DIRS += $(foreach dir,$(GNUSTEP_SYSTEM_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS += $(foreach dir,$(GNUSTEP_SYSTEM_ROOT),$(GS_FRAMEWORK_PATH))
 endif
 endif
 endif
@@ -307,10 +315,19 @@
    $(addprefix -I,$(foreach dir,$(GNUSTEP_HEADERS_DIRS),$(remove_if_empty)))
  GNUSTEP_LIBRARIES_FLAGS = \
    $(addprefix -L,$(foreach dir,$(GNUSTEP_LIBRARIES_DIRS),$(remove_if_empty)))
+ GNUSTEP_FRAMEWORKS_FLAGS = \
+   $(addprefix -F,$(foreach dir,$(GNUSTEP_FRAMEWORKS_DIRS),$(remove_if_empty)))
 else
  # Default case, just add -I / -L
  GNUSTEP_HEADERS_FLAGS = $(addprefix -I,$(GNUSTEP_HEADERS_DIRS))
  GNUSTEP_LIBRARIES_FLAGS = $(addprefix -L,$(GNUSTEP_LIBRARIES_DIRS))
+ GNUSTEP_FRAMEWORKS_FLAGS = $(addprefix -F,$(GNUSTEP_FRAMEWORKS_DIRS))
+endif
+
+# The above is more readable if we don't clutter it with an extra
+# ifeq, so we'll reset the variable here for the common case.
+ifneq ($(HAVE_FRAMEWORK_SUPPORT), yes)
+GNUSTEP_FRAMEWORKS_FLAGS=
 endif
 
 ifeq ($(FOUNDATION_LIB), fd)
Index: config.make.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/config.make.in,v
retrieving revision 1.57
diff -u -r1.57 config.make.in
--- config.make.in	18 Feb 2004 16:55:11 -0000	1.57
+++ config.make.in	11 Mar 2004 10:31:08 -0000
@@ -122,6 +122,24 @@
 #
 AUTO_DEPENDENCIES = @AUTO_DEPENDENCIES@
 
+#
+# Whether the compiler suports framework options -framework/-F.
+# FIXME: This should be replaced by a real configure test.
+#        Currently only the Apple compiler is known to support them.
+#        As it will generally only work on Darwin if the Apple
+#        runtime is also in use, we'll use that test for now.
+#
+ifeq ($(OBJC_RUNTIME_LIB), apple)
+  HAVE_FRAMEWORK_SUPPORT=yes
+else
+ifeq ($(OBJC_RUNTIME_LIB), nx)
+  HAVE_FRAMEWORK_SUPPORT=yes
+else
+  HAVE_FRAMEWORK_SUPPORT=no
+endif
+endif
+
+
 ## Local variables:
 ## mode: makefile
 ## End:
Index: debugapp.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/debugapp.in,v
retrieving revision 1.35
diff -u -r1.35 debugapp.in
--- debugapp.in	8 Mar 2004 14:02:12 -0000	1.35
+++ debugapp.in	11 Mar 2004 10:31:08 -0000
@@ -181,6 +181,7 @@
 appname="`basename \"$appname\"`"
 appname="$appname$EXEEXT"
 . "$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/ld_lib_path.sh"
+. "$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/ld_fw_path.sh"
 
 
 if [ "$LIBRARY_COMBO" = "apple-apple-apple" ]; then
Index: executable.template.in
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/executable.template.in,v
retrieving revision 1.21
diff -u -r1.21 executable.template.in
--- executable.template.in	14 May 2003 15:10:22 -0000	1.21
+++ executable.template.in	11 Mar 2004 10:31:08 -0000
@@ -242,8 +242,9 @@
   fi
 fi
 
-# Load up LD_LIBRARY_PATH
+# Load up LD_LIBRARY_PATH and LD_FRAMEWORK_PATH
 . "$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/ld_lib_path.sh"
+. "$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/ld_fw_path.sh"
 
 exec "$full_appname/$relative_path" "$@"
 
Index: java-executable.template
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/java-executable.template,v
retrieving revision 1.7
diff -u -r1.7 java-executable.template
--- java-executable.template	28 Apr 2003 02:25:33 -0000	1.7
+++ java-executable.template	11 Mar 2004 10:31:08 -0000
@@ -72,9 +72,10 @@
 fi
 
 #
-# Load up LD_LIBRARY_PATH
+# Load up LD_LIBRARY_PATH and LD_FRAMEWORK_PATH
 #
 . $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/ld_lib_path.sh
+. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/ld_fw_path.sh
 
 #
 # Load up CLASSPATH
Index: native-library.make
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/native-library.make,v
retrieving revision 1.2
diff -u -r1.2 native-library.make
--- native-library.make	3 Nov 2003 22:41:04 -0000	1.2
+++ native-library.make	11 Mar 2004 10:31:08 -0000
@@ -33,7 +33,7 @@
 # This will be converted into -lMyLibrary link flag on unix/windows, and
 # into -framework MyLibrary link flag on apple.
 
-ifeq ($(FOUNDATION_LIB), apple)
+ifeq ($(HAVE_FRAMEWORK_SUPPORT), yes)
 
   FRAMEWORK_NAME = $(NATIVE_LIBRARY_NAME)
   include $(GNUSTEP_MAKEFILES)/framework.make
Index: rules.make
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/make/rules.make,v
retrieving revision 1.162
diff -u -r1.162 rules.make
--- rules.make	9 Mar 2004 17:30:42 -0000	1.162
+++ rules.make	11 Mar 2004 10:31:08 -0000
@@ -235,14 +235,16 @@
    $(AUXILIARY_INCLUDE_DIRS) \
    $(DERIVED_SOURCES_HEADERS_FLAG) \
    -I. $(SYSTEM_INCLUDES) \
-   $(GNUSTEP_HEADERS_FLAGS)
+   $(GNUSTEP_HEADERS_FLAGS) \
+   $(GNUSTEP_FRAMEWORKS_FLAGS)
 
 ALL_CFLAGS = $(INTERNAL_CFLAGS) $(ADDITIONAL_CFLAGS) \
    $(AUXILIARY_CFLAGS) $(ADDITIONAL_INCLUDE_DIRS) \
    $(AUXILIARY_INCLUDE_DIRS) \
    $(DERIVED_SOURCES_HEADERS_FLAG) \
    -I. $(SYSTEM_INCLUDES) \
-   $(GNUSTEP_HEADERS_FLAGS) 
+   $(GNUSTEP_HEADERS_FLAGS) \
+   $(GNUSTEP_FRAMEWORKS_FLAGS)
 
 # if you need, you can define ADDITIONAL_CCFLAGS to add C++ specific flags
 ALL_CCFLAGS = $(ADDITIONAL_CCFLAGS) $(AUXILIARY_CCFLAGS)
@@ -266,6 +268,7 @@
 ALL_LIB_DIRS = $(ADDITIONAL_FRAMEWORK_DIRS) $(AUXILIARY_FRAMEWORK_DIRS) \
    $(ADDITIONAL_LIB_DIRS) $(AUXILIARY_LIB_DIRS) \
    $(GNUSTEP_LIBRARIES_FLAGS) \
+   $(GNUSTEP_FRAMEWORKS_FLAGS) \
    $(SYSTEM_LIB_DIR)
 
 # We use .plist (property-list files, see gnustep-base) in quite a few
