mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-11-22 18:30:27 +01:00
make separate option for using nasm asm
Other asm is now enabled by default again, since asm blocks are now smarter and won't fail to compile on non-i386 platforms.
This commit is contained in:
parent
1f70d4e242
commit
ff57a29e0f
|
@ -188,13 +188,20 @@ else()
|
||||||
set(DEBUGSUFFIX "")
|
set(DEBUGSUFFIX "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# This should not be needed anymore, but might be faster on 32bit x86
|
option(USE_ASM "Use ASM code" TRUE)
|
||||||
option(USE_I386_ASM "Use X86 ASM" FALSE)
|
if (USE_ASM)
|
||||||
|
MESSAGE(STATUS "Using assembler code (when available)")
|
||||||
|
else()
|
||||||
|
add_definitions(-DUSE_PORTABLE_C=1)
|
||||||
|
MESSAGE(STATUS "Using portable C instead of all ASM")
|
||||||
|
endif()
|
||||||
|
|
||||||
if (USE_I386_ASM)
|
option(USE_I386_NASM_ASM "Use i386 nasm ASM code" FALSE)
|
||||||
|
|
||||||
|
if (USE_ASM AND USE_I386_NASM_ASM)
|
||||||
# You need the Netwide Assembler (NASM) to build this on Intel systems.
|
# You need the Netwide Assembler (NASM) to build this on Intel systems.
|
||||||
# http://nasm.sf.net/
|
# http://nasm.sf.net/
|
||||||
add_definitions(-DUSE_I386_ASM=1)
|
add_definitions(-DUSE_I386_NASM_ASM=1)
|
||||||
if (MACOSX)
|
if (MACOSX)
|
||||||
set(ASMOBJFMT "macho")
|
set(ASMOBJFMT "macho")
|
||||||
list(APPEND ASMFLAGS --prefix _)
|
list(APPEND ASMFLAGS --prefix _)
|
||||||
|
@ -203,10 +210,9 @@ if (USE_I386_ASM)
|
||||||
else()
|
else()
|
||||||
set(ASMOBJFMT "elf")
|
set(ASMOBJFMT "elf")
|
||||||
endif()
|
endif()
|
||||||
MESSAGE(STATUS "Using i386 assembler")
|
MESSAGE(STATUS "Using i386 nasm ASM")
|
||||||
else()
|
else()
|
||||||
add_definitions(-DUSE_PORTABLE_C=1)
|
MESSAGE(STATUS "Not using i386 nasm ASM")
|
||||||
MESSAGE(STATUS "Using portable C instead of ASM")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(PANDORA "Compile for Pandora" FALSE)
|
option(PANDORA "Compile for Pandora" FALSE)
|
||||||
|
@ -655,7 +661,7 @@ add_dependencies(${SHADERSLIB} ParseEntities)
|
||||||
add_parser_and_scanner("Engine/Base/Parser" "Engine/Base/Scanner")
|
add_parser_and_scanner("Engine/Base/Parser" "Engine/Base/Scanner")
|
||||||
add_parser_and_scanner("Engine/Ska/smcPars" "Engine/Ska/smcScan")
|
add_parser_and_scanner("Engine/Ska/smcPars" "Engine/Ska/smcScan")
|
||||||
|
|
||||||
if (USE_I386_ASM)
|
if (USE_I386_NASM_ASM)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT "SoundMixer386.o"
|
OUTPUT "SoundMixer386.o"
|
||||||
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/Engine/Sound/SoundMixer386.asm"
|
MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/Engine/Sound/SoundMixer386.asm"
|
||||||
|
|
|
@ -43,7 +43,7 @@ static CSoundData *psd;
|
||||||
|
|
||||||
// nasm on MacOS X is getting wrong addresses of external globals, so I have
|
// nasm on MacOS X is getting wrong addresses of external globals, so I have
|
||||||
// to define them in the .asm file...lame.
|
// to define them in the .asm file...lame.
|
||||||
#if (defined __GNU_INLINE_X86_32__)
|
#if (defined __GNU_INLINE_X86_32__) && (defined USE_I386_NASM_ASM)
|
||||||
#define INASM extern
|
#define INASM extern
|
||||||
#elif (defined __MSVC_INLINE__)
|
#elif (defined __MSVC_INLINE__)
|
||||||
#define INASM static
|
#define INASM static
|
||||||
|
@ -283,7 +283,7 @@ void NormalizeMixerBuffer( const FLOAT fNormStrength, const SLONG slBytes, FLOAT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef __GNU_INLINE_X86_32__
|
#if (defined __GNU_INLINE_X86_32__) && (defined USE_I386_NASM_ASM)
|
||||||
// These are implemented in an external NASM file.
|
// These are implemented in an external NASM file.
|
||||||
extern "C" {
|
extern "C" {
|
||||||
void MixStereo_asm(CSoundObject *pso);
|
void MixStereo_asm(CSoundObject *pso);
|
||||||
|
@ -430,7 +430,7 @@ loopEnd:
|
||||||
emms
|
emms
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif (defined __GNU_INLINE_X86_32__)
|
#elif (defined __GNU_INLINE_X86_32__) && (defined USE_I386_NASM_ASM)
|
||||||
// This is implemented in an external NASM file.
|
// This is implemented in an external NASM file.
|
||||||
MixMono_asm(pso);
|
MixMono_asm(pso);
|
||||||
|
|
||||||
|
@ -658,7 +658,7 @@ loopEnd:
|
||||||
emms
|
emms
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif (defined __GNU_INLINE_X86_32__)
|
#elif (defined __GNU_INLINE_X86_32__) && (defined USE_I386_NASM_ASM)
|
||||||
// This is implemented in an external NASM file.
|
// This is implemented in an external NASM file.
|
||||||
MixStereo_asm(pso);
|
MixStereo_asm(pso);
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,10 @@ cd $_
|
||||||
#ninja
|
#ninja
|
||||||
|
|
||||||
# This is the eventual path for amd64.
|
# This is the eventual path for amd64.
|
||||||
#cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_I386_ASM=FALSE ..
|
#cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||||
|
|
||||||
# Right now we force x86, though...
|
# Right now we force x86, though...
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DUSE_I386_ASM=TRUE ..
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DUSE_I386_NASM_ASM=TRUE ..
|
||||||
|
|
||||||
make -j$NCPU
|
make -j$NCPU
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ cd $_
|
||||||
#ninja
|
#ninja
|
||||||
|
|
||||||
# This is the eventual path for amd64.
|
# This is the eventual path for amd64.
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_I386_ASM=FALSE ..
|
cmake -DCMAKE_BUILD_TYPE=Debug ..
|
||||||
|
|
||||||
# Right now we force x86, though...
|
# Right now we force x86, though...
|
||||||
#cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 ..
|
#cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 ..
|
||||||
|
|
|
@ -9,6 +9,6 @@ set -x
|
||||||
rm -rf cmake-build
|
rm -rf cmake-build
|
||||||
mkdir $_
|
mkdir $_
|
||||||
cd $_
|
cd $_
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_OSX_ARCHITECTURES=i386 -DUSE_I386_ASM=TRUE -DUSE_SYSTEM_SDL2=FALSE ..
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_OSX_ARCHITECTURES=i386 -DUSE_I386_NASM_ASM=TRUE -DUSE_SYSTEM_SDL2=FALSE ..
|
||||||
make -j$NCPU
|
make -j$NCPU
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,6 @@ set -x
|
||||||
rm -rf cmake-build
|
rm -rf cmake-build
|
||||||
mkdir $_
|
mkdir $_
|
||||||
cd $_
|
cd $_
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_OSX_ARCHITECTURES=x86_64 -DUSE_I386_ASM=FALSE ..
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_OSX_ARCHITECTURES=x86_64 ..
|
||||||
make -j$NCPU
|
make -j$NCPU
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user