diff --git a/.gitignore b/.gitignore index a6f4eff7..a62b3d4b 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ scripts/opjstyle* # Ignore directories made by `make`. /bin/ +build +SDK +*.lha diff --git a/Makefile.os4 b/Makefile.os4 new file mode 100644 index 00000000..b6b66f74 --- /dev/null +++ b/Makefile.os4 @@ -0,0 +1,55 @@ + +USE_CLIB2=YES +ifeq ($(USE_CLIB2), YES) +LIBC=clib2 +CODEC=OFF +else +LIBC=newlib +CODEC=ON +endif + +all: build + +build: + mkdir build && \ + cd build && \ + cmake .. -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_CROSSCOMPILING=ON \ + -DCMAKE_TOOLCHAIN_FILE=$(realpath amigaos4.cmake) \ + -DCMAKE_C_FLAGS="-mcrt=${LIBC} -O2 -fPIC" \ + -DCMAKE_MODULE_LINKER_FLAGS="-mcrt=${LIBC} -lpthread -athread=native" \ + -DBUILD_TESTING=OFF \ + -DBUILD_CODEC=${CODEC} \ + -DBUILD_SHARED_LIBS=OFF && \ + make + +clean: + @echo "Clean the build" + @rm -rf build + +cleanall: clean + @echo "Clean the build and the release files" + @rm -rf SDK + @rm libopenjpeg.lha + +release: + @echo "Create release folders..." + @mkdir -p SDK/local/common/include + @mkdir -p SDK/local/clib2/lib + @mkdir -p SDK/local/newlib/lib SDK/local/newlib/bin + + @echo "Building clib2 based libraries..." + @make -f Makefile.os4 USE_CLIB2=YES + @cp ./build/bin/libopenjp2.a SDK/local/clib2/lib/ + @cp ./src/lib/openjp2/openjpeg.h SDK/local/common/include/ + + @echo "Clean build and libraries files..." + @make -f Makefile.os4 clean + + @echo "Building newlib based libraries..." + @make -f Makefile.os4 USE_CLIB2=NO + @cp ./build/bin/libopenjp2.a SDK/local/newlib/lib/ + @cp ./build/bin/opj_* SDK/local/newlib/bin/ + + @echo "Creating the lha release file..." + @lha -aeq libopenjpeg.lha SDK/ \ No newline at end of file diff --git a/amigaos4.cmake b/amigaos4.cmake new file mode 100644 index 00000000..2a95eb6c --- /dev/null +++ b/amigaos4.cmake @@ -0,0 +1,9 @@ +SET(CMAKE_SYSTEM_NAME Generic) +SET(CMAKE_SYSTEM_PROCESSOR ppc) +SET(CMAKE_C_COMPILER /opt/ppc-amigaos/bin/ppc-amigaos-gcc) +SET(CMAKE_CXX_COMPILER /opt/ppc-amigaos/bin/ppc-amigaos-g++) +SET(CMAKE_FIND_LIBRARY_SUFFIXES "*.a") +SET(CMAKE_FIND_ROOT_PATH /opt/sdk) +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/src/lib/openjp2/opj_includes.h b/src/lib/openjp2/opj_includes.h index 0a8628c9..a4377cf2 100644 --- a/src/lib/openjp2/opj_includes.h +++ b/src/lib/openjp2/opj_includes.h @@ -44,7 +44,11 @@ Standard includes used by the library ========================================================== */ +#if defined(__amigaos4__) +#include +#else #include +#endif #include #include #include