#
# ClassBuilder.subproj/Makefile.postamble
# =======================================
#
# Makefile definitions to handle include paths for Class Category Bundles.
#
# John Holdsworth
# Coldwave Programs Ltd.
#
# This Software is in the Public Domain.
#
# $Log: Makefile.postamble,v $
# Revision 1.6  1997/04/15  20:41:08  johnh
# Moved Objective-C code into Category Poser.
#
# Revision 1.5  1997/04/14  22:46:06  johnh
# New category just for DO created.
#
# Revision 1.4  1997/04/13  22:36:36  johnh
# Simplification of Makefiles.
#
# Revision 1.3  1997/03/18  22:08:07  johnh
# New Simple version.
#
# Revision 1.2  1997/01/23  01:00:39  johnh
# Error reporting added and tidy up.
#
#

###############################################################################
#  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 = -O

# Flags always passed to compiler:
#COMMON_CFLAGS = $(PROJECT_SPECIFIC_CFLAGS) -g -Wall  

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

# Flags passed to compiler in 'debug' compiles:
#DEBUG_CFLAGS = $(COMMON_CFLAGS) -DDEBUG

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

# Flags passed to yacc
#YFLAGS = -d

# 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 = 
#LIBRARY_STRIP_OPTS = -x -S   # Note: -S strips debugging symbols
# (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.

# this must be a driectory in the users path
BINDIR=~/Unix/bin

# make tools first
toolprojs:
	@for toolproj in prompt reload service ; do \
		cd $$toolproj.tproj ; make tool ; cd .. ; \
	done ;

# copy builder script and use open to add terminal servcies
initial:
	@if [ ! -d $(BINDIR) ] ; then \
	    echo "Variable BINDIR must be set to a directory in your path" ; \
	    exit 1 ; \
	elif [ ! -f $(BINDIR)/builder.csh ] ; then \
	    ln -s builder.csh $(BINDIR) ; \
	    open ClassBuilder.svcs ; \
	    open ClassBuilder.svcs ; \
	    open ClassBuilder.svcs ; \
	fi ;

# ensure as much as possible project gdbinit file has category directory
gdbinit:
	-grep BundleProjects ../PB.gdbinit ; \
	if [ $$? = 1 ] ; then \
	    echo  \
	    "directory ClassBuilder.subproj/BundleProjects/ClassCategories.bproj"\
	    >> ../PB.gdbinit ; \
	fi ;

# bring all project header files into sym drictory
links:
	sh -c "rm -f sym/*.h"
	cd sym ; ln -s `grep -v tproj ../../PB.gdbinit | awk '/directory / { print "../../" $$2 "/*.h" }'` .


hacks: toolprojs initial gdbinit links


