blob: 985fc3658bb9d612da00b06ab9cfb317bb43712c [file] [log] [blame]
Shad Ansari01b0e652018-04-05 21:02:53 +00001# Copyright (C) 2018 Open Networking Foundation
2#
3# This program is free software: you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation, either version 3 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16########################################################################
17##
18##
Luca Pretee75aaa52018-04-13 12:19:12 -070019## Config
Shad Ansari01b0e652018-04-05 21:02:53 +000020##
21##
Jason Huangaf7f6472019-05-04 03:19:07 +080022TOP_DIR=`pwd`
Shad Ansari9acc9732018-10-30 18:01:44 +000023OPENOLTDEVICE ?= generic
Craig Lutgen88a22ad2018-10-04 12:30:46 -050024
Shad Ansari01b0e652018-04-05 21:02:53 +000025#
26# Three vendor proprietary source files are required to build BAL.
27# SW-BCM68620_<VER>.zip - Broadcom BAL source and Maple SDK.
28# sdk-all-<SDK_VER>.tar.gz - Broadcom Qumran SDK.
Craig Lutgenf040dba2018-09-27 11:21:43 -050029# ACCTON_BAL_<BAL_VER>-<DEV_VER>.patch - Accton/Edgecore's patch.
Jason Huangd33b4d82019-05-15 18:22:57 +080030BAL_MAJOR_VER = 3
31BAL_MINOR_VER = 0
32BAL_REV_A_VER = 3
33BAL_REV_B_VER = 3
34BAL_API_VER = $(BAL_MAJOR_VER).$(BAL_MINOR_VER)
35BAL_VER = $(BAL_MAJOR_VER).$(BAL_MINOR_VER).$(BAL_REV_A_VER).$(BAL_REV_B_VER)
Jason Huangaf7f6472019-05-04 03:19:07 +080036SDK_VER = 6.5.13
37DEV_VER ?= 201904171432
Shad Ansari01b0e652018-04-05 21:02:53 +000038#
39# Version of Open Network Linux (ONL).
Jason Huangaf7f6472019-05-04 03:19:07 +080040ONL_KERN_VER_MAJOR = 4.14
Shad Ansari01b0e652018-04-05 21:02:53 +000041#
42# Build directory
43BUILD_DIR = build
Luca Pretee75aaa52018-04-13 12:19:12 -070044#
45# GRPC installation
46GRPC_ADDR = https://github.com/grpc/grpc
47GRPC_DST = /tmp/grpc
48GRPC_VER = v1.10.x
Shad Ansari2cddc552018-06-26 20:34:27 +000049
50USER := $(shell echo $(USER))
Luca Pretee75aaa52018-04-13 12:19:12 -070051#
Shad Ansari01b0e652018-04-05 21:02:53 +000052########################################################################
53##
54##
Luca Prete08e6f802018-04-17 11:49:45 -070055## Install prerequisites
Shad Ansari01b0e652018-04-05 21:02:53 +000056##
57##
58HOST_SYSTEM = $(shell uname | cut -f 1 -d_)
59SYSTEM ?= $(HOST_SYSTEM)
Luca Pretee75aaa52018-04-13 12:19:12 -070060
Craig Lutgenf040dba2018-09-27 11:21:43 -050061LIBGRPC_PATH=$(shell pkg-config --libs-only-L grpc | sed s/-L// | sed s/\ //g)
62LIBPROTOBUF_PATH=$(shell PKG_CONFIG_ALLOW_SYSTEM_LIBS=true pkg-config --libs-only-L protobuf | sed s/-L// | sed s/\ //g)
63
Jason Huang313ae312019-06-18 17:54:15 +080064CXX = @CXX@-4.9
Craig Lutgenf040dba2018-09-27 11:21:43 -050065CXXFLAGS += @CXXFLAGS@
66CXXFLAGS += $(shell pkg-config --cflags-only-I grpc++)
Shad Ansari01b0e652018-04-05 21:02:53 +000067CPPFLAGS += `pkg-config --cflags protobuf grpc`
Craig Lutgen7ebee132018-11-16 15:31:11 -060068CXXFLAGS += -std=c++11 -fpermissive -Wno-literal-suffix
Craig Lutgenf040dba2018-09-27 11:21:43 -050069LDFLAGS += @LDFLAGS@
70LDFLAGS += `pkg-config --libs protobuf grpc++ grpc` -ldl -lgpr
Shad Ansari9acc9732018-10-30 18:01:44 +000071CXXFLAGSDEVICE = -I./device -I./device/$(OPENOLTDEVICE) -I./device/generic
Craig Lutgenf040dba2018-09-27 11:21:43 -050072
73export CXX CXXFLAGS
Luca Pretee75aaa52018-04-13 12:19:12 -070074
Luca Prete08e6f802018-04-17 11:49:45 -070075prereq:
nick6fa80732018-05-22 14:47:10 -040076 sudo apt-get -q -y install git pkg-config build-essential autoconf libtool libgflags-dev libgtest-dev clang libc++-dev unzip docker.io
Jason Huang313ae312019-06-18 17:54:15 +080077 sudo apt-get install -y build-essential autoconf libssl-dev gawk debhelper dh-systemd init-system-helpers curl cmake ccache g++-4.9
Luca Pretee75aaa52018-04-13 12:19:12 -070078
Shad Ansari563ea822018-06-28 14:56:27 +000079 # Install GRPC, libprotobuf and protoc
Luca Pretee75aaa52018-04-13 12:19:12 -070080 rm -rf $(GRPC_DST)
81 git clone -b $(GRPC_VER) $(GRPC_ADDR) $(GRPC_DST)
82 cd $(GRPC_DST) && git submodule update --init
Shad Ansari563ea822018-06-28 14:56:27 +000083 cd $(GRPC_DST)/third_party/protobuf && ./autogen.sh && ./configure
Luca Prete08e6f802018-04-17 11:49:45 -070084 make -C $(GRPC_DST)/third_party/protobuf
85 sudo make -C $(GRPC_DST)/third_party/protobuf install
86 sudo ldconfig
Shad Ansari563ea822018-06-28 14:56:27 +000087 make -C $(GRPC_DST)
88 sudo make -C $(GRPC_DST) install
89 sudo ldconfig
Shad Ansaricb004c52018-05-30 18:07:23 +000090
Shad Ansari2cddc552018-06-26 20:34:27 +000091docker:
92 echo $(USER)
93 sudo groupadd -f docker
94ifneq "$(USER)" ""
95 sudo usermod -aG docker $(USER)
96endif
97
Shad Ansari01b0e652018-04-05 21:02:53 +000098########################################################################
99##
100##
Luca Pretee75aaa52018-04-13 12:19:12 -0700101## ONL
Shad Ansari01b0e652018-04-05 21:02:53 +0000102##
103##
Shad Ansari9acc9732018-10-30 18:01:44 +0000104ONL_REPO = $(OPENOLTDEVICE)-onl
Shad Ansari01b0e652018-04-05 21:02:53 +0000105ONL_DIR = $(BUILD_DIR)/$(ONL_REPO)
Shad Ansari01b0e652018-04-05 21:02:53 +0000106onl:
107 if [ ! -d "$(ONL_DIR)/OpenNetworkLinux" ]; then \
108 mkdir -p $(ONL_DIR); \
Jason Huangaf7f6472019-05-04 03:19:07 +0800109 git clone https://github.com/opencomputeproject/OpenNetworkLinux.git $(ONL_DIR)/OpenNetworkLinux; \
110 cp download/Makefile.onl $(ONL_DIR)/Makefile; \
Jason Huangd33b4d82019-05-15 18:22:57 +0800111 install -m 755 download/build-$(OPENOLTDEVICE).sh $(ONL_DIR)/OpenNetworkLinux; \
Shad Ansari9acc9732018-10-30 18:01:44 +0000112 make -C $(ONL_DIR) $(OPENOLTDEVICE)-$(ONL_KERN_VER_MAJOR); \
Shad Ansari01b0e652018-04-05 21:02:53 +0000113 fi;
114onl-force:
Shad Ansari9acc9732018-10-30 18:01:44 +0000115 make -C $(ONL_DIR) $(OPENOLTDEVICE)-$(ONL_KERN_VER_MAJOR)
Shad Ansari01b0e652018-04-05 21:02:53 +0000116distclean-onl:
117 sudo rm -rf $(ONL_DIR)
118
119########################################################################
120##
121##
Jason Huangd33b4d82019-05-15 18:22:57 +0800122## Broadcom LIBRARY APIs
123##
124##
125BAL_API_DIR = $(BUILD_DIR)/bal-api-$(BAL_API_VER)
126
127bal-api-$(BAL_API_VER):
128 if [ ! -d "$(BAL_API_DIR)" ]; then \
129 mkdir -p $(BAL_API_DIR); \
130 git clone https://github.com/balapi/bal-api-3.0.git $(BAL_API_DIR); \
131 fi;
132bal-api-clean:
133 rm $(BAL_API_DIR)
134
135########################################################################
136##
137##
Luca Pretee75aaa52018-04-13 12:19:12 -0700138## BAL
Shad Ansari01b0e652018-04-05 21:02:53 +0000139##
140##
Jason Huangaf7f6472019-05-04 03:19:07 +0800141BAL_ZIP = SW-BCM68620_$(subst .,_,$(BAL_VER)).tgz
Shad Ansari01b0e652018-04-05 21:02:53 +0000142SDK_ZIP = sdk-all-$(SDK_VER).tar.gz
Craig Lutgenf040dba2018-09-27 11:21:43 -0500143ACCTON_PATCH = ACCTON_BAL_$(BAL_VER)-V$(DEV_VER).patch
Shad Ansari9acc9732018-10-30 18:01:44 +0000144BAL_DIR = $(BUILD_DIR)/$(OPENOLTDEVICE)-bal
Jason Huangd33b4d82019-05-15 18:22:57 +0800145BCM_SDK = $(BAL_DIR)/switch_sdk/$(SDK_VER)
146BALLIBDIR = $(BAL_DIR)/build/host_reference/host_api
147BALLIBNAME = bal_host_api
148BAL_INC = -I$(BAL_DIR)/host_driver/bal/bal_include \
149 -I$(BAL_DIR)/host_driver/topology \
150 -I$(BAL_DIR)/host_driver/utils \
151 -I$(BAL_DIR)/host_driver/api \
152 -I$(BAL_DIR)/host_customized/os_abstraction \
153 -I$(BAL_DIR)/host_customized/os_abstraction/posix \
154 -I$(BAL_DIR)/host_customized/config \
155 -I$(BAL_DIR)/host_driver/api_conn_mgr \
156 -I$(BAL_DIR)/host_driver/conn_mgr \
157 -I$(BAL_DIR)/host_driver/api/host/topology \
158 -I$(BAL_DIR)/host_reference/cli \
159 -I$(BAL_DIR)/host_reference/api_cli \
160 -I$(BAL_API_DIR)/include \
161 -I$(BAL_API_DIR)/include/object_model
Shad Ansari01b0e652018-04-05 21:02:53 +0000162CXXFLAGS += $(BAL_INC) -I $(BAL_DIR)/lib/cmdline
Jason Huangd33b4d82019-05-15 18:22:57 +0800163CXXFLAGS += -DBCMOS_MSG_QUEUE_DOMAIN_SOCKET -DBCMOS_MSG_QUEUE_UDP_SOCKET -DBCMOS_MEM_CHECK -DBCMOS_SYS_UNITTEST -DENABLE_LOG -DENABLE_CLI
Shad Ansaricb004c52018-05-30 18:07:23 +0000164
Jason Huangd33b4d82019-05-15 18:22:57 +0800165sdk: onl bal-api-$(BAL_API_VER)
Shad Ansari01b0e652018-04-05 21:02:53 +0000166ifeq ("$(wildcard $(BAL_DIR))","")
167 mkdir $(BAL_DIR)
Jason Huangaf7f6472019-05-04 03:19:07 +0800168 tar zxvf download/$(BAL_ZIP) --strip 1 -C $(BAL_DIR)
Shad Ansari01b0e652018-04-05 21:02:53 +0000169 cp download/$(SDK_ZIP) $(BCM_SDK)
170 chmod -R 744 $(BAL_DIR)
171 cat download/$(ACCTON_PATCH) | patch -p1 -d $(BAL_DIR)
Jason Huang603dff42019-06-18 18:27:34 +0800172 # For fixed Broadcom bug, The patch file have provided temporary change in BAL v3.0
173 # Broadcom CS8250563: Getting the wrong state using NNI interface?
174 # Broadcom CS8341292: I got error message "Failed to allocate message for NNI state change!"
175 cat download/ACCTON_BAL_$(BAL_VER)-V$(DEV_VER)_r1-bug-fixed.patch | patch -p1 -d $(BAL_DIR)
Jason Huangd33b4d82019-05-15 18:22:57 +0800176 make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) ONL_DIR=$(TOP_DIR)/$(ONL_DIR)/OpenNetworkLinux SW_UTIL_SHELL=y OPEN_SOURCE=y
Jason Huangaf7f6472019-05-04 03:19:07 +0800177 make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) release_board
Shad Ansari01b0e652018-04-05 21:02:53 +0000178endif
Shad Ansaricb004c52018-05-30 18:07:23 +0000179
Jason Huangaf7f6472019-05-04 03:19:07 +0800180bal-release: sdk
Jason Huangaf7f6472019-05-04 03:19:07 +0800181 make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) release_board
Shad Ansaricb004c52018-05-30 18:07:23 +0000182
183bal-clean:
Jason Huangaf7f6472019-05-04 03:19:07 +0800184 make -C $(BAL_DIR) BOARD=$(OPENOLTDEVICE) clean
Shad Ansari01b0e652018-04-05 21:02:53 +0000185
186########################################################################
187##
188##
Luca Pretee75aaa52018-04-13 12:19:12 -0700189## OpenOLT API
Shad Ansari01b0e652018-04-05 21:02:53 +0000190##
191##
Shad Ansari56c8ea42018-10-30 19:34:35 +0000192OPENOLT_PROTOS_DIR = ../protos
Shad Ansari19249582018-04-30 04:31:00 +0000193OPENOLT_API_LIB = $(OPENOLT_PROTOS_DIR)/libopenoltapi.a
Shad Ansari627b5782018-08-13 22:49:32 +0000194CXXFLAGS += -I$(OPENOLT_PROTOS_DIR) -I$(OPENOLT_PROTOS_DIR)/googleapis/gens
Shad Ansari19249582018-04-30 04:31:00 +0000195protos:
196 make -C $(OPENOLT_PROTOS_DIR) all
Shad Ansaricc01de12018-05-21 22:54:45 +0000197protos-clean:
Shad Ansari19249582018-04-30 04:31:00 +0000198 -make -C $(OPENOLT_PROTOS_DIR) clean
Shad Ansari01b0e652018-04-05 21:02:53 +0000199
200########################################################################
201##
202##
Shad Ansari627b5782018-08-13 22:49:32 +0000203## common
Shad Ansari7193ae22018-08-08 22:23:18 +0000204##
205##
Shad Ansari627b5782018-08-13 22:49:32 +0000206common/%.o: common/%.cc
207 $(CXX) $(CXXFLAGS) -I./common -c $< -o $@
Shad Ansari7193ae22018-08-08 22:23:18 +0000208
209########################################################################
210##
211##
Craig Lutgen88a22ad2018-10-04 12:30:46 -0500212## device
213##
214##
Shad Ansari9acc9732018-10-30 18:01:44 +0000215device/$(OPENOLTDEVICE)/%.o: device/$(OPENOLTDEVICE)/%.cc
Craig Lutgen88a22ad2018-10-04 12:30:46 -0500216 $(CXX) $(CXXFLAGS) $(CXXFLAGSDEVICE) -c $< -o $@
217
218device/generic/%.o: device/generic/%.cc
219 $(CXX) $(CXXFLAGS) $(CXXFLAGSDEVICE) -c $< -o $@
220
221########################################################################
222##
223##
Shad Ansari627b5782018-08-13 22:49:32 +0000224## sim
Shad Ansari01b0e652018-04-05 21:02:53 +0000225##
226##
Shad Ansari627b5782018-08-13 22:49:32 +0000227SIM_SRCS = $(wildcard sim/*.cc) $(wildcard common/*.cc)
228SIM_OBJS = $(SIM_SRCS:.cc=.o)
229SIM_DEPS = $(SIM_SRCS:.cc=.d)
230sim: sim/openoltsim
231sim/openoltsim: protos $(SIM_OBJS)
232 $(CXX) -pthread -L/usr/local/lib $(SIM_OBJS) $(OPENOLT_API_LIB) /usr/local/lib/libprotobuf.a -o $@ -lgrpc++ -lgrpc -lpthread -ldl
233sim/%.o: sim/%.cc
234 $(CXX) -std=c++11 -fpermissive -Wno-literal-suffix -I./common -I$(OPENOLT_PROTOS_DIR) -I$(OPENOLT_PROTOS_DIR)/googleapis/gens -c $< -o $@
235clean-sim:
236 rm -f sim/openoltsim $(SIM_OBJS) $(SIM_DEPS)
237
238########################################################################
239##
240##
241## openolt
242##
243##
Shad Ansari9acc9732018-10-30 18:01:44 +0000244SRCS = $(wildcard src/*.cc) $(wildcard common/*.cc) $(wildcard device/$(OPENOLTDEVICE)/*.cc)
Shad Ansari01b0e652018-04-05 21:02:53 +0000245OBJS = $(SRCS:.cc=.o)
246DEPS = $(SRCS:.cc=.d)
247.DEFAULT_GOAL := all
Jason Huangd33b4d82019-05-15 18:22:57 +0800248all: $(BUILD_DIR)/openolt
Shad Ansaricb004c52018-05-30 18:07:23 +0000249$(BUILD_DIR)/openolt: sdk protos $(OBJS)
Shad Ansari06a13322018-09-29 01:55:33 +0000250 $(CXX) $(LDFLAGS) -L$(BALLIBDIR) $(OBJS) $(OPENOLT_API_LIB) $(LIBPROTOBUF_PATH)/libprotobuf.a -o $@ -l$(BALLIBNAME) $(shell pkg-config --libs protobuf grpc++ grpc)
Jason Huangd33b4d82019-05-15 18:22:57 +0800251 ln -sf $(TOP_DIR)/$(BAL_DIR)/build/fs/$(OPENOLTDEVICE)/release/release_$(OPENOLTDEVICE)_V$(BAL_MAJOR_VER).$(BAL_MINOR_VER).$(BAL_REV_A_VER).$(DEV_VER).tar.gz $(BUILD_DIR)/.
252 ln -sf $(TOP_DIR)/$(BAL_DIR)/build/host_reference/host_api/strip/libbal_host_api.so $(BUILD_DIR)/.
253 ln -sf $(TOP_DIR)/$(BAL_DIR)/build/host_driver/dev_mgmt_daemon/dev_mgmt_daemon $(BUILD_DIR)/.
Craig Lutgenf040dba2018-09-27 11:21:43 -0500254 ln -sf $(LIBGRPC_PATH)/libgrpc.so.6 $(BUILD_DIR)/libgrpc.so.6
255 ln -sf $(LIBGRPC_PATH)/libgrpc++.so.1 $(BUILD_DIR)/libgrpc++.so.1
Jason Huangd33b4d82019-05-15 18:22:57 +0800256 ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 $(BUILD_DIR)/libstdc++.so.6
Jason Huangfd78f662019-06-05 20:25:01 +0800257 strip $(BUILD_DIR)/openolt
Shad Ansari627b5782018-08-13 22:49:32 +0000258src/%.o: src/%.cc
Craig Lutgen88a22ad2018-10-04 12:30:46 -0500259 $(CXX) $(CXXFLAGS) $(CXXFLAGSDEVICE) -I./common -c $< -o $@
Shad Ansari01b0e652018-04-05 21:02:53 +0000260
Shad Ansari6cd46a62018-05-13 23:20:51 +0000261deb:
Jason Huangfd78f662019-06-05 20:25:01 +0800262 cp $(BUILD_DIR)/release_$(OPENOLTDEVICE)_V$(BAL_MAJOR_VER).$(BAL_MINOR_VER).$(BAL_REV_A_VER).$(DEV_VER).tar.gz mkdebian/debian
Shad Ansari9fb007d2018-05-14 18:31:38 +0000263 cp $(BUILD_DIR)/openolt mkdebian/debian
264 cp $(BUILD_DIR)/libgrpc.so.6 mkdebian/debian
265 cp $(BUILD_DIR)/libgrpc++.so.1 mkdebian/debian
Jason Huangfd78f662019-06-05 20:25:01 +0800266 cp $(BUILD_DIR)/libstdc++.so.6 mkdebian/debian
267 cp $(BUILD_DIR)/libbal_host_api.so mkdebian/debian
Shad Ansarid0eaf752018-08-16 00:26:12 +0000268 cp -a scripts/init.d mkdebian/debian
Shad Ansari9acc9732018-10-30 18:01:44 +0000269 cd mkdebian && ./build_$(OPENOLTDEVICE)_deb.sh
Shad Ansari6cd46a62018-05-13 23:20:51 +0000270 mv *.deb $(BUILD_DIR)/openolt.deb
Shad Ansaricb004c52018-05-30 18:07:23 +0000271 make deb-cleanup
Shad Ansari6cd46a62018-05-13 23:20:51 +0000272
Shad Ansari01b0e652018-04-05 21:02:53 +0000273src/%.o: %.cpp
274 $(CXX) -MMD -c $< -o $@
275
Shad Ansaricb004c52018-05-30 18:07:23 +0000276deb-cleanup:
Shad Ansari9acc9732018-10-30 18:01:44 +0000277 rm -f mkdebian/debian/$(OPENOLTDEVICE).debhelper.log
278 rm -f mkdebian/debian/$(OPENOLTDEVICE).postinst.debhelper
279 rm -f mkdebian/debian/$(OPENOLTDEVICE).postrm.debhelper
280 rm -f mkdebian/debian/$(OPENOLTDEVICE).substvars
281 rm -rf mkdebian/debian/$(OPENOLTDEVICE)/
Shad Ansaricc01de12018-05-21 22:54:45 +0000282 rm -f mkdebian/debian/libgrpc++.so.1
Shad Ansaricc01de12018-05-21 22:54:45 +0000283 rm -f mkdebian/debian/libgrpc.so.6
284 rm -f mkdebian/debian/openolt
Shad Ansari9acc9732018-10-30 18:01:44 +0000285 rm -f mkdebian/debian/release_$(OPENOLTDEVICE)_V$(BAL_MAJOR_VER).$(DEV_VER).tar.gz
Shad Ansaricc01de12018-05-21 22:54:45 +0000286 rm -rf mkdebian/debian/tmp/
Shad Ansari9acc9732018-10-30 18:01:44 +0000287 rm -f $(OPENOLTDEVICE)_$(BAL_VER)+edgecore-V$(DEV_VER)_amd64.changes
Shad Ansaricc01de12018-05-21 22:54:45 +0000288
Shad Ansaricb004c52018-05-30 18:07:23 +0000289clean: protos-clean deb-cleanup
Shad Ansari19249582018-04-30 04:31:00 +0000290 rm -f $(OBJS) $(DEPS)
Craig Lutgen19512312018-11-02 10:14:46 -0500291 rm -rf $(OPENOLT_PROTOS_DIR)/googleapis
Shad Ansari563ea822018-06-28 14:56:27 +0000292 rm -f $(BUILD_DIR)/libgrpc.so.6 $(BUILD_DIR)/libgrpc++.so.1
Shad Ansaricb004c52018-05-30 18:07:23 +0000293 rm -f $(BUILD_DIR)/libbal_api_dist.so
294 rm -f $(BUILD_DIR)/openolt
295 rm -f $(BUILD_DIR)/bal_core_dist
Shad Ansari9acc9732018-10-30 18:01:44 +0000296 rm -f $(BUILD_DIR)/release_$(OPENOLTDEVICE)_V$(BAL_MAJOR_VER).$(DEV_VER).tar.gz
Shad Ansaricb004c52018-05-30 18:07:23 +0000297 rm -f $(BUILD_DIR)/openolt.deb
Shad Ansari19249582018-04-30 04:31:00 +0000298
299distclean:
Shad Ansari01b0e652018-04-05 21:02:53 +0000300 rm -rf $(BUILD_DIR)
Shad Ansaricb004c52018-05-30 18:07:23 +0000301
Shad Ansari627b5782018-08-13 22:49:32 +0000302.PHONY: onl sdk bal protos prereq sim