1## 2# Makefile for Tk 3## 4# Daniel A. Steffen <das@users.sourceforge.net>: 5## 6 7# Project info 8Project = tk 9ProjectName = Tk 10ProjectPlistName = tk84 11UserType = Developer 12ToolType = Commands 13 14# Fetch info 15Release = 8.4.19 16UrlFile = $(Project)$(Release) 17Url = $(UrlBase)/tcl/Tcl/$(Release)/$(UrlFile)-src$(UrlExt) 18#CvsRoot = :pserver:anonymous@tktoolkit.cvs.sourceforge.net:/cvsroot/tktoolkit 19#CvsTag = core-8-4-branch 20#ImportDate = 2008-12-08 21 22Configure = $(Sources)/unix/configure 23Extra_Environment = INSTALL_PATH="$(NSFRAMEWORKDIR)" PREFIX="$(USRDIR)" \ 24 APPLICATION_INSTALL_PATH="$(AppInstallDir)" \ 25 SYMROOT="$(SYMROOT)" OBJROOT="$(OBJROOT)" \ 26 MANDIR="$(MANDIR)" INSTALL_MANPAGES=1 \ 27 EXTRA_CONFIGURE_ARGS="$(Configure_Flags)" \ 28 EXTRA_MAKE_ARGS="CFLAGS_WARNING='-Wall'" \ 29 TCL_FRAMEWORK_DIR="$(TclFrameworkDir)" TCLSH_DIR="$(TclshDir)" 30AfterInstall = extra-int-headers lipo links compress_man_pages fix-perms 31 32include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make 33include ../tcl_ext/Fetch.make 34 35Install_Flags = INSTALL_ROOT="$(DSTROOT)" 36 37Version = $(shell $(GREP) "TK_VERSION=" "$(Configure)" | $(CUT) -d '=' -f 2) 38 39FmwkDir = $(NSFRAMEWORKDIR)/Tk.framework/Versions/$(Version) 40LibItems = tkConfig.sh libtkstub$(Version).a 41HeaderItems = tk.h tkDecls.h tkPlatDecls.h tkIntXlibDecls.h tkMacOSX.h 42PrivateHeaderItems = tkInt.h tkIntDecls.h tkIntPlatDecls.h tkMacOSXInt.h \ 43 tkPort.h tkMacOSXPort.h default.h tkMacOSXDefault.h tkFont.h 44AppInstallDir = $(NSDEVELOPERAPPSDIR)/Utilities 45 46Tclsh = $(USRBINDIR)/tclsh 47TclFramework = $(NSFRAMEWORKDIR)/Tcl.framework 48 49TclshDir = $(shell dirname $(Tclsh)) 50TclFrameworkDir = $(shell dirname $(TclFramework)) 51 52Wish_app = Wish.app 53Wish_bin = $(Wish_app)/Contents/MacOS/Wish 54 55# add suffix to tk manpage names to avoid conflicts 56Manpage_Suffix = tcl 57Configure_Flags += --enable-man-suffix=$(Manpage_Suffix) 58 59extra-int-headers: 60 $(_v) $(INSTALL_FILE) "$(Sources)/generic/default.h" "$(Sources)/macosx/tkMacOSXDefault.h" \ 61 "$(Sources)/generic/tkFont.h" "$(DSTROOT)$(FmwkDir)/PrivateHeaders" 62 $(_v) $(MKDIR) "$(DSTROOT)$(FmwkDir)/Headers/tk-private" 63 $(_v) $(MV) -f $(foreach f,$(PrivateHeaderItems),"$(DSTROOT)$(FmwkDir)/PrivateHeaders/$(f)") "$(DSTROOT)$(FmwkDir)/Headers/tk-private" 64 $(_v) $(RMDIR) "$(DSTROOT)$(FmwkDir)/PrivateHeaders" 65 $(_v) $(LN) -fsh "Headers/tk-private" "$(DSTROOT)$(FmwkDir)/PrivateHeaders" 66 67lipo_archs := $(filter ppc,$(RC_ARCHS)) 68ifdef lipo_archs 69define lipo 70 $(_v) lipo $(patsubst %,-remove %,$(patsubst ppc,ppc7400,$(lipo_archs))) -output $(1) $(1) 71endef 72endif 73lipo: 74 $(call lipo,$(DSTROOT)$(FmwkDir)/Resources/$(Wish_bin)) 75 76links: 77 $(_v) $(INSTALL_DIRECTORY) "$(DSTROOT)$(USRLIBDIR)" 78 $(_v) $(LN) -fs "../..$(FmwkDir)/$(ProjectName)" "$(DSTROOT)$(USRLIBDIR)/libtk$(Version).dylib" 79 $(_v) $(LN) -fs "libtk$(Version).dylib" "$(DSTROOT)$(USRLIBDIR)/libtk.dylib" 80 $(_v) $(LN) -fs $(foreach f,$(LibItems),"../..$(FmwkDir)/$(f)") "$(DSTROOT)$(USRLIBDIR)" 81 $(_v) $(INSTALL_DIRECTORY) "$(DSTROOT)$(USRINCLUDEDIR)" 82 $(_v) $(LN) -fs $(foreach f,$(HeaderItems),"../..$(FmwkDir)/Headers/$(f)") \ 83 "$(DSTROOT)$(USRINCLUDEDIR)" 84# Install compat sym links for private headers in /usr/local/include 85 $(_v) $(INSTALL_DIRECTORY) "$(DSTROOT)$(USRDIR)/local/include" 86 $(_v) $(LN) -fs $(foreach f,$(PrivateHeaderItems),"../../..$(FmwkDir)/Headers/tk-private/$(f)") \ 87 "$(DSTROOT)$(USRDIR)/local/include/" 88# Move wish.1 to wish$(Version).1 and link wish.1 to wish$(Version).1 89 $(_v) $(MV) -f "$(DSTROOT)$(MANDIR)/man1/wish.1$(Manpage_Suffix)" \ 90 "$(DSTROOT)$(MANDIR)/man1/wish$(Version).1$(Manpage_Suffix)" 91 $(_v) $(LN) -fs "wish$(Version).1$(Manpage_Suffix)" \ 92 "$(DSTROOT)$(MANDIR)/man1/wish.1$(Manpage_Suffix)" 93 94fix-perms: 95 $(_v)- $(CHOWN) -R $(Install_User):$(Install_Group) $(DSTROOT) 96 $(_v)- $(FIND) $(DSTROOT) -type f ! -perm -+x ! -perm $(Install_File_Mode) -print0 | $(XARGS) -0 $(CHMOD) $(Install_File_Mode) 97 $(_v)- $(FIND) $(DSTROOT) -type f -perm -+x ! -perm $(Install_Program_Mode) -print0 | $(XARGS) -0 $(CHMOD) $(Install_Program_Mode) 98 $(_v)- $(FIND) $(DSTROOT) -type d ! -perm $(Install_Directory_Mode) -print0 | $(XARGS) -0 $(CHMOD) $(Install_Directory_Mode) 99 100### 101 102Sources = $(SRCROOT)/$(Project) 103MakeDir = $(Sources)/macosx 104 105Fmwk = $(SYMROOT)/$(ProjectName).framework 106BuildTarget = $(Project) BUILD_STYLE=Deployment 107InstallTarget = install-deploy 108 109all: build 110 111build:: $(Fmwk) $(Fmwk).dSYM 112 113$(Fmwk): 114 @echo "Building $(Project)..." 115 $(_v) $(Environment) $(MAKE) -C $(MakeDir) $(BuildTarget) 116 117$(Fmwk).dSYM: $(Fmwk) 118 $(_v) $(DSYMUTIL) -o $(Fmwk).dSYM $(Fmwk)/$(ProjectName) 119 $(call lipo,$(SYMROOT)/$(Wish_bin)) 120 $(_v) $(DSYMUTIL) -o $(SYMROOT)/$(Wish_app).dSYM $(SYMROOT)/$(Wish_bin) 121 122install:: $(Fmwk) $(Fmwk).dSYM 123 @echo "Installing $(Project)..." 124 -@$(RM) -f "$(DSTROOT)$(FmwkDir)/PrivateHeaders" 125 $(_v) umask $(Install_Mask) ; $(Environment) $(MAKE) -C $(MakeDir) \ 126 $(Install_Flags) $(InstallTarget) 127# Remove /Developer/Applications (3908113) 128 $(_v) $(RMDIR) $(DSTROOT)$(NSDEVELOPERAPPSDIR) 129 $(_v) $(FIND) $(DSTROOT) $(Find_Cruft) -print0 | $(XARGS) -0 $(RMDIR) 130 $(_v) $(MAKE) $(AfterInstall) 131 132almostclean:: 133 @echo "Cleaning $(Project)..." 134 $(_v) $(Environment) $(MAKE) -C $(MakeDir) clean-$(BuildTarget) 135 136extract:: 137 $(_v) $(RMDIR) $(SRCROOT)/$(Project)/mac 138 139.PHONY: almostclean $(AfterInstall) 140.NOTPARALLEL: 141