1## 2# Makefile for tcl 3## 4 5Project = tcl 6 7TEMPROOT = $(SRCROOT)/temp 8export PATH := $(TEMPROOT)/usr/bin:$(PATH) 9 10include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make 11 12## Build settings ## 13 14TCL_DSTROOT = $(if $(DSTROOT),$(DSTROOT),/tmp/tcl/Release) 15 16TCL_FRAMEWORK_DIR = $(TCL_DSTROOT)$(NSFRAMEWORKDIR) 17TCLSH = $(TCL_DSTROOT)$(USRBINDIR)/tclsh 18WISH = $(TCL_DSTROOT)$(USRBINDIR)/wish 19 20TCL_EXT_DIR = $(NSLIBRARYDIR)/Tcl 21TCL_SRC_DIR = $(SRCROOT)/tcl 22TCL_VERSION = $(shell $(GREP) "TCL_VERSION=" "$(TCL_SRC_DIR)/tcl/unix/configure" | $(CUT) -d '=' -f 2) 23TCL_INIT = $(TCL_FRAMEWORK_DIR)/Tcl.framework/Versions/$(TCL_VERSION)/Resources/Scripts/init.tcl 24 25ext ext84: TCL_EXT_DIR= $(NSLIBRARYDIR)/Tcl/$(TCL_VERSION) 26ext84: TCL_SRC_DIR = $(SRCROOT)/tcl84 27ext: TCL_VERSCHECK = [catch {package present Tcl $(TCL_VERSION)-}] 28ext84: TCL_VERSCHECK = [package vcompare $(TCL_VERSION) $$::tcl_version] 29ext84: TCL_AUTOPATH = $(NSFRAMEWORKDIR)/Tk.framework/Versions/$(TCL_VERSION)/Resources 30fetch:: SRCROOT = $(CURDIR) 31 32TCL_CONFIG_DIR = $(OBJROOT) 33AC_VALS = ac_cv_path_tclsh=$(TCLSH) ac_cv_path_wish=$(WISH) ac_cv_header_stdc=yes 34 35MAKE_ARGS = TclExtLibDir=$(TCL_EXT_DIR) LicenseInstallDir=$(OSL) Plist=$(PLIST) \ 36 TclFramework=$(TCL_FRAMEWORK_DIR)/Tcl.framework Tclsh=$(TCLSH) \ 37 TkFramework=$(TCL_FRAMEWORK_DIR)/Tk.framework Wish=$(WISH) \ 38 CONFIG_SITE=$(TCL_CONFIG_DIR)/config.site 39 40ext: EXT_MAKE_ARGS = PureTclExt=NO Tcl84Ext=NO 41ext84: EXT_MAKE_ARGS = PureTclExt=NO Tcl84Ext=YES 42ext_puretcl: EXT_MAKE_ARGS = PureTclExt=YES 43 44PLIST = $(SRCROOT)/$(Project).plist 45OSV = /usr/local/OpenSourceVersions 46OSL = /usr/local/OpenSourceLicenses 47 48export PATH := $(PATH):/usr/X11/bin 49Cruft += .git 50 51SubProjects := tcl84 tk84 tcl tk tcl_ext 52Actions := almostclean extract fetch install-license 53Actions_nodeps := install 54include tcl_ext/SubprojActions.make 55 56## Targets ## 57 58core84 := install-tcl84 install-tk84 ext84 cleanup84 59core := install-tcl install-tk ext ext_puretcl 60ext := install-tcl_ext 61 62install_source:: install_temp_autoconf extract remove_temp_autoconf 63 64AUTOCONFARCHIVE = $(SRCROOT)/autoconf-18-root.cpio.gz 65install_temp_autoconf: 66 $(_v) $(MKDIR) $(TEMPROOT) 67 $(_v) ditto -x -z $(AUTOCONFARCHIVE) $(TEMPROOT) 68 $(_v) $(RM) $(AUTOCONFARCHIVE) 69 70remove_temp_autoconf: 71 $(_v) $(RMDIR) $(TEMPROOT) 72 73build:: 74 $(_v) $(MKDIR) $(TCL_CONFIG_DIR) 75 $(_v) echo "cache_file=$(TCL_CONFIG_DIR)/config.cache" > "$(TCL_CONFIG_DIR)/config.site" 76 $(_v) for v in $(AC_VALS); do echo "$$v" >> "$(TCL_CONFIG_DIR)/config.site"; done 77 78install:: $(core84) $(core) install-plist 79 80install1:: build $(core84) 81install2:: build $(core) 82install3:: install-plist 83 84ext ext84: 85 $(_v) $(MAKE) $(ext) $(EXT_MAKE_ARGS) \ 86 TCL_EXT_DIR=$(TCL_EXT_DIR) TCL_CONFIG_DIR=$(OBJROOT) \ 87 OBJROOT=$(OBJROOT)/$@ SYMROOT=$(SYMROOT)/$@ 88 $(_v) printf '%s\n%s%s\n' 'if {$(TCL_VERSCHECK)} {return}' \ 89 'if {[lsearch -exact $$::auto_path $$dir] == -1} {' \ 90 'lappend ::auto_path $$dir; lappend ::tcl_pkgPath $$dir}' \ 91 > $(OBJROOT)/$@/pkgIndex.tcl 92 $(_v) printf '\n%s\n %s%s\n\t%s\n\t %s%s\n\t%s\n %s\n' \ 93 'proc tcl::DarwinFixAutoPath {} {' \ 94 'if {[lsearch -exact $$::auto_path $(TCL_EXT_DIR)] == -1 && ' \ 95 '[lsearch -exact $$::auto_path $(shell dirname $(TCL_EXT_DIR))] != -1} {' \ 96 'foreach g {::auto_path ::tcl_pkgPath} {' \ 97 'set $$g [linsert [set $$g] [expr {[lsearch -exact [set $$g] ' \ 98 '$(shell dirname $(TCL_EXT_DIR))]+1}] $(TCL_EXT_DIR)]' '}' '}'\ 99 >> $(TCL_INIT) 100 $(_v) if [ -n "$(TCL_AUTOPATH)" ]; then printf '%s%s\n' \ 101 'if {[lsearch -exact $$::auto_path $(TCL_AUTOPATH)] == -1} {' \ 102 'lappend ::auto_path $(TCL_AUTOPATH)}' \ 103 >> $(OBJROOT)/$@/pkgIndex.tcl; \ 104 printf ' %s%s\n\t%s%s\n %s\n' \ 105 'if {[lsearch -exact $$::auto_path $(TCL_AUTOPATH)] == -1 && ' \ 106 '[lsearch -exact $$::auto_path $(NSFRAMEWORKDIR)] != -1} {' \ 107 'set ::auto_path [linsert $$::auto_path [expr {[lsearch -exact ' \ 108 '$$::auto_path $(NSFRAMEWORKDIR)]+1}] $(TCL_AUTOPATH)]' '}' \ 109 >> $(TCL_INIT); fi 110 $(_v) printf '%s\n%s\n%s\n' \ 111 '}' 'tcl::DarwinFixAutoPath' 'rename tcl::DarwinFixAutoPath {}' \ 112 >> $(TCL_INIT) 113 $(_v) $(INSTALL_FILE) $(OBJROOT)/$@/pkgIndex.tcl $(DSTROOT)$(TCL_EXT_DIR) 114 115ext_puretcl: 116 $(_v) $(MAKE) $(ext) $(EXT_MAKE_ARGS) 117 118cleanup84: 119 $(_v) $(RMDIR) $(DSTROOT)$(USRDIR)/{include,lib,share/man/{man3,mann},local/include} 120 $(_v) $(RM) $(DSTROOT)$(NSFRAMEWORKDIR)/{Tcl,Tk}.framework/*8.4* 121 $(_v) $(RMDIR) $(DSTROOT)$(NSFRAMEWORKDIR)/{Tcl,Tk}.framework/Versions/8.4/Resources/Documentation 122 123install-plist: install-license 124 $(_v) $(MKDIR) $(DSTROOT)$(OSV) && $(INSTALL_FILE) $(PLIST) $(DSTROOT)$(OSV)/$(Project).plist 125 126extract:: 127 $(_v) $(FIND) "$(SRCROOT)" $(Find_Cruft) -depth -exec $(RMDIR) "{}" \; 128 129.PHONY: ext ext84 ext_puretcl cleanup84 install-plist 130.NOTPARALLEL: 131