diff --git a/joeylib/build.sh b/joeylib/build.sh index 1ed0881..1983e02 100755 --- a/joeylib/build.sh +++ b/joeylib/build.sh @@ -101,7 +101,7 @@ function doIIgsBuild() { iix dumpobj +D 31:/out/joey/test &> test.dis || true - php "${JOEY}/sdks/IIgs/ntpconverter/ntpconverter.php" *.mod + php "${JOEY}/sdks/IIgs/ntpconverter/ntpconverter.php" *.mod |& grep -v "PHP Notice" || true popd cp -f "${OUT}/jIIgsc.root" "${DIST}/jIIgsc.root#b10000" @@ -154,15 +154,18 @@ function doIIgsBuild() { function doPCBuild() { + #local G_CFLAGS="-Wall -D_REENTRANT_ -Dmain=SDL_main -I${SRC} -I${INSTALLED}/include -c" local G_CFLAGS="-Wall -D_REENTRANT_ -I${SRC} -I${INSTALLED}/include -c" echo "*** Starting ${DIST}" createBuildAndDist pushd "${BUILD}" + "${CC}" ${CFLAGS} ${G_CFLAGS} -o jPixBuf.o "${SRC}/jPixBuf.c" "${CC}" ${CFLAGS} ${G_CFLAGS} -o jSDL2.o "${SRC}/jSDL2.c" "${CC}" ${CFLAGS} ${G_CFLAGS} -o joey.o "${SRC}/joey.c" ar x "${INSTALLED}/lib/libSDL2.a" + ar x "${INSTALLED}/lib/libSDL2main.a" ar x "${INSTALLED}/lib/libSDL2_mixer.a" ar x "${INSTALLED}/lib/libmodplug.a" ar rcs "${DIST}/libjoeylib.a" *.o @@ -183,10 +186,11 @@ TEST=$2 if [[ "${ARCH}x" == "x" ]]; then echo "$0 [arch | \"all\"]" - echo '(Where "arch" is amiga, iigs, linux32, linux64, macosx32, macosx64, macosa64, st, windows32, or windows64.)' + echo '(Where "arch" is iigs, linux32, linux64, macosx32, macosx64, macosa64, win32, or win64.)' exit 0 fi +:<<'SKIP' if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "amigax" ]]; then DIST="${JOEY}/dist/amiga" @@ -201,6 +205,7 @@ if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "amigax" ]]; then #***TODO*** Emulator fi +SKIP if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "iigsx" ]]; then DIST="${JOEY}/dist/IIgs" @@ -228,7 +233,7 @@ fi if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "macosa64x" ]]; then export MACOSX_DEPLOYMENT_TARGET="${MACOSX_APPLE_DEPLOYMENT_TARGET}" export MACOSX_DARWIN="${MACOSX_APPLE_DARWIN}" - export PATH="${JOEYPATH}:${MACOSX_APPLE_PATH}" + export PATH="${MACOSX_APPLE_PATH}:${JOEYPATH}" CC="oa64-clang" CFLAGS="" LDFLAGS="" @@ -240,7 +245,7 @@ fi if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "macosx32x" ]]; then export MACOSX_DEPLOYMENT_TARGET="${MACOSX_INTEL_DEPLOYMENT_TARGET}" export MACOSX_DARWIN="${MACOSX_INTEL_DARWIN}" - export PATH="${JOEYPATH}:${MACOSX_INTEL_PATH}" + export PATH="${MACOSX_INTEL_PATH}:${JOEYPATH}" CC="o32-clang" CFLAGS="" LDFLAGS="" @@ -252,7 +257,7 @@ fi if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "macosx64x" ]]; then export MACOSX_DEPLOYMENT_TARGET="${MACOSX_INTEL_DEPLOYMENT_TARGET}" export MACOSX_DARWIN="${MACOSX_INTEL_DARWIN}" - export PATH="${JOEYPATH}:${MACOSX_INTEL_PATH}" + export PATH="${MACOSX_INTEL_PATH}:${JOEYPATH}" CC="o64-clang" CFLAGS="" LDFLAGS="" @@ -261,6 +266,7 @@ if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "macosx64x" ]]; then doPCBuild fi +:<<'SKIP' if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "stx" ]]; then DIST="${JOEY}/dist/st" @@ -279,20 +285,21 @@ if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "stx" ]]; then #***TODO*** #hatari -c "${JOEY}/sdks/st/hatari.cfg" -d out/ fi +SKIP -if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "windows64x" ]]; then +if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "win64x" ]]; then CC="x86_64-w64-mingw32-gcc" CFLAGS="" - LDFLAGS="" + LDFLAGS="-mwindows" DIST="${JOEY}/dist/windows/x64" INSTALLED="${DEPS}/windows/x64" doPCBuild fi -if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "windows32x" ]]; then +if [[ "${ARCH}x" == "allx" || "${ARCH}x" == "win32x" ]]; then CC="i686-w64-mingw32-gcc" CFLAGS="" - LDFLAGS="" + LDFLAGS="-mwindows" DIST="${JOEY}/dist/windows/i386" INSTALLED="${DEPS}/windows/i386" doPCBuild diff --git a/scripts/build-PC.helper.sh b/scripts/build-PC.helper.sh index 90f8453..6f55508 100644 --- a/scripts/build-PC.helper.sh +++ b/scripts/build-PC.helper.sh @@ -25,10 +25,12 @@ function doPCBuild() { + local TARGET= + if [[ -z ${RESULTS} ]]; then - local TARGET=${JOEY}/builds/${PROJECT} + TARGET=${JOEY}/builds/${PROJECT} else - local TARTET=${RESULTS} + TARGET=${RESULTS} fi local WORK=/tmp/PC @@ -64,8 +66,9 @@ function doPCBuild() { ${CC} ${CFLAGS} ${G_CFLAGS} -c ${F} -o ${WORK}/${O}.o done - # Link source & JoeyLib - ${CC} -o ${DEST}/${PROJECT}${EXT} ${OFILES} ${JOEY}/dist/${OSNAME}/${OSARCH}/libjoeylib.a ${LDFLAGS} + # Link source & JoeyLib (JoeyLib listed twice on purpose.) + ${CC} -o ${DEST}/${PROJECT}${EXT} ${OFILES} \ + ${JOEY}/dist/${OSNAME}/${OSARCH}/libjoeylib.a ${LDFLAGS} ${JOEY}/dist/${OSNAME}/${OSARCH}/libjoeylib.a # Copy game data mkdir -p ${DEST}/data @@ -93,16 +96,16 @@ function buildLinux64() { function buildWindows32() { CC="i686-w64-mingw32-gcc" - CFLAGS="-Dmain=SDL_main" - LDFLAGS="-lgdi32 -lwinmm -limm32 -lversion -lole32 -loleaut32 -lsetupapi -static -lstdc++" + CFLAGS="" + LDFLAGS="-mwindows -static -Wl,--start-group -lmingw32 -lgdi32 -lwinmm -limm32 -lversion -lole32 -loleaut32 -lsetupapi -lstdc++ -Wl,--end-group" doPCBuild windows i386 '.exe' } function buildWindows64() { CC="x86_64-w64-mingw32-gcc" - CFLAGS="-Dmain=SDL_main" - LDFLAGS="-lgdi32 -lwinmm -limm32 -lversion -lole32 -loleaut32 -lsetupapi -static -lstdc++" + CFLAGS="" + LDFLAGS="-mwindows -static -Wl,--start-group -lmingw32 -lgdi32 -lwinmm -limm32 -lversion -lole32 -loleaut32 -lsetupapi -lstdc++ -Wl,--end-group" doPCBuild windows x64 '.exe' } @@ -110,11 +113,11 @@ function buildWindows64() { function buildmacOSA64() { export MACOSX_DEPLOYMENT_TARGET="${MACOSX_APPLE_DEPLOYMENT_TARGET}" export MACOSX_DARWIN="${MACOSX_APPLE_DARWIN}" - export PATH="${JOEYPATH}:${MACOSX_APPLE_PATH}" + export PATH="${MACOSX_APPLE_PATH}:${JOEYPATH}" export LD_LIBRARY_PATH="${MACOSX_APPLE_PATH}/../lib" CC="oa64-clang" CFLAGS="" - LDFLAGS="" + LDFLAGS="-lm -liconv -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-weak_framework,CoreHaptics -Wl,-weak_framework,GameController -Wl,-framework,ForceFeedback -lobjc -Wl,-framework,CoreVideo -Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,IOKit -Wl,-weak_framework,QuartzCore" doPCBuild macOS a64 '' export LD_LIBRARY_PATH= } @@ -123,11 +126,11 @@ function buildmacOSA64() { function buildmacOSX32() { export MACOSX_DEPLOYMENT_TARGET="${MACOSX_INTEL_DEPLOYMENT_TARGET}" export MACOSX_DARWIN="${MACOSX_INTEL_DARWIN}" - export PATH="${JOEYPATH}:${MACOSX_INTEL_PATH}" + export PATH="${MACOSX_INTEL_PATH}:${JOEYPATH}" export LD_LIBRARY_PATH="${MACOSX_INTEL_PATH}/../lib" CC="o32-clang" CFLAGS="" - LDFLAGS="" + LDFLAGS="-lm -liconv -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,ForceFeedback -lobjc -Wl,-framework,CoreVideo -Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,IOKit -Wl,-weak_framework,QuartzCore" doPCBuild macOS i386 '' export LD_LIBRARY_PATH= } @@ -136,11 +139,11 @@ function buildmacOSX32() { function buildmacOSX64() { export MACOSX_DEPLOYMENT_TARGET="${MACOSX_INTEL_DEPLOYMENT_TARGET}" export MACOSX_DARWIN="${MACOSX_INTEL_DARWIN}" - export PATH="${JOEYPATH}:${MACOSX_INTEL_PATH}" + export PATH="${MACOSX_INTEL_PATH}:${JOEYPATH}" export LD_LIBRARY_PATH="${MACOSX_INTEL_PATH}/../lib" CC="o64-clang" CFLAGS="" - LDFLAGS="" + LDFLAGS="-lm -liconv -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,ForceFeedback -lobjc -Wl,-framework,CoreVideo -Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,IOKit -Wl,-weak_framework,QuartzCore" doPCBuild macOS x64 '' export LD_LIBRARY_PATH= } diff --git a/scripts/installer.sh b/scripts/installer.sh index 194f53a..c2c1c30 100755 --- a/scripts/installer.sh +++ b/scripts/installer.sh @@ -173,6 +173,10 @@ function buildMacOSXSDK() { mkdir -p "${OSX}" mv -f target/* "${OSX}" ./cleanup.sh + + # If we don't do this, we use the system ar / ranlib which is bad. + pushd "${OSX}/bin" &> /dev/null + ln -s $(find . -type f -name "*-ar") ar popd &> /dev/null eval $RESULT=1