Skip to content

Commit 5c7f67a

Browse files
committed
Merge branch 'feature/cbind'
2 parents 2e834e6 + 5b7e416 commit 5c7f67a

1 file changed

Lines changed: 70 additions & 54 deletions

File tree

inst/tools/stripper

Lines changed: 70 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,73 @@ check_linker()
9090
return 0
9191
}
9292

93-
# Clean up any temporary files we created previously
94-
95-
rm -f src/Makevars.R_STRIP_LINKER_OPTION
93+
# Takes an argument with the name of the Makevars file to modify (assuming it
94+
# is in src/ and modifies it accordingly. If the second parameter is set to
95+
# "create-if-missing" it will create the file if it is not already there.
96+
modify_makevars()
97+
{
98+
MAKEVARS_FILE="$1"
99+
CREATE_IF_MISSING="$2"
100+
101+
# Clean up any temporary files we created previously
102+
rm -f src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION
103+
104+
# If there is a pre-existing Makevars file, go through it and remove the
105+
# line where we assign to R_STRIP_LINKER_OPTION. Also, if there is already
106+
# a line that assigns to PKG_LIBS, make sure it adds
107+
# $(R_STRIP_LINKER_OPTION) to the end. Store the results in
108+
# src/Makevars.R_STRIP_LINKER_OPTION
109+
110+
FOUND_PKG_LIBS_ASSIGNMENT=0
111+
112+
if [ -f "src/$MAKEVARS_FILE" ]; then
113+
while read -r LINE || [ -n "$LINE" ]; do
114+
case "$LINE" in
115+
*PKG_LIBS*=*)
116+
case "$LINE" in
117+
*R_STRIP_LINKER_OPTION*)
118+
echo $LINE >> src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION ;;
119+
*)
120+
echo "$LINE \$(R_STRIP_LINKER_OPTION)" \
121+
>> src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION ;;
122+
esac
123+
FOUND_PKG_LIBS_ASSIGNMENT=1
124+
;;
125+
*R_STRIP_LINKER_OPTION*) ;;
126+
*) echo $LINE >> src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION ;;
127+
esac
128+
done <src/$MAKEVARS_FILE
129+
130+
# Place the proper value in R_STRIP_LINKER_OPTION
131+
echo "R_STRIP_LINKER_OPTION=\"$ARGUMENT\"" \
132+
>> src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION
133+
134+
# If there wasn't an assignment to PKG_LIBS already in place, then we need
135+
# to add one to get our R_STRIP_LINKER_OPTION in there.
136+
137+
if [ $FOUND_PKG_LIBS_ASSIGNMENT -eq 0 ]; then
138+
echo "PKG_LIBS = \$(R_STRIP_LINKER_OPTION)" \
139+
>> src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION
140+
fi
141+
elif [ "$CREATE_IF_MISSING" = "create-if-missing" ]; then
142+
# Place the proper value in R_STRIP_LINKER_OPTION
143+
echo "R_STRIP_LINKER_OPTION=\"$ARGUMENT\"" \
144+
>> src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION
145+
echo "PKG_LIBS = \$(R_STRIP_LINKER_OPTION)" \
146+
>> src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION
147+
fi
148+
149+
if [ -f src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION ]; then
150+
if [ -f src/$MAKEVARS_FILE ]; then
151+
mv src/$MAKEVARS_FILE src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION.bak
152+
fi
153+
154+
mv src/$MAKEVARS_FILE.R_STRIP_LINKER_OPTION src/$MAKEVARS_FILE
155+
fi
156+
157+
# This function always suceeds (even if it does nothing)
158+
return 0
159+
}
96160

97161
# Set the string we want to pass
98162
ARGUMENT=""
@@ -123,54 +187,6 @@ fi
123187
if [ "$ARGUMENT" != "" ]; then
124188
echo "Compatible linkers found."
125189

126-
# If there is a pre-existing Makevars file, go through it and remove the
127-
# line where we assign to R_STRIP_LINKER_OPTION. Also, if there is already
128-
# a line that assigns to PKG_LIBS, make sure it adds
129-
# $(R_STRIP_LINKER_OPTION) to the end. Store the results in
130-
# src/Makevars.R_STRIP_LINKER_OPTION
131-
132-
FOUND_PKG_LIBS_ASSIGNMENT=0
133-
134-
if [ -f src/Makevars ]; then
135-
while read -r LINE || [ -n "$LINE" ]; do
136-
case "$LINE" in
137-
*PKG_LIBS*=*)
138-
case "$LINE" in
139-
*R_STRIP_LINKER_OPTION*)
140-
echo $LINE >> src/Makevars.R_STRIP_LINKER_OPTION ;;
141-
*)
142-
echo "$LINE \$(R_STRIP_LINKER_OPTION)" \
143-
>> src/Makevars.R_STRIP_LINKER_OPTION ;;
144-
esac
145-
FOUND_PKG_LIBS_ASSIGNMENT=1
146-
;;
147-
*R_STRIP_LINKER_OPTION*) ;;
148-
*) echo $LINE >> src/Makevars.R_STRIP_LINKER_OPTION ;;
149-
esac
150-
done <src/Makevars
151-
fi
152-
153-
# Place the proper value in R_STRIP_LINKER_OPTION
154-
155-
echo "R_STRIP_LINKER_OPTION=\"$ARGUMENT\"" \
156-
>> src/Makevars.R_STRIP_LINKER_OPTION
157-
158-
# If there wasn't an assignment to PKG_LIBS already in place, then we need
159-
# to add one to get our R_STRIP_LINKER_OPTION in there.
160-
161-
if [ $FOUND_PKG_LIBS_ASSIGNMENT -eq 0 ]; then
162-
echo "PKG_LIBS = \$(R_STRIP_LINKER_OPTION)" \
163-
>> src/Makevars.R_STRIP_LINKER_OPTION
164-
fi
165-
fi
166-
167-
# If we created a src/Makevars.R_STRIP_LINKER_OPTION file, then backup the
168-
# current Makevars file and rename our modified version to Makevars.
169-
170-
if [ -f src/Makevars.R_STRIP_LINKER_OPTION ]; then
171-
if [ -f src/Makevars ]; then
172-
mv src/Makevars src/Makevars.R_STRIP_LINKER_OPTION.bak
173-
fi
174-
175-
mv src/Makevars.R_STRIP_LINKER_OPTION src/Makevars
176-
fi
190+
modify_makevars Makevars create-if-missing
191+
modify_makevars Makevars.win
192+
fi

0 commit comments

Comments
 (0)