###########################################################################
#
# Makefile -- Makefile for packages included with Greenstone buildtime
#
# A component of the Greenstone digital library software
# from the New Zealand Digital Library Project at the
# University of Waikato, New Zealand.
#
# Copyright (C) 2000 New Zealand Digital Library Project
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
###########################################################################


# PACKAGEDIRS contains the packages that we want to make and install.  It
# is assumed that each package will have at least four rules: all, install,
# clean, and distclean.
# openssl is configured and compiled during the configure stage by
# build-src/packages/configure. make clean and make distclean happen here.

# For darwin, the end of make install will also cascade-make the Crypt::LE perl
# package (configure-compile-install all its dependencies and Crypt::LE too)
# used for https certification on macs.
# Likewise, at make clean's end, clean is also run on Crypt::LE, uninstalling it.
# Building process of Crypt::LE is dependent on wget being installed,
# so have to do it at end of make install, rather than at end of make all.

PACKAGEDIRS = 

USE_WVWARE=1
ifeq ($(USE_WVWARE), 1)
PACKAGEDIRS += wv/wv-gs 
endif

#cpan/Canary-Stability-2013 came before JSON-XS
PACKAGEDIRS +=	rtftohtml/rtftohtml_src pdftohtml/pdftohtml_gs \
		wget/wget-1.17.1-gs cpan/XML-Parser-2.41 \
		cpan/Digest-MD5-2.55 cpan/Digest-SHA-5.92 cpan/Text-CSV-1.99 \
		cpan/JSON-4.10 cpan/JSON-XS-4.03 \
		xlhtml/xlhtml-0.4.9.0 isis-gdl html-tidy/tidy

OPENSSL_PKG = openssl/openssl-1.0.2l
#OPENSSL_PKG = openssl/openssl-1.1.0f
# When doing make clean, remove OpenSSL products too
OPENSSL_PRODUCTS = certs man misc private openssl.cnf
# The key OpenSSL products bin, include, lib folders no longer live in
# gs2build/bin/linux, but in the same location as the rest, so add that:
OPENSSL_PRODUCTS += bin include lib

all:
	for odir in $(PACKAGEDIRS); do \
          if [ -d $$odir ] ; then \
            echo making $@ in $$odir; \
            (cd $$odir && $(MAKE) $(MDEFINES) $@) || exit 1; \
          fi \
        done

install:
	for idir in $(PACKAGEDIRS); do \
          if [ -d $$idir ] ; then \
            echo installing $$idir; \
            (cd $$idir && $(MAKE) install) || exit 1; \
          fi \
        done
	if [[ "x$(GSDLOS)" = "xdarwin" ]]; then \
	  (cd ../../perllib/cpan && ./compile-zerossl.sh || exit 0) ; \
	fi

clean:
	for subdir in $(PACKAGEDIRS) $(OPENSSL_PKG); do \
          if [ -d $$subdir ] ; then \
            echo cleaning $@ in $$subdir; \
            (cd $$subdir && $(MAKE) clean || exit 0) ; \
          fi \
        done
	if [[ "x$(GSDLOS)" = "xdarwin" ]]; then \
	  (cd ../../perllib/cpan && ./compile-zerossl.sh --clean || exit 0) ; \
	fi

distclean:
	for subdir in $(PACKAGEDIRS) $(OPENSSL_PKG); do \
          if [ -d $$subdir ] ; then \
            echo cleaning $@ in $$subdir; \
            (cd $$subdir && $(MAKE) distclean || exit 0) ; \
          fi \
        done
	(cd openssl && rm -rf $(OPENSSL_PRODUCTS) || exit 0)
	rm -rf $(OPENSSL_PKG)
