The R Project SVN R

Rev

Rev 25046 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 25046 Rev 27308
1
#-*- Makefile -*-
1
#-*- Makefile -*-
2
all:  libR makeMakedeps $(DLLNAME).dll
2
all:  libR makeMakedeps $(DLLNAME).dll
3
 
3
 
4
# set this in Makevars.win to supply your own resource file
4
# set this in Makevars.win to supply your own resource file
5
RCNAME=${DLLNAME}_res
5
RCNAME=${DLLNAME}_res
6
# set this (e.g. in SHLIB) to suppress adding version info to the DLL
6
# set this (e.g. in SHLIB) to suppress adding version info to the DLL
7
RCOBJ=$(RCNAME).o
7
RCOBJ=$(RCNAME).o
8
 
8
 
9
# Don't use SOURCES as this get passed on for libR.
9
# Don't use SOURCES as this get passed on for libR.
10
CFSOURCES=$(wildcard -f *.c *.f)
10
CFSOURCES=$(wildcard -f *.c *.f)
11
CSOURCES=$(wildcard -f *.c)
11
CSOURCES=$(wildcard -f *.c)
12
CXXSOURCES=$(wildcard -f *.cc *.cpp *.C)
12
CXXSOURCES=$(wildcard -f *.cc *.cpp *.C)
13
OBJSA=$(foreach i,$(CFSOURCES) $(CXXSOURCES),$(basename $i).o)
13
OBJSA=$(foreach i,$(CFSOURCES) $(CXXSOURCES),$(basename $i).o)
14
 
14
 
15
include $(RHOME)/src/gnuwin32/MkRules
15
include $(RHOME)/src/gnuwin32/MkRules
16
 
16
 
17
ifneq ($(strip $(CXXSOURCES)),)
17
ifneq ($(strip $(CXXSOURCES)),)
18
  DLL_LDMAIN=g++
18
  DLL_LDMAIN=g++
19
endif
19
endif
20
 
20
 
21
ifdef DEBUG
21
ifdef DEBUG
22
  DLLFLAGS=
22
  DLLFLAGS=
23
  DEBUGFLAG=-g -Wall
23
  DEBUGFLAG=-g -Wall
24
else
24
else
25
  DLLFLAGS=-s
25
  DLLFLAGS=-s
26
  DEBUGFLAG=-Wall
26
  DEBUGFLAG=-Wall
27
endif
27
endif
28
 
28
 
29
CPPFLAGS=$(PKG_CPPFLAGS) -I$(RHOME)/src/include
29
CPPFLAGS=$(PKG_CPPFLAGS) -I$(RHOME)/src/include
30
# -include $(RHOME)/src/include/globalvar.h 
30
# -include $(RHOME)/src/include/globalvar.h 
31
CFLAGS=$(CPPFLAGS) $(DEBUGFLAG) -O2 $(PKG_CFLAGS)
31
CFLAGS=$(CPPFLAGS) $(DEBUGFLAG) -O2 $(PKG_CFLAGS)
32
CXXFLAGS=$(CPPFLAGS) $(DEBUGFLAG) -O2 $(PKG_CXXFLAGS)
32
CXXFLAGS=$(CPPFLAGS) $(DEBUGFLAG) -O2 $(PKG_CXXFLAGS)
33
FFLAGS=-O2 $(DEBUGFLAG) $(PKG_FFLAGS)
33
FFLAGS=-O2 $(DEBUGFLAG) $(PKG_FFLAGS)
34
DLLLIBS=-L$(RHOME)/src/gnuwin32 $(PKG_LIBS) $(FLIBS) -lR 
34
DLLLIBS=-L$(RHOME)/src/gnuwin32 $(PKG_LIBS) $(FLIBS) -lR 
35
RESFLAGS=--include-dir $(RHOME)/src/include
35
RESFLAGS=--include-dir $(RHOME)/src/include
36
BLAS_LIBS=-lRblas
36
BLAS_LIBS=-lRblas
37
LAPACK_LIBS=-L$(RHOME)/lib -lRlapack
37
LAPACK_LIBS=-L$(RHOME)/lib -lRlapack
38
# for use by Makevars.win
38
# for use by Makevars.win
39
R_HOME=$(RHOME)
39
R_HOME=$(RHOME)
40
 
