X-Git-Url: https://deadsoftware.ru/gitweb?p=cpc.git;a=blobdiff_plain;f=make.sh;h=f704a52662d522706d6fa009cdfd7d1392463828;hp=8b98cb2290c7c370ea65a318b22d1ee17cba86f1;hb=d1c9d1e488c6e14e82570f2833779086aa0f44f9;hpb=4087208d5791633d61d0045f8f9048f502357154 diff --git a/make.sh b/make.sh index 8b98cb2..f704a52 100755 --- a/make.sh +++ b/make.sh @@ -1,13 +1,17 @@ -#! /bin/sh +#! /bin/bash set -e +abspath() { + [[ "$1" == /* ]] && echo "$1" || echo "$(pwd)/$1" +} + ###^^^^^^^^^^^^^^^^^^### ### Global variables ### ###__________________### _exec="make.sh" -_this="$(dirname "$(readlink -f "$0")")" +_this="$(dirname "$(abspath "$0")")" _cpu= _target= _system= @@ -37,12 +41,14 @@ usage() { echo "Processors:" echo " 486 Intel 486+" echo " arm ARM 32-bit" + echo " powerpc PowerPC 32-bit" echo "Targets:" echo " native Native" echo " cpfront Generic C" echo "Operation systems:" echo " linux GNU/Linux" echo " cygwin Cygwin" + echo " osx Mac OS X" echo "Environment variables:" echo " CC C compiler binary" echo " CFLAGS C compiler options" @@ -60,7 +66,7 @@ copy_source() { for _src do if test -d "$_this/src/$_src"; then - find "$_this/src/$_src" -mindepth 1 -maxdepth 1 -exec cp -rt "$_out" -- {} + + find "$_this/src/$_src" -mindepth 1 -maxdepth 1 -exec cp -r {} "$_out" \; fi done } @@ -76,6 +82,8 @@ native_link() { if [ "$_system" = "cygwin" ]; then _outexe="${_outexe}.exe" _outsystem="win32" + elif [ "$_system" = "osx" ]; then + _outexe="${_outexe}.out" fi shift "$_linker" $CPLFALGS -os "$_outsystem" -kernel Kernel -main Kernel -legacycodedir . -o "$_outexe" "$@" @@ -124,6 +132,7 @@ cpfront_link() { local _cc_cflags= case "$CC" in *gcc) _cc_cflags="-std=c89 -Wno-int-conversion -Wno-int-to-pointer-cast -Wno-incompatible-pointer-types -Wno-implicit-function-declaration" ;; + *gcc-4.2) _cc_cflags="-std=c89 -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -Wno-implicit-function-declaration" ;; clang|clang-*) _cc_cflags="-std=c89 -Wno-int-conversion -Wno-incompatible-pointer-types -Wno-logical-op-parentheses -Wno-bitwise-op-parentheses -Wno-pointer-sign -Wno-unused-value -Wno-return-type" ;; *tcc) _cc_cflags="-std=c89 -w -fsigned-char" ;; *) _cc_cflags="" ;; @@ -132,14 +141,22 @@ cpfront_link() { case "$_cpu" in 486) _cpu_cflags="-m32" ;; arm) _cpu_cflags="" ;; + powerpc) _cpu_cflags="-m32" ;; *) error "cpfront_link(): unsupported cpu $_cpu" ;; esac local _system_cflags= case "$_system" in cygwin) _system_cflags="-liconv" ;; + osx) _system_cflags="-D_DARWIN_C_SOURCE -liconv" ;; *) _system_cflags="" ;; esac - "$CC" -g -D_XOPEN_SOURCE=700 $_cc_cflags $_cpu_cflags $CFLAGS -o "${_main}" -I "$_this/C" "$_this/C/SYSTEM.c" $_list -lm -ldl -lffi $_system_cflags + local _out_exe="${_main}" + case "$_system" in + cygwin) _out_exe="${_main}.exe" ;; + osx) _out_exe="${_main}.out" ;; + *) ;; + esac + "$CC" -g -D_XOPEN_SOURCE=700 $_cc_cflags $_cpu_cflags $CFLAGS -o "${_out_exe}" -I "$_this/C" "$_this/C/SYSTEM.c" $_list -lm -ldl -lffi $_system_cflags fi } @@ -210,9 +227,9 @@ compile_all() { ### Compile Dev subsystem ### ###_______________________### - compile Dev/Mod/CPM.cp Dev/Mod/CPT.odc Dev/Mod/CPS.odc Dev/Mod/CPB.odc \ - Dev/Mod/CPP.odc Dev/Mod/CPE.odc Dev/Mod/CPH.odc Dev/Mod/CPL486.odc \ - Dev/Mod/CPC486.odc Dev/Mod/CPV486.odc + compile Dev/Mod/CPM.cp Dev/Mod/CPT.odc Dev/Mod/CPR.cp Dev/Mod/CPS.odc \ + Dev/Mod/CPB.odc Dev/Mod/CPP.odc Dev/Mod/CPE.odc Dev/Mod/CPH.odc \ + Dev/Mod/CPL486.odc Dev/Mod/CPC486.odc Dev/Mod/CPV486.odc ###^^^^^^^^^^^^^^^^^^^^^^^^### ### Compile Dev2 subsystem ### @@ -249,7 +266,7 @@ link_all() { PosixCtypes PosixCmacro \ Kernel Console Files Dates Math Strings Services Log \ HostLang HostConsole HostFiles HostDates DswLog $_debug_module \ - DevCPM DevCPT DevCPS DevCPB DevCPP DevCPE DevCPH \ + DevCPM DevCPT DevCPR DevCPS DevCPB DevCPP DevCPE DevCPH \ DevCPL486 DevCPC486 DevCPV486 \ DswDocuments DswCompiler486Main @@ -265,7 +282,7 @@ link_all() { PosixCtypes PosixCmacro \ Kernel Console Files Dates Math Strings Services Log \ HostLang HostConsole HostFiles HostDates DswLog $_debug_module \ - DevCPM DevCPT DevCPS DevCPB DevCPP DevCPE DevCPH \ + DevCPM DevCPT DevCPR DevCPS DevCPB DevCPP DevCPE DevCPH \ CPfrontCPG CPfrontCPC CPfrontCPV\ DswDocuments DswCompilerCPfrontMain @@ -310,6 +327,7 @@ fi case "$_cpu" in 386|486|586|686) _cpu=486 ;; arm|armv6|armv7) _cpu=arm ;; + powerpc|ppc|ppc32) _cpu=powerpc ;; "") error "cpu not specified" ;; *) error "unsupported cpu $_cpu" ;; esac @@ -324,6 +342,7 @@ esac case "$_system" in linux) _useposix=true ;; cygwin) _useposix=true ;; + osx) _useposix=true ;; "") error "operation system not specified" ;; *) error "unsuported operation system $_system" ;; esac @@ -383,7 +402,7 @@ if $_docompile; then fi mkdir -p -- "$_out" -_out="$(readlink -f "$_out")" +_out="$(abspath "$_out")" copy_source "generic" "$_cpu" if $_useposix; then copy_source "posix/generic" "posix/$_cpu"