TCL_SUBDIR= tcl/unix TCLX_SUBDIR= tclx TCLLIB_SUBDIR= tcllib CRITCL_SUBDIR= critcl SIGNIFY_SUBDIR= signify-osx INSTALL_SUBDIR= install DESTROOT= /Volumes/RAID/var/tmp/mprsyncup/release/base/vendor/vendor-destroot TCL_PREFIX= /Volumes/RAID/var/tmp/mprsyncup/opt/local/libexec/macports .PHONY: all clean distclean install destroot test .PHONY: destroot-tcl destroot-critcl destroot-tclx destroot-tcllib destroot-tcllibc destroot-signify destroot-install .PHONY: install-tcl install-tclx install-tcllib install-tcllibc install-signify install-install .PHONY: %-tcl %-tclx %-tcllib %-signify %-install # for make all, run destroot (where destroot will depend on all of each # subpackage) all: destroot %-tcl: @echo ===\> making $(@:%-tcl=%) in ${DIRPRFX}tcl/unix @umask 0022; $(MAKE) -C tcl/unix $(@:%-tcl=%) %-tclx: @echo ===\> making $(@:%-tclx=%) in ${DIRPRFX}tclx @umask 0022; $(MAKE) -C tclx $(@:%-tclx=%) # tclx also links against libtclstub all-tclx: all-tcl %-tcllib: @echo ===\> making $(@:%-tcllib=%) in ${DIRPRFX}tcllib @umask 0022; $(MAKE) -C tcllib TCLSH_PROG=/Volumes/RAID/var/tmp/mprsyncup/release/base/vendor/tclsh $(@:%-tcllib=%) %-signify: @echo ===\> making $(@:%-signify=%) in ${DIRPRFX}${SIGNIFY_SUBDIR} @umask 0022; $(MAKE) -C ${SIGNIFY_SUBDIR} $(@:%-signify=%) %-install: @echo ===\> making $(@:%-install=%) in ${DIRPRFX}${INSTALL_SUBDIR} @umask 0022; $(MAKE) -C ${INSTALL_SUBDIR} $(@:%-install=%) DESTROOT_TARGETS= destroot-tcl destroot-tclx destroot-tcllib destroot-tcllibc CLEAN_TARGETS= clean-tcl clean-tcllib clean-tclx clean-signify DISTCLEAN_TARGETS= distclean-tcl distclean-tcllib distclean-tclx distclean-signify CODESIGN_TARGETS= signify-osx/signify tcl/unix/libtcl[89]*.dylib tcl/unix/tclsh tclx/libtclx[89]*.dylib tcl/unix/pkgs/itcl*/libitcl*.dylib tcl/unix/pkgs/tdbc[0-9]*/libtdbc*.dylib tcl/unix/pkgs/tdbcpostgres*/libtdbcpostgres*.dylib tcl/unix/pkgs/thread*/libthread*.dylib tcl/unix/pkgs/tdbcmysql*/libtdbcmysql*.dylib tcl/unix/pkgs/tdbcodbc*/libtdbcodbc*.dylib tcl/unix/pkgs/sqlite3*/libsqlite3*.dylib $(DESTROOT)$(TCL_PREFIX)/lib/tcllibc*/macosx-macports/tcllibc.dylib ifneq (darwin,linux) DESTROOT_TARGETS+= destroot-signify endif ifeq (no,yes) ifeq (no,yes) DESTROOT_TARGETS+= destroot-install CLEAN_TARGETS+= clean-install DISTCLEAN_TARGETS+= distclean-install CODESIGN_TARGETS+= install/build/install endif endif ifeq (darwin,darwin) CRITCL_TARGET= -target macosx-macports endif destroot: $(DESTROOT_TARGETS) destroot-tcl: all-tcl @echo ===\> staging to destroot in ${DIRPRFX}tcl/unix @umask 0022; $(MAKE) -C tcl/unix "DESTDIR=${DESTROOT}" install-binaries install-headers install-libraries install-msgs install-packages [ "darwin" != darwin ] || install_name_tool -change "$(TCL_PREFIX)/lib/libtcl8.6.dylib" \ "@executable_path/../lib/libtcl8.6.dylib" \ "$(DESTROOT)$(TCL_PREFIX)/bin/tclsh8.6" destroot-tclx: all-tclx @echo ===\> staging to destroot in ${DIRPRFX}tclx @umask 0022; $(MAKE) -C tclx "DESTDIR=${DESTROOT}" install-binaries install-libraries # tcllib requires a working tclsh destroot-tcllib: destroot-tcl @echo ===\> staging to destroot in ${DIRPRFX}tcllib @umask 0022; $(MAKE) -C tcllib "DESTDIR=${DESTROOT}" TCLSH_PROG=/Volumes/RAID/var/tmp/mprsyncup/release/base/vendor/tclsh install-libraries @chmod -R ugo+rX $(DESTROOT)$(TCL_PREFIX)/lib/tcllib* .stamp-critcl: $(CRITCL_SUBDIR)/lib/critcl/critcl.tcl | destroot-tcl @echo ===\> staging to destroot in ${DIRPRFX}${CRITCL_SUBDIR} @umask 0022; cd $(CRITCL_SUBDIR) && /usr/bin/env "HOME=/Volumes/RAID/var/tmp/mprsyncup/release/base/vendor" "/Volumes/RAID/var/tmp/mprsyncup/release/base/vendor/tclsh" ./build.tcl install --prefix "$(TCL_PREFIX)" --dest-dir "$(DESTROOT)" $(CRITCL_TARGET) @chmod -R ugo+rX $(DESTROOT)$(TCL_PREFIX)/lib/critcl* @touch .stamp-critcl destroot-critcl: .stamp-critcl .stamp-tcllibc: $(TCLLIB_SUBDIR)/support/installation/version.tcl .stamp-critcl @echo ===\> staging tcllibc to destroot in ${DIRPRFX}tcllib @umask 0022; /usr/bin/env "PATH=$(DESTROOT)$(TCL_PREFIX)/bin:$$PATH" $(MAKE) -C tcllib "DESTDIR=$(DESTROOT)" "CRITCL_TARGET=$(CRITCL_TARGET)" TCLSH_PROG=/Volumes/RAID/var/tmp/mprsyncup/release/base/vendor/tclsh install-binaries @chmod -R ugo+rX $(DESTROOT)$(TCL_PREFIX)/lib/tcllib* @touch .stamp-tcllibc destroot-tcllibc: .stamp-tcllibc destroot-signify: @echo ===\> staging to destroot in ${DIRPRFX}${SIGNIFY_SUBDIR} @umask 0022; $(MAKE) -C $(SIGNIFY_SUBDIR) install "PREFIX=$(DESTROOT)$(TCL_PREFIX)" destroot-install: all-install @echo ===\> staging to destroot in ${DIRPRFX}${INSTALL_SUBDIR} @umask 0022; $(MAKE) -C ${INSTALL_SUBDIR} install "DESTDIR=${DESTROOT}" INSTALL_TARGETS= install-tcl install-tclx install-tcllib install-tcllibc ifneq (darwin,linux) INSTALL_TARGETS+= install-signify endif ifeq (no,yes) ifeq (no,yes) INSTALL_TARGETS+= install-install endif endif install: $(INSTALL_TARGETS) TCL_PACKAGE_PATH=/Volumes/RAID/var/tmp/mprsyncup/opt/local/libexec/macports/lib OLD_TCL_FILES= $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.4/http-2.7.1{2,3}.tm \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.6/http-2.9.5.tm \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.4/platform-1.0.1{2,3,4,8}.tm \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.5/msgcat-1.5.2.tm \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.5/tcltest-2.3.{5,8}.tm \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.5/tcltest-2.5.{3,5,7,8}.tm \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.6/tdbc/sqlite3-1.1.{3,5,7,9}.tm \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8/8.6/tdbc/sqlite3-1.1.9.uuid \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8.5 \ $(DESTDIR)$(TCL_PREFIX)/bin/tclsh8.5 \ $(DESTDIR)$(TCL_PREFIX)/lib/libtcl8.5.dylib \ $(DESTDIR)$(TCL_PREFIX)/lib/libtclstub8.5.a \ $(DESTDIR)$(TCL_PACKAGE_PATH)/thread2.7.{0,2,3} \ $(DESTDIR)$(TCL_PACKAGE_PATH)/thread2.8.{7,8,9,10} \ $(DESTDIR)$(TCL_PACKAGE_PATH)/itcl4.2.{2,3,4} \ $(DESTDIR)$(TCL_PACKAGE_PATH)/itcl4.3.0 \ $(DESTDIR)$(TCL_PACKAGE_PATH)/sqlite3.{36,40}.0 \ $(DESTDIR)$(TCL_PACKAGE_PATH)/sqlite3.44.2 \ $(DESTDIR)$(TCL_PACKAGE_PATH)/sqlite3.45.3 \ $(DESTDIR)$(TCL_PACKAGE_PATH)/tdbc{,mysql,odbc,postgres}1.1.{3,5,7,9} install-tcl: rm -rf $(OLD_TCL_FILES) @echo ===\> making $(@:%-tcl=%) in ${DIRPRFX}tcl/unix @umask 0022; $(MAKE) -C tcl/unix install-binaries install-headers install-libraries install-msgs install-packages install-tclx: rm -rf $(DESTDIR)$(TCL_PACKAGE_PATH)/tclx8.4 @echo ===\> making $(@:%-tclx=%) in ${DIRPRFX}tclx @umask 0022; $(MAKE) -C tclx install-binaries install-libraries install-tcllib: rm -rf $(DESTDIR)$(TCL_PACKAGE_PATH)/tcllib1.* @echo ===\> making $(@:%-tcllib=%) in ${DIRPRFX}tcllib @umask 0022; $(MAKE) -C tcllib TCLSH_PROG=/Volumes/RAID/var/tmp/mprsyncup/release/base/vendor/tclsh install-libraries @chmod -R ugo+rX $(DESTDIR)$(TCL_PREFIX)/lib/tcllib* install-tcllibc: @echo ===\> making $(@:%-tcllibc=%) @umask 0022; cd "$(DESTROOT)$(TCL_PREFIX)/lib"; \ for d in $$(find tcllibc* -type d); do \ mkdir -p "$(DESTDIR)$(TCL_PREFIX)/lib/$$d"; \ done; \ for f in $$(find tcllibc* -type f); do \ cp -p "$$f" "$(DESTDIR)$(TCL_PREFIX)/lib/$$f"; \ done @chmod -R ugo+rX $(DESTDIR)$(TCL_PREFIX)/lib/tcllibc* install-signify: @echo ===\> making $(@:%-signify=%) in ${DIRPRFX}${SIGNIFY_SUBDIR} @umask 0022; $(MAKE) -C $(SIGNIFY_SUBDIR) install "PREFIX=$(DESTDIR)$(TCL_PREFIX)" install-install: @echo ===\> making $(@:%-install=%) in ${DIRPRFX}${INSTALL_SUBDIR} @umask 0022; $(MAKE) -C ${INSTALL_SUBDIR} install test: clean: $(CLEAN_TARGETS) rm -rf vendor-destroot rm -f .stamp-* rm -rf .critcl distclean: $(DISTCLEAN_TARGETS) rm -rf vendor-destroot rm -f .stamp-* rm -rf .critcl rm -f Makefile rm -f tclsh codesign:: $(CODESIGN_TARGETS) ../src/codesign.sh $?