The R Project SVN R

Rev

Rev 40043 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

#-*- Makefile -*-
include ../../gnuwin32/MkRules

ifdef DEBUG
 OPTFLAGS=$(G_FLAG) -O3 -Wall
 DLLFLAGS=
else
 OPTFLAGS=-O3 -Wall -pedantic
 DLLFLAGS=-s
endif

.PHONY: cpy test

all: shared

static:
    $(MAKE) -f Makefile.win cpy
    $(MAKE) -f Makefile.win makeMakedeps
    $(MAKE) -f Makefile.win libRmath.a

shared: static
    $(MAKE) -f Makefile.win Rmath.dll

implib: libRmath.dll.a

cpy: stamp-src

stamp-src: $(SOURCES_NMATH)
    $(CP) -p ../*.c .
    touch $@

test: test.exe test-static.exe

test-CFLAGS=-I../../include
## see README for alternatives
test.exe: test.o
    $(CC) -o $@ $< -L. Rmath.dll
    ./$@
test-static.exe: test.o
    $(CC) -o $@ $< -L. libRmath.a
    ./$@

clean:
    $(RM) $(SOURCES_NMATH) *.o *.d *.def Makedeps stamp-src
distclean: clean
    $(RM) *.a Rmath.dll test*.exe

DEFS = -DHAVE_CONFIG_H -DMATHLIB_STANDALONE
CFLAGS=$(OPTFLAGS) -I.. -I../../include $(DEFS)

SOURCES_NMATH = \
    mlutils.c \
    d1mach.c i1mach.c \
    fmax2.c fmin2.c fprec.c fround.c ftrunc.c \
    sign.c fsign.c \
    imax2.c imin2.c \
    chebyshev.c log1p.c expm1.c lgammacor.c gammalims.c stirlerr.c bd0.c \
    gamma.c lgamma.c gamma_cody.c beta.c lbeta.c polygamma.c \
    bessel_i.c bessel_j.c bessel_k.c bessel_y.c \
    choose.c \
    snorm.c sexp.c \
    dgamma.c pgamma.c qgamma.c rgamma.c \
    dbeta.c pbeta.c qbeta.c rbeta.c \
    dunif.c punif.c qunif.c runif.c \
    dnorm.c pnorm.c qnorm.c rnorm.c \
    dlnorm.c plnorm.c qlnorm.c rlnorm.c \
    df.c pf.c qf.c rf.c dnf.c \
    dt.c pt.c qt.c rt.c dnt.c \
    dchisq.c pchisq.c qchisq.c rchisq.c rnchisq.c \
    dbinom.c pbinom.c qbinom.c rbinom.c \
    rmultinom.c \
    dcauchy.c pcauchy.c qcauchy.c rcauchy.c \
    dexp.c pexp.c qexp.c rexp.c \
    dgeom.c pgeom.c qgeom.c rgeom.c \
    dhyper.c phyper.c qhyper.c rhyper.c \
    dnbinom.c pnbinom.c qnbinom.c rnbinom.c \
    dpois.c ppois.c qpois.c rpois.c \
    dweibull.c pweibull.c qweibull.c rweibull.c \
    dlogis.c plogis.c qlogis.c rlogis.c \
    dnchisq.c pnchisq.c qnchisq.c \
    dnbeta.c pnbeta.c qnbeta.c \
    pnf.c pnt.c qnf.c qnt.c \
    ptukey.c qtukey.c \
    toms708.c wilcox.c \
    signrank.c
DEPENDS = $(SOURCES_NMATH:.c=.d)

libRmath.a: sunif.o $(SOURCES_NMATH:.c=.o)
Rmath.def: sunif.o $(SOURCES_NMATH:.c=.o)
    $(ECHO) EXPORTS > $@
    $(NM) $^ | $(SED) -n 's/^........ [BCDRT] _/ /p' >> $@
Rmath.dll: libRmath.a Rmath.def
    $(DLL) $(DLLFLAGS) --shared -o $@ Rmath.def $^
libRmath.dll.a: Rmath.def

# Dependencies
makeMakedeps: $(DEPENDS)
    @$(RM) Makedeps
    @cat $(DEPENDS) >> Makedeps

-include Makedeps