1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
####################################################################
#
# Maya Location & Version
#
####################################################################
ifndef MAYA_LOCATION
$(error "MAYA_LOCATION is not defined")
endif
ifeq ($(wildcard $(MAYA_LOCATION)),)
$(error "MAYA_LOCATION contains '$(MAYA_LOCATION)', which does not exist.")
endif
ifndef SHAVE_VRAY_SDKS
$(error "SHAVE_VRAY_SDKS is not defined.")
endif
ifndef VRAY_VERSION
$(error "VRAY_VERSION is not defined.")
endif
versionInfo := $(shell ../../utils/getMayaAPIVersion.sh)
mayaAPI := $(word 1,$(versionInfo))
mayaVersion := $(word 2,$(versionInfo))
mayaMajorVersion := $(word 3, $(versionInfo))
mayaMinorVersion := $(word 4, $(versionInfo))
ifeq ($(findstring -x64,$(MAYA_LOCATION)),-x64)
mayaVersion := $(mayaVersion)-x64
endif
####################################################################
#
# Compiler & Linker
#
####################################################################
C++ = $(shell ../../utils/getg++vray.sh $(mayaVersion) 40)
CC = $(subst ++,cc,$(C++))
ifeq ($(C++),)
$(error "Maya version $(mayaVersion) not supported.")
endif
# sanity check
ifeq (,$(findstring 4.8,$(shell $(C++) --version)))
$(error "V-Ray 4.0 must be built with gcc-4.8!")
endif
#
# vray include/lib path
#
# you should replace it with own paths
VRAY_LDIR = $(SHAVE_VRAY_SDKS)/$(VRAY_VERSION)/lib/linux
VRAY_IDIR = $(SHAVE_VRAY_SDKS)/$(VRAY_VERSION)/include
#
# output and temp dirs
#
OUTDIR = ../bin/linux_x64
TMPDIR = ./build/release/linux_x64/clang-gcc-4.8/vray40
OBJS = \
$(TMPDIR)/shaderMain.obj \
$(TMPDIR)/shaveVrayBaseBSDF.obj \
$(TMPDIR)/shaveVrayBaseBSDFPool.obj \
$(VRAY_LDIR)/libvutils_s.a \
$(VRAY_LDIR)/libplugman_s.a \
$(VRAY_LDIR)/librayserver_s.a
GCCFLAGS = -v -Wall -lpthread -lrt -lc -lz -fPIC
GCCFLAGS_OBJ = -std=c++11 -O2 -ffunction-sections -fdata-sections -finline-functions -funswitch-loops -fgcse-after-reload -ffast-math -fPIC -DHAVE_EXR -DBits64_ -D_REENTRANT -fexceptions -DVRAY40
GCCLDFLAGS = -Bsymbolic
#
# vray libs
#
LIBS = -ldl -lvray
LIBDIRS = -L. -L$(VRAY_LDIR)
INCDIRS = -I. -I$(VRAY_IDIR)
all: ../bin/linux_x64/ShaveSh40.so
../bin/linux_x64/ShaveSh40.so: $(TMPDIR) $(OUTDIR) $(OBJS)
$(C++) $(GCCFLAGS) $(GCCLDFLAGS) $(LIBDIRS) -shared -Wl,--export-dynamic -o "$(OUTDIR)/ShaveSh40.so" "-Wl,-(" $(OBJS) $(LIBS) "-Wl,-)"
$(TMPDIR):
-@mkdir -p "$(TMPDIR)"
$(OUTDIR):
-@mkdir -p "$(OUTDIR)"
$(TMPDIR)/shaderMain.obj: shaderMain.cpp
$(C++) $(GCCFLAGS_OBJ) $(INCDIRS) -D "NDEBUG" -c -o "$(TMPDIR)/shaderMain.obj" "shaderMain.cpp"
$(TMPDIR)/shaveVrayBaseBSDF.obj: shaveVrayBaseBSDF.cpp
$(C++) $(GCCFLAGS_OBJ) $(INCDIRS) -D "NDEBUG" -c -o "$(TMPDIR)/shaveVrayBaseBSDF.obj" "shaveVrayBaseBSDF.cpp"
$(TMPDIR)/shaveVrayBaseBSDFPool.obj: shaveVrayBaseBSDFPool.cpp
$(C++) $(GCCFLAGS_OBJ) $(INCDIRS) -D "NDEBUG" -c -o "$(TMPDIR)/shaveVrayBaseBSDFPool.obj" "shaveVrayBaseBSDFPool.cpp"
clean:
-@rm -f $(TMPDIR)/*.obj
-@rm -f $(OUTDIR)/ShaveSh40.so
|