#
# ${R_HOME}/src/main/Makefile
VPATH = @srcdir@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ../..
subdir = src/main
# next is needed for shared BLAS
R_HOME=$(top_builddir)
include $(top_builddir)/Makeconf
SOURCES_C = \
CConverters.c CommandLineArgs.c \
Rdynload.c Renviron.c RNG.c \
apply.c arithmetic.c apse.c array.c attrib.c \
base.c bind.c builtin.c \
character.c coerce.c colors.c complex.c connections.c context.c \
cov.c cum.c \
dcf.c datetime.c debug.c deparse.c deriv.c \
dotcode.c dounzip.c dstruct.c duplicate.c \
engine.c envir.c errors.c eval.c \
format.c fourier.c \
gevents.c gram.c gram-ex.c graphics.c \
identical.c internet.c iosupport.c \
lapack.c list.c localecharset.c logic.c \
main.c mapply.c match.c memory.c model.c \
names.c \
objects.c optim.c optimize.c options.c \
par.c paste.c pcre.c platform.c \
plot.c plot3d.c plotmath.c \
print.c printarray.c printvector.c printutils.c qsort.c \
random.c regex.c registration.c relop.c rlocale.c \
saveload.c scan.c seq.c serialize.c size.c sort.c source.c split.c \
sprintf.c startup.c subassign.c subscript.c subset.c summary.c sysutils.c \
unique.c util.c \
version.c vfonts.c
SOURCES_F = \
xxxpr.f
## If the substitutes are needed, the corresponding objects are put by
## configure in @LIBOBJS@ @ALLOCA@
EXTRA_SOURCES_C = \
Rmain.c \
alloca.c acosh.c asinh.c atanh.c \
mkdtemp.c \
snprintf.c strdup.c strncasecmp.c \
vsnprintf.c xspline.c
DEPENDS = $(SOURCES_C:.c=.d) $(EXTRA_SOURCES_C:.c=.d)
SOURCES = $(SOURCES_C) $(SOURCES_F)
OBJECTS = $(SOURCES_C:.c=.o) $(SOURCES_F:.f=.o) @LIBOBJS@ @ALLOCA@
HEADERS = \
RBufferUtils.h Rregex.h Rstrptime.h \
arithmetic.h apse.h \
basedecl.h \
par-common.c \
qsort-body.c \
rlocale_data.h \
unzip.h
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
DISTFILES = Makefile.in Makefile.win \
$(HEADERS) \
$(SOURCES_C) \
$(EXTRA_SOURCES_C) \
$(SOURCES_F) \
gram.y
ZLIB_CPPFLAGS = @BUILD_ZLIB_TRUE@ -I$(top_srcdir)/src/extra/zlib
BZLIB_CPPFLAGS = @BUILD_BZLIB_TRUE@ -I$(top_srcdir)/src/extra/bzip2
PCRE_CPPFLAGS = @BUILD_PCRE_TRUE@ -I$(top_srcdir)/src/extra/pcre
XDR_CPPFLAGS = @BUILD_XDR_TRUE@ -I$(top_srcdir)/src/extra/xdr
ALL_CPPFLAGS = $(ZLIB_CPPFLAGS) $(BZLIB_CPPFLAGS) $(PCRE_CPPFLAGS) \
$(XDR_CPPFLAGS) $(R_XTRA_CPPFLAGS) $(CPPFLAGS) $(DEFS)
@WANT_R_SHLIB_TRUE@ALL_CFLAGS = $(ALL_CFLAGS_LO)
@WANT_R_SHLIB_TRUE@ALL_FFLAGS = $(ALL_FFLAGS_LO)
## use an explicit library: there might be an unsatisfactory -lz around
R_ZLIBS = @BUILD_ZLIB_TRUE@ ../extra/zlib/libz.a
R_BZLIBS = @BUILD_BZLIB_TRUE@ ../extra/bzip2/libbz2.a
R_PCRE = @BUILD_PCRE_TRUE@ ../extra/pcre/libpcre.a
R_XDR = @BUILD_XDR_TRUE@ ../extra/xdr/libxdr.a
##
## Names in here should use '$(top_builddir)' instead ...
RLIBS = ../unix/libunix.a ../appl/libappl.a ../nmath/libnmath.a
##
EXTRA_LIBS = $(BLAS_LIBS) $(FLIBS) $(R_XTRA_LIBS) $(R_ZLIBS) \
$(R_BZLIBS) $(R_PCRE) $(R_XDR) @LIBINTL@\
$(READLINE_LIBS) $(LIBS)
## find dependencies for both libR and standalone R.bin
DEP_LIBINTL = @BUILD_LIBINTL_TRUE@ ../extra/intl/libintl.a
COMMON_DEPENDENCIES = \
$(R_XTRA_LIBS) $(R_ZLIBS) $(R_BZLIBS) $(R_PCRE) $(R_XDR) \
$(DEP_LIBINTL)
R_binary = R.bin
R_bin_OBJECTS = Rmain.o @WANT_R_SHLIB_FALSE@$(OBJECTS)
@WANT_R_SHLIB_FALSE@R_bin_LDADD = $(RLIBS) $(EXTRA_LIBS)
@WANT_R_SHLIB_TRUE@R_bin_LDADD = -L../../lib@R_ARCH@ -lR @BLAS_SHLIB_TRUE@-lRblas
R_bin_DEPENDENCIES =@WANT_R_SHLIB_FALSE@ $(RLIBS) $(COMMON_DEPENDENCIES)
libR_la = libR$(DYLIB_EXT)
libR_la_OBJECTS = $(OBJECTS)
##
## This should also have `ls ../appl/*.lo ../nmath/*.lo ../unix/*.lo`, but
## of course this will not work when the files do not exist yet :-)
libR_la_LIBADD = $(EXTRA_LIBS)
libR_la_DEPENDENCIES = ../appl/stamp-lo ../nmath/stamp-lo ../unix/stamp-lo \
$(COMMON_DEPENDENCIES)
##
## The next is needed on darwin only at present
LIBR_LDFLAGS = @LIBR_LDFLAGS@
all: Makefile Makedeps R
Makefile: $(srcdir)/Makefile.in \
$(top_builddir)/config.status \
../include/config.h \
../include/Rversion.h \
$(SOURCES_C) $(EXTRA_SOURCES_C)
@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
Makedeps: Makefile $(DEPENDS)
@cat $(DEPENDS) >> Makefile
@touch $@
## This target has been changed to ensure that R.bin and libR get
## installed in the build tree if necessary, even if the corresponding
## objects are not re-made.
## Note that dependencies in the test Makefiles depend on these objects,
## so copy-if-change is used.
R: Makefile
@$(MAKE) Makedeps
@WANT_R_SHLIB_TRUE@ @$(MAKE) install-lib-local
@$(MAKE) install-bin-local
## is this portable? Documented as GNU extension.
../include/config.h ../include/Rversion.h:
(cd $(@D); $(MAKE) $(@F))
$(R_binary): $(R_bin_OBJECTS) $(R_bin_DEPENDENCIES)
$(MAIN_LINK) -o $@ $(R_bin_OBJECTS) $(R_bin_LDADD)
install-bin-local: $(R_binary)
@$(MAKE) rhome="$(abs_top_builddir)" install-bin
## is this portable? Documented as GNU extension.
$(RLIBS):
(cd $(@D); $(MAKE) $(@F))
../extra/bzip2/libbz2.a ../extra/pcre/libpcre.a ../extra/xdr/libxdr.a ../extra/zlib/libz.a ../extra/intl/libintl.a:
(cd $(@D); $(MAKE))
libR: $(libR_la)
$(libR_la): $(libR_la_OBJECTS) $(libR_la_DEPENDENCIES)
$(DYLIB_LINK) $(LIBR_LDFLAGS) -o $@ $(libR_la_OBJECTS) `ls ../appl/*.o ../nmath/*.o ../unix/*.o 2>/dev/null|grep -v /ext-` $(libR_la_LIBADD)
install-lib-local: $(libR_la)
@$(MAKE) rhome="$(abs_top_builddir)" install-lib
../appl/stamp-lo ../nmath/stamp-lo ../unix/stamp-lo:
(cd $(@D); $(MAKE) $(@F))
$(srcdir)/gram.c: @MAINTAINER_MODE_TRUE@ $(srcdir)/gram.y
@echo "re-making gram.c"
$(YACC) $(YFLAGS) $(srcdir)/gram.y
$(SHELL) $(top_srcdir)/tools/move-if-change y.tab.c $(srcdir)/gram.c
install: installdirs
@$(MAKE) install-bin
@if test -f $(libR_la); then $(MAKE) install-lib; fi
installdirs:
@$(MKINSTALLDIRS) "$(Rexecbindir2)"
@$(MKINSTALLDIRS) "$(Rexeclibdir)"
install-bin: installdirs
@$(SHELL) $(top_srcdir)/tools/copy-if-change $(R_binary) "$(Rexecbindir2)/R"
install-lib: installdirs
@$(SHELL) $(top_srcdir)/tools/copy-if-change $(libR_la) "$(Rexeclibdir)/$(libR_la)"
install-strip:
$(MAKE) INSTALL_PROGRAM="${INSTALL_PROGRAM} -s" install
uninstall:
@rm -f "$(Rexecbindir)/exec/$(R_ARCH)/R" "$(Rexecbindir)/R.bin"
@rm -f "$(Rexeclibdir)/libR$(DYLIB_EXT)"
mostlyclean: clean
clean:
@-rm -rf .libs _libs
@-rm -f *core Makedeps *.d *.o *.lo *.la *$(DYLIB_EXT) \
$(R_binary)
distclean: clean
@-rm -f Makefile
maintainer-clean: distclean
@echo "This command is intended for maintainers to use; it"
@echo "deletes files that may need special rules to rebuild"
@-rm -f $(srcdir)/gram.c
tags: TAGS
TAGS: $(SOURCES) $(EXTRA_SOURCES_C) $(HEADERS)
etags $(SOURCES) $(EXTRA_SOURCES_C) $(HEADERS)
## Unused targets
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
## Automagically generated dependencies: