Support for DLLs, etc

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@6671 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fedor 2000-06-13 15:14:23 +00:00
parent 248326d459
commit 4284b29d52
23 changed files with 1530 additions and 506 deletions

View file

@ -1,3 +1,27 @@
2000-06-12 Adam Fedor <fedor@gnu.org>
* GNUmakefile.in: Use perl which_lib script on machines that have it.
* GNUstep.csh.in: Remove GNUSTEP_NETWORK_ROOT from PATHPREFIX_LIST.
* GNUstep.sh.in: Likewise.
* common.make: Add some new default directories. Support for
runtime with GC.
* config.guess: Add check for mingw32.
* configure.in: Likewise. Check for perl.
* brain.make: Add flags for libFoundation with GC. Add WO library flags.
* bundle.make: Add support for DLLs on Windows.
* ctool.make: Likewise.
* library.make: Likewise.
* rules.make: Likewise. Handle subdirs better. WO Resources
* tool.make: Likewise.
* target.make: Handle mingw32.
* which_lib.c: Handle \r\n on Windows.
(pathes from Helge Hess <helge.hess@mdlink.de>, modified by
fedor@gnu.org).
Wed May 3 18:07:54 2000 Nicola Pero <nicola@brainstorm.co.uk>
* library.make: Use 'override' flag to force substitution of

View file

@ -54,11 +54,28 @@ GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
PERL = @PERL@
MAKE_FILES = aggregate.make application.make bundle.make service.make \
common.make brain.make library.make rules.make target.make \
tool.make ctool.make test-library.make names.make objc.make \
test-application.make test-tool.make subproject.make \
palette.make gswapp.make gswbundle.make woapp.make wobundle.make \
documentation.make MediaBook.func executable.template
all: generated-files which_lib$(EXEEXT)
ifeq ($(GNUSTEP_TARGET_OS),mingw32)
PERL=none
endif
ifeq ($(PERL),none)
which_lib$(EXEEXT): which_lib.c
$(CC) @CFLAGS@ -Wall -o $@ $^
else
which_lib$(EXEEXT): which_lib.pl
cp which_lib.pl which_lib$(EXEEXT)
chmod +x which_lib$(EXEEXT)
endif
install: all
$(srcdir)/mkinstalldirs $(prefix) $(makedir) \
@ -93,12 +110,7 @@ install: all
$(INSTALL_PROGRAM) -m 755 openapp $(tooldir); \
$(INSTALL_PROGRAM) -m 755 debugapp $(tooldir); \
$(INSTALL_PROGRAM) -m 755 opentool $(tooldir); \
for f in aggregate.make application.make bundle.make service.make \
common.make brain.make library.make rules.make target.make \
tool.make ctool.make test-library.make names.make objc.make \
test-application.make test-tool.make subproject.make \
palette.make gswapp.make gswbundle.make \
documentation.make MediaBook.func executable.template; do \
for f in $(MAKE_FILES); do \
$(INSTALL_DATA) $$f $(makedir); \
done
$(INSTALL_DATA) config.site $(prefix)/share
@ -117,12 +129,7 @@ uninstall:
rm -f $(tooldir)/openapp; \
rm -f $(tooldir)/debugapp; \
rm -f $(tooldir)/opentool; \
for f in aggregate.make application.make bundle.make \
common.make brain.make library.make rules.make target.make \
tool.make ctool.make test-library.make names.make objc.make \
test-application.make test-tool.make subproject.make \
palette.make gswapp.make gswbundle.make \
documentation.make MediaBook.func executable.template; do \
for f in $(MAKE_FILES); do \
rm -f $(makedir)/$$f; \
done
rm -f $(prefix)/share/config.site

View file

@ -68,22 +68,17 @@ if ( ! ${?GNUSTEP_BUILD_ROOT} ) then
# Add the GNUstep tools directories to the path
#
if ( ! ${?GNUSTEP_PATHPREFIX_LIST} ) then
setenv GNUSTEP_PATHPREFIX_LIST ${GNUSTEP_USER_ROOT}:${GNUSTEP_LOCAL_ROOT}:${GNUSTEP_SYSTEM_ROOT}:${GNUSTEP_NETWORK_ROOT}
endif # ( "${GNUSTEP_PATHPREFIX_LIST}" == "" )
setenv GNUSTEP_PATHPREFIX_LIST \
${GNUSTEP_USER_ROOT}:${GNUSTEP_LOCAL_ROOT}:${GNUSTEP_SYSTEM_ROOT}
endif
set tp = ""
foreach dir ( `/bin/sh -c 'IFS=:; for i in ${GNUSTEP_PATHPREFIX_LIST}; do echo $i; done'` )
set tp=${tp}${dir}/Tools:
set tp=${tp}${dir}/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}:
set tp=${tp}${dir}/Tools:
end
setenv PATH ${tp}${PATH}
if ( ! ${?MANPATH} ) then
setenv MANPATH ${GNUSTEP_SYSTEM_ROOT}/Library/man:/usr/local/man:/usr/man
else
setenv MANPATH ${GNUSTEP_SYSTEM_ROOT}/Library/man:${MANPATH}
endif
source ${GNUSTEP_SYSTEM_ROOT}/Makefiles/ld_lib_path.csh
#
@ -93,8 +88,12 @@ if ( -e ~/.GNUstep/GNUstep.csh ) then
. ~/.GNUstep/GNUstep.csh
endif
if ( -x ${GNUSTEP_SYSTEM_ROOT}/Tools/make_services ) then
${GNUSTEP_SYSTEM_ROOT}/Tools/make_services &
set TDIR=${GNUSTEP_SYSTEM_ROOT}/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}
if ( -e $TDIR/$LIBRARY_COMBO/make_services ) then
$TDIR/$LIBRARY_COMBO/make_services &
if ( -e $TDIR/make_services ) then
$TDIR/make_services &
endif
endif
endif # ( "${GNUSTEP_BUILD_ROOT}" == "" )

View file

@ -73,10 +73,9 @@ if [ -z "$GNUSTEP_BUILD_ROOT" ]; then
# Add the GNUstep tools directories to the path
#
if [ -z "$GNUSTEP_PATHPREFIX_LIST" ]; then
GNUSTEP_PATHPREFIX_LIST=$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT:$GNUSTEP_NETWORK_ROOT
GNUSTEP_PATHPREFIX_LIST=$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
export GNUSTEP_PATHPREFIX_LIST
fi # [ -z "$GNUSTEP_PATHPREFIX_LIST" ]
fi
tmp_IFS="$IFS"
IFS=:
temp_path=
@ -85,17 +84,8 @@ for dir in $GNUSTEP_PATHPREFIX_LIST; do
temp_path=$temp_path$dir/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}:
done
IFS="$tmp_IFS"
if ( echo ${PATH}|fgrep -v "${temp_path}" >/dev/null ); then
PATH=$temp_path$PATH
fi
if [ -z "$MANPATH" ]; then
MANPATH=${GNUSTEP_SYSTEM_ROOT}/Library/man:/usr/local/man:/usr/man
else
if ( echo ${MANPATH}|fgrep -v "${GNUSTEP_SYSTEM_ROOT}/Library/man" >/dev/null ); then
MANPATH=${GNUSTEP_SYSTEM_ROOT}/Library/man:${MANPATH}
fi
fi
PATH=${temp_path}${PATH}
export PATH
. $GNUSTEP_MAKEFILES/ld_lib_path.sh
@ -111,9 +101,15 @@ fi
# Run 'make_services' in background if possible - updates cache of services
# and applications/file-extensions known to the applications.
#
if [ -x $GNUSTEP_SYSTEM_ROOT/Tools/make_services ]
TDIR=$GNUSTEP_SYSTEM_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS
if [ -f $TDIR/$LIBRARY_COMBO/make_services ]
then
$GNUSTEP_SYSTEM_ROOT/Tools/make_services &
$TDIR/$LIBRARY_COMBO/make_services &
else
if [ -f $TDIR/make_services ]
then
$TDIR/make_services &
fi
fi
fi # [ -z "$GNUSTEP_BUILD_ROOT" ]
@ -127,7 +123,7 @@ if [ -z "$CLASSPATH" ]; then
MY_CLASSPATH=.
else
MY_CLASSPATH=$CLASSPATH:.
fi # [ -z "$CLASSPATH" ]
fi
CLASSPATH=$GNUSTEP_SYSTEM_ROOT/Java/:$GNUSTEP_USER_ROOT/Java/:$GNUSTEP_LOCAL_ROOT/Java/:$GNUSTEP_NETWORK_ROOT/Java/:$MY_CLASSPATH
export CLASSPATH

View file

