home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OpenStep 4.2J (Developer)
/
os42jdev.iso
/
NextDeveloper
/
Makefiles
/
project
/
tool.make
< prev
next >
Wrap
Text File
|
1996-09-04
|
8KB
|
224 lines
#
# tool.make
#
tool:: all
PRODUCT = $(PRODUCT_ROOT)/$(NAME)$(BUILD_TYPE_SUFFIX).$(TARGET_ARCH)$(EXECUTABLE_EXT)
include $(MAKEFILEDIR)/common.make
-include $(LOCAL_MAKEFILEDIR)/tool.make.preamble
ENABLE_INFO_DICTIONARY = NO
projectType_specific_exported_vars = \
"DEV_HEADER_DIR_BASE = $$header_base" \
"BUILD_OFILES_LIST_ONLY = $(BUILD_OFILES_LIST_ONLY)" \
"CODE_GEN_STYLE = $(CODE_GEN_STYLE)"
.PHONY : tool debug profile
all debug profile::
@($(check_for_gnumake) ; \
$(process_target_archs) ; \
$(set_dynamic_flags) ; \
$(set_objdir) ; \
for arch in $$archs ; do \
$(ECHO) == Making $(NAME) for $$arch == ; \
ofile_dir="$(OBJROOT)/`echo $$buildtype`_$$objdir/$$arch" ; \
$(MAKE) project \
"SYM_DIR = $(SYMROOT)/$(DERIVED_SRC_DIR_NAME)" \
"OFILE_DIR = $$ofile_dir" \
"BUILD_TYPE_CFLAGS = $($@_target_CFLAGS) $$dynamic_cflags" \
"BUILD_TYPE_LDFLAGS = $($@_target_LDFLAGS)" \
"RC_CFLAGS = -arch $$arch $$archless_rcflags" \
"RC_ARCHS = $$archs" \
"ALL_ARCH_FLAGS = $$arch_flags" \
"TARGET_ARCH = $$arch" \
"BUILD_TARGET = $@" \
"BUILD_TYPE_SUFFIX = $$build_type_suffix" \
"MAKEFILEDIR = $(MAKEFILEDIR)" \
"DEVROOT = $(DEVROOT)" \
"PRODUCT_ROOT = $(SYMROOT)" \
"TOP_PRODUCT_ROOT = $(SYMROOT)" \
"IS_TOPLEVEL = YES" \
"CODE_GEN_STYLE = $(CODE_GEN_STYLE)" \
"INSTALLDIR = $(INSTALLDIR)" \
"MAKEFILEDIR = $(MAKEFILEDIR)" \
"DSTROOT = $(DSTROOT)" \
"SRCROOT = $(SRCROOT)" \
"OBJROOT = $(OBJROOT)" \
"SYMROOT = $(SYMROOT)" ; \
if [ -n "$$last_arch" ] ; then \
multiple_archs=yes ; \
fi ; \
last_arch=$$arch ; \
done ; \
$(MAKE) configure_for_target_archs \
"TOP_PRODUCT_ROOT = $(SYMROOT)" \
"PRODUCT_ROOT = $(SYMROOT)" \
"BUILD_TYPE_SUFFIX = $$build_type_suffix" \
"MULTIPLE_ARCHS = $$multiple_archs" \
"SINGLE_ARCH = $$last_arch" \
"RC_ARCHS = $$archs" \
"OBJROOT = $(OBJROOT)" \
"SYMROOT = $(SYMROOT)" \
"MAKEFILEDIR = $(MAKEFILEDIR)" )
configure_for_target_archs::
@(for arch in $(RC_ARCHS) ; do \
dependencies="$$dependencies $(PRODUCT_ROOT)/$(NAME)$(BUILD_TYPE_SUFFIX).$$arch$(EXECUTABLE_EXT)" ;\
lipo_args="$$lipo_args -arch $$arch $(PRODUCT_ROOT)/$(NAME)$(BUILD_TYPE_SUFFIX).$$arch$(EXECUTABLE_EXT)" ; \
done ; \
$(set_should_build) ; \
if [ "$$should_build" = "yes" ] ; then \
$(MAKE) final_tool \
"TOP_PRODUCT_ROOT = $(TOP_PRODUCT_ROOT)" \
"PRODUCT_ROOT = $(PRODUCT_ROOT)" \
"DEPENDENCIES = $$dependencies" \
"LIPO_ARGS = $$lipo_args" \
"BUILD_TYPE_SUFFIX = $(BUILD_TYPE_SUFFIX)" \
"MULTIPLE_ARCHS = $(MULTIPLE_ARCHS)" \
"SINGLE_ARCH = $(SINGLE_ARCH)" \
"RC_ARCHS = $(RC_ARCHS)" \
"MAKEFILEDIR = $(MAKEFILEDIR)" ; \
else \
$(ECHO) Not configuring tool $(NAME). ; \
fi)
.PHONY : final_tool
final_tool: $(PRODUCT_ROOT)/$(NAME)$(BUILD_TYPE_SUFFIX)$(EXECUTABLE_EXT)
$(PRODUCT_ROOT)/$(NAME)$(BUILD_TYPE_SUFFIX)$(EXECUTABLE_EXT): $(DEPENDENCIES)
@(if [ -n "$(MULTIPLE_ARCHS)" ] ; then \
cmd="$(LIPO) -create $(LIPO_ARGS) -o $@" ; \
else \
$(RM) -f $@ ; \
cmd="$(TRANSMOGRIFY) $(PRODUCT_ROOT)/$(NAME)$(BUILD_TYPE_SUFFIX).$(SINGLE_ARCH)$(EXECUTABLE_EXT) $@" ; \
fi ; \
$(ECHO) $$cmd ; $$cmd ; \
if [ "$(DELETE_THIN_RESULTS)" = "YES" -a "$(IS_TOPLEVEL)" = "YES" ] ; then \
cmd="$(RM) -f $(DEPENDENCIES)" ; \
$(ECHO) $$cmd ; $$cmd ; \
fi)
.PHONY : project actual_project
project::
@($(set_should_build) ; \
if [ "$$should_build" = "yes" ] ; then \
$(MAKE) actual_project \
"PRODUCT_ROOT = $(PRODUCT_ROOT)" \
"OFILE_DIR = $(OFILE_DIR)" \
"SYM_DIR = $(SYM_DIR)" \
"BUILD_TYPE_CFLAGS = $(BUILD_TYPE_CFLAGS)" \
"IS_TOPLEVEL = $(IS_TOPLEVEL)" \
"BUILD_TARGET = $(BUILD_TARGET)" \
"ALL_ARCH_FLAGS = $(ALL_ARCH_FLAGS)" \
"CODE_GEN_STYLE = $(CODE_GEN_STYLE)" \
"DEV_HEADER_DIR_BASE = $(DEV_HEADER_DIR_BASE)" \
"DEV_PROJECT_HEADER_DIR_BASE = $(DEV_PROJECT_HEADER_DIR_BASE)"\
"BUILD_OFILES_LIST_ONLY = $(BUILD_OFILES_LIST_ONLY)" \
"MAKEFILEDIR = $(MAKEFILEDIR)" \
"DSTROOT = $(DSTROOT)" \
"SRCROOT = $(SRCROOT)" \
"OBJROOT = $(OBJROOT)" \
"SYMROOT = $(SYMROOT)" \
$(extra_actual_project_exported_vars) ; \
else \
$(ECHO) " ..... $(NAME) not built for architecture $(TARGET_ARCH), platform $(PLATFORM_OS)" ; \
fi)
actual_project: initial_targets all_subprojects resources $(PRODUCT_ROOT) $(PRODUCT)
$(PRODUCT): $(PRODUCT_DEPENDS)
@(if [ "`$(ECHO) $(OFILES) $(OTHER_OFILES) | wc -w`" != " 0" ] ; \
then \
$(set_dynamic_link_flags) ; \
frameworks=`$(FRAMEWORK_TOOL) $(FRAMEWORKS) $(BUILD_TARGET)` ; \
if [ "$(ALWAYS_USE_OFILELISTS)" = "YES" ] ; then \
(cd $(OFILE_DIR) ; $(OFILE_LIST_TOOL) -removePrefix $(OFILE_DIR)/ \
$(NON_SUBPROJ_OFILES) $(SUBPROJ_OFILELISTS) $(OTHER_OFILES) \
$(OTHER_GENERATED_OFILES) -o $(NAME).ofileList) ; \
cmd="$(CC) $$dynamic_ldflags $(ALL_CFLAGS) $(OBJCFLAG) \
$(ALL_LDFLAGS) -o $@ -filelist \
$(OFILE_DIR)/$(NAME).ofileList,$(OFILE_DIR) \
$$frameworks $(LIBS) $(OTHER_LIBS)" ; \
else \
cmd="$(CC) $$dynamic_ldflags $(ALL_CFLAGS) $(OBJCFLAG) \
$(ALL_LDFLAGS) -o $@ $(OFILES) $(OTHER_OFILES) \
$(OTHER_GENERATED_OFILES) $$frameworks $(LIBS) $(OTHER_LIBS)" ; \
fi ; \
$(ECHO) $$cmd ; \
$$cmd ; \
fi)
PROJECT_TYPE_SPECIFIC_GARBAGE = $(SYMROOT)/$(NAME)$(EXECUTABLE_EXT)
.PHONY : before_install install
before_install:: $(DSTROOT)$(INSTALLDIR)
$(RM) -rf $(DSTROOT)$(INSTALLDIR)/$(NAME)$(EXECUTABLE_EXT)
ifeq ($(PLATFORM_OS)-$(REINSTALLING), winnt-)
install:: all
$(MAKE) reinstall_stripped REINSTALLING=YES
else
install:: all before_install installhdrs $(OTHER_INSTALL_DEPENDS)
@($(set_should_build) ; \
if [ "$$should_build" = "yes" ] ; then \
$(process_target_archs) ; \
cmd="$(CP) $(SYMROOT)/$(NAME)$(EXECUTABLE_EXT) $(DSTROOT)$(INSTALLDIR)" ; \
$(ECHO) $$cmd ; $$cmd ; \
product="$(DSTROOT)$(INSTALLDIR)/$(NAME)$(EXECUTABLE_EXT)"; \
$(MAKE) finalize_install \
"DSTROOT = $(DSTROOT)" \
"SRCROOT = $(SRCROOT)" \
"OBJROOT = $(OBJROOT)" \
"SYMROOT = $(SYMROOT)" \
"DEVROOT = $(DEVROOT)" \
"BUILD_TARGET = $@" \
"INSTALLDIR = $(INSTALLDIR)" \
"PRODUCT_ROOT = $(DSTROOT)$(INSTALLDIR)" \
"PRODUCT = $$product" \
"SYM_DIR = $(SYMROOT)/$(DERIVED_SRC_DIR_NAME)" \
"OFILE_DIR = $(OBJROOT)/$$objdir/$$arch" \
"MAKEFILEDIR = $(MAKEFILEDIR)" \
"RC_CFLAGS = $$arch_cflags" \
"RC_ARCHS = $$archs" ; \
cmd="$(CHMOD) -R a-w $$product" ; \
$(ECHO) $$cmd ; $$cmd || true ; \
if [ -n "$(INSTALL_AS_USER)" ] ; then \
cmd="$(CHOWN) -R $(INSTALL_AS_USER) $$product" ; \
$(ECHO) $$cmd ; $$cmd || true ; \
fi ; \
if [ "$(INSTALL_AS_GROUP)" != "" ] ; then \
cmd="$(CHGRP) -R $(INSTALL_AS_GROUP) $$product" ; \
$(ECHO) $$cmd ; $$cmd || true ; \
fi ; \
if [ "$(INSTALL_PERMISSIONS)" != "" ] ; then \
cmd="$(CHMOD) $(INSTALL_PERMISSIONS) $$product" ; \
$(ECHO) $$cmd ; $$cmd || true ; \
fi ; \
fi)
endif
strip_myself::
@($(set_should_build) ; \
if [ "$$should_build" = "yes" ] ; then \
if [ "$(BUILD_OFILES_LIST_ONLY)" != "YES" \
-a "$(STRIP_ON_INSTALL)" = "YES" ] ; then \
cmd="$(STRIP) $(TOOL_STRIP_OPTS) $(PRODUCT_ROOT)/$(NAME)*$(EXECUTABLE_EXT)" ; \
$(ECHO) $$cmd ; $$cmd ; \
fi ; \
for arch in $(RC_ARCHS) ; do \
cmd="$(RM) -f $(PRODUCT_ROOT)/$(NAME)*.$$arch$(EXECUTABLE_EXT)" ; \
$(ECHO) $$cmd ; $$cmd ; \
done ; \
fi)
-include $(LOCAL_MAKEFILEDIR)/tool.make.postamble