diff --git a/ChangeLog b/ChangeLog index af5ab4e1..b661a8a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2001-01-18 Mirko Viviani + + * tool.make: modified to build framework tools. (installed in the + framework resource dir) + * rules.make (%.build): build framework tools. + * framework.make: updated docs. + Thu Jan 18 12:15:11 2001 Nicola Pero * gnustep-make.spec.in: Do a make distclean before running diff --git a/framework.make b/framework.make index d043498c..09e36b1f 100644 --- a/framework.make +++ b/framework.make @@ -40,6 +40,7 @@ include $(GNUSTEP_MAKEFILES)/rules.make # The list of languages the framework supports is in xxx_LANGUAGES # The list of framework resource directories are in xxx_RESOURCE_DIRS # The list of framework subprojects directories are in xxx_SUBPROJECTS +# The list of framework tools directories are in xxx_TOOLS # The name of the principal class is xxx_PRINCIPAL_CLASS # The header files are in xxx_HEADER_FILES # The list of framework web server resource directories are in @@ -97,7 +98,6 @@ ifneq ($(BUILD_DLL),yes) FRAMEWORK_CURRENT_DIR_NAME := $(FRAMEWORK_DIR_NAME)/Versions/Current FRAMEWORK_LIBRARY_DIR_NAME := $(FRAMEWORK_VERSION_DIR_NAME)/$(GNUSTEP_TARGET_LDIR) FRAMEWORK_CURRENT_LIBRARY_DIR_NAME := $(FRAMEWORK_CURRENT_DIR_NAME)/$(GNUSTEP_TARGET_LDIR) -FRAMEWORK_CURRENT_DIR_NAME := $(FRAMEWORK_VERSION_DIR_NAME)/$(GNUSTEP_TARGET_LDIR) FRAMEWORK_LIBRARY_FILE = lib$(INTERNAL_framework_NAME)$(SHARED_LIBEXT) FRAMEWORK_LIBRARY_FILE_EXT = $(SHARED_LIBEXT) diff --git a/rules.make b/rules.make index 0eb9646b..dc13e508 100644 --- a/rules.make +++ b/rules.make @@ -210,12 +210,13 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m # The magical application rules, thank you GNU make! %.build: - @(if [ "$(FRAMEWORK_NAME)" != "" ] && [ "$(OPERATION)" = "all" ]; then \ + @(if [ "$(FRAMEWORK_NAME)" != "" ] && [ "$(OPERATION)" = "all" ] && [ "$(TOOL_NAME)" = "" ]; then \ echo Build public headers for $(TARGET_TYPE) $*...; \ $(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \ build-framework-headers \ INTERNAL_$(TARGET_TYPE)_NAME=$* \ SUBPROJECTS="$($*_SUBPROJECTS)" \ + TOOLS="$($*_TOOLS)" \ OBJC_FILES="$($*_OBJC_FILES)" \ C_FILES="$($*_C_FILES)" \ JAVA_FILES="$($*_JAVA_FILES)" \ @@ -268,6 +269,29 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m fi;\ fi;) @(echo Making $(OPERATION) for $(TARGET_TYPE) $*...; \ + if [ "$(FRAMEWORK_NAME)" != "" ] && [ "$($*_TOOLS)" != "" ] && [ "$(OPERATION)" != "build-framework-headers" ]; then tools="$($*_TOOLS)"; \ + else tools="__dummy__";\ + fi;\ + if [ "$$tools" != "__dummy__" ]; then \ + for f in $$tools; do \ + mf=$(MAKEFILE_NAME); \ + if [ ! -f $$f/$$mf -a -f $$f/Makefile ]; then \ + mf=Makefile; \ + echo "WARNING: No $(MAKEFILE_NAME) found for tool $ff; using 'Makefile'"; \ + fi; \ + if $(MAKE) -C $$f -f $$mf --no-keep-going $(OPERATION) \ + FRAMEWORK_NAME="$(FRAMEWORK_NAME)" \ + FRAMEWORK_VERSION_DIR_NAME="../$(FRAMEWORK_VERSION_DIR_NAME)" \ + FRAMEWORK_OPERATION="$(OPERATION)" \ + TOOL_OPERATION="$(OPERATION)" \ + DERIVED_SOURCES="../$(DERIVED_SOURCES)" \ + SUBPROJECT_ROOT_DIR="$(SUBPROJECT_ROOT_DIR)/$$f" \ + ; then \ + :; \ + else exit $$?; \ + fi; \ + done; \ + fi; \ if [ "$($*_SUBPROJECTS)" != "" ]; then subprjs="$($*_SUBPROJECTS)"; \ else subprjs="__dummy__";\ fi;\ diff --git a/tool.make b/tool.make index 77ca88ad..d307b30f 100644 --- a/tool.make +++ b/tool.make @@ -60,6 +60,10 @@ $(TOOL_NAME): else # second pass +ifneq ($(FRAMEWORK_NAME),) + TOOL_INSTALLATION_DIR = $(FRAMEWORK_VERSION_DIR_NAME)/Resources/$(GNUSTEP_TARGET_LDIR) +endif + ALL_TOOL_LIBS = $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) $(FND_LIBS) \ $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \ $(TARGET_SYSTEM_LIBS) @@ -90,8 +94,14 @@ endif # # Compilation targets # +ifeq ($(FRAMEWORK_NAME),) internal-tool-all:: before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \ $(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT) after-$(TARGET)-all +else +internal-tool-all:: before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \ + $(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT) after-$(TARGET)-all \ + internal-install-dirs install-tool +endif $(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT): $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES) $(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ \ @@ -102,7 +112,17 @@ before-$(TARGET)-all:: after-$(TARGET)-all:: +ifneq ($(FRAMEWORK_NAME),) +ifneq ($(FRAMEWORK_OPERATION),all) + NULL_INSTALL = yes +endif +endif + +ifeq ($(NULL_INSTALL),yes) +internal-tool-install:: +else internal-tool-install:: internal-tool-all internal-install-dirs install-tool +endif internal-install-dirs:: $(MKDIRS) $(TOOL_INSTALLATION_DIR) @@ -110,8 +130,13 @@ internal-install-dirs:: ifeq ($(GNUSTEP_FLATTENED),) install-tool:: $(INSTALL_PROGRAM) -m 0755 $(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT) $(TOOL_INSTALLATION_DIR); - cp $(GNUSTEP_MAKEFILES)/executable.template $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_tool_NAME) - chmod a+x $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_tool_NAME) + @(if [ "$(FRAMEWORK_NAME)" = "" ]; then \ + cp $(GNUSTEP_MAKEFILES)/executable.template $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_tool_NAME); \ + chmod a+x $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_tool_NAME); \ + else \ + cp $(GNUSTEP_MAKEFILES)/executable.template $(FRAMEWORK_VERSION_DIR_NAME)/Resources/$(INTERNAL_tool_NAME); \ + chmod a+x $(FRAMEWORK_VERSION_DIR_NAME)/Resources/$(INTERNAL_tool_NAME); \ + fi;) else install-tool:: $(INSTALL_PROGRAM) -m 0755 $(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT) $(TOOL_INSTALLATION_DIR)