@ -507,7 +507,6 @@ function repswitch {
function hostinfo {
if [ -z "$GNUSTEP_HOST" ]; then
GNUSTEP_HOST=`$GNUSTEP_SYSTEM_ROOT/Makefiles/config.guess`
GNUSTEP_HOST=`$GNUSTEP_SYSTEM_ROOT/Makefiles/config.sub $GNUSTEP_HOST`
export GNUSTEP_HOST
fi
if [ -z "$GNUSTEP_HOST_CPU" ]; then

View file

@ -146,16 +146,20 @@ FND_LIBS = -lFoundation
ifeq ($(gc), yes)
ifeq ($(LIBFOUNDATION_WITH_GC), yes)
OBJC_LIBS = -lobjc_gc $(LIBFOUNDATION_GC_LIBRARY)
AUXILIARY_CPPFLAGS += -DLIB_FOUNDATION_BOEHM_GC=1
OBJC_LIBS = -lobjc $(LIBFOUNDATION_GC_LIBRARY)
ifeq ($(leak), yes)
AUXILIARY_CPPFLAGS += -DLIB_FOUNDATION_LEAK_GC=1
else
AUXILIARY_CPPFLAGS += -DLIB_FOUNDATION_BOEHM_GC=1
endif
endif
endif
endif
ifeq ($(FOUNDATION_LIB),nx)
FND_LDFLAGS =
FND_LIBS = -framework Foundation
FND_LDFLAGS = -framework Foundation
FND_LIBS =
FND_DEFINE = -DNeXT_Foundation_LIBRARY=1
endif
@ -163,6 +167,15 @@ ifeq ($(FOUNDATION_LIB), sun)
FND_DEFINE = -DSun_Foundation_LIBRARY=1
endif
#
# Set the WO library flags
#
WO_LDFLAGS =
WO_LIBS = -lNGObjWeb -lNGHttp -lNGMime -lNGZlib \
-lNGNet -lNGStreams -lNGExtensions
WO_DEFINE = -DNGObjWeb_LIBRARY=1
GUI_LDFLAGS =
GUI_LIBS =
#

View file

@ -35,6 +35,10 @@ include $(GNUSTEP_MAKEFILES)/rules.make
# The list of languages the bundle supports is in xxx_LANGUAGES
# The list of bundle resource directories are in xxx_RESOURCE_DIRS
# The name of the principal class is xxx_PRINCIPAL_CLASS
# The header files are in xxx_HEADER_FILES
# The directory where the header files are located is xxx_HEADER_FILES_DIR
# The directory where to install the header files inside the library
# installation directory is xxx_HEADER_FILES_INSTALL_DIR
# where xxx is the bundle name
#
@ -67,11 +71,31 @@ else
$(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
$(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
#ALL_BUNDLE_LIBS := \
ALL_BUNDLE_LIBS = $(BUNDLE_LIBS)
ALL_BUNDLE_LIBS := \
$(shell $(WHICH_LIB_SCRIPT) $(LIB_DIRS_NO_SYSTEM) $(ALL_BUNDLE_LIBS) \
debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
shared_libext=$(SHARED_LIBEXT))
ifeq ($(WITH_DLL),yes)
TTMP_LIBS := $(ALL_BUNDLE_LIBS)
TTMP_LIBS := $(filter -l%, $(TTMP_LIBS))
# filter all non-static libs (static libs are those ending in _ds, _s, _ps..)
TTMP_LIBS := $(filter-out -l%_ds, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_s, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_dps,$(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_ps, $(TTMP_LIBS))
# strip away -l, _p and _d ..
TTMP_LIBS := $(TTMP_LIBS:-l%=%)
TTMP_LIBS := $(TTMP_LIBS:%_d=%)
TTMP_LIBS := $(TTMP_LIBS:%_p=%)
TTMP_LIBS := $(TTMP_LIBS:%_dp=%)
TTMP_LIBS := $(TTMP_LIBS:%=-Dlib%_ISDLL=1)
ALL_CPPFLAGS += $(TTMP_LIBS)
BUNDLE_OBJ_EXT = $(DLL_LIBEXT)
endif # WITH_DLL
internal-bundle-all:: before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \
build-bundle-dir build-bundle \
after-$(TARGET)-all
@ -82,7 +106,7 @@ after-$(TARGET)-all::
BUNDLE_DIR_NAME := $(INTERNAL_bundle_NAME:=$(BUNDLE_EXTENSION))
BUNDLE_FILE := \
$(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/$(BUNDLE_NAME)
$(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/$(BUNDLE_NAME)$(BUNDLE_OBJ_EXT)
BUNDLE_RESOURCE_DIRS = $(foreach d, $(RESOURCE_DIRS), $(BUNDLE_DIR_NAME)/Resources/$(d))
ifeq ($(strip $(RESOURCE_FILES)),)
override RESOURCE_FILES=""
@ -105,13 +129,25 @@ build-bundle-dir::
build-bundle:: $(BUNDLE_FILE) bundle-resource-files localized-bundle-resource-files
$(BUNDLE_FILE) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
ifeq ($(WITH_DLL),yes)
$(BUNDLE_FILE) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES)
$(DLLWRAP) --driver-name $(CC) \
-o $(LDOUT)$(BUNDLE_FILE) \
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES) \
$(ALL_LIB_DIRS) $(ALL_BUNDLE_LIBS)
else # WITH_DLL
$(BUNDLE_FILE) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES)
$(BUNDLE_LD) $(BUNDLE_LDFLAGS) $(ALL_LDFLAGS) \
-o $(LDOUT)$(BUNDLE_FILE) \
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) \
$(ALL_LIB_DIRS) $(ALL_BUNDLE_LIBS)
bundle-resource-files:: $(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist
endif # WITH_DLL
bundle-resource-files:: $(BUNDLE_DIR_NAME)/Resources/Info.plist $(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist $(RESOURCE_FILES)
@(if [ "$(RESOURCE_FILES)" != "" ]; then \
echo "Copying resources into the bundle wrapper..."; \
for f in "$(RESOURCE_FILES)"; do \
@ -138,9 +174,10 @@ ifeq ($(PRINCIPAL_CLASS),)
override PRINCIPAL_CLASS = $(INTERNAL_bundle_NAME)
endif
$(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist: $(BUNDLE_DIR_NAME)/Resources
# MacOSX-S bundles
$(BUNDLE_DIR_NAME)/Resources/Info.plist: $(BUNDLE_DIR_NAME)/Resources
@(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
echo " NSExecutable = \"$(INTERNAL_bundle_NAME)\";"; \
echo " NSExecutable = \"$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/$(BUNDLE_NAME)${BUNDLE_OBJ_EXT}\";"; \
if [ "$(MAIN_MODEL_FILE)" = "" ]; then \
echo " NSMainNibFile = \"\";"; \
else \
@ -149,30 +186,56 @@ $(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist: $(BUNDLE_DIR_NAME)/Resources
echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
echo "}") >$@
internal-bundle-install:: internal-install-dirs
tar cf - $(BUNDLE_DIR_NAME) | (cd $(BUNDLE_INSTALL_DIR); tar xf -)
# GNUstep bundles
$(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist: $(BUNDLE_DIR_NAME)/Resources
@(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
echo " NSExecutable = \"$(INTERNAL_bundle_NAME)${BUNDLE_OBJ_EXT}\";"; \
if [ "$(MAIN_MODEL_FILE)" = "" ]; then \
echo " NSMainNibFile = \"\";"; \
else \
echo " NSMainNibFile = \"`echo $(MAIN_MODEL_FILE) | sed 's/.gmodel//'`\";"; \
fi; \
echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
echo "}") >$@
internal-bundle-install:: $(BUNDLE_INSTALL_DIR)
if [ "$(HEADER_FILES_INSTALL_DIR)" != "" ]; then \
$(MKDIRS) $(GNUSTEP_HEADERS)$(HEADER_FILES_INSTALL_DIR); \
if [ "$(HEADER_FILES)" != "" ]; then \
for file in $(HEADER_FILES) __done; do \
if [ $$file != __done ]; then \
$(INSTALL_DATA) $(HEADER_FILES_DIR)/$$file \
$(GNUSTEP_HEADERS)$(HEADER_FILES_INSTALL_DIR)/$$file ; \
fi; \
done; \
fi; \
fi; \
rm -rf $(BUNDLE_INSTALL_DIR)/$(BUNDLE_DIR_NAME)
$(TAR) ch --exclude=CVS --to-stdout $(BUNDLE_DIR_NAME) | (cd $(BUNDLE_INSTALL_DIR); $(TAR) xf -)
internal-install-dirs::
$(MKDIRS) $(BUNDLE_INSTALL_DIR)
$(BUNDLE_DIR_NAME)/Resources $(GNUSTEP_BUNDLES)::
$(BUNDLE_DIR_NAME)/Resources $(BUNDLE_INSTALL_DIR)::
@$(MKDIRS) $@
internal-bundle-uninstall::
rm -rf $(GNUSTEP_BUNDLES)/$(BUNDLE_DIR_NAME)
if [ "$(HEADER_FILES)" != "" ]; then \
for file in $(HEADER_FILES) __done; do \
if [ $$file != __done ]; then \
rm -rf $(GNUSTEP_HEADERS)$(HEADER_FILES_INSTALL_DIR)/$$file ; \
fi; \
done; \
fi; \
rm -rf $(BUNDLE_INSTALL_DIR)/$(BUNDLE_DIR_NAME)
#
# Cleaning targets
#
internal-bundle-clean::
rm -rf $(GNUSTEP_OBJ_DIR)
rm -rf $(GNUSTEP_OBJ_DIR) $(BUNDLE_DIR_NAME)
internal-bundle-distclean::
rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
static_debug_obj static_profile_obj shared_profile_debug_obj \
static_profile_debug_obj $(BUNDLE_DIR_NAME)
static_profile_debug_obj
endif

View file

@ -24,24 +24,24 @@
SHELL = /bin/sh
# Default version
MAJOR_VERSION=1
MINOR_VERSION=0
SUBMINOR_VERSION=0
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}
MAJOR_VERSION = 1
MINOR_VERSION = 0
SUBMINOR_VERSION = 0
VERSION = ${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION}
#
# Scripts to run for parsing canonical names
#
CONFIG_GUESS_SCRIPT = $(GNUSTEP_MAKEFILES)/config.guess
CONFIG_SUB_SCRIPT = $(GNUSTEP_MAKEFILES)/config.sub
CONFIG_CPU_SCRIPT = $(GNUSTEP_MAKEFILES)/cpu.sh
CONFIG_VENDOR_SCRIPT = $(GNUSTEP_MAKEFILES)/vendor.sh
CONFIG_OS_SCRIPT = $(GNUSTEP_MAKEFILES)/os.sh
CLEAN_CPU_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_cpu.sh
CLEAN_VENDOR_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_vendor.sh
CLEAN_OS_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_os.sh
WHICH_LIB_SCRIPT = $(GNUSTEP_MAKEFILES)/$(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)/which_lib
LD_LIB_PATH_SCRIPT = $(GNUSTEP_MAKEFILES)/ld_lib_path.sh
CONFIG_GUESS_SCRIPT = $(GNUSTEP_MAKEFILES)/config.guess
CONFIG_SUB_SCRIPT = $(GNUSTEP_MAKEFILES)/config.sub
CONFIG_CPU_SCRIPT = $(GNUSTEP_MAKEFILES)/cpu.sh
CONFIG_VENDOR_SCRIPT = $(GNUSTEP_MAKEFILES)/vendor.sh
CONFIG_OS_SCRIPT = $(GNUSTEP_MAKEFILES)/os.sh
CLEAN_CPU_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_cpu.sh
CLEAN_VENDOR_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_vendor.sh
CLEAN_OS_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_os.sh
WHICH_LIB_SCRIPT = $(GNUSTEP_MAKEFILES)/$(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)/which_lib
LD_LIB_PATH_SCRIPT = $(GNUSTEP_MAKEFILES)/ld_lib_path.sh
TRANSFORM_PATHS_SCRIPT = $(GNUSTEP_MAKEFILES)/transform_paths.sh
# Take the makefiles from the system root
@ -54,8 +54,7 @@ endif
#
include $(GNUSTEP_MAKEFILES)/names.make
GNUSTEP_HOST_DIR = $(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)
GNUSTEP_HOST_DIR = $(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)
GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)
#
@ -89,18 +88,19 @@ endif
#
# Variables specifying the installation directory paths
#
GNUSTEP_APPS = $(GNUSTEP_INSTALLATION_DIR)/Apps
GNUSTEP_TOOLS = $(GNUSTEP_INSTALLATION_DIR)/Tools
GNUSTEP_SERVICES = $(GNUSTEP_INSTALLATION_DIR)/Library/Services
GNUSTEP_HEADERS = $(GNUSTEP_INSTALLATION_DIR)/Headers
GNUSTEP_BUNDLES = $(GNUSTEP_INSTALLATION_DIR)/Library/Bundles
GNUSTEP_PALETTES = $(GNUSTEP_INSTALLATION_DIR)/Developer/Palettes
GNUSTEP_LIBRARIES_ROOT = $(GNUSTEP_INSTALLATION_DIR)/Libraries
GNUSTEP_TARGET_LIBRARIES = $(GNUSTEP_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_LIBRARIES = $(GNUSTEP_TARGET_LIBRARIES)/$(LIBRARY_COMBO)
GNUSTEP_RESOURCES = $(GNUSTEP_LIBRARIES_ROOT)/Resources
GNUSTEP_DOCUMENTATION = $(GNUSTEP_INSTALLATION_DIR)/Documentation
GNUSTEP_DOCUMENTATION_MAN = $(GNUSTEP_DOCUMENTATION)/man
GNUSTEP_APPS = $(GNUSTEP_INSTALLATION_DIR)/Apps
GNUSTEP_TOOLS = $(GNUSTEP_INSTALLATION_DIR)/Tools
GNUSTEP_SERVICES = $(GNUSTEP_INSTALLATION_DIR)/Library/Services
GNUSTEP_WOAPPS = $(GNUSTEP_INSTALLATION_DIR)/WOApps
GNUSTEP_HEADERS = $(GNUSTEP_INSTALLATION_DIR)/Headers
GNUSTEP_BUNDLES = $(GNUSTEP_INSTALLATION_DIR)/Library/Bundles
GNUSTEP_PALETTES = $(GNUSTEP_INSTALLATION_DIR)/Developer/Palettes
GNUSTEP_LIBRARIES_ROOT = $(GNUSTEP_INSTALLATION_DIR)/Libraries
GNUSTEP_TARGET_LIBRARIES = $(GNUSTEP_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_LIBRARIES = $(GNUSTEP_TARGET_LIBRARIES)/$(LIBRARY_COMBO)
GNUSTEP_RESOURCES = $(GNUSTEP_LIBRARIES_ROOT)/Resources
GNUSTEP_DOCUMENTATION = $(GNUSTEP_INSTALLATION_DIR)/Library
GNUSTEP_DOCUMENTATION_MAN = $(GNUSTEP_DOCUMENTATION)/man
GNUSTEP_DOCUMENTATION_INFO = $(GNUSTEP_DOCUMENTATION)/info
# The default name of the makefile to be used in recursive invocations of make
@ -128,14 +128,14 @@ GNUSTEP_LOCAL_HEADERS_FLAG = -I$(GNUSTEP_LOCAL_HEADERS)
endif
ifneq ($(GNUSTEP_USER_ROOT),)
GNUSTEP_USER_LIBRARIES_ROOT = $(GNUSTEP_USER_ROOT)/Libraries
GNUSTEP_USER_LIBRARIES_ROOT = $(GNUSTEP_USER_ROOT)/Libraries
GNUSTEP_USER_TARGET_LIBRARIES = \
$(GNUSTEP_USER_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)
GNUSTEP_USER_TARGET_LIBRARIES_FLAG = -L$(GNUSTEP_USER_TARGET_LIBRARIES)
GNUSTEP_USER_LIBRARIES = $(GNUSTEP_USER_TARGET_LIBRARIES)/$(LIBRARY_COMBO)
GNUSTEP_USER_LIBRARIES_FLAG = -L$(GNUSTEP_USER_LIBRARIES)
GNUSTEP_USER_HEADERS = $(GNUSTEP_USER_ROOT)/Headers
GNUSTEP_USER_HEADERS_FLAG = -I$(GNUSTEP_USER_HEADERS)
GNUSTEP_USER_LIBRARIES = $(GNUSTEP_USER_TARGET_LIBRARIES)/$(LIBRARY_COMBO)
GNUSTEP_USER_LIBRARIES_FLAG = -L$(GNUSTEP_USER_LIBRARIES)
GNUSTEP_USER_HEADERS = $(GNUSTEP_USER_ROOT)/Headers
GNUSTEP_USER_HEADERS_FLAG = -I$(GNUSTEP_USER_HEADERS)
endif
ifneq ($(GNUSTEP_NETWORK_ROOT),)
@ -167,25 +167,32 @@ GNUSTEP_HEADERS_TARGET_FLAG += -I$(GNUSTEP_SYSTEM_HEADERS)/$(GNUSTEP_TARGET_DIR)
# Determine Foundation header subdirectory based upon library combo
#
ifeq ($(FOUNDATION_LIB),gnu)
GNUSTEP_FND_DIR = gnustep
FOUNDATION_LIBRARY_NAME = gnustep-base
GNUSTEP_FND_DIR = gnustep
FOUNDATION_LIBRARY_NAME = gnustep-base
FOUNDATION_LIBRARY_DEFINE = -DGNUSTEP_BASE_LIBRARY=1
endif
ifeq ($(FOUNDATION_LIB),fd)
GNUSTEP_FND_DIR = libFoundation
FOUNDATION_LIBRARY_NAME = Foundation
GNUSTEP_FND_DIR = libFoundation
FOUNDATION_LIBRARY_NAME = Foundation
FOUNDATION_LIBRARY_DEFINE = -DLIB_FOUNDATION_LIBRARY=1
ifeq ($(gc),yes)
ifneq ($(leak),yes)
FOUNDATION_LIBRARY_DEFINE += -DLIB_FOUNDATION_BOEHM_GC=1
else
FOUNDATION_LIBRARY_DEFINE += -DLIB_FOUNDATION_LEAK_GC=1
endif
endif
endif
ifeq ($(FOUNDATION_LIB),nx)
GNUSTEP_FND_DIR = NeXT
FOUNDATION_LIBRARY_NAME =
GNUSTEP_FND_DIR = NeXT
FOUNDATION_LIBRARY_NAME =
FOUNDATION_LIBRARY_DEFINE = -DNeXT_Foundation_LIBRARY=1
endif
ifeq ($(FOUNDATION_LIB),sun)
GNUSTEP_FND_DIR = sun
GNUSTEP_FND_DIR = sun
FOUNDATION_LIBRARY_DEFINE = -DSun_Foundation_LIBRARY=1
endif
@ -203,18 +210,14 @@ GNUSTEP_HEADERS_FND_FLAG += -I$(GNUSTEP_SYSTEM_HEADERS)/$(GNUSTEP_FND_DIR)
ifeq ($(FOUNDATION_LIB), fd)
GNUSTEP_HEADERS_FND_FLAG += -I$(GNUSTEP_USER_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME) \
-I$(GNUSTEP_LOCAL_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME) \
-I$(GNUSTEP_SYSTEM_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME) \
-I$(GNUSTEP_NETWORK_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME)
-I$(GNUSTEP_SYSTEM_HEADERS)/$(GNUSTEP_FND_DIR)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(OBJC_RUNTIME)
endif
#
# Determine AppKit header subdirectory based upon library combo
#
ifeq ($(GUI_LIB),gnu)
GNUSTEP_GUI_DIR = gnustep
ifneq ($(GNUSTEP_NETWORK_ROOT),)
GNUSTEP_HEADERS_GUI_FLAG += -I$(GNUSTEP_NETWORK_HEADERS)/$(GNUSTEP_GUI_DIR)
endif
GNUSTEP_GUI_DIR = gnustep/gui
ifneq ($(GNUSTEP_USER_ROOT),)
GNUSTEP_HEADERS_GUI_FLAG += -I$(GNUSTEP_USER_HEADERS)/$(GNUSTEP_GUI_DIR)
endif
@ -237,10 +240,19 @@ CFLAGS =
OBJ_DIR_PREFIX =
ifeq ($(OBJC_RUNTIME_LIB),gnu)
RUNTIME_FLAG = -fgnu-runtime
RUNTIME_FLAG = -fgnu-runtime
RUNTIME_DEFINE = -DGNU_RUNTIME=1
endif
# GNU runtime compiled with Boehm GC
ifeq ($(OBJC_RUNTIME_LIB),gnugc)
RUNTIME_FLAG = -fgnu-runtime
RUNTIME_DEFINE = -DGNU_RUNTIME=1 -DOBJC_WITH_GC=1
ifeq ($(debug),yes)
RUNTIME_DEFINE += -DGC_DEBUG
endif
endif
ifeq ($(OBJC_RUNTIME_LIB),nx)
ifneq ($(OBJC_COMPILER), NeXT)
RUNTIME_FLAG = -fnext-runtime
@ -248,6 +260,10 @@ ifeq ($(OBJC_RUNTIME_LIB),nx)
RUNTIME_DEFINE = -DNeXT_RUNTIME=1
endif
ifneq ($(debug), yes)
OPTFLAG += -fno-strict-aliasing
endif
# Enable building shared libraries by default. If the user wants to build a
# static library, he/she has to specify shared=no explicitly.
ifeq ($(HAVE_SHARED_LIBS), yes)
@ -259,16 +275,16 @@ ifeq ($(HAVE_SHARED_LIBS), yes)
endif
ifeq ($(shared), yes)
LIB_LINK_CMD = $(SHARED_LIB_LINK_CMD)
OBJ_DIR_PREFIX += shared_
INTERNAL_OBJCFLAGS += $(SHARED_CFLAGS)
INTERNAL_CFLAGS += $(SHARED_CFLAGS)
AFTER_INSTALL_LIBRARY_CMD = $(AFTER_INSTALL_SHARED_LIB_COMMAND)
LIB_LINK_CMD = $(SHARED_LIB_LINK_CMD)
OBJ_DIR_PREFIX += shared_
INTERNAL_OBJCFLAGS += $(SHARED_CFLAGS)
INTERNAL_CFLAGS += $(SHARED_CFLAGS)
AFTER_INSTALL_LIBRARY_CMD = $(AFTER_INSTALL_SHARED_LIB_COMMAND)
else
LIB_LINK_CMD = $(STATIC_LIB_LINK_CMD)
OBJ_DIR_PREFIX += static_
AFTER_INSTALL_LIBRARY_CMD = $(AFTER_INSTALL_STATIC_LIB_COMMAND)
LIBRARY_NAME_SUFFIX := s$(LIBRARY_NAME_SUFFIX)
LIB_LINK_CMD = $(STATIC_LIB_LINK_CMD)
OBJ_DIR_PREFIX += static_
AFTER_INSTALL_LIBRARY_CMD = $(AFTER_INSTALL_STATIC_LIB_COMMAND)
LIBRARY_NAME_SUFFIX := s$(LIBRARY_NAME_SUFFIX)
endif
ifeq ($(profile), yes)
@ -282,7 +298,7 @@ endif
ifeq ($(debug), yes)
OPTFLAG := $(filter-out -O%, $(OPTFLAG))
ADDITIONAL_FLAGS += -g -Wall -DDEBUG
ADDITIONAL_FLAGS += -g -Wall -DDEBUG -fno-omit-frame-pointer
ADDITIONAL_JAVAFLAGS += -g
OBJ_DIR_PREFIX += debug_
LIBRARY_NAME_SUFFIX := d$(LIBRARY_NAME_SUFFIX)
@ -326,19 +342,20 @@ GNUSTEP_OBJ_DIR = $(GNUSTEP_OBJ_PREFIX)/$(ARCH_OBJ_DIR)/$(LIBRARY_COMBO)
#
# Common variables for building documentation
#
GNUSTEP_MAKEINFO = makeinfo
GNUSTEP_MAKEINFO_FLAGS = -D NO-TEXI2HTML --no-header
GNUSTEP_MAKETEXT = makeinfo
GNUSTEP_MAKETEXT_FLAGS = -D NO-TEXI2HTML -D TEXT-ONLY --no-header --no-split
GNUSTEP_TEXI2DVI = texi2dvi
GNUSTEP_TEXI2DVI_FLAGS =
GNUSTEP_TEXI2HTML = texi2html
GNUSTEP_MAKEINFO = makeinfo
GNUSTEP_MAKEINFO_FLAGS = -D NO-TEXI2HTML --no-header
GNUSTEP_MAKETEXT = makeinfo
GNUSTEP_MAKETEXT_FLAGS = -D NO-TEXI2HTML -D TEXT-ONLY --no-header --no-split
GNUSTEP_TEXI2DVI = texi2dvi
GNUSTEP_TEXI2DVI_FLAGS =
GNUSTEP_TEXI2HTML = texi2html
GNUSTEP_TEXI2HTML_FLAGS = -split_chapter -expandinfo
GNUSTEP_DVIPS = dvips
GNUSTEP_DVIPS_FLAGS =
GNUSTEP_DVIPS = dvips
GNUSTEP_DVIPS_FLAGS =
#
# Common variables for subprojects
#
SUBPROJECT_PRODUCT = subproject$(OEXT)
# FIXME: the JAVAC variable is blank otherwise, even though it's defined in config.make

6
config.guess vendored
View file

@ -1006,6 +1006,12 @@ EOF
exit 0 ;;
esac
tmp=`gcc -dumpmachine|grep mingw32`
if test "x$tmp" != "x"; then
echo i386-pc-mingw32
exit 0
fi
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2

357
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -59,12 +59,57 @@ fi
AC_SUBST(GNUSTEP_ROOT)
AC_SUBST(GNUSTEP_PREFIX)
#--------------------------------------------------------------------
# Setup the library combination
#--------------------------------------------------------------------
AC_ARG_WITH(library-combo,[
--with-library-combo
Define the default library combinations that will be used when you
type 'make'. You can still change the library combination at runtime
by specifying the 'library_combo' make variable. For example:
$ make library_combo=nx-pdo-nx-nil
],
ac_cv_library_combo=$withval,
ac_cv_library_combo=$ac_cv_library_combo
)
if test "$ac_cv_library_combo" = ""; then
if test $host_os = nextstep4; then
ac_cv_library_combo=nx-nx-nx-nil
elif test $host_os = cygwin; then
ac_cv_library_combo=gnu-gnu-gnu-win32
if test "x$program_suffix" = "xNONE"; then
program_suffix=.exe
fi
else
ac_cv_library_combo=gnu-gnu-gnu-xgps
fi
fi
AC_SUBST(ac_cv_library_combo)
#--------------------------------------------------------------------
# Determine the host, build, and target systems
#--------------------------------------------------------------------
targetArgument=${target}
AC_CANONICAL_SYSTEM
if test "x`echo x$host|grep mingw32`" != x; then
echo "hosted on mingw32 .."
export MINGW32=1
export SHELL=zsh
export CC=${CC:-gcc}
export AR=${AR:-ar}
export RANLIB=${RANLIB:-ranlib}
export DLLTOOL=${DLLTOOL:-dlltool}
export program_suffix=${program_suffix:-.exe}
if test "x$program_suffix" = "xNONE"; then
export program_suffix=.exe
fi
else
export MINGW32=0
fi
EXEEXT=
if test "x$program_suffix" != "xNONE"; then
EXEEXT=$program_suffix
@ -93,7 +138,7 @@ fi
AC_PROG_CC
AC_PROG_CPP
AC_PATH_PROG(PERL, perl, /usr/local/bin/perl)
AC_PATH_PROG(PERL, perl, none)
AC_PROG_INSTALL
# HOST_INSTALL is the name of the install program in config.make so set it up
@ -342,42 +387,18 @@ fi
# Look for Java stuff
#--------------------------------------------------------------------
AC_ARG_WITH(javac,
[ --with-javac=CMD Java compiler], ,
[ --with-javac=CMD Java compiler],
JAVAC=${withval},
JAVAC=/usr/bin/javac)
AC_ARG_WITH(java_include,
[ --with-java-include=DIR Java include files are in DIR], ,
[ --with-java-include=DIR Java include files are in DIR],
JAVA_INCLUDE=${withval},
JAVA_INCLUDE=-I/usr/include/kaffe)
AC_SUBST(JAVAC)
AC_SUBST(JAVA_INCLUDE)
#AC_CHECK_HEADER(jni.h, JNI_CreateJavaVM, JAVA_INCLUDE=$with_hava_include, java_ok=no)
#--------------------------------------------------------------------
# Setup the library combination
#--------------------------------------------------------------------
AC_ARG_WITH(library-combo,[
--with-library-combo
Define the default library combinations that will be used when you
type 'make'. You can still change the library combination at runtime
by specifying the 'library_combo' make variable. For example:
$ make library_combo=nx-pdo-nx-nil
],
ac_cv_library_combo=$withval,
ac_cv_library_combo=$ac_cv_library_combo
)
if test "$ac_cv_library_combo" = ""; then
if test $host_os = nextstep4; then
ac_cv_library_combo=nx-nx-nx-nil
elif test $host_os = cygwin32; then
ac_cv_library_combo=gnu-gnu-gnu-w32gui
else
ac_cv_library_combo=gnu-gnu-gnu-xgps
fi
fi
AC_SUBST(ac_cv_library_combo)
#--------------------------------------------------------------------
# Check if libobjc was compiled with thread support.
#--------------------------------------------------------------------

View file

@ -68,6 +68,24 @@ ALL_TOOL_LIBS := \
debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
shared_libext=$(SHARED_LIBEXT))
ifeq ($(WITH_DLL),yes)
TTMP_LIBS := $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) $(FND_LIBS) \
$(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS)
TTMP_LIBS := $(filter -l%, $(TTMP_LIBS))
# filter all non-static libs (static libs are those ending in _ds, _s, _ps..)
TTMP_LIBS := $(filter-out -l%_ds, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_s, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_dps,$(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_ps, $(TTMP_LIBS))
# strip away -l, _p and _d ..
TTMP_LIBS := $(TTMP_LIBS:-l%=%)
TTMP_LIBS := $(TTMP_LIBS:%_d=%)
TTMP_LIBS := $(TTMP_LIBS:%_p=%)
TTMP_LIBS := $(TTMP_LIBS:%_dp=%)
TTMP_LIBS := $(TTMP_LIBS:%=-Dlib%_ISDLL=1)
ALL_CPPFLAGS += $(TTMP_LIBS)
endif
#
# Compilation targets
#
@ -91,6 +109,8 @@ internal-install-dirs::
install-ctool::
$(INSTALL_PROGRAM) -m 0755 $(GNUSTEP_OBJ_DIR)/$(INTERNAL_ctool_NAME)$(EXEEXT) \
$(TOOL_INSTALLATION_DIR);
cp $(GNUSTEP_MAKEFILES)/executable.template $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_ctool_NAME)
chmod a+x $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_ctool_NAME)
internal-ctool-uninstall::
rm -f $(TOOL_INSTALLATION_DIR)/$(INTERNAL_ctool_NAME)$(EXEEXT)

View file

@ -38,6 +38,7 @@ include $(GNUSTEP_MAKEFILES)/rules.make
# The directory where the header files are located is xxx_HEADER_FILES_DIR
# The directory where to install the header files inside the library
# installation directory is xxx_HEADER_FILES_INSTALL_DIR
# The DLL export file is in xxx_DLL_DEF
#
# Where xxx is the name of the library
#
@ -47,6 +48,30 @@ LIBRARY_NAME:=$(strip $(LIBRARY_NAME))
ifeq ($(INTERNAL_library_NAME),)
# This part is included the first time make is invoked.
# Short explanation of how gstep-make works: (hh)
#
# The
# internal-all:: $(LIBRARY_NAME:=.all.library.variables)
# eg expands to:
# internal-all ::
# libobjc.all.library.variables libFoundation.all.library.variables
# that is,
# $target.$operation.$type.variables
# for each target (word in the LIBRARY_NAME (list) variable)
#
# The %.variables is matched in rules.make which then invokes
# it's $target.build rule which does the actual work. The %.build
# rule is a pattern rule extracting the variable set matching for
# the appropriate target. Eg when
# libobjc.build
# is invoked, $($*_C_FILES) expands to the value of the variable
# libobjc_C_FILES which in turn is mapped in the nested invocation
# of make to the the plain C_FILES variable. In this step also
# which_lib is invoked to determine to correct library bindings.
# In other words, each target is run in it's own make process which
# has an environment only containing the variable bindings for that
# target (eg all libobjc_C_FILES, but not libFoundation_C_FILES).
internal-all:: $(LIBRARY_NAME:=.all.library.variables)
internal-install:: all $(LIBRARY_NAME:=.install.library.variables)
@ -65,17 +90,33 @@ else
# This part gets included the second time make is invoked.
ifeq ($(shared), yes)
ifneq ($(BUILD_DLL),yes)
LIBRARY_FILE = $(INTERNAL_library_NAME)$(LIBRARY_NAME_SUFFIX)$(SHARED_LIBEXT)
LIBRARY_FILE_EXT=$(SHARED_LIBEXT)
LIBRARY_FILE_EXT = $(SHARED_LIBEXT)
VERSION_LIBRARY_FILE = $(LIBRARY_FILE).$(VERSION)
SOVERSION = `echo $(VERSION)|awk -F. '{print $$1}'`
SONAME_LIBRARY_FILE=$(LIBRARY_FILE).$(SOVERSION)
else
LIBRARY_FILE = $(INTERNAL_library_NAME)$(LIBRARY_NAME_SUFFIX)$(LIBEXT)
LIBRARY_FILE_EXT=$(LIBEXT)
SOVERSION = `echo $(VERSION)|awk -F. '{print $$1}'`
SONAME_LIBRARY_FILE = $(LIBRARY_FILE).$(SOVERSION)
else # BUILD_DLL
LIBRARY_FILE = $(INTERNAL_library_NAME)$(LIBRARY_NAME_SUFFIX)$(DLL_LIBEXT)
LIBRARY_FILE_EXT = $(DLL_LIBEXT)
DLL_NAME = $(shell echo $(LIBRARY_FILE)|cut -b 4-)
DLL_EXP_LIB = $(INTERNAL_library_NAME)$(LIBRARY_NAME_SUFFIX)$(SHARED_LIBEXT)
DLL_EXP_DEF = $(INTERNAL_library_NAME)$(LIBRARY_NAME_SUFFIX).def
endif # BUILD_DLL
else # shared
LIBRARY_FILE = $(INTERNAL_library_NAME)$(LIBRARY_NAME_SUFFIX)$(LIBEXT)
LIBRARY_FILE_EXT = $(LIBEXT)
VERSION_LIBRARY_FILE = $(LIBRARY_FILE)
SONAME_LIBRARY_FILE=$(LIBRARY_FILE)
endif
SONAME_LIBRARY_FILE = $(LIBRARY_FILE)
endif # shared
ifeq ($(strip $(HEADER_FILES_DIR)),)
override HEADER_FILES_DIR = .
@ -88,13 +129,61 @@ endif
#
# Compilation targets
#
ifeq ($(BUILD_DLL),yes)
DERIVED_SOURCES = derived_src
ifneq ($(strip $(DLL_DEF)),)
DLL_DEF_FLAG = --input-def $(DLL_DEF)
endif
SHARED_CFLAGS += -DBUILD_$(INTERNAL_library_NAME)_DLL=1
internal-library-all :: \
before-all \
before-$(TARGET)-all \
$(GNUSTEP_OBJ_DIR) \
$(DERIVED_SOURCES) \
$(DERIVED_SOURCES)/$(INTERNAL_library_NAME).def \
$(GNUSTEP_OBJ_DIR)/$(DLL_NAME) \
$(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB) \
after-$(TARGET)-all \
after-all
internal-library-clean ::
rm -rf $(DERIVED_SOURCES)
$(DERIVED_SOURCES) :
$(MKDIRS) $@
DLL_OFILES = $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
$(DERIVED_SOURCES)/$(INTERNAL_library_NAME).def : $(DLL_OFILES) $(DLL_DEF)
$(DLLTOOL) $(DLL_DEF_FLAG) --output-def $@ $(DLL_OFILES)
$(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB) : $(DERIVED_SOURCES)/$(INTERNAL_library_NAME).def
$(DLLTOOL) --dllname $(DLL_NAME) --def $< --output-lib $@
$(GNUSTEP_OBJ_DIR)/$(DLL_NAME) : $(DLL_OFILES) $(DERIVED_SOURCES)/$(INTERNAL_library_NAME).def
$(DLLWRAP) --driver-name $(CC) \
$(SHARED_LD_PREFLAGS) \
--def $(DERIVED_SOURCES)/$(INTERNAL_library_NAME).def \
-o $@ $(DLL_OFILES) \
$(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) $(TARGET_SYSTEM_LIBS) $(SHARED_LD_POSTFLAGS)
else # BUILD_DLL
internal-library-all:: before-all before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \
$(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) import-library \
after-$(TARGET)-all after-all
$(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
$(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
$(LIB_LINK_CMD)
endif # BUILD_DLL
before-$(TARGET)-all::
after-$(TARGET)-all::
@ -124,8 +213,19 @@ internal-install-headers::
done; \
fi
internal-install-libs:: internal-install-lib \
internal-install-import-lib
ifeq ($(BUILD_DLL),yes)
internal-install-lib::
if [ -f $(GNUSTEP_OBJ_DIR)/$(DLL_NAME) ]; then \
$(INSTALL_PROGRAM) $(GNUSTEP_OBJ_DIR)/$(DLL_NAME) \
$(GNUSTEP_INSTALLATION_DIR)/Tools/$(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)/$(LIBRARY_COMBO) ; \
fi
if [ -f $(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB) ]; then \
$(INSTALL_PROGRAM) $(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB) \
$(GNUSTEP_LIBRARIES) ; \
fi
else
internal-install-lib::
if [ -f $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) ]; then \
@ -134,7 +234,7 @@ internal-install-lib::
$(AFTER_INSTALL_LIBRARY_CMD) \
fi
internal-install-import-lib::
endif
internal-library-uninstall:: before-uninstall internal-uninstall-headers internal-uninstall-lib after-uninstall
@ -147,16 +247,19 @@ internal-uninstall-headers::
fi; \
done
internal-uninstall-libs:: internal-uninstall-lib \
internal-uninstall-import-lib
ifeq ($(BUILD_DLL),yes)
internal-uninstall-lib::
rm -f $(GNUSTEP_INSTALLATION_DIR)/Tools/$(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)/$(LIBRARY_COMBO)/$(DLL_NAME)
rm -f $(GNUSTEP_LIBRARIES)/$(DLL_EXP_LIB)
else
internal-uninstall-lib::
rm -f $(GNUSTEP_LIBRARIES)/$(VERSION_LIBRARY_FILE)
rm -f $(GNUSTEP_LIBRARIES)/$(SONAME_LIBRARY_FILE)
rm -f $(GNUSTEP_LIBRARIES)/$(LIBRARY_FILE)
if [ ! -e $(GNUSTEP_LIBRARIES)/$(INTERNAL_library_NAME)$(SHARED_LIBEXT) ]; then \
rm -f $(GNUSTEP_LIBRARIES)/$(INTERNAL_library_NAME)$(SHARED_LIBEXT); \
fi
endif
internal-uninstall-import-lib::

View file

@ -1,4 +1,4 @@
#! /bin/sh
#!/bin/sh
#
# Copyright (C) 1997 Free Software Foundation, Inc.
#

View file

@ -110,6 +110,15 @@ internal-check::
after-check::
# declare targets as PHONY
.PHONY = all before-all internal-all after-all \
install before-install internal-install after-install \
uninstall before-uninstall internal-uninstall after-uninstall \
clean before-clean internal-clean after-clean \
distclean before-distclean internal-distclean after-distclean \
check before-check internal-check after-check
ifeq ($(PROCESS_SECOND_TIME),yes)
ALL_CPPFLAGS = $(CPPFLAGS) $(ADDITIONAL_CPPFLAGS) $(AUXILIARY_CPPFLAGS)
@ -182,29 +191,32 @@ $(JAVA_OBJ_PREFIX)%.class : %.java
# The magical application rules, thank you GNU make!
%.build:
@(echo Making $(OPERATION) for $(TARGET_TYPE) $*...; \
tmp="$($*_SUBPROJECTS)"; \
if test "x$$tmp" != x ; then \
for f in $$tmp; do \
if [ "$($*_SUBPROJECTS)" != "" ]; then subprjs="$($*_SUBPROJECTS)"; \
else subprjs="__dummy__";\
fi;\
if [ "$$subprjs" != "__dummy__" ]; then \
for f in $$subprjs; do \
mf=$(MAKEFILE_NAME); \
if [ ! -f $$f/$$mf -a -f $$f/Makefile ]; then \
mf=Makefile; \
echo "WARNING: No $(MAKEFILE_NAME) found for subproject $$f; using 'Makefile'"; \
echo "WARNING: No $(MAKEFILE_NAME) found for subproject $ff; using 'Makefile'"; \
fi; \
if $(MAKE) -C $$f -f $$mf --no-keep-going $(OPERATION); then \
:; \
else exit $$?; \
fi; \
fi; \
done; \
fi; \
fi; \
$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
internal-$(TARGET_TYPE)-$(OPERATION) \
INTERNAL_$(TARGET_TYPE)_NAME=$* \
SUBPROJECTS="$($*_SUBPROJECTS)" \
OBJC_FILES="$($*_OBJC_FILES)" \
C_FILES="$($*_C_FILES)" \
JAVA_FILES="$($*_JAVA_FILES)" \
JAVA_JOBS_FILES="$($*_JOBS_FILES)" \
JAVA_WRAPPER_FRAMEWORK="$($*_WRAPPER_FRAMEWORK)" \
JAVA_FILES="$($*_JAVA_FILES)" \
JAVA_JOBS_FILES="$($*_JOBS_FILES)" \
JAVA_WRAPPER_FRAMEWORK="$($*_WRAPPER_FRAMEWORK)" \
OBJ_FILES="$($*_OBJ_FILES)" \
PSWRAP_FILES="$($*_PSWRAP_FILES)" \
HEADER_FILES="$($*_HEADER_FILES)" \
TEXI_FILES="$($*_TEXI_FILES)" \
@ -212,31 +224,33 @@ $(JAVA_OBJ_PREFIX)%.class : %.java
TEXT_MAIN="$($*_TEXT_MAIN)" \
HEADER_FILES_DIR="$($*_HEADER_FILES_DIR)" \
HEADER_FILES_INSTALL_DIR="$($*_HEADER_FILES_INSTALL_DIR)" \
RESOURCE_FILES="$($*_RESOURCE_FILES)" \
COMPONENTS="$($*_COMPONENTS)" \
LANGUAGES="$($*_LANGUAGES)" \
HAS_GSWCOMPONENTS="$($*_HAS_GSWCOMPONENTS)" \
GSWAPP_INFO_PLIST="$($*_GSWAPP_INFO_PLIST)" \
WEBSERVER_RESOURCE_FILES="$($*_WEBSERVER_RESOURCE_FILES)" \
LOCALIZED_RESOURCE_FILES="$($*_LOCALIZED_RESOURCE_FILES)" \
LOCALIZED_WEBSERVER_RESOURCE_FILES="$($*_LOCALIZED_WEBSERVER_RESOURCE_FILES)" \
LOCALIZED_WEBSERVER_RESOURCE_FILES="$($*_LOCALIZED_WEBSERVER_RESOURCE_FILES)" \
WEBSERVER_RESOURCE_DIRS="$($*_WEBSERVER_RESOURCE_DIRS)" \
LOCALIZED_RESOURCE_FILES="$($*_LOCALIZED_RESOURCE_FILES)" \
RESOURCE_FILES="$($*_RESOURCE_FILES)" \
MAIN_MODEL_FILE="$($*_MAIN_MODEL_FILE)" \
APPLICATION_ICON="$($*_APPLICATION_ICON)" \
RESOURCE_DIRS="$($*_RESOURCE_DIRS)" \
COMPONENTS="$($*_COMPONENTS)" \
LANGUAGES="$($*_LANGUAGES)" \
HAS_GSWCOMPONENTS="$($*_HAS_GSWCOMPONENTS)" \
GSWAPP_INFO_PLIST="$($*_GSWAPP_INFO_PLIST)" \
BUNDLE_LIBS="$($*_BUNDLE_LIBS) $(BUNDLE_LIBS)" \
SERVICE_INSTALL_DIR="$($*_SERVICE_INSTALL_DIR)" \
PALETTE_ICON="$($*_PALETTE_ICON)" \
PRINCIPAL_CLASS="$($*_PRINCIPAL_CLASS)" \
DLL_DEF="$($*_DLL_DEF)" \
ADDITIONAL_INCLUDE_DIRS="$(ADDITIONAL_INCLUDE_DIRS) \
$($*_INCLUDE_DIRS)" \
ADDITIONAL_GUI_LIBS="$($*_GUI_LIBS) $(ADDITIONAL_GUI_LIBS)" \
ADDITIONAL_TOOL_LIBS="$($*_TOOL_LIBS) $(ADDITIONAL_TOOL_LIBS)" \
ADDITIONAL_OBJC_LIBS="$($*_OBJC_LIBS) $(ADDITIONAL_OBJC_LIBS)" \
ADDITIONAL_LIBRARY_LIBS="$($*_LIBS)" \
ADDITIONAL_LIBRARY_LIBS="$($*_LIBS) $($*_LIBRARY_LIBS) $(ADDITIONAL_LIBRARY_LIBS)" \
ADDITIONAL_LIB_DIRS="$($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS)" \
ADDITIONAL_LDFLAGS="$($*_LDFLAGS) $(ADDITIONAL_LDFLAGS)" \
LIBRARIES_DEPEND_UPON="$(shell $(WHICH_LIB_SCRIPT) \
$(LIB_DIRS_NO_SYSTEM) $(LIBRARIES_DEPEND_UPON) \
$(LIB_DIRS_NO_SYSTEM) $($*_LIB_DIRS) $(ADDITIONAL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) \
$($*_LIBRARIES_DEPEND_UPON) debug=$(debug) profile=$(profile) \
shared=$(shared) libext=$(LIBEXT) \
shared_libext=$(SHARED_LIBEXT))" \
@ -258,11 +272,21 @@ $(JAVA_OBJ_PREFIX)%.class : %.java
# are in the JAVA_FILES variable.
#
ifneq ($(SUBPROJECTS),)
SUBPROJECT_OBJ_FILES = $(foreach d, $(SUBPROJECTS), \
ifneq ($($*_SUBPROJECTS),)
SUBPROJECT_OBJ_FILES = $(foreach d, $($*_SUBPROJECTS), \
$(addprefix $(d)/, $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)))
else
ifneq ($(SUBPROJECTS),)
SUBPROJECT_OBJ_FILES = $(foreach d, $(SUBPROJECTS), \
$(addprefix $(d)/, $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)))
endif
endif
#ifneq ($(SUBPROJECTS),)
# SUBPROJECT_OBJ_FILES = $(foreach d, $(SUBPROJECTS), \
# $(addprefix $(d)/, $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)))
#endif
OBJC_OBJS = $(OBJC_FILES:.m=${OEXT})
OBJC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(OBJC_OBJS))
@ -280,6 +304,23 @@ PSWRAP_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(PSWRAP_OBJS))
C_OBJS = $(C_FILES:.c=${OEXT})
C_OBJ_FILES = $(PSWRAP_OBJ_FILES) $(addprefix $(GNUSTEP_OBJ_DIR)/,$(C_OBJS))
ifeq ($(WITH_DLL),yes)
TMP_LIBS := $(LIBRARIES_DEPEND_UPON) $(BUNDLE_LIBS) $(ADDITIONAL_GUI_LIBS) $(ADDITIONAL_OBJC_LIBS) $(ADDITIONAL_LIBRARY_LIBS)
TMP_LIBS := $(filter -l%, $(TMP_LIBS))
# filter all non-static libs (static libs are those ending in _ds, _s, _ps..)
TMP_LIBS := $(filter-out -l%_ds, $(TMP_LIBS))
TMP_LIBS := $(filter-out -l%_s, $(TMP_LIBS))
TMP_LIBS := $(filter-out -l%_dps,$(TMP_LIBS))
TMP_LIBS := $(filter-out -l%_ps, $(TMP_LIBS))
# strip away -l, _p and _d ..
TMP_LIBS := $(TMP_LIBS:-l%=%)
TMP_LIBS := $(TMP_LIBS:%_d=%)
TMP_LIBS := $(TMP_LIBS:%_p=%)
TMP_LIBS := $(TMP_LIBS:%_dp=%)
ALL_CPPFLAGS += $(TMP_LIBS:%=-Dlib%_ISDLL=1)
endif
# Rules processed second time
endif

View file

@ -39,7 +39,7 @@ ifeq ($(INTERNAL_subproj_NAME),)
internal-all:: $(SUBPROJECT_NAME:=.all.subproj.variables)
internal-install:: $(SUBPROJECT_NAME:=.install.subproj.variables)
internal-install:: all
internal-clean:: $(SUBPROJECT_NAME:=.clean.subproj.variables)
@ -63,8 +63,7 @@ internal-subproj-all:: before-all before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \
$(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) \
after-$(TARGET)-all after-all
$(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
$(SUBPROJECT_OBJ_FILES)
$(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(OBJ_FILES)
$(OBJ_MERGE_CMD)
before-$(TARGET)-all::
@ -74,7 +73,7 @@ after-$(TARGET)-all::
after-all::
#
# Installation and Uninstallation targets
# Installation targets
#
internal-subproj-install:: internal-install-subproj-dirs \

View file

@ -35,7 +35,13 @@ endif
#
# Target specific libraries
#
ifeq ($(findstring linux-gnu, $(GNUSTEP_TARGET_OS)), linux-gnu)
ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) \
-lwsock32 -ladvapi32 -lcomctl32 -luser32 -lcomdlg32 \
-lmpr -lnetapi32 -lm -I. # the -I is a dummy to avoid -lm^M
EXEEXT := .exe
endif
ifeq ($(GNUSTEP_TARGET_OS),linux-gnu)
ifeq ("$(objc_threaded)","")
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -ldl -lm
else
@ -45,10 +51,12 @@ ifeq ($(findstring linux-gnu, $(GNUSTEP_TARGET_OS)), linux-gnu)
endif
endif
ifeq ($(findstring solaris, $(GNUSTEP_TARGET_OS)), solaris)
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) $(objc_threaded) -lsocket -lnsl -ldl -lm -lposix4
ifneq ("$(objc_threaded)","")
INTERNAL_CFLAGS = -D_REENTRANT
ifeq ("$(objc_threaded)","")
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -lsocket -lnsl -ldl -lm
else
INTERNAL_CFLAGS = -D_REENTRANT
INTERNAL_OBJCFLAGS = -D_REENTRANT
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) $(objc_threaded) -lsocket -lnsl -ldl -lm
endif
endif
ifeq ($(findstring irix, $(GNUSTEP_TARGET_OS)), irix)
@ -107,6 +115,91 @@ HAVE_BUNDLES = no
#
####################################################
####################################################
#
# MacOSX-Server 1.0
#
ifeq ($(findstring rhapsody5, $(GNUSTEP_TARGET_OS)), rhapsody5)
ifeq ($(OBJC_RUNTIME), NeXT)
HAVE_BUNDLES = yes
endif
HAVE_SHARED_LIBS = yes
SHARED_LIBEXT = .dylib
ifeq ($(FOUNDATION_LIB),nx)
# Use the NeXT compiler
CC = cc
OBJC_COMPILER = NeXT
ifneq ($(arch),)
ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
INTERNAL_CFLAGS += $(ARCH_FLAGS)
INTERNAL_LDFLAGS += $(ARCH_FLAGS)
endif
endif
TARGET_LIB_DIR = \
Libraries/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)
ifneq ($(OBJC_COMPILER), NeXT)
SHARED_LIB_LINK_CMD = \
$(CC) $(SHARED_LD_PREFLAGS) \
-dynamiclib $(ARCH_FLAGS) -dynamic \
-compatibility_version 1 -current_version 1 \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) \
-o $@ \
-framework Foundation \
-framework System \
$(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
-lobjc -lgcc $^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
else # OBJC_COMPILER=NeXT
SHARED_LIB_LINK_CMD = \
$(CC) $(SHARED_LD_PREFLAGS) \
-dynamiclib $(ARCH_FLAGS) -dynamic \
-compatibility_version 1 -current_version 1 \
-read_only_relocs warning -undefined warning \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) \
-o $@ \
$(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
-framework Foundation \
$^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
endif # OBJC_COMPILER
OBJ_MERGE_CMD = \
$(CC) -nostdlib -r -d -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
STATIC_LIB_LINK_CMD = \
/usr/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) -o $@ $^ \
$(STATIC_LD_POSTFLAGS)
# This doesn't work with 4.1, what about others?
#ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
AFTER_INSTALL_STATIC_LIB_COMMAND =
SHARED_CFLAGS += -dynamic
SHARED_LIBEXT = .dylib
ifneq ($(OBJC_COMPILER), NeXT)
TARGET_SYSTEM_LIBS += $(CONFIG_SYSTEM_LIBS) -lgcc
endif
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS +=
BUNDLE_LDFLAGS += -bundle -undefined suppress $(ARCH_FLAGS)
endif
#
# end MacOSX-Server 1.0
#
####################################################
####################################################
#
# OpenStep 4.x
@ -135,27 +228,32 @@ TARGET_LIB_DIR = \
ifneq ($(OBJC_COMPILER), NeXT)
SHARED_LIB_LINK_CMD = \
/bin/libtool -dynamic -read_only_relocs suppress $(ARCH_FLAGS) \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) -o $@ \
/bin/libtool $(SHARED_LD_PREFLAGS) \
-dynamic -read_only_relocs suppress $(ARCH_FLAGS) \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) \
-o $@ \
-framework System \
$(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
-lobjc -lgcc $^; \
-lobjc -lgcc $^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
else
SHARED_LIB_LINK_CMD = \
/bin/libtool -dynamic -read_only_relocs suppress $(ARCH_FLAGS) \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) $(ALL_LDFLAGS) -o $@ \
/bin/libtool $(SHARED_LD_PREFLAGS) \
-dynamic -read_only_relocs suppress $(ARCH_FLAGS) \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) $(ALL_LDFLAGS) $@ \
-framework System \
$(ALL_LIB_DIRS) $(LIBRARIES_DEPEND_UPON) \
$(LIBRARIES_FOUNDATION_DEPEND_UPON) $^; \
$(LIBRARIES_FOUNDATION_DEPEND_UPON) $^ \
$(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
endif
STATIC_LIB_LINK_CMD = \
/bin/libtool -static $(ARCH_FLAGS) -o $@ $^
/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) -o $@ $^ \
$(STATIC_LD_POSTFLAGS)
# This doesn't work with 4.1, what about others?
#ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
@ -206,29 +304,37 @@ TARGET_LIB_DIR = \
ifneq ($(OBJC_COMPILER), NeXT)
SHARED_LIB_LINK_CMD = \
/bin/libtool -dynamic -read_only_relocs suppress
/bin/libtool $(SHARED_LD_PREFLAGS) -dynamic -read_only_relocs suppress
$(ARCH_FLAGS) -o $@ -framework System \
$(GNUSTEP_USER_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_USER_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_LIBRARIES_FLAG) \
-L$(GNUSTEP_SYSTEM_TARGET_LIBRARIES) \
$(ADDITIONAL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) -lobjc -lgcc -undefined warning $^; \
$(LIBRARIES_DEPEND_UPON) -lobjc -lgcc -undefined warning $^ \
$(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
else
SHARED_LIB_LINK_CMD = \
/bin/libtool -dynamic -read_only_relocs suppress $(ARCH_FLAGS) -o $@ \
/bin/libtool $(SHARED_LD_PREFLAGS) \
-dynamic -read_only_relocs suppress $(ARCH_FLAGS) -o $@ \
-framework System \
$(GNUSTEP_USER_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_USER_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_LIBRARIES_FLAG) \
-L$(GNUSTEP_SYSTEM_TARGET_LIBRARIES) \
$(ADDITIONAL_LIB_DIRS) $(LIBRARIES_DEPEND_UPON) $^; \
$(ADDITIONAL_LIB_DIRS) $(LIBRARIES_DEPEND_UPON) $^ \
$(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
endif
STATIC_LIB_LINK_CMD = \
/bin/libtool -static $(ARCH_FLAGS) -o $@ $^
/bin/libtool $(STATIC_LD_PREFLAGS) \
-static $(ARCH_FLAGS) -o $@ $^ $(STATIC_LD_POSTFLAGS)
ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
@ -254,46 +360,44 @@ endif
#
# Linux ELF
#
ifeq ($(findstring linux-gnu, $(GNUSTEP_TARGET_OS)), linux-gnu)
ifeq ($(GNUSTEP_TARGET_OS), linux-gnu)
HAVE_SHARED_LIBS = yes
SHARED_LIB_LINK_CMD = \
$(CC) -shared -Wl,-soname,$(SONAME_LIBRARY_FILE) \
$(CC) $(SHARED_LD_PREFLAGS) -shared -Wl,-soname,$(SONAME_LIBRARY_FILE) \
-o $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) $^ \
$(GNUSTEP_USER_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_USER_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_LIBRARIES_FLAG) \
-L$(GNUSTEP_SYSTEM_LIBRARIES) \
-L$(GNUSTEP_SYSTEM_TARGET_LIBRARIES) \
$(SYSTEM_LIB_DIR) \
$(ADDITIONAL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) \
$(TARGET_SYSTEM_LIBS); \
$(TARGET_SYSTEM_LIBS) \
$(SHARED_LD_POSTFLAGS);\
(cd $(GNUSTEP_OBJ_DIR); \
rm -f $(LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
$(LN_S) $(SONAME_LIBRARY_FILE) $(LIBRARY_FILE); \
if [ x$(LIBRARY_NAME_SUFFIX) = x_d ]; then \
$(LN_S) -f $(LIBRARY_FILE) `echo $(LIBRARY_FILE) | sed -e 's/_d//'`; \
fi; \
)
AFTER_INSTALL_SHARED_LIB_COMMAND = \
(cd $(GNUSTEP_LIBRARIES); \
rm -f $(LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
$(LN_S) $(SONAME_LIBRARY_FILE) $(LIBRARY_FILE); \
if [ x$(LIBRARY_NAME_SUFFIX) = x_d ]; then \
$(LN_S) -f $(LIBRARY_FILE) `echo $(LIBRARY_FILE) | sed -e 's/_d//'`; \
fi; \
)
OBJ_MERGE_CMD = \
$(CC) -nostdlib -r -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
SHARED_CFLAGS += -fPIC
SHARED_LIBEXT = .so
SHARED_CFLAGS += -fPIC
SHARED_LIBEXT = .so
HAVE_BUNDLES = yes
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS += -fPIC
BUNDLE_LDFLAGS += -shared
HAVE_BUNDLES = yes
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS += -fPIC
BUNDLE_LDFLAGS += -shared
ADDITIONAL_LDFLAGS += -rdynamic
ifeq ($(shared), no)
ADDITIONAL_LDFLAGS += -static
@ -445,8 +549,9 @@ ifeq ($(findstring openbsd, $(GNUSTEP_TARGET_OS)), openbsd)
HAVE_SHARED_LIBS = no
SHARED_LD = ld
SHARED_LIB_LINK_CMD = \
$(SHARED_LD) -x -Bshareable -Bforcearchive \
-o $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) $^ /usr/lib/c++rt0.o;\
$(SHARED_LD) $(SHARED_LD_PREFLAGS) -x -Bshareable -Bforcearchive \
-o $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) $^ /usr/lib/c++rt0.o \
$(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); \
rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
@ -513,8 +618,7 @@ STATIC_LIB_LINK_CMD = \
$(VERSION_LIBRARY_FILE) `ls -1 *\.o */*\.o`);\
$(RANLIB) $(VERSION_LIBRARY_FILE)
SHARED_LIB_LINK_CMD = \
(cd $(GNUSTEP_OBJ_DIR); $(CC) -v $(SHARED_CFLAGS) -shared -o \
$(VERSION_LIBRARY_FILE) `ls -1 *\.o */*\.o` ;\
(cd $(GNUSTEP_OBJ_DIR); $(CC) $(SHARED_LD_PREFLAGS) -v $(SHARED_CFLAGS) -shared -o $(VERSION_LIBRARY_FILE) `ls -1 *\.o */*\.o` $(SHARED_LD_POSTFLAGS);\
rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
@ -531,6 +635,33 @@ endif
#
####################################################
####################################################
#
# Mingw32
#
ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
HAVE_SHARED_LIBS = yes
BUILD_DLL = yes
WITH_DLL = yes
SHARED_LIBEXT = .a
DLL_LIBEXT = .dll
DLLTOOL = dlltool
DLLWRAP = dllwrap
#SHARED_CFLAGS +=
OBJ_MERGE_CMD = \
$(CC) -nostdlib -r -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
HAVE_BUNDLES = yes
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS =
BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
endif
# end Mingw32
#
####################################################
####################################################
#
# Solaris
@ -538,8 +669,19 @@ endif
ifeq ($(findstring solaris, $(GNUSTEP_TARGET_OS)), solaris)
HAVE_SHARED_LIBS = yes
SHARED_LIB_LINK_CMD = \
$(CC) -G -Wl,-h,$(SONAME_LIBRARY_FILE) \
-o $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) $^ ;\
$(CC) $(SHARED_LD_PREFLAGS) -G -Wl,-h,$(SONAME_LIBRARY_FILE) \
-o $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) $^ \
$(GNUSTEP_USER_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_USER_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAG) \
$(GNUSTEP_LOCAL_LIBRARIES_FLAG) \
-L$(GNUSTEP_SYSTEM_LIBRARIES) \
-L$(GNUSTEP_SYSTEM_TARGET_LIBRARIES) \
$(SYSTEM_LIB_DIR) \
$(ADDITIONAL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) \
$(TARGET_SYSTEM_LIBS) \
$(SHARED_LD_POSTFLAGS);\
(cd $(GNUSTEP_OBJ_DIR); \
rm -f $(LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
@ -552,7 +694,12 @@ AFTER_INSTALL_SHARED_LIB_COMMAND = \
$(LN_S) $(SONAME_LIBRARY_FILE) $(LIBRARY_FILE); \
)
OBJ_MERGE_CMD = \
# was between the LN_S
# $(LN_S) $(SONAME_LIBRSTEP_LIBRARIES); \
# rm -f $(LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
# $(LN_S) $(VERSION_LIBRARY_FILE) $(SONAME_LIBRARY_FILE); \
OBJ_MERGE_CMD = \
$(CC) -nostdlib -r -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
SHARED_CFLAGS += -fpic -fPIC
@ -561,8 +708,8 @@ SHARED_LIBEXT = .so
HAVE_BUNDLES = yes
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS += -fPIC
#BUNDLE_LDFLAGS += -shared -mimpure-text
BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
BUNDLE_LDFLAGS += -shared -mimpure-text
#BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
endif
# end Solaris
@ -577,8 +724,9 @@ endif
ifeq ($(findstring sysv4.2, $(GNUSTEP_TARGET_OS)), sysv4.2)
HAVE_SHARED_LIBS = yes
SHARED_LIB_LINK_CMD = \
$(CC) -shared -o $(VERSION_LIBRARY_FILE) $^ ;\
mv $(VERSION_LIBRARY_FILE) $(GNUSTEP_OBJ_DIR) ;\
$(CC) $(SHARED_LD_PREFLAGS) -shared -o $(VERSION_LIBRARY_FILE) $^ \
$(SHARED_LD_POSTFLAGS);\
mv $(VERSION_LIBRARY_FILE) $(GNUSTEP_OBJ_DIR);\
(cd $(GNUSTEP_OBJ_DIR); \
rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
@ -605,7 +753,11 @@ endif
ifeq ($(findstring hpux, $(GNUSTEP_TARGET_OS)), hpux)
HAVE_SHARED_LIBS = yes
SHARED_LIB_LINK_CMD = \
(cd $(GNUSTEP_OBJ_DIR); $(CC) -v $(SHARED_CFLAGS) -shared -o $(VERSION_LIBRARY_FILE) `ls -1 *\.o */*\.o` ;\
(cd $(GNUSTEP_OBJ_DIR); \
$(CC) $(SHARED_LD_PREFLAGS) \
-v $(SHARED_CFLAGS) -shared \
-o $(VERSION_LIBRARY_FILE) `ls -1 *\.o */*\.o` \
$(SHARED_LD_POSTFLAGS) ;\
rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
@ -659,93 +811,7 @@ endif
#
####################################################
####################################################
#
# MacOSX-Server 1.0
#
ifeq ($(findstring rhapsody5, $(GNUSTEP_TARGET_OS)), rhapsody5)
ifeq ($(OBJC_RUNTIME), NeXT)
HAVE_BUNDLES = yes
endif
HAVE_SHARED_LIBS = yes
SHARED_LIBEXT = .dylib
ifeq ($(FOUNDATION_LIB),nx)
# Use the NeXT compiler
CC = cc
OBJC_COMPILER = NeXT
ifneq ($(arch),)
ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
INTERNAL_CFLAGS += $(ARCH_FLAGS)
INTERNAL_LDFLAGS += $(ARCH_FLAGS)
endif
endif
TARGET_LIB_DIR = \
Libraries/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)
ifneq ($(OBJC_COMPILER), NeXT)
SHARED_LIB_LINK_CMD = \
$(CC) $(SHARED_LD_PREFLAGS) \
-dynamiclib $(ARCH_FLAGS) -dynamic \
-compatibility_version 1 -current_version 1 \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) \
-o $@ \
-framework Foundation \
-framework System \
$(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
-lobjc -lgcc $^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
else # OBJC_COMPILER=NeXT
SHARED_LIB_LINK_CMD = \
$(CC) $(SHARED_LD_PREFLAGS) \
-dynamiclib $(ARCH_FLAGS) -dynamic \
-compatibility_version 1 -current_version 1 \
-read_only_relocs suppress \
-undefined suppress \
-install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE) \
-o $@ \
$(ALL_LIB_DIRS) \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
-framework Foundation \
$^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
endif # OBJC_COMPILER
OBJ_MERGE_CMD = \
$(CC) -nostdlib -r -d -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
STATIC_LIB_LINK_CMD = \
/usr/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) -o $@ $^ \
$(STATIC_LD_POSTFLAGS)
# This doesn't work with 4.1, what about others?
#ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
AFTER_INSTALL_STATIC_LIB_COMMAND =
SHARED_CFLAGS += -dynamic
SHARED_LIBEXT = .dylib
ifneq ($(OBJC_COMPILER), NeXT)
TARGET_SYSTEM_LIBS += $(CONFIG_SYSTEM_LIBS) -lgcc
endif
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS +=
BUNDLE_LDFLAGS += -bundle -undefined suppress $(ARCH_FLAGS)
endif
#
# end MacOSX-Server 1.0
#
####################################################
## Local variables:
## mode: makefile
## End:

View file

@ -58,7 +58,7 @@ internal-distclean:: $(TOOL_NAME:=.distclean.tool.variables)
$(TOOL_NAME):
@$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going $@.all.tool.variables
else
else # second pass
ALL_TOOL_LIBS = $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) $(FND_LIBS) \
$(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
@ -69,15 +69,32 @@ ALL_TOOL_LIBS := \
debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
shared_libext=$(SHARED_LIBEXT))
ifeq ($(WITH_DLL),yes)
TTMP_LIBS := $(ALL_TOOL_LIBS)
TTMP_LIBS := $(filter -l%, $(TTMP_LIBS))
# filter all non-static libs (static libs are those ending in _ds, _s, _ps..)
TTMP_LIBS := $(filter-out -l%_ds, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_s, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_dps,$(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_ps, $(TTMP_LIBS))
# strip away -l, _p and _d ..
TTMP_LIBS := $(TTMP_LIBS:-l%=%)
TTMP_LIBS := $(TTMP_LIBS:%_d=%)
TTMP_LIBS := $(TTMP_LIBS:%_p=%)
TTMP_LIBS := $(TTMP_LIBS:%_dp=%)
TTMP_LIBS := $(TTMP_LIBS:%=-Dlib%_ISDLL=1)
ALL_CPPFLAGS += $(TTMP_LIBS)
endif
#
# Compilation targets
#
internal-tool-all:: before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \
$(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT) after-$(TARGET)-all
$(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
$(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES)
$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ \
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) \
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(OBJ_FILES) $(SUBPROJECT_OBJ_FILES) \
$(ALL_LIB_DIRS) $(ALL_TOOL_LIBS)
before-$(TARGET)-all::
@ -97,7 +114,6 @@ install-tool::
internal-tool-uninstall::
rm -f $(TOOL_INSTALLATION_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT)
rm -f $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_tool_NAME)
#
# Cleaning targets

