mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
Add support for building ObjC (non GNUstep) based programs.
Eliminate use of stamp files. Numerous bug fixes. Threads library must now be specified by user when running configure git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@2593 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
9ff7102dd8
commit
3201c9c5c4
12 changed files with 237 additions and 71 deletions
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
|||
Thu Oct 30 13:23:31 1997 Scott Christley <scottc@net-community.com>
|
||||
|
||||
* objc.make: New file.
|
||||
* GNUmakefile.in: Install new file. Add targets to regenerate
|
||||
automatically generated files.
|
||||
* aggregate.make: Have make stop when error occurs.
|
||||
* bundle.make: Elminate stamp files.
|
||||
* config.make.in: Save any LIBS specified by user.
|
||||
* configure.in: Correct default library combo.
|
||||
* configure: Regenerate for configure.in changes.
|
||||
* rules.make: Add ObjC program support. Have make stop when
|
||||
error occurs. Correct variables that are being passed to
|
||||
recursive makes.
|
||||
* target.make: Do not specify the thread library; instead the
|
||||
user should define it when running configure with the LIBS
|
||||
environment variable.
|
||||
* test.make: Eliminate stamp files. Correct bundle rules.
|
||||
|
||||
Thu Oct 30 09:35:34 1997 Ovidiu Predescu <ovidiu@net-community.com>
|
||||
|
||||
* common.make: Add the cpu/os/runtime include flag only for
|
||||
|
|
|
@ -51,7 +51,7 @@ INSTALL = @INSTALL@
|
|||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
all: which_lib
|
||||
all: generated-files which_lib
|
||||
|
||||
which_lib: which_lib.c
|
||||
$(CC) -O2 -Wall -o $@ $^
|
||||
|
@ -70,7 +70,7 @@ install: all
|
|||
$(INSTALL_PROGRAM) -m 755 debugapp $(tooldir); \
|
||||
for f in aggregate.make application.make bundle.make clean.make \
|
||||
common.make brain.make library.make rules.make target.make \
|
||||
tool.make test.make names.make MediaBook.func; do \
|
||||
tool.make test.make names.make objc.make MediaBook.func; do \
|
||||
$(INSTALL_DATA) $$f $(makedir); \
|
||||
done
|
||||
$(INSTALL_DATA) config.site $(prefix)/share
|
||||
|
@ -86,5 +86,22 @@ distclean: clean
|
|||
rm -f GNUmakefile config.make
|
||||
rm -f config.cache config.log config.status
|
||||
|
||||
generated-files: GNUmakefile GNUstep.sh config.h config.make debugapp openapp
|
||||
|
||||
GNUmakefile: GNUmakefile.in config.status
|
||||
$(SHELL) config.status
|
||||
|
||||
GNUstep.sh: GNUstep.sh.in
|
||||
$(SHELL) config.status
|
||||
|
||||
config.h: config.h.in
|
||||
$(SHELL) config.status
|
||||
|
||||
config.make: config.make.in
|
||||
$(SHELL) config.status
|
||||
|
||||
debugapp: debugapp.in
|
||||
$(SHELL) config.status
|
||||
|
||||
openapp: openapp.in
|
||||
$(SHELL) config.status
|
||||
|
|
|
@ -38,5 +38,5 @@ internal-all internal-install internal-uninstall internal-clean \
|
|||
@(target=`echo $@ | sed 's/internal-//'`; \
|
||||
for f in $(SUBPROJECTS); do \
|
||||
echo Making $$target in $$f...;\
|
||||
(cd $$f; $(MAKE) $$target); \
|
||||
(cd $$f; $(MAKE) --no-keep-going $$target); \
|
||||
done)
|
||||
|
|
|
@ -32,17 +32,12 @@ include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/rules.make
|
|||
|
||||
BUNDLE_DIR_NAME := $(BUNDLE_NAME:=$(BUNDLE_EXTENSION))
|
||||
BUNDLE_FILE := $(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/$(BUNDLE_NAME)
|
||||
BUNDLE_STAMPS := $(foreach bundle,$(BUNDLE_NAME),stamp-bundle-$(bundle))
|
||||
BUNDLE_STAMPS := $(addprefix $(GNUSTEP_OBJ_DIR)/,$(BUNDLE_STAMPS))
|
||||
BUNDLE_RESOURCE_DIRS = $(foreach d,$(RESOURCE_DIRS),$(BUNDLE_DIR_NAME)/$(d))
|
||||
|
||||
#
|
||||
# Internal targets
|
||||
#
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/stamp-bundle-% : $(BUNDLE_FILE) bundle-resource-files
|
||||
touch $@
|
||||
|
||||
$(BUNDLE_FILE) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(BUNDLE_LD) $(BUNDLE_LDFLAGS) $(ALL_LDFLAGS) \
|
||||
$(LDOUT)$(BUNDLE_FILE) \
|
||||
|
@ -63,12 +58,10 @@ build-bundle-dir::
|
|||
@$(GNUSTEP_MAKEFILES)/mkinstalldirs \
|
||||
$(BUNDLE_DIR_NAME) \
|
||||
$(BUNDLE_DIR_NAME)/Resources \
|
||||
$(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_CPU) \
|
||||
$(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR) \
|
||||
$(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO) \
|
||||
$(BUNDLE_RESOURCE_DIRS)
|
||||
|
||||
build-bundle:: $(GNUSTEP_OBJ_DIR)/stamp-bundle-$(BUNDLE_NAME)
|
||||
build-bundle:: $(BUNDLE_FILE) bundle-resource-files
|
||||
|
||||
bundle-resource-files::
|
||||
for f in $(RESOURCE_FILES); do \
|
||||
|
|
|
@ -63,3 +63,6 @@ library_combo = @ac_cv_library_combo@
|
|||
#
|
||||
X_INCLUDE := @X_INCLUDE@
|
||||
X_LIBS := @X_LIBS@
|
||||
|
||||
# Any user specified libs, like thread libraries
|
||||
CONFIG_SYSTEM_LIBS = @LIBS@
|
||||
|
|
2
configure
vendored
2
configure
vendored
|
@ -1468,7 +1468,7 @@ if test "$ac_cv_library_combo" = ""; then
|
|||
if test $host_os = nextstep4; then
|
||||
ac_cv_library_combo=nx-nx-nx-nil
|
||||
else
|
||||
ac_cv_library_combo=gnu-gnu-gnu-xdp
|
||||
ac_cv_library_combo=gnu-gnu-gnu-xdps
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ if test "$ac_cv_library_combo" = ""; then
|
|||
if test $host_os = nextstep4; then
|
||||
ac_cv_library_combo=nx-nx-nx-nil
|
||||
else
|
||||
ac_cv_library_combo=gnu-gnu-gnu-xdp
|
||||
ac_cv_library_combo=gnu-gnu-gnu-xdps
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(ac_cv_library_combo)
|
||||
|
|
|
@ -45,6 +45,8 @@ internal-all:: $(LIBRARY_NAME:=.buildlib)
|
|||
|
||||
internal-install:: all $(LIBRARY_NAME:=.installlib)
|
||||
|
||||
internal-uninstall:: $(LIBRARY_NAME:=.uninstalllib)
|
||||
|
||||
#
|
||||
# Cleaning targets
|
||||
#
|
||||
|
|
79
objc.make
Normal file
79
objc.make
Normal file
|
@ -0,0 +1,79 @@
|
|||
#
|
||||
# objc.make
|
||||
#
|
||||
# Makefile rules to build ObjC-based (but not GNUstep) programs.
|
||||
#
|
||||
# Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
#
|
||||
# Author: Scott Christley <scottc@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.
|
||||
|
||||
#
|
||||
# Include in the common makefile rules
|
||||
#
|
||||
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/rules.make
|
||||
|
||||
# This is the directory where the objc programss get installed. If you
|
||||
# don't specify a directory they will get installed in the GNUstep
|
||||
# system root.
|
||||
OBJC_PROGRAM_INSTALLATION_DIR = \
|
||||
$(GNUSTEP_INSTALLATION_DIR)/Tools
|
||||
|
||||
#
|
||||
# The name of the ObjC program is in the OBJC_PROGRAM_NAME variable.
|
||||
#
|
||||
# xxx We need to prefix the target name when cross-compiling
|
||||
#
|
||||
OBJC_PROGRAM_LIST := $(OBJC_PROGRAM_NAME:=.buildobjc)
|
||||
OBJC_PROGRAM_FILE = $(OBJC_PROGRAM_LIST)
|
||||
|
||||
#
|
||||
# Internal targets
|
||||
#
|
||||
|
||||
$(OBJC_PROGRAM_NAME) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(LD) $(ALL_LDFLAGS) $(LDOUT)$(OBJC_PROGRAM_NAME) \
|
||||
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
|
||||
$(ALL_LIB_DIRS) $(ALL_OBJC_LIBS)
|
||||
|
||||
#
|
||||
# Compilation targets
|
||||
#
|
||||
internal-all:: $(GNUSTEP_OBJ_DIR) $(OBJC_PROGRAM_LIST)
|
||||
|
||||
internal-objc-all:: build-objc-program
|
||||
|
||||
internal-install:: all internal-install-objc-dirs internal-install-objc-program
|
||||
|
||||
internal-install-objc-dirs::
|
||||
$(GNUSTEP_MAKEFILES)/mkinstalldirs $(OBJC_PROGRAM_INSTALLATION_DIR)
|
||||
|
||||
internal-install-objc-program::
|
||||
for f in $(OBJC_PROGRAM_NAME); do \
|
||||
$(INSTALL_PROGRAM) -m 0755 $$f $(OBJC_PROGRAM_INSTALLATION_DIR); \
|
||||
done
|
||||
|
||||
build-objc-program:: $(OBJC_PROGRAM_NAME)
|
||||
|
||||
#
|
||||
# Cleaning targets
|
||||
#
|
||||
internal-clean::
|
||||
rm -f $(OBJC_PROGRAM_NAME)
|
||||
rm -rf $(GNUSTEP_OBJ_PREFIX)
|
||||
|
||||
internal-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
|
80
rules.make
80
rules.make
|
@ -46,6 +46,9 @@ ALL_LIB_DIRS = $(ADDITIONAL_LIB_DIRS) \
|
|||
-L$(GNUSTEP_SYSTEM_LIBRARIES) -L$(GNUSTEP_SYSTEM_LIBRARIES_ROOT) \
|
||||
$(SYSTEM_LIB_DIR)
|
||||
|
||||
ALL_OBJC_LIBS = $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
|
||||
$(OBJC_LIBS) $(TARGET_SYSTEM_LIBS)
|
||||
|
||||
ALL_TOOL_LIBS = $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) $(FND_LIBS) \
|
||||
$(OBJC_LIBS) $(TARGET_SYSTEM_LIBS)
|
||||
|
||||
|
@ -58,6 +61,11 @@ LIB_DIRS_NO_SYSTEM = $(ADDITIONAL_LIB_DIRS) \
|
|||
-L$(GNUSTEP_LOCAL_LIBRARIES) -L$(GNUSTEP_LOCAL_LIBRARIES_ROOT) \
|
||||
-L$(GNUSTEP_SYSTEM_LIBRARIES) -L$(GNUSTEP_SYSTEM_LIBRARIES_ROOT)
|
||||
|
||||
ALL_OBJC_LIBS := \
|
||||
$(shell $(WHICH_LIB_SCRIPT) $(LIB_DIRS_NO_SYSTEM) $(ALL_OBJC_LIBS) \
|
||||
debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
|
||||
shared_libext=$(SHARED_LIBEXT))
|
||||
|
||||
ALL_TOOL_LIBS := \
|
||||
$(shell $(WHICH_LIB_SCRIPT) $(LIB_DIRS_NO_SYSTEM) $(ALL_TOOL_LIBS) \
|
||||
debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
|
||||
|
@ -88,10 +96,10 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
|
|||
%.c : %.psw
|
||||
pswrap -h $*.h -o $@ $<
|
||||
|
||||
# The magical app rule, thank you GNU make!
|
||||
# The magical application rules, thank you GNU make!
|
||||
%.buildapp:
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-all \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-all \
|
||||
INTERNAL_APP_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
|
@ -99,9 +107,10 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
|
|||
RESOURCE_FILES="$($*_RESOURCES)" \
|
||||
RESOURCE_DIRS="$($*_RESOURCE_DIRS)"
|
||||
|
||||
# library recursive make rules
|
||||
%.buildlib:
|
||||
@echo Making $*...
|
||||
@$(MAKE) internal-all \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-all \
|
||||
INTERNAL_LIBRARY_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
|
@ -112,7 +121,7 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
|
|||
|
||||
%.installlib:
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-install \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-install \
|
||||
INTERNAL_LIBRARY_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
|
@ -121,14 +130,35 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
|
|||
HEADER_FILES_DIR="$($*_HEADER_FILES_DIR)" \
|
||||
HEADER_FILES_INSTALL_DIR="$($*_HEADER_FILES_INSTALL_DIR)"
|
||||
|
||||
%.uninstalllib:
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-uninstall \
|
||||
INTERNAL_LIBRARY_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
PSWRAP_FILES="$($*_PSWRAP_FILES)" \
|
||||
HEADER_FILES="$($*_HEADER_FILES)" \
|
||||
HEADER_FILES_DIR="$($*_HEADER_FILES_DIR)" \
|
||||
HEADER_FILES_INSTALL_DIR="$($*_HEADER_FILES_INSTALL_DIR)"
|
||||
|
||||
# tool recursive make rules
|
||||
%.buildtool : FORCE
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-tool-all \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-tool-all \
|
||||
TOOL_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
PSWRAP_FILES="$($*_PSWRAP_FILES)"
|
||||
|
||||
# ObjC program recursive make rules
|
||||
%.buildobjc : FORCE
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-objc-all \
|
||||
OBJC_PROGRAM_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
PSWRAP_FILES="$($*_PSWRAP_FILES)"
|
||||
|
||||
#
|
||||
# The bundle extension (default is .bundle) is defined by BUNDLE_EXTENSION.
|
||||
#
|
||||
|
@ -136,9 +166,10 @@ ifeq ($(strip $(BUNDLE_EXTENSION)),)
|
|||
BUNDLE_EXTENSION = .bundle
|
||||
endif
|
||||
|
||||
# bundle recursive make rules
|
||||
%$(BUNDLE_EXTENSION) : FORCE
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-bundle-all \
|
||||
$(MAKE) --no-print-directory --no-keep-going internal-bundle-all \
|
||||
BUNDLE_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
|
@ -156,8 +187,7 @@ ALL_TEST_LIBRARY_LIBS = $(ADDITIONAL_LIBRARY_LIBS) $(AUXILIARY_LIBS) \
|
|||
-lobjc-test \
|
||||
$(AUXILIARY_TOOL_LIBS) $(FND_LIBS) $(OBJC_LIBS) $(TARGET_SYSTEM_LIBS)
|
||||
|
||||
ALL_TEST_BUNDLE_LIBS = $(ADDITIONAL_BUNDLE_LIBS) $(AUXILIARY_TOOL_LIBS) \
|
||||
$(FND_LIBS) $(OBJC_LIBS) $(TARGET_SYSTEM_LIBS)
|
||||
ALL_TEST_BUNDLE_LIBS = $(ADDITIONAL_BUNDLE_LIBS)
|
||||
|
||||
ALL_TEST_TOOL_LIBS = $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
|
||||
$(FND_LIBS) $(OBJC_LIBS) $(TARGET_SYSTEM_LIBS)
|
||||
|
@ -188,61 +218,61 @@ ALL_TEST_GUI_LIBS := \
|
|||
|
||||
%.testlib : FORCE
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-testlib-all \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-testlib-all \
|
||||
TEST_LIBRARY_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
PSWRAP_FILES="$($*_PSWRAP_FILES)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$(ADDITIONAL_INCLUDE_DIRS) $($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_LIBRARY_LIBS="$($*_LIBS)" \
|
||||
ADDITIONAL_LIB_DIRS="$($*_LIB_DIRS)" \
|
||||
ADDITIONAL_LIB_DIRS="$(ADDITIONAL_LIB_DIRS) $($*_LIB_DIRS)" \
|
||||
SCRIPTS_DIRECTORY="$($*_SCRIPTS_DIRECTORY)"
|
||||
|
||||
%.testbundle : FORCE
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-testbundle-all \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-testbundle-all \
|
||||
TEST_BUNDLE_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
PSWRAP_FILES="$($*_PSWRAP_FILES)" \
|
||||
RESOURCE_FILES="$($*_RESOURCES)" \
|
||||
RESOURCE_DIRS="$($*_RESOURCE_DIRS)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$(ADDITIONAL_INCLUDE_DIRS) $($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_BUNDLE_LIBS="$($*_LIBS)" \
|
||||
ADDITIONAL_LIB_DIRS="$($*_LIB_DIRS)" \
|
||||
ADDITIONAL_LIB_DIRS="$(ADDITIONAL_LIB_DIRS) $($*_LIB_DIRS)" \
|
||||
SCRIPTS_DIRECTORY="$($*_SCRIPTS_DIRECTORY)"
|
||||
|
||||
%.testtool : FORCE
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-testtool-all \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-testtool-all \
|
||||
TEST_TOOL_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
PSWRAP_FILES="$($*_PSWRAP_FILES)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$(ADDITIONAL_INCLUDE_DIRS) $($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_TOOL_LIBS="$($*_LIBS)" \
|
||||
ADDITIONAL_LIB_DIRS="$($*_LIB_DIRS)" \
|
||||
ADDITIONAL_LIB_DIRS="$(ADDITIONAL_LIB_DIRS) $($*_LIB_DIRS)" \
|
||||
SCRIPTS_DIRECTORY="$($*_SCRIPTS_DIRECTORY)"
|
||||
|
||||
%.testapp : FORCE
|
||||
@echo Making $*...
|
||||
@$(MAKE) --no-print-directory internal-testapp-all \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-testapp-all \
|
||||
TEST_APP_NAME=$* \
|
||||
OBJC_FILES="$($*_OBJC_FILES)" \
|
||||
C_FILES="$($*_C_FILES)" \
|
||||
PSWRAP_FILES="$($*_PSWRAP_FILES)" \
|
||||
RESOURCE_FILES="$($*_RESOURCES)" \
|
||||
RESOURCE_DIRS="$($*_RESOURCE_DIRS)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_INCLUDE_DIRS="$(ADDITIONAL_INCLUDE_DIRS) $($*_INCLUDE_DIRS)" \
|
||||
ADDITIONAL_GUI_LIBS="$($*_LIBS)" \
|
||||
ADDITIONAL_LIB_DIRS="$($*_LIB_DIRS)" \
|
||||
ADDITIONAL_LIB_DIRS="$(ADDITIONAL_LIB_DIRS) $($*_LIB_DIRS)" \
|
||||
SCRIPTS_DIRECTORY="$($*_SCRIPTS_DIRECTORY)"
|
||||
|
||||
# These are for running the tests
|
||||
|
||||
%.checklib : FORCE
|
||||
@echo Checking $*...
|
||||
@$(MAKE) --no-print-directory internal-check-LIBRARY \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-check-LIBRARY \
|
||||
TEST_LIBRARY_NAME=$* \
|
||||
ADDITIONAL_LD_LIB_DIRS="$($*_LD_LIB_DIRS)" \
|
||||
CHECK_SCRIPT_DIRS="$($*_SCRIPT_DIRS)" \
|
||||
|
@ -250,7 +280,7 @@ ALL_TEST_GUI_LIBS := \
|
|||
|
||||
%.checkbundle : FORCE
|
||||
@echo Checking $*...
|
||||
@$(MAKE) --no-print-directory internal-check-BUNDLE \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-check-BUNDLE \
|
||||
TEST_BUNDLE_NAME=$* \
|
||||
ADDITIONAL_LD_LIB_DIRS="$($*_LD_LIB_DIRS)" \
|
||||
CHECK_SCRIPT_DIRS="$($*_SCRIPT_DIRS)" \
|
||||
|
@ -258,7 +288,7 @@ ALL_TEST_GUI_LIBS := \
|
|||
|
||||
%.checktool : FORCE
|
||||
@echo Checking $*...
|
||||
@$(MAKE) --no-print-directory internal-check-TOOL \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-check-TOOL \
|
||||
TEST_TOOL_NAME=$* \
|
||||
ADDITIONAL_LD_LIB_DIRS="$($*_LD_LIB_DIRS)" \
|
||||
CHECK_SCRIPT_DIRS="$($*_SCRIPT_DIRS)" \
|
||||
|
@ -266,7 +296,7 @@ ALL_TEST_GUI_LIBS := \
|
|||
|
||||
%.checkapp : FORCE
|
||||
@echo Checking $*...
|
||||
@$(MAKE) --no-print-directory internal-check-APP \
|
||||
@$(MAKE) --no-print-directory --no-keep-going internal-check-APP \
|
||||
TEST_APP_NAME=$* \
|
||||
ADDITIONAL_LD_LIB_DIRS="$($*_LD_LIB_DIRS)" \
|
||||
CHECK_SCRIPT_DIRS="$($*_SCRIPT_DIRS)" \
|
||||
|
@ -304,7 +334,7 @@ uninstall:: before-uninstall internal-uninstall after-uninstall
|
|||
|
||||
clean:: before-clean internal-clean after-clean
|
||||
|
||||
distclean:: before-distclean internal-distclean after-distclean
|
||||
distclean:: clean before-distclean internal-distclean after-distclean
|
||||
|
||||
check:: before-check internal-check after-check
|
||||
|
||||
|
|
11
target.make
11
target.make
|
@ -36,15 +36,10 @@ endif
|
|||
# Target specific libraries
|
||||
#
|
||||
ifeq ($(GNUSTEP_TARGET_OS),linux-gnu)
|
||||
ifeq ($(GNUSTEP_TARGET_CPU),ix86)
|
||||
TARGET_SYSTEM_LIBS := -lpcthread -ldl -lm
|
||||
endif
|
||||
ifeq ($(GNUSTEP_TARGET_CPU),alpha)
|
||||
TARGET_SYSTEM_LIBS := -ldl -lm
|
||||
endif
|
||||
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -ldl -lm
|
||||
endif
|
||||
ifeq ($(findstring solaris, $(GNUSTEP_TARGET_OS)), solaris)
|
||||
TARGET_SYSTEM_LIBS := -lthread -lsocket -lnsl -ldl -lm
|
||||
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -lsocket -lnsl -ldl -lm
|
||||
endif
|
||||
|
||||
#
|
||||
|
@ -132,7 +127,7 @@ SHARED_CFLAGS += -dynamic
|
|||
SHARED_LIBEXT = .a
|
||||
|
||||
ifneq ($(OBJC_COMPILER), NeXT)
|
||||
TARGET_SYSTEM_LIBS += -lgcc
|
||||
TARGET_SYSTEM_LIBS += $(CONFIG_SYSTEM_LIBS) -lgcc
|
||||
endif
|
||||
|
||||
BUNDLE_LD = ld
|
||||
|
|
79
test.make
79
test.make
|
@ -75,23 +75,18 @@ include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/rules.make
|
|||
|
||||
TEST_LIBRARY_LIST := $(TEST_LIBRARY_NAME:=.testlib)
|
||||
CHECK_LIBRARY_LIST := $(TEST_LIBRARY_NAME:=.checklib)
|
||||
TEST_LIBRARY_STAMPS := $(foreach lib,$(TEST_LIBRARY_NAME),stamp-testlib-$(lib))
|
||||
TEST_LIBRARY_STAMPS := $(addprefix $(GNUSTEP_OBJ_DIR)/,$(TEST_LIBRARY_STAMPS))
|
||||
|
||||
TEST_BUNDLE_LIST := $(TEST_BUNDLE_NAME:=.testbundle)
|
||||
CHECK_BUNDLE_LIST := $(TEST_BUNDLE_NAME:=.checkbundle)
|
||||
TEST_BUNDLE_STAMPS := $(foreach b,$(TEST_BUNDLE_NAME),stamp-testbundle-$(b))
|
||||
TEST_BUNDLE_STAMPS := $(addprefix $(GNUSTEP_OBJ_DIR)/,$(TEST_BUNDLE_STAMPS))
|
||||
TEST_BUNDLE_DIR_NAME := $(TEST_BUNDLE_NAME:=$(BUNDLE_EXTENSION))
|
||||
TEST_BUNDLE_FILE := $(TEST_BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)/$(TEST_BUNDLE_NAME)
|
||||
TEST_BUNDLE_RESOURCE_DIRS = $(foreach d,$(RESOURCE_DIRS),$(TEST_BUNDLE_DIR_NAME)/$(d))
|
||||
|
||||
TEST_TOOL_LIST := $(TEST_TOOL_NAME:=.testtool)
|
||||
CHECK_TOOL_LIST := $(TEST_TOOL_NAME:=.checktool)
|
||||
TEST_TOOL_STAMPS := $(foreach tool,$(TEST_TOOL_NAME),stamp-testtool-$(tool))
|
||||
TEST_TOOL_STAMPS := $(addprefix $(GNUSTEP_OBJ_DIR)/,$(TEST_TOOL_STAMPS))
|
||||
|
||||
TEST_APP_LIST := $(TEST_APP_NAME:=.testapp)
|
||||
CHECK_APP_LIST := $(TEST_APP_NAME:=.checkapp)
|
||||
TEST_APP_STAMPS := $(foreach app,$(TEST_APP_NAME),stamp-testapp-$(app))
|
||||
TEST_APP_STAMPS := $(addprefix $(GNUSTEP_OBJ_DIR)/,$(TEST_APP_STAMPS))
|
||||
|
||||
ifeq ($(SCRIPTS_DIRECTORY),)
|
||||
SCRIPTS_DIRECTORY = .
|
||||
|
@ -101,29 +96,33 @@ endif
|
|||
# Internal targets
|
||||
#
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/stamp-testlib-% : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
ifneq ($(TEST_LIBRARY_NAME),)
|
||||
$(GNUSTEP_OBJ_DIR)/$(TEST_LIBRARY_NAME) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(LD) $(ALL_LDFLAGS) $(LDOUT)$(GNUSTEP_OBJ_DIR)/$(TEST_LIBRARY_NAME) \
|
||||
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
|
||||
$(ALL_LIB_DIRS) $(ALL_TEST_LIBRARY_LIBS)
|
||||
touch $@
|
||||
endif
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/stamp-testbundle-%: $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
ifneq ($(TEST_BUNDLE_NAME),)
|
||||
$(TEST_BUNDLE_NAME): $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(BUNDLE_LD) $(BUNDLE_LDFLAGS) $(ALL_LDFLAGS) \
|
||||
$(LDOUT)$(BUNDLE_FILE) $(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
|
||||
$(ALL_LIB_DIRS) $(BUNDLE_LIBS)
|
||||
touch $@
|
||||
$(LDOUT)$(TEST_BUNDLE_FILE) $(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
|
||||
$(ALL_LIB_DIRS) $(ALL_TEST_BUNDLE_LIBS)
|
||||
endif
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/stamp-testtool-% : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(LD) $(ALL_LDFLAGS) $(LDOUT)$(GNUSTEP_OBJ_DIR)/$(TEST_TOOL_NAME) \
|
||||
ifneq ($(TEST_TOOL_NAME),)
|
||||
$(TEST_TOOL_NAME) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(LD) $(ALL_LDFLAGS) $(LDOUT)$(TEST_TOOL_NAME) \
|
||||
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
|
||||
$(ALL_LIB_DIRS) $(ALL_TEST_TOOL_LIBS)
|
||||
touch $@
|
||||
endif
|
||||
|
||||
$(GNUSTEP_OBJ_DIR)/stamp-testapp-% : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(LD) $(ALL_LDFLAGS) $(LDOUT)$(GNUSTEP_OBJ_DIR)/$(TEST_APP_NAME) \
|
||||
ifneq ($(TEST_APP_NAME),)
|
||||
$(TEST_APP_NAME) : $(C_OBJ_FILES) $(OBJC_OBJ_FILES)
|
||||
$(LD) $(ALL_LDFLAGS) $(LDOUT)$(TEST_APP_NAME) \
|
||||
$(C_OBJ_FILES) $(OBJC_OBJ_FILES) \
|
||||
$(ALL_LIB_DIRS) $(ALL_TEST_APP_LIBS)
|
||||
touch $@
|
||||
endif
|
||||
|
||||
#
|
||||
# Compilation targets
|
||||
|
@ -163,14 +162,27 @@ test-tools:: $(TEST_TOOL_LIST)
|
|||
|
||||
test-apps:: $(TEST_APP_LIST)
|
||||
|
||||
internal-testlib-all:: $(GNUSTEP_OBJ_DIR)/stamp-testlib-$(TEST_LIBRARY_NAME)
|
||||
internal-testlib-all:: $(GNUSTEP_OBJ_DIR)/$(TEST_LIBRARY_NAME)
|
||||
|
||||
internal-testbundle-all:: \
|
||||
$(GNUSTEP_OBJ_DIR)/stamp-testbundle-$(TEST_BUNDLE_NAME)
|
||||
internal-testbundle-all:: build-testbundle-dir build-testbundle
|
||||
|
||||
internal-testtool-all:: $(GNUSTEP_OBJ_DIR)/stamp-testtool-$(TEST_TOOL_NAME)
|
||||
build-testbundle-dir::
|
||||
@$(GNUSTEP_MAKEFILES)/mkinstalldirs \
|
||||
$(TEST_BUNDLE_DIR_NAME) \
|
||||
$(TEST_BUNDLE_DIR_NAME)/Resources \
|
||||
$(TEST_BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO) \
|
||||
$(TEST_BUNDLE_RESOURCE_DIRS)
|
||||
|
||||
internal-testapp-all:: $(GNUSTEP_OBJ_DIR)/stamp-testapp-$(TEST_APP_NAME)
|
||||
build-testbundle:: $(TEST_BUNDLE_NAME) testbundle-resource-files
|
||||
|
||||
testbundle-resource-files::
|
||||
for f in $(RESOURCE_FILES); do \
|
||||
$(INSTALL_DATA) $$f $(TEST_BUNDLE_DIR_NAME)/$$f ;\
|
||||
done
|
||||
|
||||
internal-testtool-all:: $(TEST_TOOL_NAME)
|
||||
|
||||
internal-testapp-all:: $(TEST_APP_NAME)
|
||||
|
||||
#
|
||||
# Check targets (actually running the tests)
|
||||
|
@ -201,3 +213,20 @@ internal-check-%:: $(SCRIPTS_DIRECTORY)/config/unix.exp
|
|||
$(dejagnu_vars) $(ADDITIONAL_DEJAGNU_VARS); \
|
||||
fi; \
|
||||
done)
|
||||
|
||||
#
|
||||
# Cleaning targets
|
||||
#
|
||||
internal-clean::
|
||||
rm -f $(TEST_LIBRARY_NAME)
|
||||
for f in $(TEST_BUNDLE_DIR_NAME); do \
|
||||
rm -rf $$f ; \
|
||||
done
|
||||
rm -f $(TEST_TOOL_NAME)
|
||||
rm -f $(TEST_APP_NAME)
|
||||
rm -rf $(GNUSTEP_OBJ_PREFIX)
|
||||
|
||||
internal-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
|
||||
|
|
Loading…
Reference in a new issue