312 endif
313
314 # Work around some compiler bugs.
315 ifeq ($(USE_CLANG), true)
316 # Clang 4.2
317 ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 2), 1)
318 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
319 OPT_CFLAGS/unsafe.o += -O1
320 # Clang 5.0
321 else ifeq ($(shell expr $(CC_VER_MAJOR) = 5 \& $(CC_VER_MINOR) = 0), 1)
322 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
323 OPT_CFLAGS/unsafe.o += -O1
324 # Clang 5.1
325 else ifeq ($(shell expr $(CC_VER_MAJOR) = 5 \& $(CC_VER_MINOR) = 1), 1)
326 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
327 OPT_CFLAGS/unsafe.o += -O1
328 # Clang 6.0
329 else ifeq ($(shell expr $(CC_VER_MAJOR) = 6 \& $(CC_VER_MINOR) = 0), 1)
330 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
331 OPT_CFLAGS/unsafe.o += -O1
332 else
333 $(error "Update compiler workarounds for Clang $(CC_VER_MAJOR).$(CC_VER_MINOR)")
334 endif
335 else
336 # 6835796. Problem in GCC 4.3.0 with mulnode.o optimized compilation.
337 ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 3), 1)
338 OPT_CFLAGS/mulnode.o += $(OPT_CFLAGS/NOOPT)
339 endif
340 endif
341
342 # Flags for generating make dependency flags.
343 DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d)
344 ifeq ($(USE_CLANG),)
345 ifneq ($(CC_VER_MAJOR), 2)
346 DEPFLAGS += -fpch-deps
347 endif
348 endif
349
350 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
351 ifeq ($(USE_PRECOMPILED_HEADER),0)
|
312 endif
313
314 # Work around some compiler bugs.
315 ifeq ($(USE_CLANG), true)
316 # Clang 4.2
317 ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 2), 1)
318 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
319 OPT_CFLAGS/unsafe.o += -O1
320 # Clang 5.0
321 else ifeq ($(shell expr $(CC_VER_MAJOR) = 5 \& $(CC_VER_MINOR) = 0), 1)
322 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
323 OPT_CFLAGS/unsafe.o += -O1
324 # Clang 5.1
325 else ifeq ($(shell expr $(CC_VER_MAJOR) = 5 \& $(CC_VER_MINOR) = 1), 1)
326 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
327 OPT_CFLAGS/unsafe.o += -O1
328 # Clang 6.0
329 else ifeq ($(shell expr $(CC_VER_MAJOR) = 6 \& $(CC_VER_MINOR) = 0), 1)
330 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
331 OPT_CFLAGS/unsafe.o += -O1
332 # Clang 6.1
333 else ifeq ($(shell expr $(CC_VER_MAJOR) = 6 \& $(CC_VER_MINOR) = 1), 1)
334 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT)
335 OPT_CFLAGS/unsafe.o += -O1
336 else
337 $(error "Update compiler workarounds for Clang $(CC_VER_MAJOR).$(CC_VER_MINOR)")
338 endif
339 else
340 # 6835796. Problem in GCC 4.3.0 with mulnode.o optimized compilation.
341 ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 3), 1)
342 OPT_CFLAGS/mulnode.o += $(OPT_CFLAGS/NOOPT)
343 endif
344 endif
345
346 # Flags for generating make dependency flags.
347 DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d)
348 ifeq ($(USE_CLANG),)
349 ifneq ($(CC_VER_MAJOR), 2)
350 DEPFLAGS += -fpch-deps
351 endif
352 endif
353
354 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
355 ifeq ($(USE_PRECOMPILED_HEADER),0)
|