Use dashes instead of underscores in the library combo. Renamed makefiles to GNUmakefile. Use all the user, local and system directories for searching after headers and libraries.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@2574 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
ovidiu 1997-10-28 19:00:28 +00:00
parent d12bf3432f
commit f74246a241
11 changed files with 88 additions and 70 deletions

View file

@ -1,3 +1,21 @@
Tue Oct 28 09:32:23 1997 Ovidiu Predescu <ovidiu@net-community.com>
* common.make: Define the system, local and user headers variables.
Also define the compilation flags based upon these variables.
* ld_lib_path.sh: Use LIBRARY_COMBO instead of library_combo because
the first one is automatically exported by both GNUmake and the shell.
No longer use the export_variable to print out the name of the dynamic
linker environment variable.
* openapp.in: Changed underscores to dashes in the library combo names.
* debugapp.in: Likewise.
* rules.make: Add search paths for include files to the user, local and
system header directories. The same with the libraries.
* test.make: Create the unix.exp file to search for the configuration
files in all the user, local and system directories. Use
ld_library_path.sh to setup the dynamic linker's environment variable
since we can't rely on how different paths are separated in this
variable.
Mon Oct 27 18:01:38 1997 Ovidiu Predescu <ovidiu@net-community.com>
* Makefile: Renamed to GNUmakefile.
@ -7,7 +25,6 @@ Mon Oct 27 18:01:38 1997 Ovidiu Predescu <ovidiu@net-community.com>
Mon Oct 27 17:18:39 1997 Ovidiu Predescu <ovidiu@net-community.com>
* core.make: Use dashes instead of underscores in the library combo.
Changed the library_combo variable name to libcombo.
* DESIGN: Updated.
Mon Oct 27 15:46:56 1997 Ovidiu Predescu <ovidiu@net-community.com>

4
DESIGN
View file

@ -274,13 +274,13 @@ The makefile package will allow the user to choose between different
library combinations. To specify a combination you want to compile for
just type:
$ make libcombo="library combination"
$ make library_combo="library combination"
For instance if you want to choose to compile using the NeXT's PDO
Foundation and use the GNUstep GUI library on a Unix machine you can
do like this:
$ make libcombo=nx-pdo-gnu-xdps
$ make library_combo=nx-pdo-gnu-xdps
Projects that require running configure before compiling

View file

@ -53,8 +53,7 @@ PATH=$GNUSTEP_SYSTEM_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMB
PATH=$GNUSTEP_LOCAL_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$PATH
PATH=$GNUSTEP_USER_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$PATH
export_variable=yes library_combo=$LIBRARY_COMBO \
. $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
. $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
#
# Perform any user initialization

View file

