home *** CD-ROM | disk | FTP | other *** search
Makefile | 1997-03-23 | 6.5 KB | 164 lines |
- ###############################################################################
- # 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.
-
- # Populate these directories with appropriate symlinks to anything we need.
- populate: banner-for-populate $(RECURSABLE_DIRS:%=populate@%)
-
- $(RECURSABLE_DIRS:%=populate@%): banner-for-populate
-
- # Create a Makefile.config containing the same information of config.h.
- # The easier way is using Good Old Perl on config.status. This of course
- # hardwire us on the format of the latter... XXX better way?
- #
- # The resulting chunk of makefile will contain lots of macros, in the
- # form
- # AC_name_of_autoconf_define = computed_value
- #
- MAKEIFY_CONFIG := \
- $$done = {}; \
- while (<>) { \
- if (/^s%@/) { \
- ($$dummy, $$var, $$value) = split ("%", $$_); \
- $$var = substr ($$var, 1, length ($$var)-2); \
- } \
- elsif (/^\$$\{ac/) { \
- ($$dummy, $$var, $$var, $$value) = split (/\$$\{ac_..\}/); \
- } \
- else { next; } \
- if (! defined($$done{$$var})) { \
- ($$value = $$value) =~ s/\$$\{([^\}]*)\}/\$$\{AC_\1\}/g; \
- print "AC_", $$var, " = ", $$value, "\n"; \
- $$done{$$var} = 1; \
- } \
- }
-
- Makefile.config: $(PY_SOURCE_DIR)/config.status
- perl -e '$(MAKEIFY_CONFIG)' $> > $@
- $(MAKE) populate
-
- banner-for-all: Makefile.config
-
- banner-for-install: Makefile.config
-