# Makefile for TCL and TK packages
# Just run "make tcl-7.6p2.pkg.gz" and you will have a gzipped
# Solaris package for TCL built from the tcl7.6p2.tar.gz
# distribution file.
#
#  - Daniel J. Gregor Jr., dj@gregor.com

GZIP         = /usr/local/bin/gzip
PKGPROTO     = /usr/bin/pkgproto
PKGMK        = /usr/bin/pkgmk
PKGTRANS     = /usr/bin/pkgtrans

COMPANY      = SMLI

INSTUSER     = "root"
INSTGROUP    = "root"
ARCH         = "Solaris 2.5"
CATEGORY     = "application"
VENDOR       = "Sun Microsystems Laboratories, Inc."
EMAIL        = "news:comp.lang.tcl"
PSTAMP       = "D.J. Gregor"
CLASSES      = "none"

TOPDIR:sh    = pwd

NAME         = echo $* | sed 's/-.*//'
FULLVER      = echo $* | sed 's/.*-//'
VER          = echo $* | sed 's/.*-//;s/p[0-9]//'
DIR          = echo $* | sed 's/-//;s/p[0-9]//'

PKGNAME      = echo ${COMPANY}$* | sed 's/-.*//'
PKGDIR       = echo /opt/${COMPANY}$* | sed 's/-.*//'


%.gz:	%
	rm -f $@
	$(GZIP) -9 $<

%.pkg:	pkgdir.%/prototype
	( cd pkgdir.$* ; pkgmk -or . )
	$(PKGTRANS) /var/spool/pkg `pwd`/$@ `${PKGNAME}`

pkgdir.%/prototype: pkgdir.%/pkginfo
	( cd pkgdir.$* ; echo "i pkginfo=pkginfo" ; \
	 find . -print | egrep -v './(prototype|pkginfo)' | $(PKGPROTO) | \
	 sed 's/ \([0-9][0-9]*\) [^ ][^ ]* [^ ][^ ]*$$/ \1 '"${INSTUSER} ${INSTGROUP}/"\
	 ) > $@

pkgdir.%/pkginfo:  install.pkgdir.%
	rm -f $@
	echo "$*"
	echo "PKG=\"`${PKGNAME}`\"" >> $@
	echo "NAME=\"`${NAME}`\"" >> $@
	echo "ARCH=\"${ARCH}\"" >> $@
	echo "VERSION=\"`${FULLVER}`\"" >> $@
	echo "CATEGORY=\"${CATEGORY}\"" >> $@
	echo "VENDOR=\"${VENDOR}\"" >> $@
	echo "EMAIL=\"${EMAIL}\"" >> $@
	echo "PSTAMP=\"${PSTAMP}\"" >> $@
	echo "BASEDIR=\"`${PKGDIR}`\"" >> $@
	echo "CLASSES=\"${CLASSES}\"" >> $@

install.pkgdir.%: build.%
	-mkdir pkgdir.$*
	( cd `${DIR}`/unix ; make prefix=${TOPDIR}/pkgdir.$* \
		exec_prefix=${TOPDIR}/pkgdir.$* install )

build.%:  %.configured
	( cd `${DIR}`/unix && $(MAKE) )

%.configured: %.unpacked
	( cd `${DIR}`/unix && ./configure --enable-gcc --enable-shared \
			--prefix=`${PKGDIR}` )

	sed "/_LIB_SPEC/s/-L\([^ '][^ ']*\)/-L\1 -R\1/" < \
		`${DIR}`/unix/`${NAME}`Config.sh > \
		`${DIR}`/unix/`${NAME}`Config.sh.tmp &&  \
		mv `${DIR}`/unix/`${NAME}`Config.sh.tmp \
		`${DIR}`/unix/`${NAME}`Config.sh

	touch $@

%.unpacked:
	test -f `${NAME}``${FULLVER}`.tar.gz
	rm -f $@
	rm -rf $*
	gzip -cd `${NAME}``${FULLVER}`.tar.gz | tar xvf -
	touch $@

clean.%:
	rm -rf $*.configured $*.unpacked `${DIR}` pkgdir.$* $*.pkg \
		$*.pkg.gz /var/spool/pkg/`${PKGNAME}`
