# Copyright © 2013 Brandon Invergo <brandon@invergo.net>
#
# This file is part of GSRC.
#
# GSRC 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 3 of the License, or
# (at your option) any later version.
#
# GSRC 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 GSRC.  If not, see <http://www.gnu.org/licenses/>.

NAME = SCM
GARNAME = scm
GARVERSION = 5e7
HOME_URL =  http://people.csail.mit.edu/jaffer/SCM
DESCRIPTION = The SCM Scheme implementation
define BLURB
 SCM is an implementation of Scheme.  This implementation includes
 Hobbit, a Scheme-to-C compiler, which can generate C files whose
 binaries can be dynamically or statically linked with a SCM 
 executable.
endef

######################################################################

MASTER_SITES = $(MASTER_GNU)
MASTER_SUBDIR = $(GARNAME)/
DISTFILES = $(DISTNAME).tar.gz
SIGFILES = $(DISTNAME).tar.gz.sig
PATCHFILES = fix-wildcard.diff
WORKSRC = $(EXTRACTDIR)/scm/
CONFIGURE_SCRIPTS = $(WORKSRC)/configure
BUILD_SCRIPTS = $(WORKSRC)/Makefile 
INSTALL_SCRIPTS = $(WORKSRC)/Makefile-DESTDIR

BUILDDEPS = 
LIBDEPS = slib termcap readline

######################################################################

include ../../gar.mk
include config.mk

PATCHOPTS = -p2
CONFIGURE_ARGS += --oldincludedir=$(prefix)/include

configure-$(WORKSRC)/configure:
	cd $(WORKSRC) && $(CONFIGURE_ENV) ./configure $(CONFIGURE_ARGS)
	$(MAKECOOKIE)

post-configure:
#	fix destdir mess
	sed -i -e 's|\(\$${exec_prefix}\)|\1/|' $(WORKSRC)config.status
	$(MAKECOOKIE)


pre-build:
#	change the install-info command
	sed -i -e 's|ginstall-info|install-info|g' $(WORKSRC)Makefile
#	pass CFLAGS and LDFLAGS to the build script
	sed -i -e 's|\(BUILD = ./build -hsystem\)|\1 --linker-options=$(LDFLAGS) --compiler-options=$(CFLAGS)|' $(WORKSRC)Makefile 
#	don't make dscm5 support since it requires root and makes changes to /proc. comment this out 
#	if you want
	sed -i -e 's|\(\$$(MAKE) dscm5\)|#\1|' $(WORKSRC)Makefile
#	more destdir fixing, should be redundant but it doesn't seem to be
	sed -i -e 's|\(\$$(DESTDIR)\)|\1/|g' $(WORKSRC)Makefile
#	define location of SLIB
	echo '(define (library-vicinity) "$(prefix)/lib/slib/")' > $(WORKSRC)require.scm
#	build scmlit
	cd $(WORKSRC) && $(BUILD_ENV) make scmlit $(BUILD_ARGS)
	$(MAKECOOKIE)

build-$(WORKSRC)/Makefile:
#	the build instructions aren't clear but this seems to work
#	bootstrap basic scm build
	cd $(WORKSRC) && $(BUILD_ENV) make scm libscm.a $(BUILD_ARGS)
#	build the real deal
	cd $(WORKSRC) && $(BUILD_ENV) ./build --compiler-options=-L$(prefix)/lib --linker-options=-L$(prefix)/lib
#	make the rest
	cd $(WORKSRC) && $(BUILD_ENV) make all $(BUILD_ARGS)
	$(MAKECOOKIE)

