diff --git a/dmd2/errors.c b/dmd2/errors.c index 6599e8e146d..74f818384b1 100644 --- a/dmd2/errors.c +++ b/dmd2/errors.c @@ -21,7 +21,7 @@ #endif #endif -#if __linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun +#if __linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __DragonFly__ || __sun #include #include #include @@ -64,7 +64,7 @@ bool isConsoleColorSupported() { #if _WIN32 return _isatty(_fileno(stderr)) != 0; -#elif __linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun +#elif __linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __DragonFly__ || __sun const char *term = getenv("TERM"); return isatty(STDERR_FILENO) && term && term[0] && 0 != strcmp(term, "dumb"); #else diff --git a/dmd2/mars.c b/dmd2/mars.c index f6d5b931b4d..5528c26ca47 100644 --- a/dmd2/mars.c +++ b/dmd2/mars.c @@ -17,7 +17,7 @@ #include #include -#if __linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun +#if __linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __DragonFly__ || __sun #include #endif diff --git a/dmd2/root/port.c b/dmd2/root/port.c index ca66ac046d8..36be0c83d0e 100644 --- a/dmd2/root/port.c +++ b/dmd2/root/port.c @@ -774,8 +774,10 @@ int Port::isNan(double r) #else return __inline_isnan(r); #endif -#elif __HAIKU__ || __FreeBSD__ || __OpenBSD__ || __NetBSD__ || __DragonFly__ +#elif __HAIKU__ || __FreeBSD__ || __OpenBSD__ || __NetBSD__ return isnan(r); +#elif__DragonFly__ + return __isnand(r); #else #undef isnan return std::isnan(r); @@ -790,8 +792,10 @@ int Port::isNan(longdouble r) #else return __inline_isnan(r); #endif -#elif __HAIKU__ || __FreeBSD__ || __OpenBSD__ || __NetBSD__ || __DragonFly__ +#elif __HAIKU__ || __FreeBSD__ || __OpenBSD__ || __NetBSD__ return isnan(r); +#elif__DragonFly__ + return __isnanl(r); #else #undef isnan return std::isnan(r); @@ -818,8 +822,10 @@ int Port::isInfinity(double r) { #if __APPLE__ return fpclassify(r) == FP_INFINITE; -#elif __HAIKU__ || __FreeBSD__ || __OpenBSD__ || __NetBSD__ || __DragonFly__ +#elif __HAIKU__ || __FreeBSD__ || __OpenBSD__ || __NetBSD__ return isinf(r); +#elif__DragonFly__ + return __isinfd(r); #else #undef isinf return std::isinf(r); @@ -833,7 +839,7 @@ longdouble Port::sqrt(longdouble x) longdouble Port::fmodl(longdouble x, longdouble y) { -#if __FreeBSD__ && __FreeBSD_version < 800000 || __OpenBSD__ || __NetBSD__ || __DragonFly__ +#if __FreeBSD__ && __FreeBSD_version < 800000 || __OpenBSD__ || __NetBSD__ return ::fmod(x, y); // hack for now, fix later #else return std::fmod(x, y); diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index 0b6ea111570..f57150c5de7 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -85,6 +85,7 @@ else() endif() file(GLOB_RECURSE CORE_D_UNIX ${RUNTIME_DIR}/src/core/sys/posix/*.d) file(GLOB_RECURSE CORE_D_FREEBSD ${RUNTIME_DIR}/src/core/sys/freebsd/*.d) +file(GLOB_RECURSE CORE_D_DRAGONFLYBSD ${RUNTIME_DIR}/src/core/sys/dragonflybsd/*.d) file(GLOB_RECURSE CORE_D_NETBSD ${RUNTIME_DIR}/src/core/sys/netbsd/*.d) file(GLOB_RECURSE CORE_D_LINUX ${RUNTIME_DIR}/src/core/sys/linux/*.d) file(GLOB_RECURSE CORE_D_OSX ${RUNTIME_DIR}/src/core/sys/osx/*.d) @@ -100,6 +101,10 @@ if(UNIX) if(${CMAKE_SYSTEM} MATCHES "NetBSD") list(APPEND CORE_D_SYS ${CORE_D_NETBSD}) endif() + if(${CMAKE_SYSTEM_NAME} MATCHES "DragonFly") + message(WARNING, "Adding /src/core/sys/dragonflybsd/ ${CORE_D_DRAGONFLYBSD}") + list(APPEND CORE_D_SYS ${CORE_D_DRAGONFLYBSD}) + endif() if(${CMAKE_SYSTEM} MATCHES "Linux") list(APPEND CORE_D_SYS ${CORE_D_LINUX}) endif() diff --git a/tests/d2/CMakeLists.txt b/tests/d2/CMakeLists.txt index da104ab29f9..1e4e049fae1 100644 --- a/tests/d2/CMakeLists.txt +++ b/tests/d2/CMakeLists.txt @@ -5,6 +5,7 @@ if(${ptr_size} MATCHES "^4$") elseif(${ptr_size} MATCHES "^8$") set(host_model 64) endif() +find_program (GNUMAKE NAMES gmake make) function(add_testsuite config_name dflags model) set(name dmd-testsuite${config_name}) @@ -17,7 +18,7 @@ function(add_testsuite config_name dflags model) # testsuite build system provides no way to run the test cases with a # given set of flags without trying all combinations of them. add_test(NAME ${name} - COMMAND make -k -C ${PROJECT_SOURCE_DIR}/tests/d2/dmd-testsuite RESULTS_DIR=${outdir} DMD=$ DFLAGS=${dflags} MODEL=${model} quick + COMMAND ${GNUMAKE} -k -C ${PROJECT_SOURCE_DIR}/tests/d2/dmd-testsuite RESULTS_DIR=${outdir} DMD=$ DFLAGS=${dflags} MODEL=${model} quick ) set_tests_properties(${name} PROPERTIES DEPENDS clean-${name}) endfunction() diff --git a/tests/d2/src/osmodel.mak b/tests/d2/src/osmodel.mak index f56716a363e..d6354ae606f 100644 --- a/tests/d2/src/osmodel.mak +++ b/tests/d2/src/osmodel.mak @@ -15,6 +15,9 @@ ifeq (,$(OS)) ifeq (OpenBSD,$(uname_S)) OS:=openbsd endif + ifeq (DragonFly,$(uname_S)) + OS:=dragonflybsd + endif ifeq (Solaris,$(uname_S)) OS:=solaris endif