diff --git a/.daisy/workflow-openfoam.yml b/.daisy/workflow-openfoam.yml new file mode 100644 index 0000000000..78583be5d4 --- /dev/null +++ b/.daisy/workflow-openfoam.yml @@ -0,0 +1,75 @@ +on: + pull_request: + types: [opened, reopened, synchronize, ready_for_review] + +parameters: + timeout: 360 + partitions: + - chamomile + +steps: + build: | + + sudo apt-get update + sudo apt-get install -y build-essential libopenmpi-dev zlib1g-dev gnuplot gnuplot-x11 libxt-dev cmake flex + sudo apt-get install -y libxml2-dev libhdf5-dev libavfilter-dev libtheora-dev libgl2ps-dev libx11-dev libqt5x11extras5-dev libglew-dev libutfcpp-dev + + export WM_PROJECT_DIR=`pwd` + . etc/custom_bashrc + ./wmake/wmakeLnIncludeAll + + ./Allwmake -j128 + + cd ${WM_PROJECT_DIR}/tutorials/incompressibleFluid/cavity + ${FOAM_APPBIN}/blockMesh + cd ${WM_PROJECT_DIR} + + run: + cavity: + command: bin/foamRun -case ./tutorials/incompressibleFluid/cavity + measurements: 5 + profiler: perf + env: + FOAM_APP: "/workspace/applications" + FOAM_APPBIN: "/workspace/platforms/linux64GccSPInt32Opt/bin" + FOAM_EXT_LIBBIN: "/workspace/ThirdParty-dev/platforms/linux64GccSPInt32/lib" + FOAM_INST_DIR: "/" + FOAM_LIBBIN: "/workspace/platforms/linux64GccSPInt32Opt/lib" + FOAM_MODULES: "/workspace/applications/modules" + FOAM_MPI: "openmpi-system" + FOAM_PROJECT_DIR: "/workspace" + FOAM_SOLVERS: "/workspace/applications/solvers" + FOAM_SRC: "/workspace/src" + FOAM_TUTORIALS: "/workspace/tutorials" + FOAM_USER_APPBIN: "/platforms/linux64GccSPInt32Opt/bin" + FOAM_USER_LIBBIN: "/platforms/linux64GccSPInt32Opt/lib" + FOAM_UTILITIES: "/workspace/applications/utilities" + WM_ARCH: "linux64" + WM_ARCH_OPTION: "64" + WM_CC: "gcc" + WM_CFLAGS: "-m64 -fPIC -g" + WM_COMPILER: "Gcc" + WM_COMPILER_LIB_ARCH: "64" + WM_COMPILE_OPTION: "Opt" + WM_CXX: "g++" + WM_CXXFLAGS: "-m64 -fPIC -std: c++0x -g" + WM_DIR: "/workspace/wmake" + WM_LABEL_OPTION: "Int32" + WM_LABEL_SIZE: "32" + WM_LDFLAGS: "-m64" + WM_LINK_LANGUAGE: "c++" + WM_MPLIB: NONE #"SYSTEMOPENMPI" + WM_OPTIONS: "linux64GccSPInt32Opt" + WM_OSTYPE: "POSIX" + WM_PRECISION_OPTION: "SP" + WM_PROJECT: "OpenFOAM" + WM_PROJECT_DIR: "/workspace" + WM_PROJECT_INST_DIR: "/" + WM_THIRD_PARTY_DIR: "/workspace/ThirdParty-dev" + SCOTCH_TYPE: none #ThirdParty + METIS_TYPE: none + PARMETIS_TYPE: none + ZOLTAN_TYPE: none #ThirdParty + PATH: $PATH:/workspace/wmake + LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu:/usr/local/lib:/usr/local/lib64:/usr/local/papi/lib:/usr/local/cuda-12.8/lib64:/workspace/platforms/linux64GccSPInt32Opt/lib:/workspace/platforms/linux64GccSPInt32Opt/lib/dummy + LIBRARY_PATH: /usr/local/lib diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..9fe2969c35 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "ThirdParty-dev"] + path = ThirdParty-dev + url = https://github.com/OpenFOAM/ThirdParty-dev.git diff --git a/ThirdParty-dev b/ThirdParty-dev new file mode 160000 index 0000000000..cda87f9aca --- /dev/null +++ b/ThirdParty-dev @@ -0,0 +1 @@ +Subproject commit cda87f9acaca25952d17d96140fb9662c19642f2 diff --git a/applications/modules/compressibleVoF/alphaSuSp.C b/applications/modules/compressibleVoF/alphaSuSp.C index fdf6721aee..6260584b88 100644 --- a/applications/modules/compressibleVoF/alphaSuSp.C +++ b/applications/modules/compressibleVoF/alphaSuSp.C @@ -71,9 +71,9 @@ void Foam::solvers::compressibleVoF::alphaSuSp if (vDot[celli] > 0.0) { Sp[celli] -= - vDot[celli]/max(1.0 - alpha1[celli], vDotResidualAlpha); + vDot[celli]/max(scalar(1.0) - alpha1[celli], vDotResidualAlpha); Su[celli] += - vDot[celli]/max(1.0 - alpha1[celli], vDotResidualAlpha); + vDot[celli]/max(scalar(1.0) - alpha1[celli], vDotResidualAlpha); } else if (vDot[celli] < 0.0) { diff --git a/applications/solvers/foamRun/Make/files b/applications/solvers/foamRun/Make/files index 2b1fee90a9..49a77cadbe 100644 --- a/applications/solvers/foamRun/Make/files +++ b/applications/solvers/foamRun/Make/files @@ -1,4 +1,4 @@ setDeltaT.C foamRun.C -EXE = $(FOAM_APPBIN)/foamRun +EXE = $(WM_PROJECT_DIR)/bin/foamRun diff --git a/etc/bashrc b/etc/bashrc index ab3da4c50d..0ad04ed4ef 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -47,10 +47,13 @@ export WM_PROJECT_VERSION=dev if [ -n "$bashrcFile" ] then export FOAM_INST_DIR=$(cd $(dirname $bashrcFile)/../.. && pwd -P) + export FOAM_PROJECT_DIR=$(cd $(dirname $bashrcFile)/.. && pwd -P) else - export FOAM_INST_DIR=$HOME/$WM_PROJECT + export FOAM_INST_DIR=$(cd $(dirname $0)/.. && pwd -P) + export FOAM_PROJECT_DIR=$(cd $(dirname $0) && pwd -P) fi unset bashrcFile +echo ${FOAM_INST_DIR} # # Please set to the appropriate path if the above default is not correct. E.g., # @@ -71,9 +74,10 @@ export WM_COMPILER_TYPE=system #- Compiler: # WM_COMPILER = Gcc | Gcc48 ... Gcc62 | Clang | Icx -export WM_COMPILER=Gcc +export WM_COMPILER=DOCC # Clang #Gcc unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH +echo $WM_COMPILER #- Memory addressing: # On a 64bit OS this can be 32bit or 64bit # On a 32bit OS addressing is 32bit and this option is not used @@ -82,11 +86,11 @@ export WM_ARCH_OPTION=64 #- Precision: # WM_PRECISION_OPTION = SP | DP | LP -export WM_PRECISION_OPTION=DP +export WM_PRECISION_OPTION=SP #- Label size: # WM_LABEL_SIZE = 32 | 64 -export WM_LABEL_SIZE=32 +export WM_LABEL_SIZE=64 #- Optimised, debug, profiling: # WM_COMPILE_OPTION = Opt | Debug | Prof @@ -95,7 +99,7 @@ export WM_COMPILE_OPTION=Opt #- MPI implementation: # WM_MPLIB = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPICH | MPICH-GM | HPMPI # | MPI | FJMPI | QSMPI | SGIMPI | INTELMPI -export WM_MPLIB=SYSTEMOPENMPI +export WM_MPLIB=NONE #SYSTEMOPENMPI #- Operating System: # WM_OSTYPE = POSIX | ??? @@ -103,13 +107,13 @@ export WM_OSTYPE=POSIX #- Decomposition libraries: # _TYPE = none | system | ThirdParty (OpenFOAM) -export SCOTCH_TYPE=ThirdParty +export SCOTCH_TYPE=none #ThirdParty export METIS_TYPE=none export PARMETIS_TYPE=none -export ZOLTAN_TYPE=ThirdParty +export ZOLTAN_TYPE=none #ThirdParty # ParaView_TYPE = none | system | paraviewopenfoam | ThirdParty (OpenFOAM) -export ParaView_TYPE=system +export ParaView_TYPE=none #- Floating-point signal handling: # set or unset @@ -130,8 +134,10 @@ foamOldDirs="$WM_PROJECT_DIR $WM_THIRD_PARTY_DIR \ # Location of installation # ~~~~~~~~~~~~~~~~~~~~~~~~ export WM_PROJECT_INST_DIR=$FOAM_INST_DIR -export WM_PROJECT_DIR=$WM_PROJECT_INST_DIR/$WM_PROJECT-$WM_PROJECT_VERSION +export WM_PROJECT_DIR=$FOAM_PROJECT_DIR + #$WM_PROJECT_INST_DIR/$WM_PROJECT-$WM_PROJECT_VERSION +echo $WM_PROJECT_DIR if [ -d "$WM_PROJECT_DIR" ] then WM_PROJECT_DIR_REAL=$(cd $WM_PROJECT_DIR && pwd -P) @@ -172,9 +178,9 @@ _foamParams $@ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if [ ${WM_THIRD_PARTY%%/*} = ${WM_PROJECT_DIR##*/} ] then - export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/$WM_THIRD_PARTY + export WM_THIRD_PARTY_DIR=$WM_PROJECT_DIR/$WM_THIRD_PARTY else - export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/$WM_THIRD_PARTY-$WM_PROJECT_VERSION + export WM_THIRD_PARTY_DIR=$WM_PROJECT_DIR/$WM_THIRD_PARTY-$WM_PROJECT_VERSION fi if [ -d "$WM_THIRD_PARTY_DIR" ] diff --git a/etc/config.sh/compiler b/etc/config.sh/compiler index fd25d200e2..79bc8ed0da 100644 --- a/etc/config.sh/compiler +++ b/etc/config.sh/compiler @@ -37,6 +37,8 @@ OpenFOAM | ThirdParty) gmp_version=gmp-5.1.2 mpfr_version=mpfr-3.1.2 mpc_version=mpc-1.0.1 + + echo $WM_COMPILER case "$WM_COMPILER" in Gcc55) @@ -62,10 +64,14 @@ OpenFOAM | ThirdParty) ;; Clang) # Using clang - not gcc - export WM_CC='clang' - export WM_CXX='clang++' + export WM_CC='clang-15' + export WM_CXX='clang++-15' clang_version=llvm-3.7.0 ;; + DOCC) + export WM_CC='docc' + export WM_CXX='docc-cpp' + ;; *) /bin/cat <&2 diff --git a/etc/custom_bashrc b/etc/custom_bashrc new file mode 100644 index 0000000000..370cdd9e8e --- /dev/null +++ b/etc/custom_bashrc @@ -0,0 +1,48 @@ + + + export FOAM_APP="$WM_PROJECT_DIR/applications" + export FOAM_APPBIN="$WM_PROJECT_DIR/platforms/linux64GccSPInt32Opt/bin" + export FOAM_EXT_LIBBIN="$WM_PROJECT_DIR/ThirdParty-dev/platforms/linux64GccSPInt32/lib" + export FOAM_INST_DIR="/" + export FOAM_LIBBIN="$WM_PROJECT_DIR/platforms/linux64GccSPInt32Opt/lib" + export FOAM_MODULES="$WM_PROJECT_DIR/applications/modules" + export FOAM_MPI="openmpi-system" + export FOAM_PROJECT_DIR="$WM_PROJECT_DIR" + export FOAM_SOLVERS="$WM_PROJECT_DIR/applications/solvers" + export FOAM_SRC="$WM_PROJECT_DIR/src" + export FOAM_TUTORIALS="$WM_PROJECT_DIR/tutorials" + export FOAM_USER_APPBIN="/platforms/linux64GccSPInt32Opt/bin" + export FOAM_USER_LIBBIN="/platforms/linux64GccSPInt32Opt/lib" + export FOAM_UTILITIES="$WM_PROJECT_DIR/applications/utilities" + + export WM_ARCH="linux64" + export WM_ARCH_OPTION="64" + export WM_CC="gcc" + export WM_CFLAGS="-m64 -fPIC -g" + export WM_COMPILER="Gcc" + export WM_COMPILER_LIB_ARCH="64" + export WM_COMPILE_OPTION="Opt" + export WM_CXX="g++" + export WM_CXXFLAGS="-m64 -fPIC -std=c++0x -g" + export WM_DIR="$WM_PROJECT_DIR/wmake" + export WM_LABEL_OPTION="Int32" + export WM_LABEL_SIZE="32" + export WM_LDFLAGS="-m64" + export WM_LINK_LANGUAGE="c++" + export WM_MPLIB=NONE #"SYSTEMOPENMPI" + export WM_OPTIONS="linux64GccSPInt32Opt" + export WM_OSTYPE="POSIX" + export WM_PRECISION_OPTION="SP" + export WM_PROJECT="OpenFOAM" + export WM_PROJECT_INST_DIR="/" + export WM_THIRD_PARTY_DIR="$WM_PROJECT_DIR/ThirdParty-dev" + + export SCOTCH_TYPE=none #ThirdParty + export METIS_TYPE=none + export PARMETIS_TYPE=none + export ZOLTAN_TYPE=none #ThirdParty + + + export PATH=$PATH:$WM_PROJECT_DIR/wmake + export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/usr/local/lib:/usr/local/lib64:/usr/local/papi/lib:/usr/local/cuda-12.8/lib64:$WM_PROJECT_DIR/platforms/linux64GccSPInt32Opt/lib:$WM_PROJECT_DIR/platforms/linux64GccSPInt32Opt/lib/dummy + export LIBRARY_PATH=/usr/local/lib diff --git a/src/functionObjects/solvers/scalarTransport/scalarTransport.C b/src/functionObjects/solvers/scalarTransport/scalarTransport.C index b53d43aac9..f72268c758 100644 --- a/src/functionObjects/solvers/scalarTransport/scalarTransport.C +++ b/src/functionObjects/solvers/scalarTransport/scalarTransport.C @@ -489,7 +489,7 @@ void Foam::functionObjects::scalarTransport::solveMULES() volScalarField::New ( "cnBDCoeff", - max(cnCoeff, 1.0 - 1.0/max(Co, 2.0)), + max(cnCoeff, scalar(1.0) - scalar(1.0)/max(Co, scalar(2.0))), zeroGradientFvPatchField::typeName ) ) diff --git a/tutorials/incompressibleFluid/propeller/Allmesh b/tutorials/incompressibleFluid/propeller/Allmesh index 8dbc8a79ed..0fe975aa4f 100755 --- a/tutorials/incompressibleFluid/propeller/Allmesh +++ b/tutorials/incompressibleFluid/propeller/Allmesh @@ -8,19 +8,19 @@ cd ${0%/*} || exit 1 # Run from this directory cp $FOAM_TUTORIALS/resources/geometry/propeller*.obj.gz constant/geometry/ # Mesh in parallel -runApplication blockMesh -runApplication surfaceFeatures -runApplication decomposePar -noFields -runParallel snappyHexMesh -overwrite +${FOAM_APPBIN}/blockMesh +${FOAM_APPBIN}/surfaceFeatures +${FOAM_APPBIN}/decomposePar -noFields +${FOAM_APPBIN}/snappyHexMesh -overwrite # Create the sliding patches -runParallel createBaffles -overwrite -runParallel splitBaffles -overwrite +${FOAM_APPBIN}/createBaffles -overwrite +${FOAM_APPBIN}/splitBaffles -overwrite # Renumber -runParallel renumberMesh -noFields -overwrite +${FOAM_APPBIN}/renumberMesh -noFields -overwrite # Create non-conformal couples -runParallel createNonConformalCouples -overwrite nonCouple1 nonCouple2 +${FOAM_APPBIN}/createNonConformalCouples -overwrite nonCouple1 nonCouple2 #------------------------------------------------------------------------------ diff --git a/tutorials/incompressibleFluid/propeller/system/controlDict b/tutorials/incompressibleFluid/propeller/system/controlDict index c3b09d08ac..5464ccbae5 100644 --- a/tutorials/incompressibleFluid/propeller/system/controlDict +++ b/tutorials/incompressibleFluid/propeller/system/controlDict @@ -22,7 +22,7 @@ startTime 0; stopAt endTime; -endTime 0.1; +endTime 0.01; deltaT 1e-5; writeControl adjustableRunTime; diff --git a/wmake/rules/linux64Clang/c b/wmake/rules/linux64Clang/c index b743e3f68c..fc9f5c4b37 100644 --- a/wmake/rules/linux64Clang/c +++ b/wmake/rules/linux64Clang/c @@ -2,7 +2,7 @@ SUFFIXES += .c cWARN = -Wall -cc = clang -m64 +cc = clang-15 -m64 include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION) diff --git a/wmake/rules/linux64Clang/c++ b/wmake/rules/linux64Clang/c++ index fe76c92623..517ce127b5 100644 --- a/wmake/rules/linux64Clang/c++ +++ b/wmake/rules/linux64Clang/c++ @@ -8,7 +8,7 @@ c++WARN = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor \ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs \ -Wno-tautological-undefined-compare -Wno-shift-negative-value -CC = clang++ -std=c++14 -m64 +CC = clang++-15 -std=c++14 -m64 include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION) diff --git a/wmake/rules/linux64DOCC/c b/wmake/rules/linux64DOCC/c new file mode 100644 index 0000000000..999ae91c7d --- /dev/null +++ b/wmake/rules/linux64DOCC/c @@ -0,0 +1,16 @@ +SUFFIXES += .c + +cWARN = -Wall + +cc = docc -m64 + +include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION) + +cFLAGS = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC + +ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@ + +LINK_LIBS = $(cDBUG) + +LINKLIBSO = $(cc) -shared +LINKEXE = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs diff --git a/wmake/rules/linux64DOCC/c++ b/wmake/rules/linux64DOCC/c++ new file mode 100644 index 0000000000..bf6ea619a9 --- /dev/null +++ b/wmake/rules/linux64DOCC/c++ @@ -0,0 +1,28 @@ +SUFFIXES += .C + +c++WARN = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor \ + -Wno-unused-parameter -Wno-invalid-offsetof \ + -Wno-undefined-var-template -Wno-unqualified-std-cast-call + +# Suppress some warnings for flex++ +c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs \ + -Wno-tautological-undefined-compare -Wno-shift-negative-value + +CC = docc-cpp -std=c++14 -m64 + +include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION) + +ptFLAGS = -DNoRepository -ftemplate-depth-100 + +c++FLAGS = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) \ + $(LIB_HEADER_DIRS) -fPIC + +Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@ +cxxtoo = $(Ctoo) +cctoo = $(Ctoo) +cpptoo = $(Ctoo) + +LINK_LIBS = $(c++DBUG) + +LINKLIBSO = $(CC) $(c++FLAGS) -shared +LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed diff --git a/wmake/rules/linux64DOCC/c++Debug b/wmake/rules/linux64DOCC/c++Debug new file mode 100644 index 0000000000..1c63335a3f --- /dev/null +++ b/wmake/rules/linux64DOCC/c++Debug @@ -0,0 +1,2 @@ +c++DBUG = -g -DFULLDEBUG +c++OPT = -O0 diff --git a/wmake/rules/linux64DOCC/c++Opt b/wmake/rules/linux64DOCC/c++Opt new file mode 100644 index 0000000000..2aedabd628 --- /dev/null +++ b/wmake/rules/linux64DOCC/c++Opt @@ -0,0 +1,2 @@ +c++DBUG = +c++OPT = -O3 diff --git a/wmake/rules/linux64DOCC/c++Prof b/wmake/rules/linux64DOCC/c++Prof new file mode 100644 index 0000000000..3bda4dad55 --- /dev/null +++ b/wmake/rules/linux64DOCC/c++Prof @@ -0,0 +1,2 @@ +c++DBUG = -pg +c++OPT = -O2 diff --git a/wmake/rules/linux64DOCC/cDebug b/wmake/rules/linux64DOCC/cDebug new file mode 100644 index 0000000000..7b7adf10de --- /dev/null +++ b/wmake/rules/linux64DOCC/cDebug @@ -0,0 +1,2 @@ +cDBUG = -g -DFULLDEBUG +cOPT = -O0 diff --git a/wmake/rules/linux64DOCC/cOpt b/wmake/rules/linux64DOCC/cOpt new file mode 100644 index 0000000000..17318709f1 --- /dev/null +++ b/wmake/rules/linux64DOCC/cOpt @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 diff --git a/wmake/rules/linux64DOCC/cProf b/wmake/rules/linux64DOCC/cProf new file mode 100644 index 0000000000..ca3ac9bf5f --- /dev/null +++ b/wmake/rules/linux64DOCC/cProf @@ -0,0 +1,2 @@ +cDBUG = -pg +cOPT = -O2 diff --git a/wmake/rules/linux64DOCC/general b/wmake/rules/linux64DOCC/general new file mode 100644 index 0000000000..65aabcd70a --- /dev/null +++ b/wmake/rules/linux64DOCC/general @@ -0,0 +1,8 @@ +LD = docc-cpp # -melf_i386 + +PROJECT_LIBS = -l$(WM_PROJECT) -ldl + +include $(GENERAL_RULES)/standard + +include $(DEFAULT_RULES)/c +include $(DEFAULT_RULES)/c++ diff --git a/wmake/rules/linuxClang/c b/wmake/rules/linuxClang/c index 2c8e8a7f9c..5e0a40ea14 100644 --- a/wmake/rules/linuxClang/c +++ b/wmake/rules/linuxClang/c @@ -2,7 +2,7 @@ SUFFIXES += .c cWARN = -Wall -cc = clang -m32 +cc = clang-15 -m32 include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION) diff --git a/wmake/rules/linuxClang/c++ b/wmake/rules/linuxClang/c++ index f76912152b..abbabc2c81 100644 --- a/wmake/rules/linuxClang/c++ +++ b/wmake/rules/linuxClang/c++ @@ -8,7 +8,7 @@ c++WARN = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor \ c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs \ -Wno-tautological-undefined-compare -Wno-shift-negative-value -CC = clang++ -std=c++14 -m32 +CC = clang++-15 -std=c++14 -m32 include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION) diff --git a/wmake/rules/linuxDOCC/c b/wmake/rules/linuxDOCC/c new file mode 100644 index 0000000000..69b2ddc8a1 --- /dev/null +++ b/wmake/rules/linuxDOCC/c @@ -0,0 +1,16 @@ +SUFFIXES += .c + +cWARN = -Wall + +cc = docc -mllvm -hotspot -m32 + +include $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION) + +cFLAGS = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC + +ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@ + +LINK_LIBS = $(cDBUG) + +LINKLIBSO = $(cc) -shared +LINKEXE = $(cc) -Xlinker --add-needed -Xlinker -z -Xlinker nodefs -ldaisy_rtl diff --git a/wmake/rules/linuxDOCC/c++ b/wmake/rules/linuxDOCC/c++ new file mode 100644 index 0000000000..88baac70c3 --- /dev/null +++ b/wmake/rules/linuxDOCC/c++ @@ -0,0 +1,28 @@ +SUFFIXES += .C + +c++WARN = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor \ + -Wno-unused-parameter -Wno-invalid-offsetof \ + -Wno-undefined-var-template -Wno-unqualified-std-cast-call + +# Suppress some warnings for flex++ +c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs \ + -Wno-tautological-undefined-compare -Wno-shift-negative-value + +CC = docc-cpp -std=c++14 -m32 + +include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION) + +ptFLAGS = -DNoRepository -ftemplate-depth-100 + +c++FLAGS = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) \ + $(LIB_HEADER_DIRS) -fPIC -mllvm -hotspot + +Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@ +cxxtoo = $(Ctoo) +cctoo = $(Ctoo) +cpptoo = $(Ctoo) + +LINK_LIBS = $(c++DBUG) + +LINKLIBSO = $(CC) $(c++FLAGS) -shared +LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed -ldaisy_rtl diff --git a/wmake/rules/linuxDOCC/c++Debug b/wmake/rules/linuxDOCC/c++Debug new file mode 100644 index 0000000000..1c63335a3f --- /dev/null +++ b/wmake/rules/linuxDOCC/c++Debug @@ -0,0 +1,2 @@ +c++DBUG = -g -DFULLDEBUG +c++OPT = -O0 diff --git a/wmake/rules/linuxDOCC/c++Opt b/wmake/rules/linuxDOCC/c++Opt new file mode 100644 index 0000000000..2aedabd628 --- /dev/null +++ b/wmake/rules/linuxDOCC/c++Opt @@ -0,0 +1,2 @@ +c++DBUG = +c++OPT = -O3 diff --git a/wmake/rules/linuxDOCC/c++Prof b/wmake/rules/linuxDOCC/c++Prof new file mode 100644 index 0000000000..3bda4dad55 --- /dev/null +++ b/wmake/rules/linuxDOCC/c++Prof @@ -0,0 +1,2 @@ +c++DBUG = -pg +c++OPT = -O2 diff --git a/wmake/rules/linuxDOCC/cDebug b/wmake/rules/linuxDOCC/cDebug new file mode 100644 index 0000000000..7b7adf10de --- /dev/null +++ b/wmake/rules/linuxDOCC/cDebug @@ -0,0 +1,2 @@ +cDBUG = -g -DFULLDEBUG +cOPT = -O0 diff --git a/wmake/rules/linuxDOCC/cOpt b/wmake/rules/linuxDOCC/cOpt new file mode 100644 index 0000000000..17318709f1 --- /dev/null +++ b/wmake/rules/linuxDOCC/cOpt @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 diff --git a/wmake/rules/linuxDOCC/cProf b/wmake/rules/linuxDOCC/cProf new file mode 100644 index 0000000000..ca3ac9bf5f --- /dev/null +++ b/wmake/rules/linuxDOCC/cProf @@ -0,0 +1,2 @@ +cDBUG = -pg +cOPT = -O2 diff --git a/wmake/rules/linuxDOCC/general b/wmake/rules/linuxDOCC/general new file mode 100644 index 0000000000..b625cfb688 --- /dev/null +++ b/wmake/rules/linuxDOCC/general @@ -0,0 +1,8 @@ +LD = ld -melf_i386 + +PROJECT_LIBS = -l$(WM_PROJECT) -ldl + +include $(GENERAL_RULES)/standard + +include $(DEFAULT_RULES)/c +include $(DEFAULT_RULES)/c++