###############################################################################
#  NeXT Makefile.postamble
#  Copyright 1996, NeXT Software, Inc.
#
#  This Makefile is used for configuring the standard app makefiles associated
#  with ProjectBuilder.  
#  
#  Use this template to set attributes for a project, sub-project, bundle, or
#  palette.  Each node in the project's tree of sub-projects and bundles 
#  should have it's own Makefile.preamble and Makefile.postamble.  Additional
#  rules (e.g., after_install) that are defined by the developer should be
#  defined in this file.
#
###############################################################################
# 
# Here are the variables exported by the common "app" makefiles that can be 
# used in any customizations you make to the template below:
# 
#	PRODUCT_ROOT - Name of the directory to which resources are copied.
#	OFILE_DIR - Directory into which .o object files are generated.
#		    (Note that this name is calculated based on the target 
#		     architectures specified in Project Builder).
#	DERIVED_SRC_DIR - Directory used for all other derived files
#	ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations
#
#	NAME - name of application, bundle, subproject, palette, etc.
#	LANGUAGE - langage in which the project is written (default "English")
#	LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project
#	GLOBAL_RESOURCES - non-localized resources of project
#	PROJECTVERSION - version of ProjectBuilder project (NS3.X = 1.1, NS4.0 = 2.0)
#	ICONSECTIONS - Specifies icon sections when linking executable 
#
#	CLASSES - Class implementation files in project.
#	HFILES - Header files in project.
#	MFILES - Other Objective-C source files in project. 
#	CFILES - Other C source files in project. 
#	PSWFILES - .psw files in the project
#	PSWMFILES - .pswm files in the project
#	SUBPROJECTS - Subprojects of this project
#	BUNDLES - Bundle subprojects of this project
#	OTHERSRCS - Other miscellaneous sources of this project
#	OTHERLINKED - Source files not matching a standard source extention
#
#	LIBS - Libraries to link with when making app target
#	DEBUG_LIBS - Libraries to link with when making debug target
#	PROF_LIBS - Libraries to link with when making profile target
#	OTHERLINKEDOFILES - Other relocatable files to (always) link in.
#
#	APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles
#	MAKEFILEDIR - Directory in which to find $(MAKEFILE)
#	MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make)
#	INSTALLDIR - Directory app will be installed into by 'install' target
#
###############################################################################


# Change defaults assumed by the standard makefiles here.  Edit the 
# following default values as appropriate. (Note that if no Makefile.postamble 
# exists, these values will have defaults set in common.make).

# Versioning of frameworks, libraries, bundles, and palettes:
#CURRENTLY_ACTIVE_VERSION = YES
       # Set to "NO" to produce a compatibility binary
#DEPLOY_WITH_VERSION_NAME = A
       # This should be incremented as your API changes.
#COMPATIBILITY_PROJECT_VERSION = 1
       # This should be incremented as your API grows.
#CURRENT_PROJECT_VERSION = 1       
       # Defaults to using the "vers_string" hack.

# Some compiler flags can be easily overridden here, but onlytake effect at 
# the top-level:
#OPTIMIZATION_CFLAG = -O
#DEBUG_SYMBOLS_CFLAG = -g
#WARNING_CFLAGS = -Wmost
#DEBUG_BUILD_CFLAGS = -DDEBUG
#PROFILE_BUILD_CFLAGS = -pg -DPROFILE

# This definition will suppress stripping of debug symbols when an executable
# is installed.  By default it is YES.
# STRIP_ON_INSTALL = NO

# Flags passed to yacc
#YFLAGS = -d

# Library and Framework projects only:
# 1. If you want something other than the default .dylib name, override it here
#DYLIB_INSTALL_NAME = lib$(NAME).dylib

# 2. If you want to change the -install_name flag from the absolute path to the development area, change it here.  One good choice is the installation directory.  Another one might be none at all.
#DYLIB_INSTALL_DIR = $(INSTALLDIR)

# Ownership and permissions of files installed by 'install' target
#INSTALL_AS_USER = root
        # User/group ownership 
#INSTALL_AS_GROUP = wheel
        # (probably want to set both of these) 
#INSTALL_PERMISSIONS =
        # If set, 'install' chmod's executable to this

# Options to strip for various project types. Note: -S strips debugging symbols
#    (executables can be stripped down further with -x or, if they load no bundles, with no
#     options at all).
#APP_STRIP_OPTS = -S
#TOOL_STRIP_OPTS = -S
#LIBRARY_STRIP_OPTS = -S
        # for .a archives
#DYNAMIC_STRIP_OPTS = -S
        # for bundles and shared libraries

#########################################################################
# Put rules to extend the behavior of the standard Makefiles here.  "Official" 
# user-defined rules are:
#   * before_install
#   * after_install
#   * after_installhdrs
# You should avoid redefining things like "install" or "app", as they are
# owned by the top-level Makefile API and no context has been set up for where 
# derived files should go.
#
# Note: on MS Windows, executables, have an extension, so rules and dependencies
#       for generated tools should use $(EXECUTABLE_EXT) on the end.


#==============================================================================
# We want a copy of the PACKAGE_NUMBER in the Resources directory.  See 
# Makefile.preamble for the other half of this step.  
#==============================================================================

.PHONY: table-scroll-finalize stamp-package

table-scroll-finalize: stamp-package

stamp-package:
	$(RM) -f $(GLOBAL_RESOURCE_DIR)/PACKAGE_NUMBER
	$(CP) -p $(PRODUCT_ROOT)/PACKAGE_NUMBER $(GLOBAL_RESOURCE_DIR)


#==============================================================================
# PATCH OPENSTEP 4.1 & 4.2 (prerelease) broken makefile system -- ES
#
# Under 4.1 & 4.2 (prerelease) OFILES does not include any of the C++ object 
# files, so we manually add them to OTHER_OFILES.  Under 4.2 (final), OFILES 
# *does* refer to them, so we must remove the duplicates lest the linker
# complains about linking the same files twice.  This is done with the $(sort)
# function which removes duplicates as a side-effect.  See Makefile.preamble
# for the other half of this patch.
#==============================================================================

OFILES := $(sort $(OFILES))


#==============================================================================
# PATCH OPENSTEP NT broken dll loader -- ES
#
# Under OPENSTEP for NT, +[NSBundle load] fails to load the palette dll file
# if it has the same name (MiscTableScroll.dll) as the dll file in the
# Framework even though they reside in *different* directories.  D'oh!
# (I don't know if the problem is with the Microsoft dll loader or the
# Objective-C run-time.)  Work around the system by renaming the executable
# (dll) file within the MiscTableScroll.palette wrapper.  (Also see the
# CustomInfo.plist which redefines "NSExecutable" in order to support this.)
#==============================================================================

INNER_PRODUCT = $(PRODUCT)$(VERSION_SUFFIX)/$(PALEXENAME)$(DLL_EXT)
