blob: d1242bdbf120e004578d9e022393e370a5b04361 [file] [log] [blame]
Austin Schuh9a24b372018-01-28 16:12:29 -08001###################################################################################################
2# #
3# This file is part of BLASFEO. #
4# #
5# BLASFEO -- BLAS For Embedded Optimization. #
6# Copyright (C) 2016-2017 by Gianluca Frison. #
7# Developed at IMTEK (University of Freiburg) under the supervision of Moritz Diehl. #
8# All rights reserved. #
9# #
10# HPMPC is free software; you can redistribute it and/or #
11# modify it under the terms of the GNU Lesser General Public #
12# License as published by the Free Software Foundation; either #
13# version 2.1 of the License, or (at your option) any later version. #
14# #
15# HPMPC is distributed in the hope that it will be useful, #
16# but WITHOUT ANY WARRANTY; without even the implied warranty of #
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. #
18# See the GNU Lesser General Public License for more details. #
19# #
20# You should have received a copy of the GNU Lesser General Public #
21# License along with HPMPC; if not, write to the Free Software #
22# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #
23# #
24# Author: Gianluca Frison, giaf (at) dtu.dk #
25# gianluca.frison (at) imtek.uni-freiburg.de #
26# #
27###################################################################################################
28
29include ../Makefile.rule
30
31OBJS =
32
33ifeq ($(LA), HIGH_PERFORMANCE)
34
35ifeq ($(TARGET), X64_INTEL_HASWELL)
36OBJS += d_aux_lib4.o
37OBJS += s_aux_lib8.o
38OBJS += m_aux_lib48.o
39endif
40
41ifeq ($(TARGET), X64_INTEL_SANDY_BRIDGE)
42OBJS += d_aux_lib4.o
43OBJS += s_aux_lib8.o
44OBJS += m_aux_lib48.o
45endif
46
47ifeq ($(TARGET), X64_INTEL_CORE)
48OBJS += d_aux_lib4.o
49OBJS += s_aux_lib4.o
50OBJS += m_aux_lib44.o
51endif
52
53ifeq ($(TARGET), X64_AMD_BULLDOZER)
54OBJS += d_aux_lib4.o
55OBJS += s_aux_lib4.o
56OBJS += m_aux_lib44.o
57endif
58
59ifeq ($(TARGET), ARMV8A_ARM_CORTEX_A57)
60OBJS += d_aux_lib4.o
61OBJS += s_aux_lib4.o
62OBJS += m_aux_lib44.o
63endif
64
65ifeq ($(TARGET), ARMV7A_ARM_CORTEX_A15)
66OBJS += d_aux_lib4.o
67OBJS += s_aux_lib4.o
68OBJS += m_aux_lib44.o
69endif
70
71ifeq ($(TARGET), GENERIC)
72OBJS += d_aux_lib4.o
73OBJS += s_aux_lib4.o
74OBJS += m_aux_lib44.o
75endif
76
77else # LA_REFERENCE | LA_BLAS
78
79OBJS += d_aux_lib.o
80OBJS += s_aux_lib.o
81OBJS += m_aux_lib.o
82
83endif # LA choice
84
85ifeq ($(EXT_DEP), 1)
86#ext dep
87OBJS += d_aux_ext_dep_lib.o
88OBJS += s_aux_ext_dep_lib.o
89OBJS += v_aux_ext_dep_lib.o
90OBJS += i_aux_ext_dep_lib.o
91endif
92
93obj: $(OBJS)
94ifeq ($(TARGET), X64_INTEL_HASWELL)
95 ( cd avx2; $(MAKE) obj)
96 ( cd avx; $(MAKE) obj)
97 ( cd c99; $(MAKE) obj)
98endif
99ifeq ($(TARGET), X64_INTEL_SANDY_BRIDGE)
100 ( cd avx; $(MAKE) obj)
101 ( cd c99; $(MAKE) obj)
102endif
103ifeq ($(TARGET), X64_INTEL_CORE)
104 ( cd c99; $(MAKE) obj)
105endif
106ifeq ($(TARGET), X64_AMD_BULLDOZER)
107 ( cd c99; $(MAKE) obj)
108endif
109ifeq ($(TARGET), ARMV8A_ARM_CORTEX_A57)
110 ( cd c99; $(MAKE) obj)
111endif
112ifeq ($(TARGET), ARMV7A_ARM_CORTEX_A15)
113 ( cd c99; $(MAKE) obj)
114endif
115ifeq ($(TARGET), GENERIC)
116 ( cd c99; $(MAKE) obj)
117endif
118
119
120clean:
121 rm -f *.o
122 make -C avx2 clean
123 make -C avx clean
124 make -C c99 clean