@ -90,16 +90,22 @@ GNUSTEP_MAKEFILES = $(GNUSTEP_SYSTEM_ROOT)/Makefiles
# In case we need to explicitly reference
# the system, local, and user library directories
GNUSTEP_SYSTEM_LIBRARIES_ROOT = $(GNUSTEP_SYSTEM_ROOT)/Libraries
GNUSTEP_SYSTEM_TARGET_LIBRARIES = $(GNUSTEP_SYSTEM_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_SYSTEM_TARGET_LIBRARIES = \
$(GNUSTEP_SYSTEM_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_SYSTEM_LIBRARIES = $(GNUSTEP_SYSTEM_TARGET_LIBRARIES)/$(LIBRARY_COMBO)
GNUSTEP_SYSTEM_HEADERS = $(GNUSTEP_SYSTEM_ROOT)/Headers
GNUSTEP_LOCAL_LIBRARIES_ROOT = $(GNUSTEP_LOCAL_ROOT)/Libraries
GNUSTEP_LOCAL_TARGET_LIBRARIES = $(GNUSTEP_LOCAL_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_LOCAL_TARGET_LIBRARIES = \
$(GNUSTEP_LOCAL_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_LOCAL_LIBRARIES = $(GNUSTEP_LOCAL_TARGET_LIBRARIES)/$(LIBRARY_COMBO)
GNUSTEP_LOCAL_HEADERS = $(GNUSTEP_LOCAL_ROOT)/Headers
GNUSTEP_USER_LIBRARIES_ROOT = $(GNUSTEP_USER_ROOT)/Libraries
GNUSTEP_USER_TARGET_LIBRARIES = $(GNUSTEP_USER_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_USER_TARGET_LIBRARIES = \
$(GNUSTEP_USER_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_USER_LIBRARIES = $(GNUSTEP_USER_TARGET_LIBRARIES)/$(LIBRARY_COMBO)
GNUSTEP_USER_HEADERS = $(GNUSTEP_USER_ROOT)/Headers
#
# Determine Foundation header subdirectory based upon library combo
@ -108,35 +114,32 @@ ifeq ($(FOUNDATION_LIB),gnu)
GNUSTEP_FND_DIR = gnustep/base
FOUNDATION_LIBRARY_NAME = gnustep-base
FOUNDATION_LIBRARY_DEFINE = -DGNUSTEP_BASE_LIBRARY=1
GNUSTEP_HEADERS_FND = $(GNUSTEP_HEADERS)/$(GNUSTEP_FND_DIR)
GNUSTEP_HEADERS_FND_FLAG = -I$(GNUSTEP_HEADERS_FND) \
-I$(GNUSTEP_HEADERS_FND)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME)
endif
ifeq ($(FOUNDATION_LIB),fd)
GNUSTEP_FND_DIR = libFoundation
FOUNDATION_LIBRARY_NAME = Foundation
FOUNDATION_LIBRARY_DEFINE = -DLIB_FOUNDATION_LIBRARY=1
GNUSTEP_HEADERS_FND = $(GNUSTEP_HEADERS)/$(GNUSTEP_FND_DIR)
GNUSTEP_HEADERS_FND_FLAG = -I$(GNUSTEP_HEADERS_FND) \
-I$(GNUSTEP_HEADERS_FND)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME)
endif
ifeq ($(FOUNDATION_LIB),nx)
GNUSTEP_FND_DIR = NeXT
FOUNDATION_LIBRARY_NAME =
FOUNDATION_LIBRARY_DEFINE = -DNeXT_Foundation_LIBRARY=1
GNUSTEP_HEADERS_FND = $(GNUSTEP_HEADERS)/$(GNUSTEP_FND_DIR)
GNUSTEP_HEADERS_FND_FLAG = -I$(GNUSTEP_HEADERS_FND)
endif
ifeq ($(FOUNDATION_LIB),sun)
GNUSTEP_FND_DIR = sun
GNUSTEP_HEADERS_FND = $(GNUSTEP_HEADERS)/$(GNUSTEP_FND_DIR)
FOUNDATION_LIBRARY_DEFINE = -DSun_Foundation_LIBRARY=1
GNUSTEP_HEADERS_FND_FLAG = -I$(GNUSTEP_HEADERS_FND)
endif
GNUSTEP_HEADERS_FND_FLAG = -I$(GNUSTEP_USER_HEADERS)/$(GNUSTEP_FND_DIR) \
-I$(GNUSTEP_USER_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME) \
-I$(GNUSTEP_LOCAL_HEADERS)/$(GNUSTEP_FND_DIR) \
-I$(GNUSTEP_LOCAL_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME) \
-I$(GNUSTEP_SYSTEM_HEADERS)/$(GNUSTEP_FND_DIR) \
-I$(GNUSTEP_SYSTEM_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME)
#
# Determine AppKit header subdirectory based upon library combo
#
@ -233,6 +236,3 @@ ARCH_OBJ_DIR = \
endif
GNUSTEP_OBJ_DIR = $(GNUSTEP_OBJ_PREFIX)/$(ARCH_OBJ_DIR)/$(LIBRARY_COMBO)
# The standard GNUstep directories for finding shared libraries
GNUSTEP_LD_LIB_DIRS=$(GNUSTEP_USER_LIBRARIES):$(GNUSTEP_LOCAL_LIBRARIES):$(GNUSTEP_SYSTEM_LIBRARIES)

View file

@ -56,7 +56,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
# The default library combination
libcombo = @ac_cv_library_combo@
library_combo = @ac_cv_library_combo@
#
# X Window System headers and libraries

View file

@ -20,20 +20,20 @@
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Handle abbreviations for library combinations
ifeq ($(libcombo),nx)
ifeq ($(library_combo),nx)
the_library_combo=nx-nx-nx-nil
endif
ifeq ($(libcombo),gnu-xdps)
ifeq ($(library_combo),gnu-xdps)
the_library_combo=gnu-gnu-gnu-xdps
endif
ifeq ($(libcombo),fd-xdps)
ifeq ($(library_combo),fd-xdps)
the_library_combo=gnu-fd-gnu-xdps
endif
ifeq ($(the_library_combo),)
the_library_combo=$(libcombo)
the_library_combo=$(library_combo)
endif

View file

@ -71,9 +71,9 @@ if [ -f "$full_appname/library_paths.openapp" ]; then
fi
appname=`echo $app | sed 's/\.[a-z]*$//'`
export_variable=yes . $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
. $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
if [ "$library_combo" = nx_nx_nx_nil -a $GNUSTEP_HOST_OS = nextstep4 ]; then
if [ "$library_combo" = nx-nx-nx-nil -a $GNUSTEP_HOST_OS = nextstep4 ]; then
if [ ! -f $full_appname/$appname ]; then
echo "$full_appname application does not have a binary for this kind of machine and operating system."
exit 1

View file

@ -23,11 +23,9 @@
#
# The first (and only) parameter to this script is the canonical
# operating system name. If the environment variable export_variable
# is not set to `yes' it prints the name of the variable whose
# value keeps the paths searched for libraries
# operating system name.
last_path_part=Libraries/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$library_combo
last_path_part=Libraries/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO
host_os=$GNUSTEP_HOST_OS
@ -42,7 +40,6 @@ IFS="
case "$host_os" in
*nextstep4*)
ld_lib_path="DYLD_LIBRARY_PATH"
DYLD_LIBRARY_PATH="$GNUSTEP_USER_ROOT/$last_path_part:$GNUSTEP_LOCAL_ROOT/$last_path_part:$GNUSTEP_SYSTEM_ROOT/$last_path_part:$DYLD_LIBRARY_PATH"
if [ -n "$additional_library_paths" ]; then
for dir in $additional_library_paths; do
@ -53,7 +50,6 @@ case "$host_os" in
export DYLD_LIBRARY_PATH;;
*solaris*)
ld_lib_path="LD_LIBRARY_PATH"
LD_LIBRARY_PATH="$GNUSTEP_USER_ROOT/$last_path_part;$GNUSTEP_LOCAL_ROOT/$last_path_part;$GNUSTEP_SYSTEM_ROOT/$last_path_part;$LD_LIBRARY_PATH"
if [ -n "$additional_library_paths" ]; then
for dir in $additional_library_paths; do
@ -64,7 +60,6 @@ case "$host_os" in
export LD_LIBRARY_PATH;;
*)
ld_lib_path="LD_LIBRARY_PATH"
LD_LIBRARY_PATH="$GNUSTEP_USER_ROOT/$last_path_part:$GNUSTEP_LOCAL_ROOT/$last_path_part:$GNUSTEP_SYSTEM_ROOT/$last_path_part:$LD_LIBRARY_PATH"
if [ -n "$additional_library_paths" ]; then
for dir in $additional_library_paths; do
@ -76,9 +71,4 @@ case "$host_os" in
esac
if [ "$export_variable" != yes ]; then
echo $ld_lib_path
fi
IFS="$old_IFS"

View file

@ -27,11 +27,11 @@ if [ -z "$1" ]; then
exit 1
fi
library_combo=@ac_cv_library_combo@
LIBRARY_COMBO=@ac_cv_library_combo@
case $1 in
--library-combo=*)
library_combo=`echo $1 | sed 's/--library-combo=//'`
LIBRARY_COMBO=`echo $1 | sed 's/--library-combo=//'`
if [ -z "$2" ]; then
echo usage: `basename $0` [--library-combo=...] application [arguments...]
exit 1
@ -71,9 +71,9 @@ if [ -f "$full_appname/library_paths.openapp" ]; then
fi
appname=`echo $app | sed 's/\.[a-z]*$//'`
export_variable=yes . $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
. $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
if [ "$library_combo" = nx_nx_nx_nil -a $GNUSTEP_HOST_OS = nextstep4 ]; then
if [ "$LIBRARY_COMBO" = nx-nx-nx-nil -a $GNUSTEP_HOST_OS = nextstep4 ]; then
if [ ! -f $full_appname/$appname ]; then
echo "$full_appname application does not have a binary for this kind of machine and operating system."
exit 1
@ -90,13 +90,13 @@ else
exit 1
fi
if [ ! -d $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$library_combo ]; then
echo "$full_appname application does not have a binary for this combination of libraries: $library_combo."
if [ ! -d $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO ]; then
echo "$full_appname application does not have a binary for this combination of libraries: $LIBRARY_COMBO."
exit 1
fi
# From some reasons $@ does not correctly pass the arguments to the binary
# so I use xargs to do this.
echo $@ | xargs $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$library_combo/$appname
echo $@ | xargs $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname
fi

