3
3
4
4
LIB =lib/libc-ray.so
5
5
BIN_lib =lib/c-ray
6
- OBJDIR_lib =lib/obj_lib
7
- OBJDIR_driver =lib/obj_driver
8
- SRCS_lib =$(shell find src/lib src/common -name '* .c') generated/gitsha1.c
9
- OBJS_lib =$(patsubst % .c, $(OBJDIR_lib ) /% .o, $(SRCS_lib ) )
10
- SRCS_driver =$(shell find src/driver src/common -name '* .c')
11
- OBJS_driver =$(patsubst % .c, $(OBJDIR_driver ) /% .o, $(SRCS_driver ) )
12
- SRCS_pylib =$(shell find bindings/python/lib -name '* .py')
6
+ OBJDIR_LIB =lib/obj_lib
7
+ OBJDIR_DRIVER =lib/obj_driver
8
+ OBJDIR_COMMON =lib/obj_common
9
+ OBJS_LIB =$(patsubst % .c, $(OBJDIR_LIB ) /% .o, $(SRCS_LIB ) )
10
+ OBJS_DRIVER =$(patsubst % .c, $(OBJDIR_DRIVER ) /% .o, $(SRCS_DRIVER ) )
11
+ OBJS_COMMON =$(patsubst % .c, $(OBJDIR_COMMON ) /% .o, $(SRCS_COMMON ) )
12
+ SRCS_PYLIB =$(shell find bindings/python/lib -name '* .py')
13
+
14
+ $(OBJS_LIB ) : CFLAGS += -I./src/lib/
15
+ $(OBJS_DRIVER ) : CFLAGS += -I./src/driver/
16
+ $(OBJS_COMMON ) : CFLAGS += -I./src/common/
13
17
14
18
lib : $(BIN_lib )
15
19
16
- pylib : bindings/python/lib/cray_wrap.so $(SRCS_pylib )
20
+ pylib : bindings/python/lib/cray_wrap.so $(SRCS_PYLIB )
17
21
18
22
BLENDER_VERSION =$(shell blender --version | head -n1 | cut -d ' ' -f 2 | cut -c 1-3)
19
23
BLENDER_ROOT =$(HOME ) /.config/blender/$(BLENDER_VERSION )
20
24
21
25
# Only copy .py files, which Blender seems to handle okay.
22
- blsync : $(SRCS_pylib )
26
+ blsync : $(SRCS_PYLIB )
23
27
mkdir -p $(BLENDER_ROOT ) /scripts/addons/c_ray
24
- cp $(SRCS_pylib ) $(BLENDER_ROOT ) /scripts/addons/c_ray/
28
+ cp $(SRCS_PYLIB ) $(BLENDER_ROOT ) /scripts/addons/c_ray/
25
29
cp -r integrations/blender/* $(BLENDER_ROOT ) /scripts/addons/c_ray/
26
30
27
31
# Blender crashes if I swap out the .so, no idea why, so updating the library
@@ -31,32 +35,38 @@ fullblsync: pylib
31
35
cp -r bindings/python/lib/* $(BLENDER_ROOT ) /scripts/addons/c_ray/
32
36
cp -r integrations/blender/* $(BLENDER_ROOT ) /scripts/addons/c_ray/
33
37
34
- $(OBJDIR_driver ) /% .o : % .c $(OBJDIR_driver )
38
+ $(OBJDIR_DRIVER ) /% .o : % .c $(OBJDIR_DRIVER )
35
39
@mkdir -p ' $(@D)'
36
40
@echo " CC $<"
37
41
@$(CC ) $(CFLAGS ) -c $< -o $@
38
- $(OBJDIR_lib ) /% .o : % .c $(OBJDIR_lib )
42
+ $(OBJDIR_LIB ) /% .o : % .c $(OBJDIR_LIB )
39
43
@mkdir -p ' $(@D)'
40
44
@echo " CC -fPIC $<"
41
45
@$(CC ) -DCR_BUILDING_LIB $(CFLAGS ) -fvisibility=hidden -c -fPIC $< -o $@
42
- $(OBJDIR_lib ) :
46
+ $(OBJDIR_COMMON ) /% .o : % .c $(OBJDIR_COMMON )
47
+ @mkdir -p ' $(@D)'
48
+ @echo " CC -fPIC $<"
49
+ @$(CC ) -DCR_BUILDING_LIB $(CFLAGS ) -fvisibility=hidden -c -fPIC $< -o $@
50
+ $(OBJDIR_LIB ) :
51
+ mkdir -p $@
52
+ $(OBJDIR_DRIVER ) :
43
53
mkdir -p $@
44
- $(OBJDIR_driver ) :
54
+ $(OBJDIR_COMMON ) :
45
55
mkdir -p $@
46
56
47
57
# FIXME: We're linking LDLIBS to the binary instead of .so because
48
58
# transforms.o uses libm and lives under common/ because json_loader.c
49
59
# depends on it.
50
60
51
- $(LIB ) : $(OBJS_lib )
61
+ $(LIB ) : $(OBJS_LIB ) ${OBJS_COMMON}
52
62
@echo " LD -fPIC $@ "
53
- @$(CC ) $(LDFLAGS ) $(OBJS_lib ) -shared -o $@
54
- $(BIN_lib ) : $(LIB ) $(OBJS_driver ) $(OBJDIR_driver )
63
+ @$(CC ) $(LDFLAGS ) $(OBJS_LIB ) $( OBJS_COMMON ) -shared -o $@
64
+ $(BIN_lib ) : $(LIB ) $(OBJS_DRIVER ) $(OBJDIR_DRIVER ) $( OBJS_COMMON )
55
65
@echo " LD $@ "
56
- @$(CC ) $(LDFLAGS ) $(OBJS_driver ) $(LIB ) -o $@ $(LDLIBS )
57
- bindings/python/lib/cray_wrap.so : $(OBJS_lib ) bindings/python/cray_wrap.c bindings/python/py_types.c
66
+ @$(CC ) $(LDFLAGS ) $(OBJS_DRIVER ) $( OBJS_COMMON ) $(LIB ) -o $@ $(LDLIBS )
67
+ bindings/python/lib/cray_wrap.so : $(OBJS_LIB ) bindings/python/cray_wrap.c bindings/python/py_types.c
58
68
@echo " Building CPython module"
59
- @$(CC ) -shared $(CFLAGS ) -fPIC ` pkg-config --cflags python3` bindings/python/cray_wrap.c bindings/python/py_types.c $(OBJS_lib ) -o bindings/python/lib/cray_wrap.so $(LDLIBS )
69
+ @$(CC ) -shared $(CFLAGS ) -fPIC ` pkg-config --cflags python3` bindings/python/cray_wrap.c bindings/python/py_types.c $(OBJS_LIB ) -o bindings/python/lib/cray_wrap.so $(LDLIBS )
60
70
61
71
clean_lib :
62
72
rm -rf lib/*
0 commit comments