#
# ${R_HOME}/src/include/Makefile

VPATH = @srcdir@
srcdir = @srcdir@
top_srcdir = @top_srcdir@

top_builddir = ../..
subdir = src/include

include $(top_builddir)/Makeconf

distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)

## API(1): for .C() and .Call() writers _or_ for alternative front ends.
SRC_HEADERS = R.h S.h Rdefines.h Rembedded.h Rinternals.h Rinterface.h
## API(2) {these are built, system-dependently}:
OBJ_HEADERS = Rconfig.h Rmath.h Rversion.h
## Non-API internal ones:
INT_HEADERS = Defn.h Errormsg.h Fileio.h Graphics.h GraphicsBase.h \
   IOStuff.h Internal.h Parse.h Print.h Rconnections.h \
   Rdynpriv.h Rgraphics.h Rinlinedfuns.h Startup.h rlocale.h

DISTFILES = Makefile.in Makefile.win $(INT_HEADERS) $(SRC_HEADERS) \
  config.h.in stamp-h.in Rmath.h0.in

SUBDIRS = R_ext
SUBDIRS_WITH_NO_BUILD = Rmodules vg

TIMESTAMPS = $(SRC_HEADERS:.h=.ts) $(OBJ_HEADERS:.h=.tsa)

CLEANFILES = $(OBJ_HEADERS) stamp-R $(TIMESTAMPS) libintl.h
DISTCLEANFILES = Makefile Rmath.h0 config.h stamp-h

.SUFFIXES:
.SUFFIXES: .h .ts .tsa

.h.ts:
	@$(INSTALL_DATA) $< $(top_builddir)/include/`basename $<`
	@touch $@
.h.tsa:
	@$(INSTALL_DATA) $< $(top_builddir)/include@R_ARCH@/`basename $<`
	@touch $@


all: Makefile R

Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@

R: Makefile stamp-R $(TIMESTAMPS)
	@for d in $(SUBDIRS); do \
	  (cd $${d} && $(MAKE) $@) || exit 1; \
	done
stamp-R:
	@$(MKINSTALLDIRS) $(top_builddir)/include@R_ARCH@
	@touch $@
$(TIMESTAMPS): stamp-R

config.h: stamp-h
stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
	@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/config.h
	@$(ECHO) timestamp > $@ 2> /dev/null
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-h.in
$(srcdir)/stamp-h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(top_builddir)/aclocal.m4
	@TBD=`cd $(top_builddir); pwd`; \
	  cd $(top_srcdir) && $(AUTOHEADER) -I $${TBD}
	@$(ECHO) timestamp > $@ 2> /dev/null
Rconfig.h: config.h $(top_srcdir)/tools/GETCONFIG
	@$(SHELL) $(top_srcdir)/tools/GETCONFIG > $@
Rversion.h: $(top_srcdir)/VERSION $(top_srcdir)/tools/GETVERSION $(top_builddir)/SVN-REVISION
	@$(SHELL) $(top_srcdir)/tools/GETVERSION > $@

## <NOTE>
## we don't use AC_CONFIG_HEADERS on Rmath.h.in because
## a) that would comment out #undef statements in Rmath.h.in and
## b) Rmath.h should be a self-contained file for standalone Rmath use.
## </NOTE>
Rmath.h: Rmath.h0
	@$(SHELL) $(top_srcdir)/tools/copy-if-change Rmath.h0 $@
Rmath.h0: $(srcdir)/Rmath.h0.in $(top_builddir)/config.status
	@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@

install: installdirs install-intl-@USE_INCLUDED_LIBINTL@
	@for d in $(SUBDIRS); do \
	  (cd $${d} && $(MAKE) $@) || exit 1; \
	done
	@for f in $(SRC_HEADERS); do \
	  $(INSTALL_DATA) $(srcdir)/$${f} "$(DESTDIR)$(rincludedir)"; \
	done
	@for f in $(OBJ_HEADERS); do \
	  $(INSTALL_DATA) $${f} "$(DESTDIR)$(rincludedir)@R_ARCH@"; \
	done
installdirs:
	@$(MKINSTALLDIRS) "$(DESTDIR)$(rincludedir)@R_ARCH@"
install-intl-yes: installdirs
	@$(INSTALL_DATA) libintl.h "$(DESTDIR)$(rincludedir)@R_ARCH@"
install-intl-no:

install-strip:
	$(MAKE) INSTALL_PROGRAM="${INSTALL_PROGRAM} -s" install
uninstall:
	@for d in $(SUBDIRS); do \
	  (cd $${d} && $(MAKE) $@) || exit 1; \
	done
	@rm -Rf "$(DESTDIR)$(rincludedir)"

mostlyclean: clean
clean:
	@for d in $(SUBDIRS); do (cd $${d} && $(MAKE) $@); done
	-@test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean: clean
	@for d in $(SUBDIRS); do (cd $${d} && $(MAKE) $@); done
	-@test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean: distclean

TAGS info dvi check:

distdir: $(DISTFILES)
	@for f in $(DISTFILES); do \
	  test -f $(distdir)/$${f} \
	    || ln $(srcdir)/$${f} $(distdir)/$${f} 2>/dev/null \
	    || cp -p $(srcdir)/$${f} $(distdir)/$${f}; \
	done
	@for d in $(SUBDIRS); do \
	  test -d $(distdir)/$${d} \
	    || mkdir $(distdir)/$${d} \
	    || exit 1; \
	  chmod 755 $(distdir)/$${d}; \
	  (cd $${d} && $(MAKE) distdir) \
	    || exit 1; \
	done
	@for d in $(SUBDIRS_WITH_NO_BUILD); do \
	  ((cd $(srcdir); $(TAR) -c -f - $(DISTDIR_TAR_EXCLUDE) $${d}) \
	      | (cd $(distdir); $(TAR) -x -f -)) \
	    || exit 1; \
	done
