# License
# -------
#
-# Copyright(c) <2016>, AT&T Intellectual Property. All other rights reserved.
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+#
+# 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.
#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# 2. 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.
-# 3. All advertising materials mentioning features or use of this software
-# must display the following acknowledgement: This product includes
-# software developed by the AT&T.
-# 4. Neither the name of AT&T 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 AT&T INTELLECTUAL PROPERTY ''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 AT&T INTELLECTUAL PROPERTY 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.
#******************************************************************************
ARCH=$(shell getconf LONG_BIT)
+MACHINE_ARCH=$(shell uname -m)
CODE_ROOT=$(CURDIR)/..
EVELLIB_ROOT=$(CODE_ROOT)/code/evel_library
EVELDEMO_ROOT=$(CODE_ROOT)/code/evel_demo
EVELUNIT_ROOT=$(CODE_ROOT)/code/evel_unit
EVELTRAINING_ROOT=$(CODE_ROOT)/code/evel_training
-LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH)
-OUTPUT_DIR=$(CODE_ROOT)/output/x86_$(ARCH)
+LIBS_DIR=$(CODE_ROOT)/libs/$(MACHINE_ARCH)
+OUTPUT_DIR=$(CODE_ROOT)/output/$(MACHINE_ARCH)
DOCS_ROOT=$(CODE_ROOT)/docs
CC=gcc
SCP=scp
# Standard compiler flags. *
#******************************************************************************
CPPFLAGS=-I $(EVELLIB_ROOT)
-CFLAGS=-Wall -Wextra -m$(ARCH) -g -fPIC
-LIBCFLAGS=-Wall -Wextra -m$(ARCH) -g -shared -fPIC
+ifeq ($(MACHINE_ARCH), aarch64)
+ CFLAGS=-Wall -Wextra -march=native -g -fPIC
+ LIBCFLAGS=-Wall -Wextra -march=native -g -shared -fPIC
+else
+ CFLAGS=-Wall -Wextra -m$(ARCH) -g -fPIC
+ LIBCFLAGS=-Wall -Wextra -m$(ARCH) -g -shared -fPIC
+endif
#******************************************************************************
# The testbed is a VM instance where we can install the EVEL example under *
#******************************************************************************
# Implicit rule to make dependency files. Recipe copied from Gnu docs at: *
-# https://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html *
+# https://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html*
#******************************************************************************
%.d: %.c
@echo Making dependency file $(notdir $@) for $(notdir $<)
@echo Testing EVEL Demo application on CentOS...
@$(SSH) $(VNF_TESTBED_CENTOS_USER)@$(VNF_TESTBED_CENTOS) \
source .bash_profile \; \
- $(TESTBED_CENTOS_INSTALL_PATH)/output/x86_$(ARCH)/evel_demo \
+ $(TESTBED_CENTOS_INSTALL_PATH)/output/$(MACHINE_ARCH)/evel_demo \
--fqdn $(VNF_COLLECTOR_HOST) \
--port $(VNF_COLLECTOR_PORT) \
--verbose
@echo Testing EVEL Demo application on Ubuntu...
@$(SSH) $(VNF_TESTBED_UBUNTU_USER)@$(VNF_TESTBED_UBUNTU) \
source .profile \; \
- $(TESTBED_UBUNTU_INSTALL_PATH)/output/x86_$(ARCH)/evel_demo \
+ $(TESTBED_UBUNTU_INSTALL_PATH)/output/$(MACHINE_ARCH)/evel_demo \
--fqdn $(VNF_COLLECTOR_HOST) \
--port $(VNF_COLLECTOR_PORT) \
--verbose
@cd $(CODE_ROOT) && tar cfz output/evel-library-package.tgz bldjobs \
code \
docs \
- libs/x86_64/README \
- output/x86_64/README \
+ libs/$(MACHINE_ARCH)/README \
+ output/$(MACHINE_ARCH)/README \
readme.md
package_clean: