vfirewall usecase for arm64
[demo.git] / vnfs / VES / bldjobs / Makefile
index 21d7a82..058deca 100644 (file)
 # 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
@@ -60,8 +47,13 @@ PLANTFLAGS=-tsvg
 # 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    *
@@ -96,7 +88,7 @@ DOCS_SERVER_PATH=/var/www/html/evel
 
 #******************************************************************************
 # 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 $<)
@@ -265,7 +257,7 @@ evel_test_centos: evel_install_centos
        @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
@@ -279,7 +271,7 @@ evel_test_ubuntu: evel_install_ubuntu
        @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
@@ -307,8 +299,8 @@ package: api_library_clean \
        @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: