###############################################################################
#  NeXT Makefile.postamble Template
#  Copyright 1993, NeXT Computer, 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 top-level app-wrapper (e.g., Webster.app)
#	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")
#	ENGLISH - boolean flag set iff $(LANGUAGE) = "English"
#	JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese"
#	LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project
#	GLOBAL_RESOURCES - non-localized resources of project
#	PROJECTVERSION - version of ProjectBuilder that output Makefile
#	APPICON - application icon file
#	DOCICONS - dock icon files
#	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 app 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).

# Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if
# you would like changes to them to invalidate previous builds.	 The project
# depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build.
#MAKEFILES = Makefile 

# Optimization flag passed to compiler:
OPTIMIZATION_CFLAG = -O2 -pipe

COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -Wall  

# Flags passed to compiler in normal 'app' compiles:
NORMAL_CFLAGS = $(COMMON_CFLAGS) $(OPTIMIZATION_CFLAG)

# Flags passed to compiler in 'debug' compiles:
DEBUG_CFLAGS = -O2 -g -finline -finline-functions -Wall -Wwrite-strings -DDEBUG -I.

# Flags passed to compiler in 'profile' compiles
#PROFILE_CFLAGS = -g -pg $(OPTIMIZATION_CFLAG) -Wall -DPROFILE

# Ownership and permissions of files installed by 'install' target
#INSTALL_AS_USER = root		# User to chown app to
#INSTALL_AS_GROUP = wheel	# Group to chgrp app to 
#INSTALL_PERMISSIONS =		# If set, 'install' chmod's executable to this

# Options to strip for bundles, apps with bundles, and apps without bundles, 
# respectively.
#RELOCATABLE_STRIP_OPTS = -x -u
#DYLD_APP_STRIP_OPTS = -A -n
#APP_STRIP_OPTS = 
#TOOL_STRIP_OPTS = 
# (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but
#  developers doing their own dynamic loading should set this to 
#  $(DYLD_APP_STRIP_OPTS)).


#########################################################################
# Put rules to extend the behavior of the standard Makefiles here.  Typical 
# user-defined rules are before_install and after_install (please don't 
# redefine things like install or app, as they are owned by the top-level 
# Makefile API), which are rules that get invoked before and after the install 
# target runs.	Such rules should be specified with the '::' syntax rather than 
# a single colon.

#------------------------------------------------------------------------------
# Work around bug in 3.2 specialrules.make.  Their rule does not include
# -ObjC++.  (This is also broken in 3.3 but the 3.3 compiler does not complain
# about finding Objective-C code in C++ files like the 3.2 compiler does.)
#------------------------------------------------------------------------------
.cc.o:
	$(CC) -ObjC++ $(DEFAULT_CFLAGS) $(C++CFLAGS) -c $*.cc \
		-o $(OFILE_DIR)/$*.o


#------------------------------------------------------------------------------
# Library Targets
#------------------------------------------------------------------------------
$(LIB_NAME).a: $(OFILES)
	cc -ObjC++ -r -nostdlib -o $(LIB_NAME).a $(RC_CFLAGS) \
		-sectcreate __TIFF MiscVertResizeCursor.tiff \
				MiscVertResizeCursor.tiff \
		-sectcreate __TIFF MiscHorzResizeCursor.tiff \
				MiscHorzResizeCursor.tiff \
		-sectcreate __TIFF MiscSlotDragCursor.tiff \
				MiscSlotDragCursor.tiff \
		-sectcreate __TIFF MiscReverseCursor.tiff \
				MiscReverseCursor.tiff \
		-sectcreate __TIFF MiscSortAscend.tiff \
				MiscSortAscend.tiff \
		-sectcreate __TIFF MiscSortAscendH.tiff \
				MiscSortAscendH.tiff \
		-sectcreate __TIFF MiscSortDescend.tiff \
				MiscSortDescend.tiff \
		-sectcreate __TIFF MiscSortDescendH.tiff \
				MiscSortDescendH.tiff \
		`ls $(OFILE_DIR)/*.o |grep -v Inspector |grep -v Palette`

