|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.