diff --git a/build_all/sdk/package.bld b/build_all/sdk/package.bld
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+ * Copyright (c) 2018, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * ======== package.bld ========
+ */
+
+var Build = xdc.useModule('xdc.bld.BuildEnvironment');
+var Pkg = xdc.useModule('xdc.bld.PackageContents');
+
+/* make command to search for the srcs */
+Pkg.makePrologue = "vpath %.c ../../sdk/c-utility/src " +
+ "../../sdk/c-utility/adapters " +
+ "../../sdk/iothub_client/src " +
+ "../../sdk/serializer/src " +
+ "../../sdk/deps/parson " +
+ "../../sdk/umqtt/src";
+
+/* lib/ is a generated directory that 'xdc clean' should remove */
+Pkg.generatedFiles.$add("lib/");
+
+var SRCS_C_UTIL = [
+ "agenttime.c",
+ "base64.c",
+ "buffer.c",
+ "consolelogger.c",
+ "constbuffer.c",
+ "crt_abstractions.c",
+ "doublylinkedlist.c",
+ "gballoc.c",
+ "gb_rand.c",
+ "gb_stdio.c",
+ "gb_time.c",
+ "hmac.c",
+ "hmacsha256.c",
+ "httpapiex.c",
+ "httpapiexsas.c",
+ "httpheaders.c",
+ "lock_pthreads.c",
+ "map.c",
+ "optionhandler.c",
+ "sastoken.c",
+ "sha1.c",
+ "sha224.c",
+ "sha384-512.c",
+ "singlylinkedlist.c",
+ "strings.c",
+ "string_tokenizer.c",
+ "urlencode.c",
+ "usha.c",
+ "utf8_checker.c",
+ "uws_client.c",
+ "uws_frame_encoder.c",
+ "vector.c",
+ "wsio.c",
+ "xio.c",
+ "xlogging.c"
+];
+
+var SRCS_IOTHUB_CLIENT = [
+ "iothub_client.c",
+ "iothub_client_authorization.c",
+ "iothub_client_diagnostic.c",
+ "iothub_client_ll.c",
+ "iothub_client_ll_uploadtoblob.c",
+ "iothub_client_retry_control.c",
+ "iothub_message.c",
+ "iothubtransport.c",
+ "iothubtransporthttp.c",
+ "iothubtransportmqtt.c",
+ "iothubtransport_mqtt_common.c",
+ "version.c",
+ "blob.c"
+];
+
+var SRCS_SERIALIZER = [
+ "agenttypesystem.c",
+ "codefirst.c",
+ "commanddecoder.c",
+ "datamarshaller.c",
+ "datapublisher.c",
+ "dataserializer.c",
+ "iotdevice.c",
+ "jsondecoder.c",
+ "jsonencoder.c",
+ "multitree.c",
+ "methodreturn.c",
+ "schema.c",
+ "schemalib.c",
+ "schemaserializer.c"
+];
+
+var SRCS_UMQTT = [
+ "mqtt_client.c",
+ "mqtt_codec.c",
+ "mqtt_message.c"
+];
+
+
+/* Paths to external source libraries */
+xdcargs = java.lang.System.getenv("XDCARGS").split(" ");
+
+var slIncs = "";
+var incs = "";
+var commonIncs = "-I../../pal/inc -I../../sdk/c-utility/inc ";
+var iotclientIncs = "-I../../sdk/iothub_client/inc -I../../sdk/c-utility/inc -I../../sdk/umqtt/inc "
+ +"-I../../sdk/deps/parson ";
+var serializerIncs = "-I../../sdk/serializer/inc -I../../sdk/c-utility/inc "
+ + "-I../../sdk/iothub_client/inc -I../../sdk/deps/parson ";
+var umqttIncs = "-I../../sdk/umqtt/inc -I../../sdk/c-utility/inc ";
+var pthreadIncs = "";
+
+/* Parse out the XDCARGS options for the include source paths */
+for (x = 0; x < xdcargs.length; x++) {
+ if (xdcargs[x].match(/^CC32XXSDK=/)) {
+ incs = (xdcargs[x] + "").replace(/'/g, '');
+ incs = incs.substring(incs.indexOf('=') + 1);
+ if (incs != "\"\"") {
+ incs += "/source";
+ slIncs = "-I" + incs + " -I" + incs + "/include -I" + incs
+ + "/ti/net/bsd -I" + incs;
+ }
+ }
+
+ if (xdcargs[x].match(/^MSP432E4SDK=/)) {
+ incs = (xdcargs[x] + "").replace(/'/g, '');
+ incs = incs.substring(incs.indexOf('=') + 1);
+ if (incs != "\"\"") {
+ if (slIncs != "") {
+ throw("Error: Please fill in only one set of variables "
+ + "in products.mak corresponding to your platform");
+ }
+
+ incs += "/source";
+ slIncs = "-I" + incs + " -I" + incs + "/include -I" + incs
+ + "/ti/net/bsd -I" + incs;
+ }
+ }
+}
+
+for (var i = 0; i < Build.targets.length; i++) {
+ var target = Build.targets[i];
+ var libdir = getLibDirectory(target.suffix);
+ var extraOpts;
+ var suppressOpts = "";
+ var posixIncs;
+
+ for (var profile in target.profiles) {
+ var defs = "";
+ posixIncs = "/ti/posix" + "/" +
+ getPosixIncDirectory(target.suffix) + " ";
+ if (target.$name.split(".")[0] == "ti") {
+ /*
+ * Suppress these (loud) warnings for TI toolchain:
+ * - last line of file ends without a newline
+ * - variable was declared but never referenced
+ * - variable was set but never used
+ * - enumerated type mixed with another type
+ */
+ suppressOpts = " --diag_suppress=1,179,190,552 ";
+ }
+ else if (target.$name.split(".")[0] == "iar") {
+ /*
+ * Suppress these (loud) warnings for IAR:
+ * - standard C functions being declared deprecated
+ * - pointless integer comparisons with obvious results
+ * - enumerated type mixed with another type
+ * - variable was declared but never referenced
+ */
+ suppressOpts = " --diag_suppress Pa084,Pe177,Pe188,Pe1215 ";
+ }
+
+ extraOpts = suppressOpts + commonIncs + pthreadIncs;
+ Pkg.addLibrary(libdir + "/common_sl_" + profile,
+ target, {
+ profile: profile,
+ defs: "-DNET_SL -DREFCOUNT_ATOMIC_DONTCARE " + extraOpts,
+ incs: slIncs + posixIncs,
+ suffix: '.a'
+ }).addObjects(SRCS_C_UTIL);
+
+ extraOpts = suppressOpts + iotclientIncs + pthreadIncs;
+ Pkg.addLibrary(libdir + "/iotclient_sl_" + profile, target, { profile: profile,
+ defs: "-DNET_SL -DREFCOUNT_ATOMIC_DONTCARE " + extraOpts, incs: slIncs + posixIncs, suffix: '.a'
+ }).addObjects(SRCS_IOTHUB_CLIENT);
+
+ extraOpts = suppressOpts + serializerIncs + pthreadIncs;
+ Pkg.addLibrary(libdir + "/serializer_sl_" + profile, target, { profile: profile,
+ defs: "-DNET_SL -DREFCOUNT_ATOMIC_DONTCARE " + extraOpts, incs: slIncs + posixIncs, suffix: '.a'
+ }).addObjects(SRCS_SERIALIZER);
+
+ extraOpts = suppressOpts + umqttIncs + pthreadIncs;
+ Pkg.addLibrary(libdir + "/umqtt_sl_" + profile, target, { profile: profile,
+ defs: "-DNET_SL -DREFCOUNT_ATOMIC_DONTCARE " + extraOpts, incs: slIncs + posixIncs, suffix: '.a'
+ }).addObjects(SRCS_UMQTT);
+ }
+
+}