The R Project SVN R

Rev

Rev 36685 | Rev 37086 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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

MODULE=lapack
all: 
    @$(MAKE) --no-print-directory -f Makefile.win -s makeMakedeps 
ifneq ($(strip $(USE_ACML)),YES)
    @$(MAKE) --no-print-directory -f Makefile.win ../../../bin/Rlapack.dll 
    @$(MAKE) --no-print-directory -f Makefile.win ../../../lib/libRlapack.a
endif
    @$(MAKE) --no-print-directory -f Makefile.win ../../../modules/$(MODULE).dll

CSOURCES = Lapack.c
OBJS=$(CSOURCES:.c=.o) dllversion.o
LIBSOURCES = dlamc.f dlapack0.f dlapack1.f dlapack2.f dlapack3.f cmplx.f
LIBOBJECTS = $(LIBSOURCES:.f=.o)

# will be overridden on call from src/gnuwin32/Makefile
OPTFLAGS=-O2 -Wall -pedantic -std=gnu99
FOPTFLAGS=-O2

CFLAGS=$(OPTFLAGS) -I../../include -DHAVE_CONFIG_H
FFLAGS=$(FOPTFLAGS)
dlamc-FFLAGS=-ffloat-store

../../../modules/$(MODULE).dll: $(MODULE).dll
    $(MKDIR) -p ../../../modules
    $(CP) $< $@

ifeq ($(strip $(USE_ACML_LAPACK)),YES)
lapack-DLLLIBS=-L../../../lib -lRblas -L"$(ACML_PATH)" -lacml $(FLIBS) -lR
else
lapack-DLLLIBS=-L../../../lib -lRlapack -lRblas -lR
endif

Rlapack-DLLLIBS=-L../../../lib -lR -lRblas $(FLIBS)

$(MODULE).dll: $(OBJS)

dllversion.o: ../../include/Rversion.h

clean:
    @$(RM) Makedeps *.d *.o $(MODULE).def $(MODULE).dll Rlapack.def \
      Rlapack.dll libRlapack.a


# Rlapack.* section
Rlapack.dll: $(LIBOBJECTS)
    @$(ECHO) LIBRARY Rlapack > Rlapack.def
    @$(ECHO) EXPORTS >> Rlapack.def
    @$(NM) $^ > Defs
    @$(SED) -n '/^........ [BCDRT] _/s/^........ [BCDRT] _/ /p' Defs >> $*.def
    @$(RM) Defs
    $(DLL) --shared $(DLLFLAGS) -o $@ Rlapack.def $^ $(Rlapack-DLLLIBS)

libRlapack.a: Rlapack.def

../../../bin/Rlapack.dll: Rlapack.dll
    @$(MKDIR) -p ../../../bin
    @$(CP) $< $@

../../../lib/libRlapack.a: libRlapack.a
    @$(MKDIR) -p ../../../lib
    @$(CP) $< $@

Rlapackrc.o: ../../include/Rversion.h

# Dependencies
DEPS=$(CSOURCES:.c=.d)

makeMakedeps: $(DEPS)
    @$(RM) Makedeps
    @cat $(DEPS) >> Makedeps

-include Makedeps