From 20a86c9699ac741e899171175ba75338ca7bbc03 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 1 Nov 2025 16:02:34 +0000 Subject: [PATCH] things git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@561 b9cfdab3-6d41-4d17-bbe4-086880011989 --- .gitattributes | 2 ++ CMakeLists.txt | 25 ++++++++++++++++++++++++- GNUmakefile | 1 + README.txt | 2 ++ mk/fdlibm.mk | 6 ++++++ tools/readme.pl | 2 ++ 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 2423425..ee91af0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,6 +9,8 @@ /external/libpng/include/*.h linguist-generated /external/libpng/src/*.c linguist-generated /external/libpng/src/*.h linguist-generated +/external/fdlibm/src/*.c linguist-generated +/external/fdlibm/src/*.h linguist-generated /resource/doxygen-theme/* linguist-generated /src/icon/*.c linguist-generated /src/font/*.c linguist-generated diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f902a8..7e94e7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ option(BUILD_EXAMPLES "Build examples" OFF) option(USE_STB_IMAGE "Use stb_image" ON) option(USE_STB_TRUETYPE "Use stb_truetype" OFF) option(USE_FREETYPE2 "Use FreeType 2" ON) +option(USE_FDLIBM "Use fdlibm" OFF) file( GLOB @@ -108,6 +109,24 @@ if(CLASSIC) ) endif() +if(USE_FDLIBM) + file( + GLOB + FDLIBM_SOURCES + external/fdlibm/*.c + ) + target_sources( + Mw + PRIVATE + ${FDLIBM_SOURCES} + ) + target_include_directories( + Mw + PRIVATE + external/fdlibm + ) +endif() + if(CMAKE_SYSTEM_NAME STREQUAL "Windows") target_sources( Mw @@ -126,6 +145,10 @@ else() pkg_check_modules(XRENDER REQUIRED xrender) pkg_check_modules(XCURSOR REQUIRED xcursor) + if(NOT USE_FDLIBM) + list(APPEND LIBRARIES m) + endif() + target_sources( Mw PRIVATE @@ -138,7 +161,7 @@ else() ) list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS} ${XRENDER_INCLUDE_DIRS} ${XCURSOR_INCLUDE_DIRS}) list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS} ${XRENDER_LIBRARY_DIRS} ${XCURSOR_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${X11_LIBRARIES} ${XRENDER_LIBRARIES} ${XCURSOR_LIBRARIES} m) + list(APPEND LIBRARIES ${X11_LIBRARIES} ${XRENDER_LIBRARIES} ${XCURSOR_LIBRARIES}) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND LIBRARIES dl) endif() diff --git a/GNUmakefile b/GNUmakefile index 1f5cf3e..2e16d73 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -5,6 +5,7 @@ PREFIX = /usr/local USE_STB_IMAGE = 1 USE_STB_TRUETYPE = 0 USE_FREETYPE2 = 1 +USE_FDLIBM = 0 CC = $(GCC)gcc diff --git a/README.txt b/README.txt index 1a3868e..fb668c2 100644 --- a/README.txt +++ b/README.txt @@ -88,6 +88,8 @@ D. MinGW-w64/GCC/Clang USE_FREETYPE2 - Use FreeType2 or not. + USE_FDLIBM - Use fdlibm or not. + PREFIX - Installation destination directory. diff --git a/mk/fdlibm.mk b/mk/fdlibm.mk index 08dcdea..a4141c9 100644 --- a/mk/fdlibm.mk +++ b/mk/fdlibm.mk @@ -1,3 +1,9 @@ # $Id$ +ifeq ($(USE_FDLIBM),0) +ifeq ($(UNIX),1) +L_LIBS += -lm +endif +else L_OBJS += external/fdlibm/e_acos.o external/fdlibm/e_acosh.o external/fdlibm/e_asin.o external/fdlibm/e_atan2.o external/fdlibm/e_atanh.o external/fdlibm/e_cosh.o external/fdlibm/e_exp.o external/fdlibm/e_fmod.o external/fdlibm/e_gamma.o external/fdlibm/e_gamma_r.o external/fdlibm/e_hypot.o external/fdlibm/e_j0.o external/fdlibm/e_j1.o external/fdlibm/e_jn.o external/fdlibm/e_lgamma.o external/fdlibm/e_lgamma_r.o external/fdlibm/e_log.o external/fdlibm/e_log10.o external/fdlibm/e_pow.o external/fdlibm/e_rem_pio2.o external/fdlibm/e_remainder.o external/fdlibm/e_scalb.o external/fdlibm/e_sinh.o external/fdlibm/e_sqrt.o external/fdlibm/k_cos.o external/fdlibm/k_rem_pio2.o external/fdlibm/k_sin.o external/fdlibm/k_tan.o external/fdlibm/s_asinh.o external/fdlibm/s_atan.o external/fdlibm/s_cbrt.o external/fdlibm/s_ceil.o external/fdlibm/s_copysign.o external/fdlibm/s_cos.o external/fdlibm/s_erf.o external/fdlibm/s_expm1.o external/fdlibm/s_fabs.o external/fdlibm/s_finite.o external/fdlibm/s_floor.o external/fdlibm/s_frexp.o external/fdlibm/s_ilogb.o external/fdlibm/s_isnan.o external/fdlibm/s_ldexp.o external/fdlibm/s_log1p.o external/fdlibm/s_logb.o external/fdlibm/s_modf.o external/fdlibm/s_nextafter.o external/fdlibm/s_rint.o external/fdlibm/s_scalbn.o external/fdlibm/s_signgam.o external/fdlibm/s_significand.o external/fdlibm/s_sin.o external/fdlibm/s_tan.o external/fdlibm/s_tanh.o external/fdlibm/w_acos.o external/fdlibm/w_acosh.o external/fdlibm/w_asin.o external/fdlibm/w_atan2.o external/fdlibm/w_atanh.o external/fdlibm/w_cosh.o external/fdlibm/w_exp.o external/fdlibm/w_fmod.o external/fdlibm/w_gamma.o external/fdlibm/w_gamma_r.o external/fdlibm/w_hypot.o external/fdlibm/w_j0.o external/fdlibm/w_j1.o external/fdlibm/w_jn.o external/fdlibm/w_lgamma.o external/fdlibm/w_lgamma_r.o external/fdlibm/w_log.o external/fdlibm/w_log10.o external/fdlibm/w_pow.o external/fdlibm/w_remainder.o external/fdlibm/w_scalb.o external/fdlibm/w_sinh.o external/fdlibm/w_sqrt.o L_CFLAGS += -Iexternal/fdlibm +endif diff --git a/tools/readme.pl b/tools/readme.pl index 3829bcb..39a2305 100755 --- a/tools/readme.pl +++ b/tools/readme.pl @@ -135,6 +135,8 @@ c("USE_STB_TRUETYPE - Use stb_truetype or not.", 60); l(""); c("USE_FREETYPE2 - Use FreeType2 or not.", 60); l(""); +c("USE_FDLIBM - Use fdlibm or not.", 60); +l(""); c("PREFIX - Installation destination directory.", 60); l("");