Annotation of objc/Makefile.postamble, revision 1.1.1.1

1.1       root        1: ###############################################################################
                      2: #  NeXT Makefile.postamble Template
                      3: #  Copyright 1993, NeXT Computer, Inc.
                      4: #  Last changed: March 1995, Kresten Krab Thorup
                      5: #
                      6: #  This Makefile is used for configuring the standard app makefiles associated
                      7: #  with ProjectBuilder.  
                      8: #  
                      9: #  Use this template to set attributes for a project, sub-project, bundle, or
                     10: #  palette.  Each node in the project's tree of sub-projects and bundles 
                     11: #  should have it's own Makefile.preamble and Makefile.postamble.  Additional
                     12: #  rules (e.g., after_install) that are defined by the developer should be
                     13: #  defined in this file.
                     14: #
                     15: ###############################################################################
                     16: # 
                     17: # Here are the variables exported by the common "app" makefiles that can be 
                     18: # used in any customizations you make to the template below:
                     19: # 
                     20: #      PRODUCT_ROOT - Name of top-level app-wrapper (e.g., Webster.app)
                     21: #      OFILE_DIR - Directory into which .o object files are generated.
                     22: #                  (Note that this name is calculated based on the target 
                     23: #                   architectures specified in Project Builder).
                     24: #      DERIVED_SRC_DIR - Directory used for all other derived files
                     25: #      ALL_CFLAGS - All the flags passed to the cc(1) driver for compilations
                     26: #
                     27: #      NAME - name of application, bundle, subproject, palette, etc.
                     28: #      LANGUAGE - langage in which the project is written (default "English")
                     29: #      ENGLISH - boolean flag set iff $(LANGUAGE) = "English"
                     30: #      JAPANESE - boolean flag set iff $(LANGUAGE) = "Japanese"
                     31: #      LOCAL_RESOURCES - localized resources (e.g. nib's, images) of project
                     32: #      GLOBAL_RESOURCES - non-localized resources of project
                     33: #      PROJECTVERSION - version of ProjectBuilder that output Makefile
                     34: #      APPICON - application icon file
                     35: #      DOCICONS - dock icon files
                     36: #      ICONSECTIONS - Specifies icon sections when linking executable 
                     37: #
                     38: #      CLASSES - Class implementation files in project.
                     39: #      HFILES - Header files in project.
                     40: #      MFILES - Other Objective-C source files in project. 
                     41: #      CFILES - Other C source files in project. 
                     42: #      PSWFILES - .psw files in the project
                     43: #      PSWMFILES - .pswm files in the project
                     44: #      SUBPROJECTS - Subprojects of this project
                     45: #      BUNDLES - Bundle subprojects of this project
                     46: #      OTHERSRCS - Other miscellaneous sources of this project
                     47: #      OTHERLINKED - Source files not matching a standard source extention
                     48: #
                     49: #      LIBS - Libraries to link with when making app target
                     50: #      DEBUG_LIBS - Libraries to link with when making debug target
                     51: #      PROF_LIBS - Libraries to link with when making profile target
                     52: #      OTHERLINKEDOFILES - Other relocatable files to (always) link in.
                     53: #
                     54: #      APP_MAKEFILE_DIR - Directory in which to find generic set of Makefiles
                     55: #      MAKEFILEDIR - Directory in which to find $(MAKEFILE)
                     56: #      MAKEFILE - Top level mechanism Makefile (e.g., app.make, bundle.make)
                     57: #      INSTALLDIR - Directory app will be installed into by 'install' target
                     58: #
                     59: ###############################################################################
                     60: 
                     61: 
                     62: # Change defaults assumed by the standard makefiles here.  Edit the 
                     63: # following default values as appropriate. (Note that if no Makefile.postamble 
                     64: # exists, these values will have defaults set in common.make).
                     65: 
                     66: # Add Makefile.preamble, Makefile.postamble, and Makefile.dependencies here if
                     67: # you would like changes to them to invalidate previous builds.  The project
                     68: # depends on $(MAKEFILES) so that changes to Makefiles will trigger a re-build.
                     69: #MAKEFILES = Makefile 
                     70: 
                     71: # Some compiler flags can be easily overridden here:
                     72: #OPTIMIZATION_CFLAG = -O
                     73: #DEBUG_SYMBOLS_CFLAG = -g
                     74: #WARNING_CFLAGS = -Wall
                     75: #DEBUG_BUILD_CFLAGS = -DDEBUG
                     76: #PROFILE_BUILD_CFLAGS = -pg -DPROFILE
                     77: 
                     78: # Flags passed to yacc
                     79: #YFLAGS = -d
                     80: 
                     81: # Library and Framework projects only:
                     82: # 1. If you want something other than the default .dylib name, override it here
                     83: #DYLIB_INSTALL_NAME = lib$(NAME).dylib
                     84: 
                     85: # 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.
                     86: #DYLIB_INSTALL_DIR = $(INSTALLDIR)
                     87: 
                     88: 
                     89: # Ownership and permissions of files installed by 'install' target
                     90: #INSTALL_AS_USER = root        # User to chown app to
                     91: #INSTALL_AS_GROUP = wheel      # Group to chgrp app to 
                     92: #INSTALL_PERMISSIONS =         # If set, 'install' chmod's executable to this
                     93: 
                     94: # Options to strip for bundles, apps with bundles, and apps without bundles, 
                     95: # respectively (check common.make before stting any of these yourself!)
                     96: #APP_STRIP_OPTS = -S
                     97: #TOOL_STRIP_OPTS = -S
                     98: #LIBRARY_STRIP_OPTS = -S   # Note: -S strips debugging symbols
                     99: # (Note: APP_STRIP_OPTS and TOOL_STRIP_OPTS default to empty, but
                    100: #  developers doing their own dynamic loading should set this to 
                    101: #  $(DYLD_APP_STRIP_OPTS)).
                    102: 
                    103: #########################################################################
                    104: # Put rules to extend the behavior of the standard Makefiles here.  "Official" 
                    105: # user-defined rules are:
                    106: #   * before_install
                    107: #   * after_install
                    108: #   * after_installhdrs
                    109: # You should avoid redefining things like "install" or "app", as they are
                    110: # owned by the top-level Makefile API and no context has been set up for where 
                    111: # derived files should go.
                    112: 
                    113: 
                    114: ##
                    115: ## build
                    116: ##
                    117: build:
                    118:        $(MAKE) kernel                                                  \
                    119:                "DSTROOT=/tmp/$(NAME).dst"                              \
                    120:                "OBJROOT=/tmp/$(NAME).obj"                              \
                    121:                "SYMROOT=/tmp/$(NAME).sym"                              \
                    122:                "RC_CFLAGS = $(RC_CFLAGS)"                              \
                    123:                "RC_ARCHS = $(RC_ARCHS)" 
                    124: 
                    125: 
                    126: ## When the install target is invoked on this project, we need to build
                    127: ## shlib, kernel, & profile statically as well.
                    128: 
                    129: after_install:: kernel
                    130:                $(MKDIRS) $(DSTROOT)/usr/local/lib;                             \
                    131:                $(LIPO) -create -output $(DSTROOT)/usr/local/lib/libk$(NAME).o  \
                    132:                        $(SYMROOT)/*_sym/libk$(NAME).o;                         \
                    133: 
                    134: 
                    135: ## The kernel needs a special version of the runtime, so we move
                    136: ## static_obj aside for a while and re-build it with different parameters.
                    137: ## This target takes care of that, and creating a big file with 
                    138: ## all the .o files in it for the kernel to link in.
                    139: 
                    140: kernel:
                    141:        @ \
                    142:                $(ECHO) == Building kernel target ==;                                   \
                    143:                $(MAKE) all "CODE_GEN_STYLE=STATIC"                                     \
                    144:                        "DSTROOT=$(DSTROOT)"                                            \
                    145:                        "OBJROOT=$(OBJROOT)"                                            \
                    146:                        "SYMROOT=$(SYMROOT)"                                            \
                    147:                        "RC_CFLAGS = $(KERNEL_CFLAGS) $(RC_CFLAGS)"                     \
                    148:                        "RC_ARCHS=$(RC_ARCHS)";                                         \
                    149:                $(ECHO) == Linking kernel library ==;           \
                    150:                for architecture in $(RC_ARCHS); do                                     \
                    151:                        $(MKDIRS) $(SYMROOT)/$${architecture}_sym;                              \
                    152:                        $(ECHO) $(LD) -r -o                                             \
                    153:                                $(SYMROOT)/$${architecture}_sym/libk$(NAME).o           \
                    154:                                $(OBJROOT)/static_obj/$${architecture}/*.o;             \
                    155:                        $(LD) -r -o                                                     \
                    156:                                $(SYMROOT)/$${architecture}_sym/libk$(NAME).o           \
                    157:                                $(OBJROOT)/static_obj/$${architecture}/*.o;             \
                    158:                done
                    159: 
                    160: 
                    161: ## The Objective C messenger is split across a number of assembly files.
                    162: ## This is just dependencies to make sure it will be rebuild if changed.
                    163: 
                    164: objc-msg.o::   objc-msg-*.s
                    165: 
                    166: 
                    167: ## We need this symbolic link to exist in the source directory.
                    168: 
                    169: installsrc::
                    170:        $(SYMLINK) $(SRCROOT) $(SRCROOT)/objc

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.