## ----------------------------------------------------------------------------
##                                                                           --
##                      GNADE  : GNu Ada Database Environment                --
##                                                                           --
##  Filename        : $Source: /cvsroot/gnade/gnade/Makefile,v $
##  Description     : The top level makefile of GNADE
##  Author          : Michael Erdmann <Michael.Erdmann@snafu.de>
##  Created On      : 03-Jan-2001
##  Last Modified By: $Author: merdmann $                                    --
##  Last Modified On: $Date: 2004/03/09 19:20:34 $                           --
##  Status          : $State: Exp $                                          --
##                                                                           --
##  Copyright (C) 2000-2004                                                  --
##									     --
##  GNADE is copyrighted by the persons and institutions enumerated in the   --
##  AUTHORS file. This file is located in the root directory of the          --
##  GNADE distribution.                                                      --
##                                                                           --
##  GNADE is free software;  you can redistribute it  and/or modify it under --
##  terms of the  GNU General Public License as published  by the Free Soft- --
##  ware  Foundation;  either version 2,  or (at your option) any later ver- --
##  sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
##  OUT 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  distributed with GNAT;  see file COPYING.  If not, write --
##  to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
##  MA 02111-1307, USA.                                                      --
##                                                                           --
##  As a special exception,  if other files  instantiate  generics from      --
##  GNADE Ada units, or you link GNADE Ada units or libraries with other     --
##  files  to produce an executable, these  units or libraries do not by     --
##  itself cause the resulting  executable  to  be covered  by the  GNU      --
##  General  Public  License.  This exception does not however invalidate    --
##  any other reasons why  the executable file  might be covered by the      --
##  GNU Public License.                                                      --
##                                                                           --
##  GNADE is implemented to work with GNAT, the GNU Ada compiler.            --
##                                                                           --
## ----------------------------------------------------------------------------
##
##  Functional Description
##  ======================
##  This makefile recursively visits subdirectories for the various GNADE
##  components and performs the make steps there.
##
##  make all       - makes the whole GNADE project
##  make clean     - Clean up the directories but leave the configuration
##                   data
##  make distclean - make a complete clean up
##  make dist      - Create a distribution based on the information as it
##                   is stored in the VERSION file.
##
##  make createuser- Creates a data base user. This traget has been specified
##                   here, because for some data bases it has to be executed
##                   using a different user id.
##
##  Note:
##    The sample database is only generated on systems, where the
##    one of the supported databases is available.
##
##  Restrictions
##  ============
##  None
##
##  References
##  ==========
##  None
##
include make.conf
##
ROOT=/usr/local/gnade

DISTNAME=gnade-src-$(VERSION)

# default target
all clean distclean :: gnade.gpr
	$(MAKE) -C./support $@
	$(MAKE) -C./dbi $@
	$(MAKE) -C./esql $@
	$(MAKE) -C./tools $@
	$(MAKE) -C./samples $@

gnade.gpr: gnade.gpp
	$(ADAPREP) -DDMLINKEROPT="\"$(DMLINKEROPT)\""  		\
		   -DNALINKEROPT="\"$(APP_LINK_FLAGS_NATIVE)\""	\
		   -DROOT=\"$(prefix)\" 			\
		   -DBUILDARCH=\"$(BUILDARCH)\"			\
		   gnade.gpp gnade.gpr

# install all build directories
directories:
	$(INSTALL) -d $(libdir)
	$(INSTALL) -d $(includedir)
	$(INSTALL) -d $(bindir)
	$(INSTALL) -d $(docdir)
	$(INSTALL) -d $(DBPATH)
	$(INSTALL) -d $(SHARED)

##
## Create and delete the db user and the database
##
createuser removeuser removedb createdb:
	$(MAKE) -C./samples/sample_db $@

##
## Create the documentation
##
documentation : $(DOCUMENT_PARTS)

manual:
	$(MAKE) -C doc/build documentation

##
## create a distribution
##
dist :: all documentation
	$(MAKE) -C ./rpm $@
	$(MAKE) package

package ::
	rm -rf $(DISTNAME)
	mkdir -p $(DISTNAME)
	mkdir -p $(DISTNAME)/doc
	cat MANIFEST | cpio -pdmu $(DISTNAME)
	cp -a $(docdir)/* $(DISTNAME)/doc
	cp -a ./doc/releasenotes/*$(VERSION)* $(DISTNAME)/doc
	tar cvzf $(DISTNAME).tar.gz $(DISTNAME)
	zip -r $(DISTNAME).zip $(DISTNAME)
	rm -rf $(DISTNAME)

##
## install the sofware in the system
##
install ::
	./bin/gnadeinst.sh --force


##
## clean up the  distribution
##
distclean :: clean
	$(RM) make.conf
	$(RM) gnade-*.*.tar.gz
	$(RM) gnade-*.*.zip
	$(RM) config.* *~ .configure
	$(RM) $(libdir)
	$(RM) $(bindir)
	$(RM) $(includedir)
	$(RM) $(docdir)
	- $(RM) $(DBPATH)
##
## Cleanup some subdirs but no all!
##
clean distclean ::
ifeq ($(PROCESSOR_ARCHITECTURE),Linux)
	$(MAKE) -C./autoconf $@
endif
##
## Perfom a local clean up
##
clean ::
	$(RM) *~*~ *~
	$(RM) gnade.gpr


##
## publish towards sourceforge
##
publish:
	-ncftpput  upload.sourceforge.net  /incoming $(DISTNAME).zip
	-ncftpput  upload.sourceforge.net  /incoming $(DISTNAME).tar.gz
