mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-22 13:50:47 +00:00
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:
parent
248326d459
commit
4284b29d52
23 changed files with 1530 additions and 506 deletions
24
ChangeLog
24
ChangeLog
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}" == "" )
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
21
brain.make
21
brain.make
|
@ -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 =
|
||||
#
|
||||
|
|
95
bundle.make
95
bundle.make
|
@ -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
|
||||
|
||||
|
|
149
common.make
149
common.make
|
@ -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
6
config.guess
vendored
|
@ -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
|
||||
|
||||
|
|
79
configure.in
79
configure.in
|
@ -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.
|
||||
#--------------------------------------------------------------------
|
||||
|
|
20
ctool.make
20
ctool.make
|
@ -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)
|
||||
|
|
139
library.make
139
library.make
|
@ -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::
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#! /bin/sh
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
#
|
||||
|
|
83
rules.make
83
rules.make
|
@ -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
|
||||
|
||||
|
|
|
@ -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 \
|
||||
|
|
324
target.make
324
target.make
|
@ -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:
|
||||
|
||||
|
|
24
tool.make
24
tool.make
|
@ -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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#! /bin/sh
|
||||
#!/bin/sh
|
||||
# transform_paths.sh
|
||||
#
|
||||
# Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
|
|
27
which_lib.c
27
which_lib.c
|
@ -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];
|
||||
|
|
|
@ -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
327
woapp.make
Normal 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
256
wobundle.make
Normal 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:
|
Loading…
Reference in a new issue