Rev 15193 | Rev 15355 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
include MkRulesinclude RWVERSIONall: rbuild rpackage rdocs## configuration macrosHELP = YESWINHELP = CHM# NO, CHM, BOTHLEA_MALLOC=YES# Set to YES and specify the path if you want to use the ATLAS BLAS.USE_ATLAS=NOATLAS_PATH=/R/ATLAS/lib/WinNT_PIIPACKAGES = base ctest eda lqs modreg mva nls splines stepfun tsALLPACKAGES = $(PACKAGES) tcltkRHOME = $(shell perl pwd.pl ../..)# must be absolute pathRLIB = $(RHOME)/libraryPKGDIR = $(RHOME)/src/libraryPKGD = $(shell perl pwd.pl $(PKGDIR))# must be absolute pathOPTFLAGS=-O2 -Wall -pedantic## use FOPTFLAGS where complex*16 is used.FOPTFLAGS=-O2 -Wallifdef DEBUGOPTFLAGS+=-gFOPTFLAGS+=-gDLLFLAGS=elseDLLFLAGS=-sendifR-DLLFLAGS = -mwindowsR-DLLLIBS =-L. $(FLIBS) -lcomctl32 -lversionifeq ($(strip $(USE_ATLAS)),YES)R-DLLLIBS +=-L$(ATLAS_PATH) -lcblas -lf77blas -latlasFLIBS +=-L$(ATLAS_PATH) -lcblas -lf77blas -latlasendifSOURCES = $(filter-out malloc.c,$(wildcard *.c *.f))OBJS = $(SOURCES:.c=.o)MAINLIBS = libmain.a libappl.a libmath.aEXTRALIBS = ga.a gl.a xdr.a em.a bitmap/zlib/libz.aLIBFILES = $(foreach i, $(ALLPACKAGES), ../../library/$i) ../../library/R.cssPKGS = $(foreach i,$(PACKAGES),pkg-$i)PKGCLEAN = $(foreach i,$(ALLPACKAGES),pkgclean-$i)# flags to ensure that Doug Lea's malloc is used:ifdef LEA_MALLOCextra-CFLAGS+=-DLEA_MALLOCOBJS-EXTRA=malloc.oendif.PHONY: clean veryclean rlibs fixfiles front-ends# separate as Tcl/Tk headers are needed.tcl:$(MAKE) STAMP=NO pkg-tcltkCFLAGS = $(OPTFLAGS) -I../include -I. -DHAVE_CONFIG_HFFLAGS = $(OPTFLAGS)rbuild: fixfiles rlibs makeMakedeps ../../bin/R.dll libR.a CHTML \../include/globalvar.h front-ends COPYRIGHTS rmodulesrpackage: fixed/fixdesc ../../library/R.css$(MAKE) STAMP=NO $(PKGS)rinstaller:$(MAKE) -C installer RPREFIX=$(RPREFIX)rlibs:$(MAKE) -C ../appl OPTFLAGS='$(OPTFLAGS)' USE_ATLAS=$(USE_ATLAS) -f Makefile.win$(MAKE) -C ../main OPTFLAGS='$(OPTFLAGS)' -f Makefile.win$(MAKE) -C ../nmath OPTFLAGS='$(OPTFLAGS)' -f Makefile.win$(MAKE) -C ./graphapp$(MAKE) -C ./getline$(MAKE) -C ../extra/xdr$(MAKE) -C ./mathrmodules: libRm.a$(MAKE) -C ../modules OPTFLAGS='$(OPTFLAGS)' FOPTFLAGS='$(FOPTFLAGS)' \USE_ATLAS=$(USE_ATLAS) ATLAS_PATH=$(ATLAS_PATH) -f Makefile.winCOPYRIGHTS: $(RHOME)/COPYRIGHTS COPYRIGHTS.wincat $^ > $@fixfiles:$(MKDIR) -p ../../bin$(MAKE) -C ./fixed$(CP) -pr unzip ../..$(RM) ../../unzip/*.hfixed/fixdesc:sh fixed/GETDESC $(ALLPACKAGES)dllversion.o: ../include/Rversion.hR.dll: R.a $(OBJS-EXTRA) $(MAINLIBS) $(EXTRALIBS) dllversion.oRdll: makeMakedeps ../../bin/R.dll../../bin/R.dll: fixfiles rlibs R.dll$(MKDIR) -p ../../bin$(CP) R.dll ../../bin/front-ends: libR.a$(MAKE) -C front-endsR.a: $(OBJS)@$(ECHO) -------- Building $@ --------$(AR) cr R.a $^$(RANLIB) R.a# R.dll exports all global symbols BUT import library (libR.a)# only (all functions) + (global vars listed in exported-vars))libR.a: R.exp$(DLLTOOL) $(DLLTOOLFLAGS) $(R-DLLTOOLFLAGS) --dllname R.dll --def R.exp --output-lib libR.aR.exp: R.exp1(diff R.exp R.exp1 > /dev/null) || $(CP) R.exp1 R.expR.exp1: R.a $(MAINLIBS) $(EXTRALIBS) exported-vars$(ECHO) EXPORTS > $@$(NM) R.a $(MAINLIBS) $(EXTRALIBS) > RDefs$(SED) -n '/^........ [T] _/s/^........ [T] _/ /p' RDefs >> $@$(CAT) exported-vars >> $@$(RM) RDefs# A version needed for the modules that uses R.dll's malloc/.../free:libRm.a: Rm.exp$(DLLTOOL) $(DLLTOOLFLAGS) $(R-DLLTOOLFLAGS) --dllname R.dll --def Rm.exp --output-lib libRm.aRm.exp: Rm.exp1(diff Rm.exp Rm.exp1 > /dev/null) || $(CP) Rm.exp1 Rm.expRm.exp1: R.a $(OBJS-EXTRA) $(MAINLIBS) $(EXTRALIBS) exported-vars$(ECHO) EXPORTS > $@$(NM) R.a $(OBJS-EXTRA) $(MAINLIBS) $(EXTRALIBS) > RDefs$(SED) -n '/^........ [T] _/s/^........ [T] _/ /p' RDefs >> $@$(CAT) exported-vars >> $@$(RM) RDefs# avoid building globalvar.h with errors../include/globalvar.h: exported-varsperl -n makeimps.pl exported-vars > $@../../library/R.css: ../../doc/html/R.css$(CP) $< $@bitmap/zlib/libz.a:$(MAKE) -C bitmap buildzlibrdocs:@$(MAKE) -C ../../doc/manual -f Makefile.win html# ===== Packages ======CHTML:ifeq ($(strip $(HELP)),YES)ifeq ($(strip $(WINHELP)),CHM)$(MAKE) -C ./help -f MkChmDllendififeq ($(strip $(WINHELP)),BOTH)$(MAKE) -C ./help -f MkChmDllendifendifbase-HELP = ziponlynls-HELP = ziponlyts-HELP = ziponlybase-ZIPDATA = zipts-ZIPDATA = zipbundle-%:$(PERL) fixed/dobundle.pl $* $(PKGD) $(RLIB)pkg-%: libR.a #../include/globalvar.h$(MAKE) DLLNM=$($*-DLLNM) FLIBS="$(FLIBS)" EXTRADOCS=$($*-EXTRADOCS) \-C $(PKGDIR)/$* PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) \-f $(RHOME)/src/gnuwin32/MakePkg@if test -d $(RLIB)/$*/data ; then \$(MAKE) $($*-ZIPDATA)data-$* ; \fiifeq ($(strip $(HELP)),YES)$(MAKE) -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) $($*-HELP)help-$*$(MAKE) -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) contents-$*ifeq ($(strip $(WINHELP)),CHM)$(MAKE) -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) chm-$*endififeq ($(strip $(WINHELP)),BOTH)$(MAKE) -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) winhlp-$* # also makes chmendifendifpkgclean-%:$(MAKE) DLLNM=$($*-DLLNM) EXTRADOCS=$($*-EXTRADOCS) RHOME=$(RHOME) \-C $(PKGDIR)/$* PKG=$* -f $(RHOME)/src/gnuwin32/MakePkg cleanpkgcheck-%:@$(ECHO) -------- Testing package $* ---------@mkdir -p $(PKGDIR)/$*/check@$(MAKE) -C $(PKGDIR)/$*/check PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) \-f $(RHOME)/src/gnuwin32/check/PkgCheck@if test -d $(PKGDIR)/$*/tests ; then \$(MAKE) -C $(PKGDIR)/$*/tests PKG=$* RHOME=$(RHOME) RLIB=$(RLIB) \-f $(RHOME)/src/gnuwin32/check/PkgCheck tests;\fiziphelp-%:$(MAKE) -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) ziphelp-$*ziponly-%:$(MAKE) -C ./help RHOME=$(RHOME) PKGDIR=$(PKGD) RLIB=$(RLIB) ziponlyhelp-$*zipdata-%:@echo " zipping data"@(cd $(RLIB)/$*/data; \if test -f Rdata.zip ; then \unzip -qou Rdata; \fi; \$(RM) Rdata.zip filelist ; \ls -1 > filelist; \zip -rmq9X Rdata * -x filelist 00Index)data-%:@echo " not zipping data"# ===== cleaning ======clean: cleanwin $(PKGCLEAN)$(RM) -f ../*/*.o $(WINOBJS) *.a ../*/*.d ../*/Makedeps fixed/fixdesc-$(MAKE) -C ../../doc/manual -f Makefile.win distclean-$(MAKE) -C ../nmath/standalone -f Makefile.win distclean-$(MAKE) -C ../modules -f Makefile.win clean-$(MAKE) -C ../../tests -f Makefile.win cleandistclean veryclean: clean$(RM) R.exp Rm.exp globalvar.h$(RM) -r ../../bin ../../library ../../modules$(RM) ../include/config.h ../include/psignal.h \../include/Rconfig.h ../include/version.h$(RM) ../library/*/src/*.o ../library/*/src/*.a$(RM) ../library/*/src/*.dll$(RM) -r ../library/*/check$(RM) ../../doc/html/search/index.txt \../../doc/html/packages.html ../../doc/html/rwin.html \../../doc/html/rw-FAQ.html ../../doc/html/search/SearchEngine.html$(RM) ../../etc/Rconsole ../../etc/Rdevga ../../etc/Rprofile \../../etc/rgb.txt ../../share/make/tests.mk \../include/FFDecl.h ../include/FFTab.h ../include/Platform.h \../include/globalvar.h ../../tests/*.Rout ../../tests/*.Rout.fail-$(MAKE) -C installer ISdistcleancleanwin:$(RM) *.o *.exe *.dll *.a *~ \#*\# rw*.zip R.def R.exp1 Rm.exp1\.RData .Rhistory Makedeps *.d$(MAKE) -C graphapp clean$(MAKE) -C fixed clean$(MAKE) -C getline clean$(MAKE) -C help clean$(MAKE) -C front-ends clean$(MAKE) -C ../extra/xdr clean$(MAKE) -C math clean$(MAKE) -C bitmap clean-$(MAKE) -C installer clean ISclean# ===== testing ======# testscheck test: test-Specific pkgteststest-Specific:-@$(MAKE) -C $(RHOME)/tests -f $(RHOME)/tests/Makefile.win clean-@$(MAKE) -C $(RHOME)/tests -f $(RHOME)/tests/Makefile.win RHOME=$(RHOME)PKGS-CHK = $(foreach i, $(PACKAGES), pkgcheck-$i)pkgtests: $(PKGS-CHK)# ===== documentation ======docs manuals:@$(MAKE) -C $(RHOME)/doc/manual -f Makefile.win clean@$(MAKE) -C $(RHOME)/doc/manual -f Makefile.win R_PKGS='$(ALLPACKAGES)'@$(MAKE) ziponly-base## ===================== Maintainer targets ========================RVER = $(shell cut -d' ' -f1 ../../VERSION | sed -n 1p)docfiles: INSTALL FAQsSEDVER = -e s/@RVER@/$(RVER)/g -e s/@RWVER@/$(RPREFIX)/gINSTALL: INSTALL.in ../../VERSION RWVERSION$(SED) $(SEDVER) INSTALL.in > INSTALLFAQs: rw-faq fixed/html/rw-FAQ.htmlfixed/html/rw-FAQ.html: rw-FAQ.texi ../../VERSION RWVERSION@$(SED) $(SEDVER) $< > tmp.teximakeinfo --html --no-headers --number-sections -o tmp.html tmp.texi-tidy tmp.html > $@ 2> /dev/null@$(RM) tmp.texi tmp.htmlrw-faq: rw-FAQ.texi ../../VERSION RWVERSION$(SED) $(SEDVER) $< | \makeinfo --no-headers --number-sections -o $@bitmapdll:$(MAKE) -C bitmapdistribution: bindist packagedist docsdistbindist: tcl bitmapdll docfiles$(RM) -r $(RPREFIX)$(MKDIR) $(RPREFIX)$(CP) -pr ../../bin ../../modules ../../afm ../../unzip $(RPREFIX)$(MKDIR) $(RPREFIX)/library$(CP) -pr $(LIBFILES) $(RPREFIX)/library# morley.tab is needed for R-intro Appendix A$(CP) -p ../library/base/data/morley.tab $(RPREFIX)/library/base/data$(RM) $(RPREFIX)/*/Makefile.in(cd $(RPREFIX)/bin; $(RM) Rcmd.exe INSTALL REMOVE SHLIB build check \massage-Examples Rd2dvi.sh Rd2txt Rdconv Rdiff.sh Rdindex \Sd2Rd Rprof)$(MKDIR) $(RPREFIX)/etc$(CP) -p ../../etc/Rprofile $(RPREFIX)/etc/Rprofile$(CP) -p ../../etc/Rconsole $(RPREFIX)/etc/Rconsole$(CP) -p ../../etc/Rdevga $(RPREFIX)/etc/Rdevga$(CP) -p ../../etc/rgb.txt $(RPREFIX)/etc/rgb.txt$(MKDIR) -p $(RPREFIX)/doc/manual $(RPREFIX)/share/texmf$(CP) -pr ../../doc/html $(RPREFIX)/doc$(CP) -p ../../doc/manual/*.html $(RPREFIX)/doc/manual$(CP) -pr ../../share/texmf $(RPREFIX)/share$(CP) -p ../../AUTHORS ../../COPYING COPYRIGHTS ../../FAQ ../../NEWS \../../THANKS ../../Y2K $(RPREFIX)$(SED) -e s/@RWVER@/$(RPREFIX)/g \-e s/@RVER@/$(RVER)/g readme > $(RPREFIX)/README$(CP) -p rw-faq $(RPREFIX)/rw-FAQ$(CP) -p CHANGES README.Rterm $(RPREFIX)# convert docs and batch files to CRLF: might already be on Windows, though.ifeq ($(strip $(BUILD)),CROSS)zip -l dosfiles.zip $(RPREFIX)/* $(RPREFIX)/bin/*.batunzip -ao dosfiles.zipelsezip dosfiles.zip $(RPREFIX)/* $(RPREFIX)/bin/*.batunzip -o dosfiles.zipendif$(RM) dosfiles.zip$(RM) $(RPREFIX)b1.zip $(RPREFIX)b2.zip $(RPREFIX)h.zip \$(RPREFIX)w.zip $(RPREFIX)l.zip $(RPREFIX)ch.zip$(RM) anindex.zipzip -mrX anindex.zip $(RPREFIX)/library/*/help/AnIndexzip -mr9X $(RPREFIX)h.zip $(RPREFIX)/library/*/helpunzip anindex.zip$(RM) anindex.zip$(RM) $(RPREFIX)/doc/manual/R-FAQ.htmlzip -rm9X $(RPREFIX)w.zip $(RPREFIX)/doc/html \$(RPREFIX)/doc/manual/*.html \$(RPREFIX)/library/*/html $(RPREFIX)/library/R.css-zip -rm9X $(RPREFIX)ch.zip $(RPREFIX)/library/*/chtml \$(RPREFIX)/bin/Rchtml.dll# $(RM) $(RPREFIX)/library/*/winhlp/*.GID# -zip -rm9X $(RPREFIX)wh.zip $(RPREFIX)/library/*/winhlpzip -rm9X $(RPREFIX)l.zip $(RPREFIX)/library/*/latex $(RPREFIX)/share/texmf$(RM) -r $(RPREFIX)/docmkdir -p $(RPREFIX)/doc/html$(CP) -p ../../doc/html/faq.html ../../doc/html/rw-FAQ.html \$(RPREFIX)/doc/htmlzip -rm9X $(RPREFIX)b2.zip $(RPREFIX)/library $(RPREFIX)/doc/htmlzip -r9X $(RPREFIX)b1.zip $(RPREFIX)$(RM) -rf $(RPREFIX)#taken from ../include/Makefile.inSRC_HEADERS = R.h S.h Rdefines.h Rgraphics.h Rinternals.h Rmath.hOBJ_HEADERS = Rconfig.h Rversion.hGW32_HEADERS = globalvar.hpackagedist:$(RM) -r $(RPREFIX)sp.zip $(RPREFIX)$(MKDIR) -p $(RPREFIX) $(RPREFIX)/bin $(RPREFIX)/etc \$(RPREFIX)/doc $(RPREFIX)/doc/html $(RPREFIX)/share \$(RPREFIX)/src/include $(RPREFIX)/src/library \$(RPREFIX)/src/gnuwin32/fixed$(CP) ../../doc/html/logo.jpg $(RPREFIX)/doc/html$(CP) ../../doc/KEYWORDS* $(RPREFIX)/doc$(CP) -p exported-vars R.exp MkRules MakePkg MakeDll \pwd.pl makeDllRes.pl install-save.sh $(RPREFIX)/src/gnuwin32$(CP) -p Makefile.packages $(RPREFIX)/src/gnuwin32/Makefile$(CP) fixed/dobundle.pl $(RPREFIX)/src/gnuwin32/fixed$(CP) -pr help check $(RPREFIX)/src/gnuwin32$(RM) $(RPREFIX)/src/gnuwin32/help/*.c \$(RPREFIX)/src/gnuwin32/help/MkChmDll$(MAKE) -C $(RPREFIX)/src/gnuwin32/help clean$(CP) -p $(foreach i,$(SRC_HEADERS) $(OBJ_HEADERS) $(GW32_HEADERS), \../include/$i) $(RPREFIX)/src/include$(CP) -pr ../include/R_ext $(RPREFIX)/src/include$(SED) -e 3,5d readme.packages > $(RPREFIX)/readme.packages$(CP) ../../COPYING.LIB $(RPREFIX)$(CP) -r ../../share/make ../../share/perl ../../share/texmf \$(RPREFIX)/share$(CP) ../../bin/INSTALL ../../bin/REMOVE ../../bin/SHLIB \../../bin/build ../../bin/check ../../bin/massage-Examples \../../bin/Rd2dvi.sh ../../bin/Rd2txt ../../bin/Rdconv \../../bin/Rdindex ../../bin/Rdiff.sh \../../bin/Sd2Rd ../../bin/Rprof ../../bin/Rcmd.exe \$(RPREFIX)/bin$(CP) ../../share/make/tests.mk $(RPREFIX)/share/make$(CP) -p graphapp/graphapp.h $(RPREFIX)/src/include$(CP) -pr windlgs $(RPREFIX)/src/libraryzip -r9X $(RPREFIX)sp.zip $(RPREFIX)$(RM) -r $(RPREFIX)docsdist: docs$(RM) -r $(RPREFIX)$(RM) -f $(RPREFIX)d1.zip $(RPREFIX)d2.zip$(MKDIR) $(RPREFIX) $(RPREFIX)/doc $(RPREFIX)/doc/manual$(CP) -pr $(RHOME)/doc/manual/*.pdf $(RPREFIX)/doc/manualzip -rm9X $(RPREFIX)d2.zip $(RPREFIX)/doc/manual/refman.pdfzip -rm9X $(RPREFIX)d1.zip $(RPREFIX)/doc/manual \-x $(RPREFIX)/doc/manual/R-FAQ.pdf$(RM) -r $(RPREFIX)## ============= End of maintainer targets ========================# DependenciesCSOURCES=$(wildcard *.c)DEPS=$(CSOURCES:.c=.d)makeMakedeps: $(DEPS)@$(RM) Makedeps@cat $(DEPS) >> Makedeps-include Makedeps