From 5ce993e1ab2810d5548f037151b548814afe2834 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 11 Aug 2023 17:37:21 +0200 Subject: [PATCH 1/7] first part of stripping functionality --- scripts/prepare_delivery.sh | 124 +++++++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 1 deletion(-) diff --git a/scripts/prepare_delivery.sh b/scripts/prepare_delivery.sh index 7db462bfdc..807144e4d0 100755 --- a/scripts/prepare_delivery.sh +++ b/scripts/prepare_delivery.sh @@ -35,14 +35,48 @@ DATE=`eval date +%Y_%m_%d` OUTDIR=c-code TMPCLEANDIR=clean-c-code ROOT=$(dirname $0)/.. +STRIP_SPLITREND=0 - +# check, whether coan exists coan_exists () { type coan &> /dev/null ; # return false } +########################## +# # +# Start, Commandline # +# # +########################## + +ALL_OPTS=":h-:" +while getopts "$ALL_OPTS" OPTION; do + case "${OPTION}" in + -) + case "${OPTARG}" in + strip_sr) + STRIP_SPLITREND=1 + ;; + *) + if [ "$OPTERR" = 1 ] && [ "${ALL_OPTS:0:1}" != ":" ]; then + echo "Unknown option --${OPTARG}" >&2 + fi + ;; + esac;; + h) + echo "usage: $0 [--strip_sr]" >&2 + exit -1 + ;; + *) + if [ "$OPTERR" != 1 ] || [ "${ALLOPTS:0:1}" = ":" ]; then + echo "Unknown argument: '-${OPTARG}'" >&2 + fi + ;; + esac +done + + ########################## # # # Prepare dirs and copy # @@ -80,6 +114,94 @@ cp ${ROOT}/readme.txt ${OUTDIR} recode lat1..ibmpc ${OUTDIR}/readme.txt # unix2dos ... +########################## +# # +# Strip Split Rendering # +# # +########################## + +if [ $STRIP_SPLITREND -ne 0 ]; then + + echo "Stripping Split Rendering" + + # remove complete lc3plus folder + rm -R $OUTDIR/lc3plus + + # remove other split rendering files + declare -a sr_files=( + "lib_rend/ivas_CQMFDecoder.c" + "lib_rend/ivas_CQMFDecoder.h" + "lib_rend/ivas_CQMFEncoder.c" + "lib_rend/ivas_CQMFEncoder.h" + "lib_rend/ivas_MSPred.c" + "lib_rend/ivas_MSPred.h" + "lib_rend/ivas_NoiseGen.c" + "lib_rend/ivas_NoiseGen.h" + "lib_rend/ivas_PerceptualModel.c" + "lib_rend/ivas_PerceptualModel.h" + "lib_rend/ivas_PredDecoder.c" + "lib_rend/ivas_PredDecoder.h" + "lib_rend/ivas_PredEncoder.c" + "lib_rend/ivas_PredEncoder.h" + "lib_rend/ivas_PredTables.h" + "lib_rend/ivas_RMSEnvGrouping.c" + "lib_rend/ivas_RMSEnvGrouping.h" + "lib_rend/ivas_cldfb_codec_bitstream.c" + "lib_rend/ivas_cldfb_codec_bitstream.h" + "lib_rend/ivas_lc3plus_common.c" + "lib_rend/ivas_lc3plus_common.h" + "lib_rend/ivas_lc3plus_dec.c" + "lib_rend/ivas_lc3plus_dec.h" + "lib_rend/ivas_lc3plus_enc.c" + "lib_rend/ivas_lc3plus_enc.h" + "lib_rend/ivas_lc3plus_enc.c" + "lib_rend/ivas_lcld_tables.h" + "lib_rend/ivas_splitRend_lcld_dec.c" + "lib_rend/ivas_splitRend_lcld_enc.c" + "lib_rend/ivas_splitRendererPLC.c" + "lib_rend/ivas_splitRendererPost.c" + "lib_rend/ivas_splitRendererPre.c" + "lib_rend/ivas_splitRenderer_utils.c" + "lib_util/split_rend_bfi_file_reader.c" + "lib_util/split_rend_bfi_file_reader.h" + "lib_util/split_render_file_read_write.c" + "lib_util/split_render_file_read_write.h" + ) + + for file in ${sr_files[@]}; do + rm $OUTDIR/$file + done + + + # strip macros + declare -a sr_macros=( + "SPLIT_REND_WITH_HEAD_ROT" + "SPLIT_REND_PRED_QUANT_63_PNTS" + "SPLIT_REND_WITH_HEAD_ROT_PARAMBIN" + "FIX_658_SPLIT_REND_MASA" + "FIX_658_SPLIT_REND_MASA" + "OSBA_SPLIT_RENDERING" + ) + + if coan_exists; then + + for macro in ${sr_macros[@]}; do + coan source --replace --no-transients -K -U${macro} $OUTDIR/lib_{com,dec,enc,util,rend}/*.[hc] + coan source --replace --no-transients -K -U${macro} $OUTDIR/apps/*.[hc] + sed -i.bak "/#define\ *$macro/d" $OUTDIR/lib_com/options.h + done + + else + + echo "Coan required in path; Aborting. Available at https://coan2.sourceforge.net/" + exit -1 + + fi + + +fi + + ########################## # # # Stripping # -- GitLab From dfa4a4e5524625f6324e10ede83c816f0cd2fdef Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 11 Aug 2023 19:26:17 +0200 Subject: [PATCH 2/7] append strip-list --- scripts/prepare_delivery.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/prepare_delivery.sh b/scripts/prepare_delivery.sh index 807144e4d0..c45e6699fd 100755 --- a/scripts/prepare_delivery.sh +++ b/scripts/prepare_delivery.sh @@ -311,9 +311,15 @@ if coan_exists; then echo "-UDEBUG_SPAR_DIRAC_WRITE_OUT_PRED_PAR" >> $COAN_LIST echo "-UDEBUG_AGC" >> $COAN_LIST echo "-USPAR_HOA_DBG" >> $COAN_LIST + echo "-UDEBUG_OSBA" >> $COAN_LIST echo "-UDEBUG_BINAURAL_FILTER_DESIGN" >> $COAN_LIST echo "-UDEBUG_AGC_ENCODER_CMD_OPTION" >> $COAN_LIST - + echo "-UDEBUG_JBM_CMD_OPTION" >> $COAN_LIST + echo "-UVARIABLE_SPEED_DECODING" >> $COAN_LIST + echo "-UDBG_WAV_WRITER" >> $COAN_LIST + echo "-USPLIT_REND_WITH_HEAD_ROT_DEBUG" >> $COAN_LIST + echo "-USPLIT_POSE_CORRECTION_DEBUG" >> $COAN_LIST + echo "-USPLIT_MD_CODING_DEBUG" >> $COAN_LIST # apply coan coan source --replace --no-transients -K --file $COAN_LIST $OUTDIR/lib_{com,dec,enc,util,rend}/*.[hc] -- GitLab From 13674162826945236a23b4e0c54a086f8161383c Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 11 Aug 2023 22:05:14 +0200 Subject: [PATCH 3/7] further improvement wrt stripping --- scripts/makefile_noSR.patch | 85 +++++++++++++++++++++++++++++++++++++ scripts/prepare_delivery.sh | 35 +++++++++++++-- 2 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 scripts/makefile_noSR.patch diff --git a/scripts/makefile_noSR.patch b/scripts/makefile_noSR.patch new file mode 100644 index 0000000000..dabb4c6129 --- /dev/null +++ b/scripts/makefile_noSR.patch @@ -0,0 +1,85 @@ +--- Makefile 2023-08-11 21:40:55.974878000 +0200 ++++ Makefile_patched 2023-08-11 21:43:18.230151000 +0200 +@@ -6,13 +6,12 @@ + SRC_LIBDEC = lib_dec + SRC_LIBENC = lib_enc + SRC_LIBREND = lib_rend +-SRC_LC3PLUS = lc3plus lc3plus/fft + SRC_LIBUTIL = lib_util + SRC_APP = apps + BUILD = build + OBJDIR = obj + +-SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBREND) $(SRC_LC3PLUS) $(SRC_LIBUTIL) $(SRC_APP)) ++SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBREND) $(SRC_LIBUTIL) $(SRC_APP)) + + # Name of CLI binaries + CLI_APIDEC ?= IVAS_dec +@@ -23,7 +22,6 @@ + LIB_LIBDEC ?= libivasdec.a + LIB_LIBENC ?= libivasenc.a + LIB_LIBREND ?= libivasrend.a +-LIB_LC3PLUS ?= liblc3plus.a + LIB_LIBUTIL ?= libivasutil.a + + # Default tool settings +@@ -124,7 +122,6 @@ + SRCS_LIBDEC = $(foreach DIR,$(SRC_LIBDEC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) + SRCS_LIBENC = $(foreach DIR,$(SRC_LIBENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) + SRCS_LIBREND = $(foreach DIR,$(SRC_LIBREND),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) +-SRCS_LC3PLUS = $(foreach DIR,$(SRC_LC3PLUS),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) + SRCS_LIBUTIL = $(foreach DIR,$(SRC_LIBUTIL),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) + + OBJS_LIBCOM = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.o)) +@@ -132,14 +129,13 @@ + OBJS_LIBDEC = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEC:.c=.o)) + OBJS_LIBENC = $(addprefix $(OBJDIR)/,$(SRCS_LIBENC:.c=.o)) + OBJS_LIBREND = $(addprefix $(OBJDIR)/,$(SRCS_LIBREND:.c=.o)) +-OBJS_LC3PLUS = $(addprefix $(OBJDIR)/,$(SRCS_LC3PLUS:.c=.o)) + OBJS_LIBUTIL = $(addprefix $(OBJDIR)/,$(SRCS_LIBUTIL:.c=.o)) + OBJS_CLI_APIDEC = $(OBJDIR)/decoder.o + OBJS_CLI_APIENC = $(OBJDIR)/encoder.o + OBJS_CLI_APPREND = $(OBJDIR)/renderer.o + + DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS_LIBDEC:.c=.P) \ +- $(SRCS_LIBENC:.c=.P) $(SRCS_LIBUTIL:.c=.P) $(SRCS_LIBREND:.c=.P) $(SRCS_LC3PLUS:.c=.P)) ++ $(SRCS_LIBENC:.c=.P) $(SRCS_LIBUTIL:.c=.P) $(SRCS_LIBREND:.c=.P)) + + ############################################################################### + +@@ -165,28 +161,25 @@ + $(LIB_LIBREND): $(OBJS_LIBREND) + $(QUIET_AR)$(AR) rcs $@ $^ + +-$(LIB_LC3PLUS): $(OBJS_LC3PLUS) +- $(QUIET_AR)$(AR) rcs $@ $^ +- + $(LIB_LIBUTIL): $(OBJS_LIBUTIL) + $(QUIET_AR)$(AR) rcs $@ $^ + +-$(CLI_APIENC): $(OBJS_CLI_APIENC) $(LIB_LIBENC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(LIB_LC3PLUS) ++$(CLI_APIENC): $(OBJS_CLI_APIENC) $(LIB_LIBENC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIENC) -L. -livasenc -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIENC) + +-$(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(LIB_LC3PLUS) +- $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIDEC) -L. -livasdec -livascom -livasutil -livasdebug -llc3plus $(LDLIBS) -o $(CLI_APIDEC) ++$(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) ++ $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIDEC) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIDEC) + +-$(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(LIB_LIBDEC) $(LIB_LC3PLUS) +- $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasdec -livasutil -livasdebug -livascom -llc3plus $(LDLIBS) -o $(CLI_APIREND) ++$(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(LIB_LIBDEC) ++ $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasdec -livasutil -livasdebug -livascom $(LDLIBS) -o $(CLI_APIREND) + +-libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBREND) $(LIB_LC3PLUS) $(LIB_LIBUTIL) ++libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBREND) $(LIB_LIBUTIL) + + clean: + $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(DEPS) + $(QUIET)$(RM) $(DEPS:.P=.d) + $(QUIET)test ! -d $(OBJDIR) || rm -rf $(OBJDIR) +- $(QUIET)$(RM) $(CLI_APIENC) $(CLI_APIDEC) $(CLI_APIREND) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) $(LIB_LIBREND) $(LIB_LC3PLUS) ++ $(QUIET)$(RM) $(CLI_APIENC) $(CLI_APIDEC) $(CLI_APIREND) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) $(LIB_LIBREND) + + $(OBJDIR)/%.o : %.c | $(OBJDIR) + $(QUIET_CC)$(CC) $(CFLAGS) -c -MD -o $@ $< diff --git a/scripts/prepare_delivery.sh b/scripts/prepare_delivery.sh index c45e6699fd..9889c498b0 100755 --- a/scripts/prepare_delivery.sh +++ b/scripts/prepare_delivery.sh @@ -113,6 +113,10 @@ rm -f ${OUTDIR}/Workspace_msvc/lib_debug.vcxproj.bak cp ${ROOT}/readme.txt ${OUTDIR} recode lat1..ibmpc ${OUTDIR}/readme.txt # unix2dos ... +# LICENSE.md +cp ${ROOT}/LICENSE.md ${OUTDIR} +recode lat1..ibmpc ${OUTDIR}/LICENSE.md # unix2dos ... + ########################## # # @@ -128,7 +132,7 @@ if [ $STRIP_SPLITREND -ne 0 ]; then rm -R $OUTDIR/lc3plus # remove other split rendering files - declare -a sr_files=( + declare -a sr_files_rend=( "lib_rend/ivas_CQMFDecoder.c" "lib_rend/ivas_CQMFDecoder.h" "lib_rend/ivas_CQMFEncoder.c" @@ -154,7 +158,7 @@ if [ $STRIP_SPLITREND -ne 0 ]; then "lib_rend/ivas_lc3plus_dec.h" "lib_rend/ivas_lc3plus_enc.c" "lib_rend/ivas_lc3plus_enc.h" - "lib_rend/ivas_lc3plus_enc.c" + "lib_rend/ivas_lcld_tables.c" "lib_rend/ivas_lcld_tables.h" "lib_rend/ivas_splitRend_lcld_dec.c" "lib_rend/ivas_splitRend_lcld_enc.c" @@ -162,14 +166,25 @@ if [ $STRIP_SPLITREND -ne 0 ]; then "lib_rend/ivas_splitRendererPost.c" "lib_rend/ivas_splitRendererPre.c" "lib_rend/ivas_splitRenderer_utils.c" + ) + + for file in ${sr_files_rend[@]}; do + rm $OUTDIR/$file + file_windows=${file//\//'\\'} + sed -i.bak -e "/${file_windows}/d" ${OUTDIR}/Workspace_msvc/lib_rend.vcxproj + done + + declare -a sr_files_util=( "lib_util/split_rend_bfi_file_reader.c" "lib_util/split_rend_bfi_file_reader.h" "lib_util/split_render_file_read_write.c" "lib_util/split_render_file_read_write.h" ) - for file in ${sr_files[@]}; do + for file in ${sr_files_util[@]}; do rm $OUTDIR/$file + file_windows=${file//\//'\\'} + sed -i.bak -e "/${file_windows}/d" ${OUTDIR}/Workspace_msvc/lib_rend.vcxproj done @@ -197,7 +212,19 @@ if [ $STRIP_SPLITREND -ne 0 ]; then exit -1 fi - + + # patch Makefile + patch ${OUTDIR}/Makefile < ${ROOT}/scripts/makefile_noSR.patch + + # delete project file + rm ${OUTDIR}/Workspace_msvc/LC3plus.vcxproj + + # patch project/solution files + sed -i.bak "/LC3plus.vcxproj/,+1d" ${OUTDIR}/Workspace_msvc/Workspace_msvc.sln + find ${OUTDIR}/Workspace_msvc -name "*.vcxproj" -exec sed -i.bak -e "s/..\\lc3plus\;//g" \{\} \; + + # clean-up *.bak-files + find $OUTDIR -name "*.bak" -exec rm \{\} \; fi -- GitLab From 4a08762a83fd31eda74fc668991eaeeb6262d467 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 11 Aug 2023 22:23:23 +0200 Subject: [PATCH 4/7] fix wrong filename --- scripts/prepare_delivery.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/prepare_delivery.sh b/scripts/prepare_delivery.sh index 9889c498b0..2c019affbf 100755 --- a/scripts/prepare_delivery.sh +++ b/scripts/prepare_delivery.sh @@ -184,7 +184,7 @@ if [ $STRIP_SPLITREND -ne 0 ]; then for file in ${sr_files_util[@]}; do rm $OUTDIR/$file file_windows=${file//\//'\\'} - sed -i.bak -e "/${file_windows}/d" ${OUTDIR}/Workspace_msvc/lib_rend.vcxproj + sed -i.bak -e "/${file_windows}/d" ${OUTDIR}/Workspace_msvc/lib_util.vcxproj done -- GitLab From 53f8516471f796a61490474f55260460a7c02c6b Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 11 Aug 2023 22:26:03 +0200 Subject: [PATCH 5/7] include .clang_format --- scripts/prepare_delivery.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/prepare_delivery.sh b/scripts/prepare_delivery.sh index 2c019affbf..fc6f6f8003 100755 --- a/scripts/prepare_delivery.sh +++ b/scripts/prepare_delivery.sh @@ -117,6 +117,8 @@ recode lat1..ibmpc ${OUTDIR}/readme.txt # unix2dos ... cp ${ROOT}/LICENSE.md ${OUTDIR} recode lat1..ibmpc ${OUTDIR}/LICENSE.md # unix2dos ... +# include .clang_format, since this is a VS dependency +cp ${ROOT}/.clang-format ${OUTDIR} ########################## # # -- GitLab From e6eb1998edb71d6b25617befdd9b4e654b17e713 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 11 Aug 2023 22:50:07 +0200 Subject: [PATCH 6/7] patch dependency --- scripts/prepare_delivery.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/prepare_delivery.sh b/scripts/prepare_delivery.sh index fc6f6f8003..c0392cff9c 100755 --- a/scripts/prepare_delivery.sh +++ b/scripts/prepare_delivery.sh @@ -224,6 +224,7 @@ if [ $STRIP_SPLITREND -ne 0 ]; then # patch project/solution files sed -i.bak "/LC3plus.vcxproj/,+1d" ${OUTDIR}/Workspace_msvc/Workspace_msvc.sln find ${OUTDIR}/Workspace_msvc -name "*.vcxproj" -exec sed -i.bak -e "s/..\\lc3plus\;//g" \{\} \; + sed -i.bak "/LC3plus.vcxproj/,+3d" ${OUTDIR}/Workspace_msvc/lib_rend.vcxproj # patch dependency # clean-up *.bak-files find $OUTDIR -name "*.bak" -exec rm \{\} \; -- GitLab From ad3e797de5eb3c63cc81eaf27466c6a6f86a8fc3 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 11 Aug 2023 23:52:51 +0200 Subject: [PATCH 7/7] rename CR_ switches to NONBE_ --- scripts/prepare_delivery.sh | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/scripts/prepare_delivery.sh b/scripts/prepare_delivery.sh index c0392cff9c..5f55895f58 100755 --- a/scripts/prepare_delivery.sh +++ b/scripts/prepare_delivery.sh @@ -375,6 +375,47 @@ else fi + +########################## +# # +# CR Switches for 1st # +# delivery # +# # +########################## + +# rename switches from CR_ to NONBE_ +tmpfile=`mktemp` +rm -f $tmpfile +touch $tmpfile + +cat $OUTDIR/lib_com/options.h | sed -n '/Start NON-BE CR switches/,/End NON-BE CR switches/p' >> $tmpfile +sed -i.bak "s/^-D//g" $tmpfile + +nonbe_list=nonbe_list_delivery.txt +rm -f $nonbe_list +touch $nonbe_list + +${ROOT}/scripts/parse_options_h.sh -c $tmpfile >> $nonbe_list + +# rename switches +while read line +do + macro=`echo $line | grep '\-D' | sed -e "s/\-D//g"` + if [[ ! $macro =~ [^[:space:]] ]] ; then + continue + fi + macro_new=${macro/CR_/NONBE_} + find $OUTDIR -name "*.[ch]" -exec sed -i.bak -e "s/${macro}/${macro_new}/g" \{\} \; +done < $nonbe_list + +rm -f $nonbe_list +rm -f $tmpfile + +sed -i.bak -e "s/NON-BE CR switches/NON-BE switches/g" $OUTDIR/lib_com/options.h +sed -i.bak -e "/all switches in this category should start with \"CR_\"/d" $OUTDIR/lib_com/options.h + + + ########################## # # # Patch code # -- GitLab