blob: 67537d88d83d16165d5b823cb9607e189ec62a57 [file] [log] [blame]
#-*- Makefile -*-
include ../../gnuwin32/MkRules
CFLAGS = -O3 -Wall -pedantic $(EOPTS)
ifdef DEBUG
CFLAGS += $(G_FLAG)
DLLFLAGS =
else
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 $@
ifdef USE_IMPLIBS
test: test-static.exe
else
test: test-static.exe test.exe
endif
## see R-admin for alternatives
test.exe: test.c
$(CC) -I../../include -DRMATH_DLL -o $@ $< -L. Rmath.dll
./$@
test-static.exe: test.c
$(CC) -I../../include -o $@ $< -L. libRmath.a
./$@
check: distclean
@rm -f check.log
@if test -n "${TEST_MC_CORES}"; then \
echo "using ${TEST_MC_CORES} cores" > check.log; \
$(MAKE) -f Makefile.win -j ${TEST_MC_CORES} all >> check.log 2>&1; \
$(MAKE) -f Makefile.win test >> check.log 2>&1; \
else \
$(MAKE) -f Makefile.win all test > check.log 2>&1; \
fi
@$(ECHO) "check output can be found in src/nmath/standalone/check.log"
clean:
@$(RM) $(SOURCES_NMATH) *.o *.d *.def Makedeps stamp-src
distclean: clean
@$(RM) *.a Rmath.dll test*.exe check.log
DEFS = -DHAVE_CONFIG_H -DMATHLIB_STANDALONE
CPPFLAGS = -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 lgammacor.c gammalims.c stirlerr.c bd0.c \
gamma.c lgamma.c gamma_cody.c beta.c lbeta.c polygamma.c cospi.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 $(SYMPAT) >> $@
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