#
# Top level makefile
# 
DEFINES=
LINUXAOUT="CFLAGS=-b i486-linuxaout" "LDFLAGS=-b i486-linuxaout"
INSTALLDIR = .
EXPORTDIR = ./export

LIBRARIES= IM libjbcvtc wcslib libpar
PACKAGES=   issa scripts agra flatten skyview cmap hcompress sman sug Qref
EXPORTS=    issa scripts agra flatten skyview cmap hcompress sman
NONSKYVIEW= issa flatten cmap sman

what:
	@echo "Use  make solaris   to build the solaris version"
	@echo "Use  make sunos     to build the sunos version"
	@echo "Use  make dec       to build the dec (ultrix) version"
	@echo "Use  make mac       to build the Macintosh OS-X version"
	@echo "Use  make linux     to build the linux version"
	@echo "Use  make linux_aout to build the linux a.out version"
#	@echo "Use  make buildall  to build the IPAC packages"
#	@echo "Use  make all       to build the exported packages"

# build and install for specific platforms
solaris:
	(cd src/jpeg; make -f Makefile.rbh configure)
	(cd src/skyview; make -f Makefile.solaris ${DEFINES} install)
	(cd src/agra; make "EXTRALIBS=-lsocket -lnsl" ${DEFINES} install)
	(cd src/hcompress; make "CFLAGS=-Xc" ${DEFINES} install)
	(cd src/scripts; make  ${DEFINES} install)
	@for i in $(NONSKYVIEW); do (echo changing to directory src/$$i; \
	cd src/$$i ; make ${DEFINES} install );done
mac:
	(cd src/jpeg; make -f Makefile.rbh configure)
	(cd src/skyview; make -f Makefile.mac ${DEFINES} install)
	(cd src/agra; make -f Makefile.mac  ${DEFINES} install)
	(cd src/hcompress; make  ${DEFINES} install)
	(cd src/scripts; make  ${DEFINES} install)
	@for i in $(NONSKYVIEW); do (echo changing to directory src/$$i; \
	cd src/$$i ; make  ${DEFINES} install );done
dec:
	(cd src/jpeg; make -f Makefile.rbh configure)
	(cd src/skyview; make -f Makefile.dec ${DEFINES} install)
	(cd src/agra; make EXTRALIBS= ${DEFINES} install)
	(cd src/hcompress; make  ${DEFINES} install)
	(cd src/scripts; make -f Makefile.dec ${DEFINES} install)
	# Now a kludge for Dec's deficient "make"
	if [ ! -d man ]; then mkdir man; else true;fi
	if [ ! -d man/man1 ]; then mkdir man/man1; else true; fi
	cp -p src/sman/man1/* man/man1
	@for i in $(NONSKYVIEW); do (echo changing to directory src/$$i; \
	cd src/$$i ; make ${DEFINES} install );done

sunos:
	(cd src/jpeg; make -f Makefile.rbh configure)
	(cd src/skyview; make -f Makefile.sunos ${DEFINES} install)
	(cd src/agra; make EXTRALIBS= ${DEFINES} install)
	(cd src/hcompress; make  ${DEFINES} install)
	(cd src/scripts; make ${DEFINES} install)
	@for i in $(NONSKYVIEW); do (echo changing to directory src/$$i; \
	cd src/$$i ; make ${DEFINES} install );done

linux:
	(cd src/jpeg; make -f Makefile.rbh configure)
	(cd src/skyview; make -f Makefile.linux ${DEFINES} install)
	(cd src/agra; make "EXTRALIBS=-L/usr/X11R6/lib" ${DEFINES} install)
	(cd src/hcompress; make  ${DEFINES} install)
	(cd src/scripts; make ${DEFINES} install)
	@for i in $(NONSKYVIEW); do (echo changing to directory src/$$i; \
	cd src/$$i ; make ${DEFINES} install );done

linux_aout:
	(cd src/jpeg; make -f Makefile.rbh configure)
	(cd src/skyview; make -f Makefile.linux "CFLAGS=-b i486-linuxaout" "LDFLAGS=-b i486-linuxaout" install)
	(cd src/agra; make "EXTRALIBS=-L/usr/X11/lib" ${LINUXAOUT} install)
	(cd src/hcompress; make  ${DEFINES} install)
	(cd src/scripts; make ${DEFINES} install)
	@for i in $(NONSKYVIEW); do (echo changing to directory src/$$i; \
	cd src/$$i ; make ${LINUXAOUT} install );done

hp:
	(cd src/jpeg; make -f Makefile.rbh configure)
	(cd src/skyview; make -f Makefile.hp ${DEFINES} install)
	(cd src/agra; make -f Makefile.hp "EXTRALIBS=-L/usr/X11/lib" ${DEFINES} install)
	(cd src/hcompress; make  ${DEFINES} install)
	(cd src/scripts; make ${DEFINES} install)
	@for i in $(NONSKYVIEW); do (echo changing to directory src/$$i; \
	cd src/$$i ; make ${DEFINES} install );done

# build and install exported packages
all: libraries
	@for i in $(EXPORTS); do (cd src/$$i ; make ${DEFINES}) ; done

install:
	@for i in $(EXPORTS); do (cd src/$$i ; make ${DEFINES} install);done

libraries:
	@for i in $(LIBRARIES); do (cd src/$$i ; make ${DEFINES}; \
	  make ${DEFINES} install);done

# IPAC use: build/install executables for local use
buildall: libraries
	@for i in ${PACKAGES}; do (cd src/$$i ; make ${DEFINES}) ; done

installall:
	@for i in ${PACKAGES}; do (cd src/$$i ; make ${DEFINES} install ) ; done

export:
	mkdir $(EXPORTDIR)
	chmod 775 $(EXPORTDIR)
	(cd src/jpeg; make -f Makefile.rbh export)
	@for i in ${LIBRARIES}; do (cd src/$$i ; make ${DEFINES} export ) ; done
	@for i in ${PACKAGES}; do (cd src/$$i ; make ${DEFINES} export ) ; done
	if [ -d $(INSTALLDIR)/bin ] ; then \
	    mv $(INSTALLDIR)/bin $(INSTALLDIR)/bin.solaris ; else true ; \
	    fi ;

allexports: libexports
	@for i in $(EXPORTS); do (cd export/$$i ; make ${DEFINES}) ; done

installexports:
	@for i in $(EXPORTS); do (cd export/$$i ; make ${DEFINES} install);done

libexports:
	@for i in $(LIBRARIES); do (cd export/$$i ; make ${DEFINES}; \
	  make ${DEFINES} install);done
	
$(PACKAGES):
	(cd src/$@ ; $(MAKE) ; $(MAKE) ${DEFINES} install )
clean:
	for i in ${LIBRARIES}; do (cd src/$$i ; make clean ) ; done
	for i in ${EXPORTS}; do (cd src/$$i ; make clean ) ; done
	(cd src/jpeg; make clean)