View file

@ -28,18 +28,23 @@ ALL_CPPFLAGS = $(CPPFLAGS) $(ADDITIONAL_CPPFLAGS)
ALL_OBJCFLAGS = $(INTERNAL_OBJCFLAGS) $(ADDITIONAL_OBJCFLAGS) \
$(ADDITIONAL_INCLUDE_DIRS) -I. $(SYSTEM_INCLUDES) \
$(GNUSTEP_HEADERS_FND_FLAG) $(GNUSTEP_HEADERS_GUI_FLAG) \
-I$(GNUSTEP_TARGET_HEADERS) -I$(GNUSTEP_HEADERS)
-I$(GNUSTEP_TARGET_HEADERS) -I$(GNUSTEP_USER_HEADERS) \
-I$(GNUSTEP_LOCAL_HEADERS) -I$(GNUSTEP_SYSTEM_HEADERS)
ALL_CFLAGS = $(INTERNAL_CFLAGS) $(ADDITIONAL_CFLAGS) \
$(ADDITIONAL_INCLUDE_DIRS) -I. $(SYSTEM_INCLUDES) \
$(GNUSTEP_HEADERS_FND_FLAG) $(GNUSTEP_HEADERS_GUI_FLAG) \
-I$(GNUSTEP_TARGET_HEADERS) -I$(GNUSTEP_HEADERS)
-I$(GNUSTEP_TARGET_HEADERS) -I$(GNUSTEP_USER_HEADERS) \
-I$(GNUSTEP_LOCAL_HEADERS) -I$(GNUSTEP_SYSTEM_HEADERS)
ALL_LDFLAGS = $(ADDITIONAL_LDFLAGS) $(GUI_LDFLAGS) \
$(BACKEND_LDFLAGS) $(SYSTEM_LDFLAGS) $(INTERNAL_LDFLAGS)
ALL_LIB_DIRS = $(ADDITIONAL_LIB_DIRS) -L$(GNUSTEP_LIBRARIES) \
-L$(GNUSTEP_TARGET_LIBRARIES) $(SYSTEM_LIB_DIR)
ALL_LIB_DIRS = $(ADDITIONAL_LIB_DIRS) \
-L$(GNUSTEP_USER_LIBRARIES) -L$(GNUSTEP_USER_LIBRARIES_ROOT) \
-L$(GNUSTEP_LOCAL_LIBRARIES) -L$(GNUSTEP_LOCAL_LIBRARIES_ROOT) \
-L$(GNUSTEP_SYSTEM_LIBRARIES) -L$(GNUSTEP_SYSTEM_LIBRARIES_ROOT) \
$(SYSTEM_LIB_DIR)
ALL_TOOL_LIBS = $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) $(FND_LIBS) \
$(OBJC_LIBS) $(TARGET_SYSTEM_LIBS)
@ -48,8 +53,10 @@ ALL_GUI_LIBS = $(ADDITIONAL_GUI_LIBS) $(AUXILIARY_GUI_LIBS) $(BACKEND_LIBS) \
$(GUI_LIBS) $(AUXILIARY_TOOL_LIBS) \
$(FND_LIBS) $(OBJC_LIBS) $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
LIB_DIRS_NO_SYSTEM = $(ADDITIONAL_LIB_DIRS) -L$(GNUSTEP_LIBRARIES) \
-L$(GNUSTEP_TARGET_LIBRARIES)
LIB_DIRS_NO_SYSTEM = $(ADDITIONAL_LIB_DIRS) \
-L$(GNUSTEP_USER_LIBRARIES) -L$(GNUSTEP_USER_LIBRARIES_ROOT) \
-L$(GNUSTEP_LOCAL_LIBRARIES) -L$(GNUSTEP_LOCAL_LIBRARIES_ROOT) \
-L$(GNUSTEP_SYSTEM_LIBRARIES) -L$(GNUSTEP_SYSTEM_LIBRARIES_ROOT)
ALL_TOOL_LIBS := \
$(shell $(WHICH_LIB_SCRIPT) $(LIB_DIRS_NO_SYSTEM) $(ALL_TOOL_LIBS) \

View file

@ -93,8 +93,6 @@ CHECK_APP_LIST := $(TEST_APP_NAME:=.checkapp)
TEST_APP_STAMPS := $(foreach app,$(TEST_APP_NAME),stamp-testapp-$(app))
TEST_APP_STAMPS := $(addprefix $(GNUSTEP_OBJ_DIR)/,$(TEST_APP_STAMPS))
ALL_LD_LIB_DIRS = $(ADDITIONAL_LD_LIB_DIRS)$(GNUSTEP_LD_LIB_DIRS)
ifeq ($(SCRIPTS_DIRECTORY),)
SCRIPTS_DIRECTORY = .
endif
@ -134,20 +132,26 @@ internal-all:: $(GNUSTEP_OBJ_DIR) internal-test-build
$(SCRIPTS_DIRECTORY)/config/unix.exp::
@$(GNUSTEP_MAKEFILES)/mkinstalldirs $(SCRIPTS_DIRECTORY)/config
@echo "Creating the $@ file..."
@echo "## Do Not Edit ##" > $@
@echo "# Contents generated automatically by Makefile" >> $@
@echo "#" >> $@
@echo "" >> $@
@echo "set OBJC_RUNTIME $(OBJC_RUNTIME)" >> $@
@echo "set FOUNDATION_LIBRARY $(FOUNDATION_LIB)" >> $@
@echo "" >> $@
@echo "set OBJCTEST_DIR $(GNUSTEP_LIBRARIES_ROOT)/ObjCTest" >> $@
@echo "set objdir `pwd`" >> $@
@echo "source \"\$$OBJCTEST_DIR/common.exp\"" >> $@
@echo "" >> $@
@echo "# Maintain your own code in local.exp" >> $@
@echo "source \"config/local.exp\"" >> $@
@(echo "Creating the $@ file..."; \
echo "## Do Not Edit ##" > $@; \
(echo "# Contents generated automatically by Makefile"; \
echo "#"; \
echo ""; \
echo "set OBJC_RUNTIME $(OBJC_RUNTIME)"; \
echo "set FOUNDATION_LIBRARY $(FOUNDATION_LIB)"; \
echo ""; \
echo "if {[file isdirectory $(GNUSTEP_USER_LIBRARIES_ROOT)/ObjCTest]} {"; \
echo " set OBJCTEST_DIR $(GNUSTEP_USER_LIBRARIES_ROOT)/ObjCTest"; \
echo "} elseif {[file isdirectory $(GNUSTEP_LOCAL_LIBRARIES_ROOT)/ObjCTest]} {"; \
echo " set OBJCTEST_DIR $(GNUSTEP_LOCAL_LIBRARIES_ROOT)/ObjCTest"; \
echo "} elseif {[file isdirectory $(GNUSTEP_SYSTEM_LIBRARIES_ROOT)/ObjCTest]} {"; \
echo " set OBJCTEST_DIR $(GNUSTEP_SYSTEM_LIBRARIES_ROOT)/ObjCTest"; \
echo "}"; \
echo "set objdir `pwd`"; \
echo "source \"\$$OBJCTEST_DIR/common.exp\""; \
echo ""; \
echo "# Maintain your own code in local.exp"; \
echo "source \"config/local.exp\"") >>$@)
internal-test-build:: test-libs test-bundles test-tools test-apps
@ -187,7 +191,8 @@ dejagnu_vars = "FOUNDATION_LIBRARY=$(FOUNDATION_LIB)" \
internal-check-%:: $(SCRIPTS_DIRECTORY)/config/unix.exp
@(for f in $(CHECK_SCRIPT_DIRS); do \
$(LD_LIB_PATH)=$(ALL_LD_LIB_DIRS); export $(LD_LIB_PATH); \
additional_library_paths=$(ALL_LD_LIB_DIRS) \
. $(GNUSTEP_SYSTEM_ROOT)/Makefiles/ld_lib_path.sh; \
if [ "$(SCRIPTS_DIRECTORY)" != "" ]; then \
echo "cd $(SCRIPTS_DIRECTORY); runtest --tool $$f --srcdir . PROG=../$(GNUSTEP_OBJ_DIR)/$(TEST_$*_NAME) $(dejagnu_vars) $(ADDITIONAL_DEJAGNU_VARS)"; \
(cd $(SCRIPTS_DIRECTORY); runtest --tool $$f --srcdir . PROG=../$(GNUSTEP_OBJ_DIR)/$(TEST_$*_NAME) $(dejagnu_vars) $(ADDITIONAL_DEJAGNU_VARS)); \