This file is indexed.

/usr/share/GNUstep/Makefiles/Instance/subproject.make is in gnustep-make 2.7.0-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#   -*-makefile-*-
#   Instance/subproject.make
#
#   Instance Makefile rules to build subprojects in GNUstep projects.
#
#   Copyright (C) 1998, 2001, 2010 Free Software Foundation, Inc.
#
#   Author:  Jonathan Gapen <jagapen@whitewater.chem.wisc.edu>
#   Author:  Nicola Pero <nicola.pero@meta-innovation.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 3
#   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.
#   If not, write to the Free Software Foundation,
#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

ifeq ($(RULES_MAKE_LOADED),)
include $(GNUSTEP_MAKEFILES)/rules.make
endif

.PHONY: internal-subproject-all_       \
        internal-subproject-install_   \
        internal-subproject-uninstall_ \
	internal-subproject-compile

#
# Compilation targets
#
ifeq ($(GNUSTEP_MAKE_PARALLEL_BUILDING), no)
# Standard building
internal-subproject-all_:: $(GNUSTEP_OBJ_INSTANCE_DIR) \
                           $(OBJ_DIRS_TO_CREATE) \
                           $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)
else
# Parallel building.  The actual compilation is delegated to a
# sub-make invocation where _GNUSTEP_MAKE_PARALLEL is set to yet.
# That sub-make invocation will compile files in parallel.
internal-subproject-all_:: $(GNUSTEP_OBJ_INSTANCE_DIR) $(OBJ_DIRS_TO_CREATE)
	$(ECHO_NOTHING_RECURSIVE_MAKE)$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
	internal-subproject-compile \
	GNUSTEP_TYPE=$(GNUSTEP_TYPE) \
	GNUSTEP_INSTANCE=$(GNUSTEP_INSTANCE) \
	GNUSTEP_OPERATION=compile \
	GNUSTEP_BUILD_DIR="$(GNUSTEP_BUILD_DIR)" \
	_GNUSTEP_MAKE_PARALLEL=yes$(END_ECHO_RECURSIVE_MAKE)

internal-subproject-compile: $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)
endif

# We need to depend on SUBPROJECT_OBJ_FILES to account for sub-subprojects.
$(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT): $(OBJ_FILES_TO_LINK)
ifeq ($(OBJ_FILES_TO_LINK),)
	$(WARNING_EMPTY_LINKING)
endif
	$(ECHO_LINKING)$(OBJ_MERGE_CMD)$(END_ECHO)

#
# Build-header target for framework subprojects
#
# If we are called with OWNING_PROJECT_HEADER_DIR_NAME which is not empty,
# we need to copy our headers into that directory during the
# build-headers stage, and to disable installation/uninstallation of
# headers.
#
ifneq ($(OWNING_PROJECT_HEADER_DIR_NAME),)
.PHONY: internal-subproject-build-headers

# NB: See headers.make for an explanation of how HEADER_SUBDIRS is
# computed.
OWNING_PROJECT_HEADER_DIR = $(GNUSTEP_BUILD_DIR)/$(OWNING_PROJECT_HEADER_DIR_NAME)
HEADER_FILES   = $($(GNUSTEP_INSTANCE)_HEADER_FILES)
HEADER_SUBDIRS = $(strip $(filter-out ./,$(sort $(dir $(HEADER_FILES)))))
HEADER_FILES_DIR = $($(GNUSTEP_INSTANCE)_HEADER_FILES_DIR)
ifeq ($(HEADER_FILES_DIR),)
  HEADER_FILES_DIR = .
endif
OWNING_PROJECT_HEADER_FILES   = $(addprefix $(OWNING_PROJECT_HEADER_DIR)/,$(HEADER_FILES))
OWNING_PROJECT_HEADER_SUBDIRS = $(addprefix $(OWNING_PROJECT_HEADER_DIR)/,$(HEADER_SUBDIRS))

# We need to build the OWNING_PROJECT_HEADER_DIR directory here
# because this rule could be executed before the top-level framework
# has built his dirs
internal-subproject-build-headers:: $(OWNING_PROJECT_HEADER_DIR) \
                                    $(OWNING_PROJECT_HEADER_SUBDIRS) \
                                    $(OWNING_PROJECT_HEADER_FILES)

$(OWNING_PROJECT_HEADER_DIR):
	$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)

$(OWNING_PROJECT_HEADER_SUBDIRS):
	$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)

$(OWNING_PROJECT_HEADER_DIR)/%.h: $(HEADER_FILES_DIR)/%.h
	$(ECHO_CREATING)$(INSTALL_DATA) $< $@$(END_ECHO)

# End FRAMEWORK code
else
# Start no FRAMEWORK code

#
# Installation targets - we only need to install headers and only 
# if this is not in a framework
#

include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make

internal-subproject-install_:: shared-instance-headers-install

internal-subproject-uninstall_:: shared-instance-headers-uninstall

endif # no FRAMEWORK


#
# A subproject can have resources, which it stores into the
# Resources/Subproject directory.  If you want your subproject
# to have resources, you need to put
# xxx_HAS_RESOURCE_BUNDLE = yes
# in your GNUmakefile.  The project which owns us can then
# copy recursively this directory into its own Resources directory
# (that is done automatically if the project uses
# Instance/Shared/bundle.make to manage its own resource bundle)
#
ifeq ($($(GNUSTEP_INSTANCE)_HAS_RESOURCE_BUNDLE), yes)

GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(GNUSTEP_BUILD_DIR)/Resources/Subproject
include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make

# Only build, not install
internal-subproject-all_:: shared-instance-bundle-all

endif

include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make