summaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
authoraaron conole <aconole@redhat.com>2017-08-04 13:00:55 -0400
committerRussell Bryant <russell@ovn.org>2017-08-08 13:40:56 -0400
commit3828b456124b85093b414984daacbc8fae39dfca (patch)
tree948c222f4cf70406b770bc41ec74b91431e66a02 /build-aux
parentac416a3ab2d200284b4eeba0544056694850e65d (diff)
downloadopenvswitch-3828b456124b85093b414984daacbc8fae39dfca.tar.gz
dpdkstrip: add a preprocessor tool for stripping dpdk blocks
Normally, in C code, pre-processing macros can be used to enable/disable specific functionality based on switches passed to configure. This works for DPDK using the --with-dpdk flag, which sets the DPDK_NETDEV define to the appropriate value. However, not all files are processed with the C pre-processor. For those files which are not, this commit adds a new pre-processor tool for .in files to either include or exclude those stanzas as appropriate. Signed-off-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Russell Bryant <russell@ovn.org>
Diffstat (limited to 'build-aux')
-rw-r--r--build-aux/dpdkstrip.pl35
1 files changed, 35 insertions, 0 deletions
diff --git a/build-aux/dpdkstrip.pl b/build-aux/dpdkstrip.pl
new file mode 100644
index 000000000..98539cce8
--- /dev/null
+++ b/build-aux/dpdkstrip.pl
@@ -0,0 +1,35 @@
+# Copyright (c) 2017 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+use strict;
+use warnings;
+use Getopt::Long;
+
+my ($check_dpdk) = 0;
+my ($disabled_print) = 0;
+
+Getopt::Long::Configure ("bundling");
+GetOptions("dpdk!" => \$check_dpdk) or exit(1);
+
+OUTER: while (<STDIN>) {
+ if (/@(begin|end)_dpdk@/) {
+ if (!$check_dpdk) {
+ $disabled_print = ! $disabled_print;
+ }
+ next;
+ }
+
+ print $_ unless $disabled_print;
+}
+exit 0;