]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-linux/mpm-transport.git/blob - Makefile
Merge branch 'linux41'
[keystone-linux/mpm-transport.git] / Makefile
1 # Copyright (C) 2013-2015 Texas Instruments Incorporated - http://www.ti.com/
2 #
3 #
4 #  Redistribution and use in source and binary forms, with or without
5 #  modification, are permitted provided that the following conditions
6 #  are met:
7 #
8 #    Redistributions of source code must retain the above copyright
9 #    notice, this list of conditions and the following disclaimer.
10 #
11 #    Redistributions in binary form must reproduce the above copyright
12 #    notice, this list of conditions and the following disclaimer in the
13 #    documentation and/or other materials provided with the
14 #    distribution.
15 #
16 #    Neither the name of Texas Instruments Incorporated nor the names of
17 #    its contributors may be used to endorse or promote products derived
18 #    from this software without specific prior written permission.
19 #
20 #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 #  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 #  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 #  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 #  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 #  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 #  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 #  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 #  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 #  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 #  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 MPM_ROOT = $(shell pwd)
33 MPM_SRC = $(MPM_ROOT)/src
34 export MPM_LIB = $(MPM_ROOT)/lib
35 export MPM_BIN ?= $(MPM_ROOT)/bin
36 export MPM_INC = $(MPM_ROOT)/include
38 ifeq ($(BUILD_LOCAL),true)
39 ifdef LOCAL_SYSROOT
40 SYSROOT_OPT = --sysroot=$(LOCAL_SYSROOT)
41 STAGING_KERNEL_DIR = $(LOCAL_SYSROOT)/usr/src/kernel
42 endif
43 ARCH = arm
44 CROSS_COMPILE ?= arm-linux-gnueabihf-
45 ARFLAGS = crus
46 LDFLAGS ?= -Wl,--hash-style=gnu
47 CFLAGS ?= -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a15 -O3
48 EXTRA_CFLAGS = -g -ggdb2 -D_GNU_SOURCE -DARCH_$(ARCH) -Wall
49 CC = $(CROSS_COMPILE)gcc $(SYSROOT_OPT) $(CFLAGS) $(EXTRA_CFLAGS)
50 CC += -I$(STAGING_KERNEL_DIR)/include
51 AR = $(CROSS_COMPILE)ar
52 endif
54 DEVKIT_INC = $(PDK_INSTALL_PATH)
55 DEVKIT_LIB = $(PDK_INSTALL_PATH)/../lib/
56 DEVICE ?= k2h
57 DEVICE_UPPER = `echo $(DEVICE) | tr a-z A-Z`
58 INTERNALDEFS += -D__ARMv7 -DDEVICE_$(DEVICE_UPPER) -D_VIRTUAL_ADDR_SUPPORT -D__LINUX_USER_SPACE -D_LITTLE_ENDIAN=1 -DMAKEFILE_BUILD -DINTERNAL_LINKING_RAM -D_GNU_SOURCE
60 ifeq ($(HYPLNK_TRANSPORT),true)
61 INTERNALDEFS += -DHYPLNK_TRANSPORT
62 endif
64 ifeq ($(SRIO_TRANSPORT),true)
65 INTERNALDEFS += -DSRIO_TRANSPORT
66 endif
68 TARGET_PLATFORM = $(ARCH)
69 LDFLAGS += -pthread -lrt
71 export TARGET_PLATFORM
72 export LDFLAGS
73 export ARFLAGS
74 export CC
75 export AR
76 export LD
77 export INTERNALDEFS
78 export DEVKIT_INC
79 export DEVKIT_LIB
80 export DEVICE
82 MAKEFLAGS += --no-print-directory
84 export MPM_UTILS = $(MPM_SRC)/utils
85 export MPM_COMMON = $(MPM_SRC)/common
86 export MPM_TRANSPORT  = $(MPM_SRC)/transport
88 export MPMTRANSPORT_LIB = libmpmtransport.a
89 export MPMTRANSPORT_LIB_SO = libmpmtransport.so
90 export MPMTRANSPORT_LIB_OPT = -lmpmtransport
92 cJSON_DIR = $(MPM_UTILS)/cJSON
93 EDMA3_DIR = $(MPM_UTILS)/edma3
95 .PHONY: all build clean distclean jtest mkdir transport
97 all: transport
99 mkdir:
100         mkdir -p $(MPM_LIB)
102 transport: mkdir
103         make -C $(MPM_TRANSPORT) all
105 transport_clean:
106         make -C $(MPM_TRANSPORT) clean
108 clean: transport_clean
109         rm -rf $(MPM_LIB)
111 jtest: $(cJSON_DIR)/cJSON.c $(cJSON_DIR)/test.c
112         $(CC) -g -o $@ $^ -lm
114 distclean: clean
115         rm -rf $(cJSON_DIR)/*.o jtest
117 sysroot_install:
118         cp lib/* $(LOCAL_SYSROOT)/usr/lib
119         cp include/* $(LOCAL_SYSROOT)/usr/includes
121 installbin:
122         install -d $(INSTALL_BIN_BASE_DIR)
123         install -c -m 755 $(BASE_DIR)/src/transport/test/sharedmem/mpm_transport_test.out $(INSTALL_BIN_BASE_DIR)/mpm_transport_test.out
124         install -c -m 755 $(BASE_DIR)/src/transport/test/qmss/qmss_arm_mt/mpm_transport_qmss_arm_mt.out $(INSTALL_BIN_BASE_DIR)/mpm_transport_qmss_arm_mt.out
125 ifeq ($(SRIO_TRANSPORT),true)
126         install -c -m 755 $(BASE_DIR)/src/transport/test/srio/srio_arm_mt/mpm_transport_srio_arm_mt.out $(INSTALL_BIN_BASE_DIR)/mpm_transport_srio_arm_mt.out
127 endif
128 ifeq ($(HYPLNK_TRANSPORT),true)
129         install -c -m 755 $(BASE_DIR)/src/transport/test/hyplnk/hyplnk_loopback/mpm_transport_hyplnk_loopback.out $(INSTALL_BIN_BASE_DIR)/mpm_transport_hyplnk_loopback.out
130         install -c -m 755 $(BASE_DIR)/src/transport/test/hyplnk/hyplnk_remote/mpm_transport_hyplnk_remote.out $(INSTALL_BIN_BASE_DIR)/mpm_transport_hyplnk_remote.out
131         install -c -m 755 $(BASE_DIR)/src/transport/test/hyplnk/hyplnk_loopback_dma/mpm_transport_hyplnk_loopback_dma.out $(INSTALL_BIN_BASE_DIR)/mpm_transport_hyplnk_loopback_dma.out
132         install -c -m 755 $(BASE_DIR)/src/transport/test/hyplnk/hyplnk_loopback64/mpm_transport_hyplnk_loopback64.out $(INSTALL_BIN_BASE_DIR)/mpm_transport_hyplnk_loopback64.out
133 endif