354 355 endif 356 endif 357 358 ################################################################################ 359 360 # The fast floor code loses precision. 361 LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR 362 363 ifeq ($(USE_EXTERNAL_LCMS), true) 364 # If we're using an external library, we'll just need the wrapper part. 365 # By including it explicitly, all other files will be excluded. 366 BUILD_LIBLCMS_INCLUDE_FILES := LCMS.c 367 # If we're using an external library, we can't include our own SRC path 368 # as includes, instead the system headers should be used. 369 LIBLCMS_HEADERS_FROM_SRC := false 370 else 371 BUILD_LIBLCMS_INCLUDE_FILES := 372 endif 373 374 $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \ 375 NAME := lcms, \ 376 INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \ 377 OPTIMIZATION := HIGHEST, \ 378 CFLAGS := $(CFLAGS_JDKLIB) \ 379 $(LCMS_CFLAGS), \ 380 CFLAGS_windows := -DCMS_IS_WINDOWS_, \ 381 EXTRA_HEADER_DIRS := \ 382 common/awt/debug \ 383 libawt/java2d, \ 384 HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \ 385 DISABLED_WARNINGS_gcc := format-nonliteral type-limits \ 386 misleading-indentation undef unused-function, \ 387 DISABLED_WARNINGS_clang := tautological-compare format-nonliteral undef, \ 388 DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \ 389 DISABLED_WARNINGS_microsoft := 4819, \ 390 LDFLAGS := $(LDFLAGS_JDKLIB) \ 391 $(call SET_SHARED_LIBRARY_ORIGIN), \ 392 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \ 393 LIBS_unix := -lawt -ljvm -ljava $(LCMS_LIBS) $(LIBM), \ 394 LIBS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \ 395 )) 396 397 TARGETS += $(BUILD_LIBLCMS) 398 399 $(BUILD_LIBLCMS): $(BUILD_LIBAWT) 400 401 ################################################################################ 402 403 # "DISABLED_WARNINGS_gcc := clobbered" rationale: 404 # Suppress gcc warnings like "variable might be clobbered by 'longjmp' 405 # or 'vfork'": this warning indicates that some variable is placed to 406 # a register by optimized compiler and it's value might be lost on longjmp(). | 354 355 endif 356 endif 357 358 ################################################################################ 359 360 # The fast floor code loses precision. 361 LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR 362 363 ifeq ($(USE_EXTERNAL_LCMS), true) 364 # If we're using an external library, we'll just need the wrapper part. 365 # By including it explicitly, all other files will be excluded. 366 BUILD_LIBLCMS_INCLUDE_FILES := LCMS.c 367 # If we're using an external library, we can't include our own SRC path 368 # as includes, instead the system headers should be used. 369 LIBLCMS_HEADERS_FROM_SRC := false 370 else 371 BUILD_LIBLCMS_INCLUDE_FILES := 372 endif 373 374 BUILD_LIBLCMS_DISABLE_WARNINGS_gcc := format-nonliteral type-limits \ 375 misleading-indentation undef unused-function 376 ifeq ($(TOOLCHAIN_TYPE), gcc) 377 GCC_MAJOR_VER := $(shell $(ECHO) $(CC_VERSION_NUMBER) | $(CUT) -d . -f 1) 378 GCC_8_OR_LATER := $(shell [ $(GCC_MAJOR_VER) -ge 8 ] && echo true) 379 ifeq ($(GCC_8_OR_LATER), true) 380 BUILD_LIBLCMS_DISABLE_WARNINGS_gcc += stringop-truncation 381 endif 382 endif 383 384 $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \ 385 NAME := lcms, \ 386 INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \ 387 OPTIMIZATION := HIGHEST, \ 388 CFLAGS := $(CFLAGS_JDKLIB) \ 389 $(LCMS_CFLAGS), \ 390 CFLAGS_windows := -DCMS_IS_WINDOWS_, \ 391 EXTRA_HEADER_DIRS := \ 392 common/awt/debug \ 393 libawt/java2d, \ 394 HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \ 395 DISABLED_WARNINGS_gcc := $(BUILD_LIBLCMS_DISABLE_WARNINGS_gcc), \ 396 DISABLED_WARNINGS_clang := tautological-compare format-nonliteral undef, \ 397 DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \ 398 DISABLED_WARNINGS_microsoft := 4819, \ 399 LDFLAGS := $(LDFLAGS_JDKLIB) \ 400 $(call SET_SHARED_LIBRARY_ORIGIN), \ 401 LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \ 402 LIBS_unix := -lawt -ljvm -ljava $(LCMS_LIBS) $(LIBM), \ 403 LIBS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \ 404 )) 405 406 TARGETS += $(BUILD_LIBLCMS) 407 408 $(BUILD_LIBLCMS): $(BUILD_LIBAWT) 409 410 ################################################################################ 411 412 # "DISABLED_WARNINGS_gcc := clobbered" rationale: 413 # Suppress gcc warnings like "variable might be clobbered by 'longjmp' 414 # or 'vfork'": this warning indicates that some variable is placed to 415 # a register by optimized compiler and it's value might be lost on longjmp(). |