View file

@ -1,4 +1,4 @@
#! /bin/sh
#!/bin/sh
# transform_paths.sh
#
# Copyright (C) 1997 Free Software Foundation, Inc.

View file

@ -139,6 +139,22 @@ char* libext = ".a";
char* shared_libext = ".so";
char* extension;
static void stripstr(unsigned char *s)
{
/*
Strips off carriage returns, newlines and spaces
at the end of the string. (this removes some \r\n issues on Windows)
*/
unsigned len;
if (s == NULL) return;
if ((len = strlen(s)) == 0) return;
while (len > 0) {
len--;
if (s[len] < 33) s[len] = '\0';
}
}
void get_arguments (int argc, char** argv)
{
int i;
@ -152,6 +168,7 @@ void get_arguments (int argc, char** argv)
all_libraries = malloc ((libraries_no + 1) * sizeof (char*));
all_libraries[libraries_no] = malloc (strlen (argv[i]) - 1);
strcpy (all_libraries[libraries_no], argv[i] + 2);
stripstr(all_libraries[libraries_no]);
libraries_no++;
}
else if (!strncmp (argv[i], "-L", 2)) {
@ -161,6 +178,7 @@ void get_arguments (int argc, char** argv)
library_paths = malloc ((paths_no + 1) * sizeof(char*));
library_paths[paths_no] = malloc (strlen (argv[i]) - 1);
strcpy (library_paths[paths_no], argv[i] + 2);
stripstr(library_paths[paths_no]);
paths_no++;
}
else if (!strncmp (argv[i], "shared=", 7)) {
@ -394,7 +412,7 @@ int search_for_library_in_directory (char* path)
return 1;
/* Return a static library that matches the 'library_name' */
if (search_for_library_with_type_in_directory ('s', path, libext))
if (search_for_library_with_type_in_directory (0, path, libext))
return 1;
return 0;
@ -404,6 +422,11 @@ int main(int argc, char** argv)
{
int i, j, found;
#ifdef __WIN32__
setmode(1, O_BINARY);
setmode(2, O_BINARY);
#endif
if (argc == 1) {
printf ("usage: %s [-Lpath ...] -llibrary shared=yes|no debug=yes|no "
"profile=yes|no libext=string shared_libext=string\n", argv[0]);
@ -415,7 +438,7 @@ int main(int argc, char** argv)
if (!libraries_no)
exit (0);
/* show_all ();*/
// show_all ();
for (i = 0; i < libraries_no; i++) {
library_name = all_libraries[i];

View file

@ -2,7 +2,12 @@
$| = 1;
$shared_extension = "so";
if ($ENV{'GNUSTEP_HOST_OS'} eq "rhapsody5.3" || $ENV{'GNUSTEP_HOST_OS'} eq "rhapsody5.5") {
$shared_extension = "dylib";
}
else {
$shared_extension = "so";
}
$lib_extension = "a";
@L = ();
@ -111,6 +116,10 @@ foreach $j (0..$#l) {
# startindex to be justified for libraries not starting with 'lib'
$file2 = substr($file, 3, $k - 3);
}
else {
$file2 = substr($file, 3, length($file));
}
if ($file2 ne $l) { next; }
if ($file =~ /$l/) {

327
woapp.make Normal file
View file

@ -0,0 +1,327 @@
#
# woapp.make
#
# Makefile rules to build GNUstep-based WebObjects applications.
#
# Copyright (C) 1999 Helge Hess, MDlink online service center GmbH
#
# Author: Helge Hess <Helge.Hess@mdlink.de>
# Based on application.make by Ovidiu Predescu <ovidiu@net-community.com>
# which was: Based on the original version by Scott Christley.
#
# This file is part of the GNUstep Makefile Package.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# You should have received a copy of the GNU General Public
# License along with this library; see the file COPYING.LIB.
# If not, write to the Free Software Foundation,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# prevent multiple inclusions
ifeq ($(WOAPP_MAKE_LOADED),)
WOAPP_MAKE_LOADED=yes
#
# Include in the common makefile rules
#
include $(GNUSTEP_MAKEFILES)/rules.make
#
# The name of the application is in the WOAPP_NAME variable.
# The list of languages the app is localized in are in xxx_LANGUAGES
# The list of application resource file are in xxx_RESOURCE_FILES
# The list of localized application resource file are in
# xxx_LOCALIZED_RESOURCE_FILES
# The list of application resource directories are in xxx_RESOURCE_DIRS
# The list of application web server resource directories are in
# xxx_WEBSERVER_RESOURCE_DIRS
# The list of localized application web server resource directories are in
# xxx_LOCALIZED_WEBSERVER_RESOURCE_DIRS
# where xxx is the application name
#
# Determine the application directory extension (not used currently)
ifeq ($(profile), yes)
WOAPP_EXTENSION=profile
else
ifeq ($(debug), yes)
WOAPP_EXTENSION=debug
else
WOAPP_EXTENSION=woa
endif
endif
WOAPP_EXTENSION=woa
ifeq ($(INTERNAL_woapp_NAME),)
# This part gets included by the first invoked make process.
internal-all:: $(WOAPP_NAME:=.all.woapp.variables)
internal-install:: $(WOAPP_NAME:=.install.woapp.variables)
internal-uninstall:: $(WOAPP_NAME:=.uninstall.woapp.variables)
internal-clean:: $(WOAPP_NAME:=.clean.woapp.variables)
internal-distclean:: $(WOAPP_NAME:=.distclean.woapp.variables)
$(WOAPP_NAME):
@$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory $@.all.woapp.variables
else
# Libraries that go before the WO libraries
ALL_WO_LIBS = \
$(ADDITIONAL_WO_LIBS) \
$(AUXILIARY_WO_LIBS) \
$(WO_LIBS) \
$(ADDITIONAL_TOOL_LIBS) \
$(AUXILIARY_TOOL_LIBS) \
$(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
$(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
ALL_WO_LIBS := \
$(shell $(WHICH_LIB_SCRIPT) $(LIB_DIRS_NO_SYSTEM) $(ALL_WO_LIBS) \
debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
shared_libext=$(SHARED_LIBEXT))
ifeq ($(WITH_DLL),yes)
TTMP_LIBS := $(ALL_WO_LIBS)
TTMP_LIBS := $(filter -l%, $(TTMP_LIBS))
# filter all non-static libs (static libs are those ending in _ds, _s, _ps..)
TTMP_LIBS := $(filter-out -l%_ds, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_s, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_dps,$(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_ps, $(TTMP_LIBS))
# strip away -l, _p and _d ..
TTMP_LIBS := $(TTMP_LIBS:-l%=%)
TTMP_LIBS := $(TTMP_LIBS:%_d=%)
TTMP_LIBS := $(TTMP_LIBS:%_p=%)
TTMP_LIBS := $(TTMP_LIBS:%_dp=%)
TTMP_LIBS := $(TTMP_LIBS:%=-Dlib%_ISDLL=1)
ALL_CPPFLAGS += $(TTMP_LIBS)
endif
# Don't include these definitions the first time make is invoked. This part is
# included when make is invoked the second time from the %.build rule (see
# rules.make).
WOAPP_DIR_NAME = $(INTERNAL_woapp_NAME:=.$(WOAPP_EXTENSION))
WOAPP_RESOURCE_DIRS = $(foreach d, $(RESOURCE_DIRS), $(WOAPP_DIR_NAME)/Resources/$(d))
WOAPP_WEBSERVER_RESOURCE_DIRS = $(foreach d, $(WEBSERVER_RESOURCE_DIRS), $(WOAPP_DIR_NAME)/WebServerResources/$(d))
ifeq ($(strip $(COMPONENTS)),)
override COMPONENTS=""
endif
ifeq ($(strip $(RESOURCE_FILES)),)
override RESOURCE_FILES=""
endif
ifeq ($(strip $(WEBSERVER_RESOURCE_FILES)),)
override WEBSERVER_RESOURCE_FILES=""
endif
ifeq ($(strip $(LANGUAGES)),)
override LANGUAGES="English"
endif
ifeq ($(strip $(LOCALIZED_RESOURCE_FILES)),)
override LOCALIZED_RESOURCE_FILES=""
endif
ifeq ($(strip $(LOCALIZED_WEBSERVER_RESOURCE_FILES)),)
override LOCALIZED_WEBSERVER_RESOURCE_FILES=""
endif
# Support building NeXT applications
ifneq ($(OBJC_COMPILER), NeXT)
WOAPP_FILE = \
$(WOAPP_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/$(INTERNAL_woapp_NAME)$(EXEEXT)
else
WOAPP_FILE = $(WOAPP_DIR_NAME)/$(INTERNAL_woapp_NAME)$(EXEEXT)
endif
#
# Internal targets
#
$(WOAPP_FILE): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
$(LD) $(ALL_LDFLAGS) $(LDOUT)$@ $(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
$(SUBPROJECT_OBJ_FILES) $(ALL_LIB_DIRS) $(ALL_WO_LIBS)
ifeq ($(OBJC_COMPILER), NeXT)
@$(TRANSFORM_PATHS_SCRIPT) `echo $(ALL_LIB_DIRS) | sed 's/-L//g'` \
>$(WOAPP_DIR_NAME)/library_paths.openapp
# This is a hack for OPENSTEP systems to remove the iconheader file
# automatically generated by the makefile package.
rm -f $(INTERNAL_woapp_NAME).iconheader
else
@$(TRANSFORM_PATHS_SCRIPT) `echo $(ALL_LIB_DIRS) | sed 's/-L//g'` \
>$(WOAPP_DIR_NAME)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)/library_paths.openapp
endif
#
# Compilation targets
#
ifeq ($(OBJC_COMPILER), NeXT)
internal-woapp-all:: \
before-$(TARGET)-all \
$(GNUSTEP_OBJ_DIR) $(WOAPP_DIR_NAME) $(WOAPP_FILE) \
woapp-components \
woapp-localized-webresource-files \
woapp-webresource-files \
woapp-localized-resource-files \
woapp-resource-files \
$(WOAPP_DIR_NAME)/$(WOAPP_NAME).sh \
after-$(TARGET)-all
before-$(TARGET)-all::
after-$(TARGET)-all::
$(INTERNAL_woapp_NAME).iconheader:
@(echo "F $(INTERNAL_woapp_NAME).$(WOAPP_EXTENSION) $(INTERNAL_woapp_NAME) $(WOAPP_EXTENSION)"; \
echo "F $(INTERNAL_woapp_NAME) $(INTERNAL_woapp_NAME) app") >$@
$(WOAPP_DIR_NAME):
mkdir $@
else
internal-woapp-all:: \
before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \
$(WOAPP_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO) $(WOAPP_FILE) \
woapp-components \
woapp-localized-webresource-files \
woapp-webresource-files \
woapp-localized-resource-files \
woapp-resource-files \
$(WOAPP_DIR_NAME)/$(WOAPP_NAME).sh \
after-$(TARGET)-all
before-$(TARGET)-all::
after-$(TARGET)-all::
$(WOAPP_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO):
@$(MKDIRS) $(WOAPP_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)
endif
ifeq ($(WOAPP_NAME)_GEN_SCRIPT,yes)
$(WOAPP_DIR_NAME)/$(WOAPP_NAME).sh: $(WOAPP_DIR_NAME)
@(echo "#!/bin/sh"; \
echo '# Automatically generated, do not edit!'; \
echo '$${GNUSTEP_HOST_CPU}/$${GNUSTEP_HOST_OS}/$${LIBRARY_COMBO}/$(INTERNAL_woapp_NAME) $$1 $$2 $$3 $$4 $$5 $$6 $$7 $$8') >$@
chmod +x $@
else
$(WOAPP_DIR_NAME)/$(WOAPP_NAME).sh:
endif
woapp-components:: $(WOAPP_DIR_NAME)
@(if [ "$(COMPONENTS)" != "" ]; then \
echo "Linking components into the application wrapper..."; \
cd $(WOAPP_DIR_NAME); \
for component in $(COMPONENTS); do \
$(LN_S) -f ../$$component .;\
done; \
fi)
woapp-webresource-dir::
@$(MKDIRS) $(WOAPP_WEBSERVER_RESOURCE_DIRS)
woapp-webresource-files:: $(WOAPP_DIR_NAME)/WebServerResources woapp-webresource-dir
@(if [ "$(WEBSERVER_RESOURCE_FILES)" != "" ]; then \
echo "Linking webserver resources into the application wrapper..."; \
cd $(WOAPP_DIR_NAME)/WebServerResources; \
for ff in $(WEBSERVER_RESOURCE_FILES); do \
$(LN_S) -f ../../$$ff .;\
done; \
fi)
woapp-localized-webresource-files:: $(WOAPP_DIR_NAME)/WebServerResources woapp-webresource-dir
@(if [ "$(LOCALIZED_WEBSERVER_RESOURCE_FILES)" != "" ]; then \
echo "Linking localized web resources into the application wrapper..."; \
cd $(WOAPP_DIR_NAME)/WebServerResources; \
for l in $(LANGUAGES); do \
if [ ! -f $$l.lproj ]; then $(MKDIRS) $$l.lproj; fi; \
cd $$l.lproj; \
for f in $(LOCALIZED_WEBSERVER_RESOURCE_FILES); do \
if [ -f ../../../$$l.lproj/$$f ]; then \
if [ ! -r $$f ]; then \
$(LN_S) ../../../$$l.lproj/$$f $$f;\
fi;\
fi;\
done;\
cd ..; \
done;\
fi)
woapp-resource-dir::
@$(MKDIRS) $(WOAPP_RESOURCE_DIRS)
woapp-resource-files:: $(WOAPP_DIR_NAME)/Resources/Info-gnustep.plist woapp-resource-dir
@(if [ "$(RESOURCE_FILES)" != "" ]; then \
echo "Linking resources into the application wrapper..."; \
cd $(WOAPP_DIR_NAME)/Resources; \
for ff in $(RESOURCE_FILES); do \
$(LN_S) -f ../../$$ff .;\
done; \
fi)
woapp-localized-resource-files:: $(WOAPP_DIR_NAME)/Resources woapp-resource-dir
@(if [ "$(LOCALIZED_RESOURCE_FILES)" != "" ]; then \
echo "Linking localized resources into the application wrapper..."; \
cd $(WOAPP_DIR_NAME)/Resources; \
for l in $(LANGUAGES); do \
if [ ! -f $$l.lproj ]; then $(MKDIRS) $$l.lproj; fi; \
cd $$l.lproj; \
for f in $(LOCALIZED_RESOURCE_FILES); do \
if [ -f ../../../$$l.lproj/$$f ]; then \
$(LN_S) -f ../../../$$l.lproj/$$f .;\
fi;\
done;\
cd ..; \
done;\
fi)
$(WOAPP_DIR_NAME)/Resources/Info-gnustep.plist: $(WOAPP_DIR_NAME)/Resources
@(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
echo " NSExecutable = \"$(INTERNAL_woapp_NAME)\";"; \
echo " NSPrincipalClass = OWApplication;"; \
echo "}") >$@
$(WOAPP_DIR_NAME)/Resources:
@$(MKDIRS) $@
$(WOAPP_DIR_NAME)/WebServerResources:
@$(MKDIRS) $@
internal-woapp-install:: internal-woapp-all
@$(MKDIRS) $(GNUSTEP_WOAPPS)
rm -rf $(GNUSTEP_WOAPPS)/$(WOAPP_DIR_NAME)
$(TAR) ch --exclude=CVS --to-stdout $(WOAPP_DIR_NAME) | (cd $(GNUSTEP_WOAPPS); $(TAR) xf -)
internal-woapp-uninstall::
(cd $(GNUSTEP_WOAPPS); rm -rf $(WOAPP_DIR_NAME))
#
# Cleaning targets
#
internal-woapp-clean::
rm -rf $(GNUSTEP_OBJ_PREFIX)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)
ifeq ($(OBJC_COMPILER), NeXT)
rm -f *.iconheader
for f in *.$(WOAPP_EXTENSION); do \
rm -f $$f/`basename $$f .$(WOAPP_EXTENSION)`; \
done
else
rm -rf *.$(WOAPP_EXTENSION)/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)
endif
internal-woapp-distclean::
rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
static_debug_obj static_profile_obj shared_profile_debug_obj \
static_profile_debug_obj *.woa *.debug *.profile *.iconheader
endif
endif
# application.make loaded

256
wobundle.make Normal file
View file

@ -0,0 +1,256 @@
#
# bundle.make
#
# Makefile rules to build GNUstep-based bundles.
#
# Copyright (C) 1997 Free Software Foundation, Inc.
#
# Author: Scott Christley <scottc@net-community.com>
# Author: Ovidiu Predescu <ovidiu@net-community.com>
#
# This file is part of the GNUstep Makefile Package.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# You should have received a copy of the GNU General Public
# License along with this library; see the file COPYING.LIB.
# If not, write to the Free Software Foundation,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# prevent multiple inclusions
ifeq ($(BUNDLE_MAKE_LOADED),)
BUNDLE_MAKE_LOADED=yes
#
# Include in the common makefile rules
#
include $(GNUSTEP_MAKEFILES)/rules.make
# The name of the bundle is in the BUNDLE_NAME variable.
# The list of languages the bundle is localized in are in xxx_LANGUAGES
# The list of bundle resource file are in xxx_RESOURCE_FILES
# The list of localized bundle resource file are in xxx_LOCALIZED_RESOURCE_FILES
# The list of bundle resource directories are in xxx_RESOURCE_DIRS
# The name of the principal class is xxx_PRINCIPAL_CLASS
# The header files are in xxx_HEADER_FILES
# The directory where the header files are located is xxx_HEADER_FILES_DIR
# The directory where to install the header files inside the library
# installation directory is xxx_HEADER_FILES_INSTALL_DIR
# where xxx is the bundle name
#
BUNDLE_NAME:=$(strip $(BUNDLE_NAME))
ifeq ($(INTERNAL_bundle_NAME),)
# This part is included the first time make is invoked.
internal-all:: $(BUNDLE_NAME:=.all.bundle.variables)
internal-install:: all $(BUNDLE_NAME:=.install.bundle.variables)
internal-uninstall:: $(BUNDLE_NAME:=.uninstall.bundle.variables)
internal-clean:: $(BUNDLE_NAME:=.clean.bundle.variables)
internal-distclean:: $(BUNDLE_NAME:=.distclean.bundle.variables)
$(BUNDLE_NAME):
@$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
$@.all.bundle.variables
else
# This part gets included the second time make is invoked.
# On Solaris we don't need to specifies the libraries the bundle needs.
# How about the rest of the systems? ALL_BUNDLE_LIBS is temporary empty.
#ALL_BUNDLE_LIBS = $(ADDITIONAL_GUI_LIBS) $(AUXILIARY_GUI_LIBS) $(BACKEND_LIBS) \
$(GUI_LIBS) $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
$(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
$(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
ALL_BUNDLE_LIBS = $(BUNDLE_LIBS)
ALL_BUNDLE_LIBS := \
$(shell $(WHICH_LIB_SCRIPT) $(LIB_DIRS_NO_SYSTEM) $(ALL_BUNDLE_LIBS) \
debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
shared_libext=$(SHARED_LIBEXT))
ifeq ($(WITH_DLL),yes)
TTMP_LIBS := $(ALL_BUNDLE_LIBS)
TTMP_LIBS := $(filter -l%, $(TTMP_LIBS))
# filter all non-static libs (static libs are those ending in _ds, _s, _ps..)
TTMP_LIBS := $(filter-out -l%_ds, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_s, $(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_dps,$(TTMP_LIBS))
TTMP_LIBS := $(filter-out -l%_ps, $(TTMP_LIBS))
# strip away -l, _p and _d ..
TTMP_LIBS := $(TTMP_LIBS:-l%=%)
TTMP_LIBS := $(TTMP_LIBS:%_d=%)
TTMP_LIBS := $(TTMP_LIBS:%_p=%)
TTMP_LIBS := $(TTMP_LIBS:%_dp=%)
TTMP_LIBS := $(TTMP_LIBS:%=-Dlib%_ISDLL=1)
ALL_CPPFLAGS += $(TTMP_LIBS)
BUNDLE_OBJ_EXT = $(DLL_LIBEXT)
endif # WITH_DLL
internal-bundle-all:: before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \
build-bundle-dir build-bundle \
after-$(TARGET)-all
before-$(TARGET)-all::
after-$(TARGET)-all::
BUNDLE_DIR_NAME := $(INTERNAL_bundle_NAME:=$(BUNDLE_EXTENSION))
BUNDLE_FILE := \
$(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/$(BUNDLE_NAME)$(BUNDLE_OBJ_EXT)
BUNDLE_RESOURCE_DIRS = $(foreach d, $(RESOURCE_DIRS), $(BUNDLE_DIR_NAME)/Resources/$(d))
ifeq ($(strip $(HEADER_FILES_DIR)),)
HEADER_FILES_DIR = .
endif
ifeq ($(strip $(COMPONENTS)),)
override COMPONENTS=""
endif
ifeq ($(strip $(RESOURCE_FILES)),)
override RESOURCE_FILES=""
endif
ifeq ($(strip $(LOCALIZED_RESOURCE_FILES)),)
override LOCALIZED_RESOURCE_FILES=""
endif
ifeq ($(strip $(LANGUAGES)),)
override LANGUAGES="English"
endif
build-bundle-dir::
@$(MKDIRS) \
$(BUNDLE_DIR_NAME)/Resources \
$(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO) \
$(BUNDLE_RESOURCE_DIRS)
build-bundle:: $(BUNDLE_FILE) bundle-components bundle-resource-files localized-bundle-resource-files
ifeq ($(WITH_DLL),yes)
$(BUNDLE_FILE) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES)
$(DLLWRAP) --driver-name $(CC) \
-o $(LDOUT)$(BUNDLE_FILE) \
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES) \
$(ALL_LIB_DIRS) $(ALL_BUNDLE_LIBS)
else # WITH_DLL
$(BUNDLE_FILE) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
$(BUNDLE_LD) $(BUNDLE_LDFLAGS) $(ALL_LDFLAGS) \
$(LDOUT)$(BUNDLE_FILE) \
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) \
$(ALL_LIB_DIRS) $(ALL_BUNDLE_LIBS)
endif
bundle-components :: $(BUNDLE_DIR_NAME)
@(if [ "$(COMPONENTS)" != "" ]; then \
echo "Syntax checking components ..."; \
for component in $(COMPONENTS); do \
wodfile=`basename $$component .wo`;\
wod "$${component}/$${wodfile}.wod";\
done; \
echo "Linking components into the bundle wrapper..."; \
cd $(BUNDLE_DIR_NAME); \
for component in $(COMPONENTS); do \
$(LN_S) -f ../$$component .;\
done; \
fi)
bundle-resource-files:: $(BUNDLE_DIR_NAME)/bundle-info.plist $(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist
@(if [ "$(RESOURCE_FILES)" != "" ]; then \
echo "Linking resources into the bundle wrapper..."; \
cd $(BUNDLE_DIR_NAME)/Resources; \
for ff in $(RESOURCE_FILES); do \
$(LN_S) -f ../../$$ff .;\
done; \
fi)
localized-bundle-resource-files:: $(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist
@(if [ "$(LOCALIZED_RESOURCE_FILES)" != "" ]; then \
echo "Linking localized resources into the bundle wrapper..."; \
cd $(BUNDLE_DIR_NAME)/Resources; \
for l in $(LANGUAGES); do \
if [ ! -f $$l.lproj ]; then $(MKDIRS) $$l.lproj; fi; \
cd $$l.lproj; \
for f in $(LOCALIZED_RESOURCE_FILES); do \
if [ -f ../../../$$l.lproj/$$f ]; then \
$(LN_S) -f ../../../$$l.lproj/$$f .;\
fi;\
done;\
cd ..; \
done;\
fi)
ifeq ($(PRINCIPAL_CLASS),)
override PRINCIPAL_CLASS = $(INTERNAL_bundle_NAME)
endif
$(BUNDLE_DIR_NAME)/bundle-info.plist: $(BUNDLE_DIR_NAME)
@(cd $(BUNDLE_DIR_NAME); \
$(LN_S) -f ../bundle-info.plist . \
)
$(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist: $(BUNDLE_DIR_NAME)/Resources
@(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
echo " NSExecutable = \"$(INTERNAL_bundle_NAME)$(BUNDLE_OBJ_EXT)\";"; \
echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
echo "}") >$@
internal-bundle-install:: $(BUNDLE_INSTALL_DIR)
if [ "$(HEADER_FILES_INSTALL_DIR)" != "" ]; then \
$(MKDIRS) $(GNUSTEP_HEADERS)$(HEADER_FILES_INSTALL_DIR); \
if [ "$(HEADER_FILES)" != "" ]; then \
for file in $(HEADER_FILES) __done; do \
if [ $$file != __done ]; then \
$(INSTALL_DATA) $(HEADER_FILES_DIR)/$$file \
$(GNUSTEP_HEADERS)$(HEADER_FILES_INSTALL_DIR)/$$file ; \
fi; \
done; \
fi; \
fi
$(MKDIRS) $(BUNDLE_INSTALL_DIR)
rm -rf $(BUNDLE_INSTALL_DIR)/$(BUNDLE_DIR_NAME)
$(TAR) ch --exclude=CVS --to-stdout $(BUNDLE_DIR_NAME) | (cd $(BUNDLE_INSTALL_DIR); $(TAR) xf -)
$(BUNDLE_DIR_NAME)/Resources $(BUNDLE_INSTALL_DIR)::
@$(MKDIRS) $@
internal-bundle-uninstall::
if [ "$(HEADER_FILES)" != "" ]; then \
for file in $(HEADER_FILES) __done; do \
if [ $$file != __done ]; then \
rm -rf $(GNUSTEP_HEADERS)$(HEADER_FILES_INSTALL_DIR)/$$file ; \
fi; \
done; \
fi; \
rm -rf $(BUNDLE_INSTALL_DIR)/$(BUNDLE_DIR_NAME)
#
# Cleaning targets
#
internal-bundle-clean::
rm -rf $(GNUSTEP_OBJ_DIR) $(BUNDLE_DIR_NAME)
internal-bundle-distclean::
rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
static_debug_obj static_profile_obj shared_profile_debug_obj \
static_profile_debug_obj
endif
endif
# bundle.make loaded
## Local variables:
## mode: makefile
## End: