## # Makefile for Apple Release Control (Archive Extraction & Patch) # # Copyright (c) 2005 Apple Computer, Inc. # # @APPLE_LICENSE_HEADER_START@ # # Portions Copyright (c) 2005 Apple Computer, Inc. All Rights # Reserved. This file contains Original Code and/or Modifications of # Original Code as defined in and that are subject to the Apple Public # Source License Version 1.1 (the "License"). You may not use this file # except in compliance with the License. Please obtain a copy of the # License at http://www.apple.com/publicsource and read it before using # this file. # # The Original Code and all software distributed under the License are # distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the # License for the specific language governing rights and limitations # under the License. # # @APPLE_LICENSE_HEADER_END@ ## # This header must be included after GNUsource.make or Common.make # # Set these variables as needed before including this file: # AEP_Version - open source project version, used in archive name and # extracted directory # AEP_Patches - list of file names (from patches subdirectory) to # run thru patch and apply to extracted sources # AEP_LicenseFile - full path to license file # AEPBuildInSources - build in Sources directory instead of BuildDirectory # # The following variables will be defined if empty: # AEP_Project [ $(Project) ] # AEP_Version [ ] # AEP_ProjVers [ $(AEP_Project)-$(AEP_Version) ] # AEP_Filename [ $(AEP_ProjVers).tar.gz ] # AEP_ExtractDir [ $(AEP_ProVers) ] # AEP_Patches [ ] # AEP_LicenseFile [ $(SRCROOT)/$(ProjectName).txt ] # ## GnuAfterInstall += install-open-source-files # # Define AEP variables # ifndef AEP_Project AEP_Project = $(Project) endif ifndef AEP_ProjVers ifdef AEP_Version AEP_ProjVers = $(AEP_Project)-$(AEP_Version) else AEP_ProjVers = $(AEP_Project) endif endif ifndef AEP_Filename AEP_Filename = $(wildcard $(AEP_ProjVers).tar.[gb]z*) endif ifeq ($(suffix $(AEP_Filename)),.bz2) AEP_ExtractOption = j else AEP_ExtractOption = z endif ifndef AEP_ExtractDir AEP_ExtractDir = $(AEP_ProjVers) endif ifndef AEP_Patches AEP_Patches = endif ifndef AEP_LicenseFile AEP_LicenseFile = $(SRCROOT)/$(ProjectName).txt endif #AEP_ExtractRoot = $(SRCROOT) AEP_ExtractRoot = $(OBJROOT) # Redefine the Sources directory defined elsewhere # ...but save the version of ConfigStamp (based on Sources) # GNUSource.make uses. GNUConfigStamp := $(ConfigStamp) Sources = $(AEP_ExtractRoot)/$(AEP_Project) ifeq ($(AEP_BuildInSources),YES) BuildDirectory = $(Sources) endif # Open Source configuration directories OSVDIR = /usr/local/OpenSourceVersions OSLDIR = /usr/local/OpenSourceLicenses # # AEP targets # .PHONY: extract-source install-open-source-files $(GNUConfigStamp): extract-source extract-source:: ifeq ($(AEP),YES) @echo "Extracting source for $(Project)..." $(MKDIR) $(AEP_ExtractRoot) $(TAR) -C $(AEP_ExtractRoot) -$(AEP_ExtractOption)xf $(SRCROOT)/$(AEP_Filename) $(RMDIR) $(Sources) $(_v) $(RM) $(GNUConfigStamp) $(MV) $(AEP_ExtractRoot)/$(AEP_ExtractDir) $(Sources) for patchfile in $(AEP_Patches); do \ echo $$patchfile; \ cd $(Sources) && patch -lp1 < $(SRCROOT)/patches/$$patchfile; \ done endif install-open-source-files:: @echo "Installing Apple-internal open-source documentation..." $(MKDIR) $(DSTROOT)/$(OSVDIR) $(INSTALL_FILE) $(SRCROOT)/$(ProjectName).plist $(DSTROOT)/$(OSVDIR)/$(ProjectName).plist ifneq ($(AEP_LicenseFile),) $(MKDIR) $(DSTROOT)/$(OSLDIR) $(INSTALL_FILE) $(AEP_LicenseFile) $(DSTROOT)/$(OSLDIR)/$(ProjectName).txt endif clean:: $(_v) if [ -d $(Sources) ]; then \ cd $(Sources) && make clean; \ fi