The R Project SVN R

Rev

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

Rev 59812 Rev 61751
1
## These can be overridden in MkRules.dist or MkRules.local
1
## These can be overridden in MkRules.dist or MkRules.local
2
 
2
 
3
## must be jpeg-7 jpeg-8 jpeg-8a jpeg-8b jpeg-8c jpeg-8d libjpeg-turbo
3
## must be jpeg-7 jpeg-8 jpeg-8a jpeg-8b jpeg-8c jpeg-8d jpeg-9 libjpeg-turbo
4
JPEGDIR = jpeg-8d
4
JPEGDIR = jpeg-9
5
PNGDIR = libpng
5
PNGDIR = libpng
6
TIFFDIR = libtiff
6
TIFFDIR = libtiff
7
 
7
 
8
include ../MkRules
8
include ../MkRules
9
 
9
 
10
.PHONY: all DLL buildzlib buildpng buildjpeg buildtiff clean
10
.PHONY: all DLL buildzlib buildpng buildjpeg buildtiff clean
11
 
11
 
12
all:
12
all:
13
	@$(MAKE) --no-print-directory buildzlib buildpng buildjpeg buildtiff rbitmap.o
13
	@$(MAKE) --no-print-directory buildzlib buildpng buildjpeg buildtiff rbitmap.o
14
	@$(MKDIR) -p ../../../library/grDevices/libs
14
	@$(MKDIR) -p ../../../library/grDevices/libs
15
	@$(MAKE) --no-print-directory DLL
15
	@$(MAKE) --no-print-directory DLL
16
 
16
 
17
DLL: ../../../library/grDevices/libs$(R_ARCH)/Rbitmap.dll
17
DLL: ../../../library/grDevices/libs$(R_ARCH)/Rbitmap.dll
18
 
18
 
19
buildzlib:
19
buildzlib:
20
	@$(MAKE) -C ../../extra/zlib -f Makefile.win
20
	@$(MAKE) -C ../../extra/zlib -f Makefile.win
21
 
21
 
22
## There is a makefile.mingw in 1.2.x and 1.4.x but not 1.5.x
22
## There is a makefile.mingw in 1.2.x and 1.4.x but not 1.5.x
23
## Neither the makefile.{mingw,std} build pnggccrd.c but it is needed if
23
## Neither the makefile.{mingw,std} build pnggccrd.c but it is needed if
24
## the compiler defines __MMX__ , which the win64 gcc does.
24
## the compiler defines __MMX__ , which the win64 gcc does.
25
## So we need to explicitly disable it.
25
## So we need to explicitly disable it.
26
## prefix=foo shuts up a warning
26
## prefix=foo shuts up a warning
27
buildpng:
27
buildpng:
28
	$(MAKE) CC='$(CC)' AR='$(AR)' AR_RC='$(AR) rcs' \
28
	$(MAKE) CC='$(CC)' AR='$(AR)' AR_RC='$(AR) rcs' \
29
	  CFLAGS="-O3 -I../../../extra/zlib -DPNG_NO_MMX_CODE" \
29
	  CFLAGS="-O3 -I../../../extra/zlib -DPNG_NO_MMX_CODE" \
30
	  RANLIB=$(RANLIB) ZLIBLIB=../../../extra/zlib -C $(PNGDIR) \
30
	  RANLIB=$(RANLIB) ZLIBLIB=../../../extra/zlib -C $(PNGDIR) \
31
	  -f scripts/makefile.gcc prefix=foo libpng.a
31
	  -f scripts/makefile.gcc prefix=foo libpng.a
32
 
32
 
33
buildjpeg: $(JPEGDIR)/jconfig.h Makefile.jpeg
33
buildjpeg: $(JPEGDIR)/jconfig.h Makefile.jpeg
34
	$(MAKE) CC='$(CC)' AR='$(AR) rc' RANLIB=$(RANLIB) JPEGDIR=$(JPEGDIR) -C $(JPEGDIR) \
34
	$(MAKE) CC='$(CC)' AR='$(AR) rc' RANLIB=$(RANLIB) JPEGDIR=$(JPEGDIR) -C $(JPEGDIR) \
35
	  -f ../Makefile.jpeg libjpeg.a
35
	  -f ../Makefile.jpeg libjpeg.a
36
 
36
 
37
$(JPEGDIR)/jconfig.h: jconfig.h 
37
$(JPEGDIR)/jconfig.h: jconfig.h 
38
	$(CP) jconfig.h $(JPEGDIR)/jconfig.h
38
	$(CP) jconfig.h $(JPEGDIR)/jconfig.h
39
 
39
 
40
## This gives a lot of warnings on Win64, but seems to work
40
## This gives a lot of warnings on Win64, but seems to work
41
buildtiff: $(JPEGDIR)/jconfig.h Makefile.tiff
41
buildtiff: $(JPEGDIR)/jconfig.h Makefile.tiff
42
	$(MAKE) CC='$(CC)' AR='$(AR)' RANLIB=$(RANLIB) -C $(TIFFDIR) -f ../Makefile.tiff JPEGDIR=$(JPEGDIR)
42
	$(MAKE) CC='$(CC)' AR='$(AR)' RANLIB=$(RANLIB) -C $(TIFFDIR) -f ../Makefile.tiff JPEGDIR=$(JPEGDIR)
43
 
43
 
44
rbitmap-CPPFLAGS=-DHAVE_PNG -DHAVE_JPEG -DHAVE_TIFF -I. -I../../extra/zlib -I./$(PNGDIR) -I$(JPEGDIR) -I./$(TIFFDIR) -I../../include
44
rbitmap-CPPFLAGS=-DHAVE_PNG -DHAVE_JPEG -DHAVE_TIFF -I. -I../../extra/zlib -I./$(PNGDIR) -I$(JPEGDIR) -I./$(TIFFDIR) -I../../include
45
CFLAGS=-O3 -Wall -pedantic 
45
CFLAGS=-O3 -Wall -pedantic 
46
 
46
 
47
../../../library/grDevices/libs$(R_ARCH)/Rbitmap.dll: rbitmap.o $(TIFFDIR)/libtiff.a $(PNGDIR)/libpng.a $(JPEGDIR)/libjpeg.a
47
../../../library/grDevices/libs$(R_ARCH)/Rbitmap.dll: rbitmap.o $(TIFFDIR)/libtiff.a $(PNGDIR)/libpng.a $(JPEGDIR)/libjpeg.a
48
	$(DLL) -shared -s -o $@ $^ -L../../../$(IMPDIR) -lR -lRzlib
48
	$(DLL) -shared -s -o $@ $^ -L../../../$(IMPDIR) -lR -lRzlib
49
 
49
 
50
clean:
50
clean:
51
	$(RM) *.o *.a *.dll *.def *~ \#*\#
51
	$(RM) *.o *.a *.dll *.def *~ \#*\#
52
	-$(MAKE) CC='$(CC)' -C $(PNGDIR) -f scripts/makefile.std clean
52
	-$(MAKE) CC='$(CC)' -C $(PNGDIR) -f scripts/makefile.std clean
53
	-$(MAKE) CC='$(CC)' -C $(JPEGDIR) -f ../Makefile.jpeg clean
53
	-$(MAKE) CC='$(CC)' -C $(JPEGDIR) -f ../Makefile.jpeg clean
54
	-$(MAKE) CC='$(CC)' -C $(TIFFDIR) -f ../Makefile.tiff clean
54
	-$(MAKE) CC='$(CC)' -C $(TIFFDIR) -f ../Makefile.tiff clean
55
 
55
 
56
 
56
 
57
 
57