$(LIB_NAME)_p.a: $(OFILES)
	cc -ObjC++ -r -nostdlib -o $(LIB_NAME)_p.a $(RC_CFLAGS) \
		-sectcreate __TIFF MiscVertResizeCursor.tiff \
				MiscVertResizeCursor.tiff \
		-sectcreate __TIFF MiscHorzResizeCursor.tiff \
				MiscHorzResizeCursor.tiff \
		-sectcreate __TIFF MiscSlotDragCursor.tiff \
				MiscSlotDragCursor.tiff \
		-sectcreate __TIFF MiscReverseCursor.tiff \
				MiscReverseCursor.tiff \
		-sectcreate __TIFF MiscSortAscend.tiff \
				MiscSortAscend.tiff \
		-sectcreate __TIFF MiscSortAscendH.tiff \
				MiscSortAscendH.tiff \
		-sectcreate __TIFF MiscSortDescend.tiff \
				MiscSortDescend.tiff \
		-sectcreate __TIFF MiscSortDescendH.tiff \
				MiscSortDescendH.tiff \
		`ls $(OFILE_DIR)/*.o |grep -v Inspector |grep -v Palette`

$(LIB_NAME)_d.a: $(OFILES)
	cc -ObjC++ -r -nostdlib -o $(LIB_NAME)_d.a $(RC_CFLAGS) \
		-sectcreate __TIFF MiscVertResizeCursor.tiff \
				MiscVertResizeCursor.tiff \
		-sectcreate __TIFF MiscHorzResizeCursor.tiff \
				MiscHorzResizeCursor.tiff \
		-sectcreate __TIFF MiscSlotDragCursor.tiff \
				MiscSlotDragCursor.tiff \
		-sectcreate __TIFF MiscReverseCursor.tiff \
				MiscReverseCursor.tiff \
		-sectcreate __TIFF MiscSortAscend.tiff \
				MiscSortAscend.tiff \
		-sectcreate __TIFF MiscSortAscendH.tiff \
				MiscSortAscendH.tiff \
		-sectcreate __TIFF MiscSortDescend.tiff \
				MiscSortDescend.tiff \
		-sectcreate __TIFF MiscSortDescendH.tiff \
				MiscSortDescendH.tiff \
		`ls $(OFILE_DIR)/*.o |grep -v Inspector |grep -v Palette`


#------------------------------------------------------------------------------
# Installation Targets
#------------------------------------------------------------------------------
install_lib: all
	@echo "*** Installing Library ***
	mkdirs $(INSTALL_LIB)
	rm -f $(INSTALL_LIB)/$(LIB_NAME).a
	cp $(LIB_NAME).a $(INSTALL_LIB)
	strip -x -u $(INSTALL_LIB)/$(LIB_NAME).a
	chmod 444 $(INSTALL_LIB)/$(LIB_NAME).a

install_headers:
	@echo "*** Installing Headers ***"
	mkdirs $(INSTALL_HEADERS)
	(cd $(INSTALL_HEADERS); rm -f $(PUBLIC_HEADERS))
	(cd $(PUBLIC_HEADERS_SRC); cp $(PUBLIC_HEADERS) $(INSTALL_HEADERS))
	(cd $(INSTALL_HEADERS); chmod 444 $(PUBLIC_HEADERS))

install_docs:
	@echo "*** Installing Documentation ***"
	mkdirs $(INSTALL_DOCS)
	(cd $(INSTALL_DOCS); rm -f $(PUBLIC_DOCS))
	(cd $(PUBLIC_DOCS_SRC); cp $(PUBLIC_DOCS) $(INSTALL_DOCS))
	(cd $(INSTALL_DOCS); chmod 444 $(PUBLIC_DOCS))
	-ixbuild -c -s $(INSTALL_DOCS)

install_all: install install_lib install_headers install_docs