40
 
41
AA=$(wildcard Makefile)
41
AA=$(wildcard Makefile)
42
ifeq ($(AA),Makefile)
42
ifeq ($(AA),Makefile)
43
 include Makefile
43
 include Makefile
44
else
44
else
45
 OBJS=$(filter-out $(OBJS-NO),$(OBJSA))
45
 OBJS=$(filter-out $(OBJS-NO),$(OBJSA))
46
endif
46
endif
47
AA=$(wildcard Makevars.win)
47
AA=$(wildcard Makevars.win)
48
ifeq ($(AA),Makevars.win)
48
ifeq ($(AA),Makevars.win)
49
 include Makevars.win
49
 include Makevars.win
50
else
50
else
51
-include Makevars
51
-include Makevars
52
endif
52
endif
53
 
53
 
54
libR:
54
libR:
55
	@$(MAKE) -s --no-print-directory -C $(RHOME)/src/gnuwin32 libR.a
55
	@$(MAKE) -s --no-print-directory -C $(RHOME)/src/gnuwin32 libR.a
56
	@$(MAKE) -s --no-print-directory -C $(RHOME)/src/gnuwin32 libRblas.a
56
	@$(MAKE) -s --no-print-directory -C $(RHOME)/src/gnuwin32 libRblas.a
57
 
57
 
58
$(DLLNAME)_res.rc:
58
$(DLLNAME)_res.rc:
59
	@PERL5LIB=$(RHOME)/share/perl perl $(RHOME)/src/gnuwin32/makeDllRes.pl $(DLLNAME) > $@
59
	@PERL5LIB=$(RHOME)/share/perl perl $(RHOME)/src/gnuwin32/makeDllRes.pl $(DLLNAME) > $@
60
 
60
 
61
$(DLLNAME)_res.o: $(DLLNAME)_res.rc $(RHOME)/src/include/Rversion.h
61
$(DLLNAME)_res.o: $(DLLNAME)_res.rc $(RHOME)/src/include/Rversion.h
62
 
62
 
63
$(DLLNAME).a: $(OBJS)
63
$(DLLNAME).a: $(OBJS)
64
	@$(RM) -f $@
64
	@$(RM) -f $@
65
	$(AR) cr $@ *.o
65
	$(AR) cr $@ $(OBJS)
66
	$(RANLIB) $@
66
	$(RANLIB) $@
67
 
67
 
68
$(DLLNAME).dll : $(DLLNAME).a $(RCOBJ)
68
$(DLLNAME).dll : $(DLLNAME).a $(RCOBJ)
69
 
69
 
70
# Dependencies
70
# Dependencies
71
CXXSOURCES1=$(wildcard -f *.cc)
71
CXXSOURCES1=$(wildcard -f *.cc)
72
CXXSOURCES2=$(wildcard -f *.cpp)
72
CXXSOURCES2=$(wildcard -f *.cpp)
73
CXXSOURCES3=$(wildcard -f *.C)
73
CXXSOURCES3=$(wildcard -f *.C)
74
DEPS=$(CSOURCES:.c=.d) $(CXXSOURCES1:.cc=.d) $(CXXSOURCES2:.cpp=.d) $(CXXSOURCES3:.C=.d)
74
DEPS=$(CSOURCES:.c=.d) $(CXXSOURCES1:.cc=.d) $(CXXSOURCES2:.cpp=.d) $(CXXSOURCES3:.C=.d)
75
 
75
 
76
makeMakedeps: $(DEPS)
76
makeMakedeps: $(DEPS)
77
	@$(RM) Makedeps
77
	@$(RM) Makedeps
78
ifneq ($(strip $(DEPS)),)
78
ifneq ($(strip $(DEPS)),)
79
	@cat $(DEPS) >> Makedeps
79
	@cat $(DEPS) >> Makedeps
80
endif
80
endif
81
 
81
 
82
-include Makedeps
82
-include Makedeps