#! /bin/sh

modulesfile=modules
topdir=..
output=$topdir/Makefile

cat > $output  <<EOF
#
#	Makefile for dcmtk (DICOM Toolkit)
#

SHELL= /bin/sh
configdir= config

include \$(configdir)/Makefile.def

EOF
if test -f "$modulesfile" ; then
	tmpmodules=`cat $modulesfile`
else
	tmpmodules=`(cd $topdir; ls)`
fi
for dir in $tmpmodules; do
	if test -d $topdir/$dir ; then
		modules="$modules $dir"
	fi
done

modules=`echo $modules | sed -e "s/config//g" | sed -e "s/doxygen//g" | sed -e "s/CVS//g"`
for module in config $modules; do
	makeall="$makeall ${module}-all"
if test $module != config ; then
	makelibsrcall="$makelibsrcall ${module}-libsrc-all"
fi
	makeinstall="$makeinstall ${module}-install"
	makeinstallbin="$makeinstallbin ${module}-install-bin"
	makeinstalldoc="$makeinstalldoc ${module}-install-doc"
	makeinstalletc="$makeinstalletc ${module}-install-etc"
	makeinstalllib="$makeinstalllib ${module}-install-lib"
	makeinstallinclude="$makeinstallinclude ${module}-install-include"
	makeinstallsupport="$makeinstallsupport ${module}-install-support"
done

cat >> $output <<EOF
all: $makeall

libsrc-all: $makelibsrcall

install: $makeinstall dcmtk-install-doc install-man

install-all: install install-lib install-html

install-bin: $makeinstallbin

install-doc: $makeinstalldoc

install-etc: $makeinstalletc

install-lib: $makeinstalllib

install-include: $makeinstallinclude

install-support: $makeinstallsupport

dcmtk-install-doc:
	\$(configdir)/mkinstalldirs \$(docdir)
	for file in COPYRIGHT FAQ HISTORY; do \\
		\$(INSTALL_DATA) \$\$file \$(docdir) ;\\
	done

install-man:
	(cd doxygen && \$(MAKE) DESTDIR="\$(DESTDIR)" install-man)

install-html:
	(cd doxygen && \$(MAKE) DESTDIR="\$(DESTDIR)" install-html)

man:
	(cd doxygen && \$(MAKE) DESTDIR="\$(DESTDIR)" man)

html:
	(cd doxygen && \$(MAKE) DESTDIR="\$(DESTDIR)" html)

EOF

for module in config $modules; do
	cat >> $output <<EOF
${module}-all:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" all)

${module}-libsrc-all:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" libsrc-all)

${module}-install:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" install)

${module}-install-bin:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" install-bin)

${module}-install-doc:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" install-doc)

${module}-install-etc:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" install-etc)

${module}-install-lib:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" install-lib)

${module}-install-include:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" install-include)

${module}-install-support:
	(cd $module && \$(MAKE) ARCH="\$(ARCH)" DESTDIR="\$(DESTDIR)" install-support)

EOF
done
for tag in dependencies clean distclean ; do
	echo "${tag}:" >> $output
	for module in $modules; do
		echo "	(cd ${module} && \$(MAKE) ${tag})" >> $output
	done
	if test $tag != dependencies ; then
		echo "	(cd doxygen && \$(MAKE) ${tag})" >> $output
	fi
	echo "	-(cd config && \$(MAKE) ${tag})" >> $output
	if test $tag = clean ; then
		echo "	rm -f \$(TRASH)" >> $output
	elif test $tag = distclean ; then
		echo "	rm -f \$(TRASH)" >> $output
	fi
	echo >> $output
done

output=$topdir/configure
cat > $output <<EOF
#! /bin/sh
if test -d config ; then
	if test -f config/$modulesfile ; then
		tmp=\`cat config/modules\`
		modules=\`ls -d \$tmp\`
	else
		for dir in \`ls\`; do
			if test -d \$dir ; then
				modules="\$modules \$dir"
			fi
		done
	fi
	modules=\`echo \$modules | sed -e "s/config//g" | sed -e "s/CVS//g"\`
	modules="config \$modules doxygen"
else
	echo "Cannot find configure directory (config or ../config)"
	exit 1
fi
if test "x--help" = "x\$*"; then
  config/configure --help
else
  for module in \$modules ; do
	echo "Running configure for module \$module."
	(cd \$module && ./configure \$* )
  done
fi
EOF
chmod 755 $output
