diff --git a/bal_release/doxygen/Makefile b/bal_release/doxygen/Makefile
new file mode 100644
index 0000000..0ef21da
--- /dev/null
+++ b/bal_release/doxygen/Makefile
@@ -0,0 +1,94 @@
+###############################################################################
+#
+#  <:copyright-BRCM:2016:proprietary:standard
+#   
+#     Broadcom Ltd. Proprietary and Confidential.(c) 2016 Broadcom Ltd.
+#     All Rights Reserved
+#   
+#  This program is the proprietary software of Broadcom Ltd. and/or its
+#  licensors, and may only be used, duplicated, modified or distributed pursuant
+#  to the terms and conditions of a separate, written license agreement executed
+#  between you and Broadcom Ltd. (an "Authorized License").  Except as set forth in
+#  an Authorized License, Broadcom Ltd. grants no license (express or implied), right
+#  to use, or waiver of any kind with respect to the Software, and Broadcom Ltd.
+#  expressly reserves all rights in and to the Software and all intellectual
+#  property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+#  NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+#  BROADCOM LTD AND DISCONTINUE ALL USE OF THE SOFTWARE.
+#   
+#  Except as expressly set forth in the Authorized License,
+#   
+#  1. This program, including its structure, sequence and organization,
+#      constitutes the valuable trade secrets of Broadcom Ltd., and you shall use
+#      all reasonable efforts to protect the confidentiality thereof, and to
+#      use this information only in connection with your use of Broadcom Ltd.
+#      integrated circuit products.
+#   
+#  2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+#      AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+#      WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+#      RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+#      ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+#      FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+#      COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+#      TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+#      PERFORMANCE OF THE SOFTWARE.
+#   
+#  3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+#      ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+#      INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+#      WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+#      IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+#      OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+#      SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+#      SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+#      LIMITED REMEDY.
+#  :>
+#
+###############################################################################
+#
+#  Makefile for building doxygen for bal source code
+#
+###############################################################################
+
+PROJECT_NUMBER=$(shell ./genProjectNumber.sh)
+TMP_FILE=cfg.tmp
+OUTPUT_FILE=doxygen_output.txt
+WARNINGS_FILE=doxygen_warnings.txt
+
+GEN_GRAPHS ?= NO
+
+.PHONY: docs
+docs:
+	@if [ "$(GEN_GRAPHS)" != "YES" ]; then \
+		echo "#####################################################################" ; \
+		echo "# Graphs will NOT be generated                                      #" ; \
+		echo "# Type 'make GEN_GRAPHS=YES' to instruct doxygen to generate graphs #" ; \
+		echo "#####################################################################" ; \
+		sleep 3 ; \
+	fi
+	$(call gen_doc_cmd,$(OUT_DOCS_DIR)/bal_internal,bal.doxy)
+	$(call gen_doc_cmd,$(OUT_DOCS_DIR)/bal_public,bal_public.doxy)
+	$(call gen_doc_cmd,$(OUT_DOCS_DIR)/sdn_pal,sdn_pal.doxy)
+	$(call gen_doc_cmd,$(OUT_DOCS_DIR)/omcisvc,omcisvc.doxy)
+
+define gen_doc_cmd
+	rm -fr $1
+	mkdir -p $1
+	sed -e 's@%OUT_DOCS_DIR@$1@g' \
+		-e 's@%SRC_DIR@$(TOP_SRC_DIR)@g' \
+		-e 's@%PROJECT_NUMBER@$(PROJECT_NUMBER)@g' \
+		-e 's@%HAVE_DOT@$(GEN_GRAPHS)@g' \
+		-e 's@%MODEL_DIR@$(OUT_DIR_BASE)/src/common/include@g' \
+		-e 's@%OMCI_MODEL_DIR@$(OUT_DIR_BASE)/src/lib/libomcisvc@g' \
+		$2 > $1/Doxyfile
+	rm -fr $1/$(OUTPUT_FILE) $1/$(WARNINGS_FILE)
+	cd $1 && doxygen 2>$1/$(WARNINGS_FILE) | tee $1/$(OUTPUT_FILE)
+	@echo ""
+	@echo "############################################"
+	@echo "#  Checking doxygen output for warnings... #"
+	@echo "############################################"
+	@cat $1/$(WARNINGS_FILE)
+	@test -s $1/$(WARNINGS_FILE) && echo -ne "\n!!! WARNINGS WERE FOUND!!!\n\nPlease see warnings listed above and check $1/$(WARNINGS_FILE) for more information\n\n" && exit -1 || echo "Done."
+	rm -fr $1/$(OUTPUT_FILE) $1/$(WARNINGS_FILE) $1/Doxyfile
+endef
