TCL_SUBDIR=			@VENDOR_TCL_SUBDIR@
TCLX_SUBDIR=		@VENDOR_TCLX_SUBDIR@
TCLLIB_SUBDIR=		@VENDOR_TCLLIB_SUBDIR@
SIGNIFY_SUBDIR=		signify-osx
INSTALL_SUBDIR=		install

PREFIX=			@prefix@
DESTROOT=   		@abs_top_builddir@/vendor/vendor-destroot

.PHONY: all clean distclean install destroot test
.PHONY: destroot-tcl destroot-tclx destroot-tcllib destroot-signify destroot-install
.PHONY: install-tcl install-tclx install-tcllib 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}@VENDOR_TCL_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCL_SUBDIR@ $(@:%-tcl=%)

%-tclx:
	@echo ===\> making $(@:%-tclx=%) in ${DIRPRFX}@VENDOR_TCLX_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCLX_SUBDIR@ $(@:%-tclx=%)

# tclx also links against libtclstub
all-tclx: all-tcl

%-tcllib:
	@echo ===\> making $(@:%-tcllib=%) in ${DIRPRFX}@VENDOR_TCLLIB_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCLLIB_SUBDIR@ TCLSH_PROG=@INTREE_TCLSH@ $(@:%-tcllib=%)

# tcllib requires a working tclsh
all-tcllib: all-tcl

%-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
CLEAN_TARGETS= clean-tcl clean-tcllib clean-tclx clean-signify
DISTCLEAN_TARGETS= distclean-tcl distclean-tcllib distclean-tclx distclean-signify
ifneq (@OS_PLATFORM@,linux)
DESTROOT_TARGETS+=   destroot-signify
endif
ifeq (@HAVE_CLONEFILE@,yes)
ifeq (@HAVE_DECL_CLONE_NOOWNERCOPY@,yes)
DESTROOT_TARGETS+=   destroot-install
CLEAN_TARGETS+= clean-install
DISTCLEAN_TARGETS+= distclean-install
endif
endif

destroot: $(DESTROOT_TARGETS)
destroot-tcl: all-tcl
	@echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_TCL_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCL_SUBDIR@ "DESTDIR=${DESTROOT}" @VENDOR_TCL_INSTALL@

destroot-tclx: all-tclx
	@echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_TCLX_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCLX_SUBDIR@ "DESTDIR=${DESTROOT}" @VENDOR_TCLX_INSTALL@

destroot-tcllib: all-tcllib
	@echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_TCLLIB_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCLLIB_SUBDIR@ "DESTDIR=${DESTROOT}" TCLSH_PROG=@INTREE_TCLSH@ @VENDOR_TCLLIB_INSTALL@
	@chmod -R ugo+rX ${DESTROOT}${PREFIX}/libexec/macports/lib/tcllib*

destroot-signify:
	@echo ===\> staging to destroot in ${DIRPRFX}${SIGNIFY_SUBDIR}
	@umask 0022; $(MAKE) -C ${SIGNIFY_SUBDIR} install "PREFIX=${DESTROOT}${PREFIX}/libexec/macports"

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
ifneq (@OS_PLATFORM@,linux)
INSTALL_TARGETS+=   install-signify
endif
ifeq (@HAVE_CLONEFILE@,yes)
ifeq (@HAVE_DECL_CLONE_NOOWNERCOPY@,yes)
INSTALL_TARGETS+=   install-install
endif
endif

install: $(INSTALL_TARGETS)

TCL_PACKAGE_PATH=@TCL_PACKAGE_PATH@
TCL_PREFIX=@TCL_PREFIX@
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@SHLIB_SUFFIX@ \
				$(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}@VENDOR_TCL_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCL_SUBDIR@ @VENDOR_TCL_INSTALL@

install-tclx:
	rm -rf $(DESTDIR)$(TCL_PACKAGE_PATH)/tclx8.4
	@echo ===\> making $(@:%-tclx=%) in ${DIRPRFX}@VENDOR_TCLX_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCLX_SUBDIR@ @VENDOR_TCLX_INSTALL@

install-tcllib:
	rm -rf $(DESTDIR)$(TCL_PACKAGE_PATH)/tcllib1.1{5,7,8}
	@echo ===\> making $(@:%-tcllib=%) in ${DIRPRFX}@VENDOR_TCLLIB_SUBDIR@
	@umask 0022; $(MAKE) -C @VENDOR_TCLLIB_SUBDIR@ TCLSH_PROG=@INTREE_TCLSH@ @VENDOR_TCLLIB_INSTALL@
	@chmod -R ugo+rX $(DESTDIR)${PREFIX}/libexec/macports/lib/tcllib*

install-signify:
	@echo ===\> making $(@:%-signify=%) in ${DIRPRFX}${SIGNIFY_SUBDIR}
	@umask 0022; $(MAKE) -C ${SIGNIFY_SUBDIR} install PREFIX=$(DESTDIR)${PREFIX}/libexec/macports

install-install:
	@echo ===\> making $(@:%-install=%) in ${DIRPRFX}${INSTALL_SUBDIR}
	@umask 0022; $(MAKE) -C ${INSTALL_SUBDIR} install

test:

clean: $(CLEAN_TARGETS)
	rm -rf ${DESTROOT}

distclean: $(DISTCLEAN_TARGETS)
	rm -f Makefile
	rm -rf vendor-destroot
	rm -f tclsh

codesign:: signify-osx/signify tcl/unix/libtcl8.6.dylib tcl/unix/tclsh tclx/libtclx8.6.dylib tcl/unix/pkgs/itcl4.3.2/libitcl4.3.2.dylib tcl/unix/pkgs/tdbc1.1.10/libtdbc1.1.10.dylib tcl/unix/pkgs/tdbcpostgres1.1.10/libtdbcpostgres1.1.10.dylib tcl/unix/pkgs/thread2.8.11/libthread2.8.11.dylib tcl/unix/pkgs/tdbcmysql1.1.10/libtdbcmysql1.1.10.dylib tcl/unix/pkgs/tdbcodbc1.1.10/libtdbcodbc1.1.10.dylib tcl/unix/pkgs/sqlite3.47.2/libsqlite3.47.2.dylib
	../src/codesign.sh $?

