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