1###############################################################################
2#  Makefile.preamble
3#  Copyright 1997, Apple Computer, Inc.
4#
5#  Use this makefile for configuring the standard application makefiles 
6#  associated with ProjectBuilder. It is included before the main makefile.
7#  In Makefile.preamble you set attributes for a project, so they are available
8#  to the project's makefiles.  In contrast, you typically write additional rules or 
9#  override built-in behavior in the Makefile.postamble.
10#  
11#  Each directory in a project tree (main project plus subprojects) should 
12#  have its own Makefile.preamble and Makefile.postamble.
13###############################################################################
14#
15# Before the main makefile is included for this project, you may set:
16#
17#    MAKEFILEDIR: Directory in which to find $(MAKEFILE)
18#    MAKEFILE: Top level mechanism Makefile (e.g., app.make, bundle.make)
19
20# Compiler/linker flags added to the defaults:  The OTHER_* variables will be 
21# inherited by all nested sub-projects, but the LOCAL_ versions of the same
22# variables will not.  Put your -I, -D, -U, and -L flags in ProjectBuilder's
23# Build Attributes inspector if at all possible.  To override the default flags
24# that get passed to ${CC} (e.g. change -O to -O2), see Makefile.postamble.  The
25# variables below are *inputs* to the build process and distinct from the override
26# settings done (less often) in the Makefile.postamble.
27#
28#    OTHER_CFLAGS, LOCAL_CFLAGS:  additional flags to pass to the compiler
29#	Note that $(OTHER_CFLAGS) and $(LOCAL_CFLAGS) are used for .h, ...c, .m,
30#	.cc, .cxx, .C, and .M files.  There is no need to respecify the
31#	flags in OTHER_MFLAGS, etc.
32#    OTHER_MFLAGS, LOCAL_MFLAGS:  additional flags for .m files
33#    OTHER_CCFLAGS, LOCAL_CCFLAGS:  additional flags for .cc, .cxx, and ...C files
34#    OTHER_MMFLAGS, LOCAL_MMFLAGS:  additional flags for .mm and .M files
35#    OTHER_PRECOMPFLAGS, LOCAL_PRECOMPFLAGS:  additional flags used when
36#	precompiling header files
37#    OTHER_LDFLAGS, LOCAL_LDFLAGS:  additional flags passed to ld and libtool
38#    OTHER_PSWFLAGS, LOCAL_PSWFLAGS:  additional flags passed to pswrap
39#    OTHER_RPCFLAGS, LOCAL_RPCFLAGS:  additional flags passed to rpcgen
40#    OTHER_YFLAGS, LOCAL_YFLAGS:  additional flags passed to yacc
41#    OTHER_LFLAGS, LOCAL_LFLAGS:  additional flags passed to lex
42
43# These variables provide hooks enabling you to add behavior at almost every 
44# stage of the make:
45#
46#    BEFORE_PREBUILD: targets to build before installing headers for a subproject
47#    AFTER_PREBUILD: targets to build after installing headers for a subproject
48#    BEFORE_BUILD_RECURSION: targets to make before building subprojects
49#    BEFORE_BUILD: targets to make before a build, but after subprojects
50#    AFTER_BUILD: targets to make after a build
51#
52#    BEFORE_INSTALL: targets to build before installing the product
53#    AFTER_INSTALL: targets to build after installing the product
54#    BEFORE_POSTINSTALL: targets to build before postinstalling every subproject
55#    AFTER_POSTINSTALL: targts to build after postinstalling every subproject
56#
57#    BEFORE_INSTALLHDRS: targets to build before installing headers for a 
58#         subproject
59#    AFTER_INSTALLHDRS: targets to build after installing headers for a subproject
60#    BEFORE_INSTALLSRC: targets to build before installing source for a subproject
61#    AFTER_INSTALLSRC: targets to build after installing source for a subproject
62#
63#    BEFORE_DEPEND: targets to build before building dependencies for a
64#	  subproject
65#    AFTER_DEPEND: targets to build after building dependencies for a
66#	  subproject
67#
68#    AUTOMATIC_DEPENDENCY_INFO: if YES, then the dependency file is
69#	  updated every time the project is built.  If NO, the dependency
70#	  file is only built when the depend target is invoked.
71
72# Framework-related variables:
73#    FRAMEWORK_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
74#	where to put the framework's DLL.  This variable defaults to 
75#	$(INSTALLDIR)/../Executables
76
77# Library-related variables:
78#    PUBLIC_HEADER_DIR:  Determines where public exported header files
79#	should be installed.  Do not include $(DSTROOT) in this value --
80#	it is prefixed automatically.  For library projects you should
81#       set this to something like /Developer/Headers/$(NAME).  Do not set
82#       this variable for framework projects unless you do not want the
83#       header files included in the framework.
84#    PRIVATE_HEADER_DIR:  Determines where private exported header files
85#  	should be installed.  Do not include $(DSTROOT) in this value --
86#	it is prefixed automatically.
87#    LIBRARY_STYLE:  This may be either STATIC or DYNAMIC, and determines
88#  	whether the libraries produced are statically linked when they
89#	are used or if they are dynamically loadable. This defaults to
90#       DYNAMIC.
91#    LIBRARY_DLL_INSTALLDIR:  On Windows platforms, this variable indicates
92#	where to put the library's DLL.  This variable defaults to 
93#	$(INSTALLDIR)/../Executables
94#
95#    INSTALL_AS_USER: owner of the intalled products (default root)
96#    INSTALL_AS_GROUP: group of the installed products (default wheel)
97#    INSTALL_PERMISSIONS: permissions of the installed product (default o+rX)
98#
99#    OTHER_RECURSIVE_VARIABLES: The names of variables which you want to be
100#  	passed on the command line to recursive invocations of make.  Note that
101#	the values in OTHER_*FLAGS are inherited by subprojects automatically --
102#	you do not have to (and shouldn't) add OTHER_*FLAGS to 
103#	OTHER_RECURSIVE_VARIABLES. 
104
105# Additional headers to export beyond those in the PB.project:
106#    OTHER_PUBLIC_HEADERS
107#    OTHER_PROJECT_HEADERS
108#    OTHER_PRIVATE_HEADERS
109
110# Additional files for the project's product: <<path relative to proj?>>
111#    OTHER_RESOURCES: (non-localized) resources for this project
112#    OTHER_OFILES: relocatables to be linked into this project
113#    OTHER_LIBS: more libraries to link against
114#    OTHER_PRODUCT_DEPENDS: other dependencies of this project
115#    OTHER_SOURCEFILES: other source files maintained by .pre/postamble
116#    OTHER_GARBAGE: additional files to be removed by `make clean'
117
118# Set this to YES if you don't want a final libtool call for a library/framework.
119#    BUILD_OFILES_LIST_ONLY
120
121# To include a version string, project source must exist in a directory named 
122# $(NAME).%d[.%d][.%d] and the following line must be uncommented.
123# OTHER_GENERATED_OFILES = $(VERS_OFILE)
124
125# This definition will suppress stripping of debug symbols when an executable
126# is installed.  By default it is YES.
127# STRIP_ON_INSTALL = NO
128
129# Uncomment to suppress generation of a KeyValueCoding index when installing 
130# frameworks (This index is used by WOB and IB to determine keys available
131# for an object).  Set to YES by default.
132# PREINDEX_FRAMEWORK = NO
133
134# Change this definition to install projects somewhere other than the
135# standard locations.  NEXT_ROOT defaults to "C:/Apple" on Windows systems
136# and "" on other systems.
137DSTROOT = $(HOME)
138