forked from AaronDMarasco-VSI/opencpi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.ocpi.for-src
117 lines (102 loc) · 3.38 KB
/
Makefile.ocpi.for-src
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# This file is protected by Copyright. Please refer to the COPYRIGHT file
# distributed with this source distribution.
#
# This file is part of OpenCPI <http://www.opencpi.org>
#
# OpenCPI is free software: you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# OpenCPI is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
all: objects
executables:
include $(OCPI_BASE_DIR)/MakeVars.ocpi
ifneq ($(OCPI_OUT_DIR),)
OBJDIR = ../../$(OCPI_OUT_DIR)
else
OBJDIR = .
endif
include $(OCPI_BASE_DIR)/Makefile.ocpi.common
ifndef IMPORTS_INCLUDED
ifneq ($(wildcard Makefile.ocpi.imports),)
include Makefile.ocpi.imports
IMPORTS_INCLUDED:=1
else ifneq ($(wildcard ../Makefile.ocpi.imports),)
include ../Makefile.ocpi.imports
IMPORTS_INCLUDED:=1
else ifneq ($(wildcard ../../Makefile.ocpi.imports),)
include ../../Makefile.ocpi.imports
IMPORTS_INCLUDED:=1
endif
endif
CFLAGS += $(EXTRA_CFLAGS)
CXXFLAGS += $(EXTRA_CXXFLAGS)
ALLDEFS += $(EXTRA_DEFS)
# Include the source dir in the search path for "private" headers
ALLINC += . $(wildcard ../../*/include) $(wildcard ../../*/idl) $(EXTRA_INCLUDES)
ifeq ($(OCPI_BUILD_SHARED_LIBRARIES),1)
ifneq ($(filter linux macos,$(OCPI_TARGET_OS)),)
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif
endif
#
# C/C++ files
#
CSOURCES = $(filter-out $(EXCLUDE_SOURCES),$(wildcard *.c))
CXXSOURCES = $(filter-out $(EXCLUDE_SOURCES),$(wildcard *.cxx))
CPPSOURCES = $(filter-out $(EXCLUDE_SOURCES),$(wildcard *.cpp))
ASMSOURCES = $(filter-out $(EXCLUDE_SOURCES),$(wildcard *.asm))
COBJECTS = $(patsubst %.c,$(OBJDIR)/%.obj,$(CSOURCES))
CXXOBJECTS = $(patsubst %.cxx,$(OBJDIR)/%.obj,$(CXXSOURCES))
CPPOBJECTS = $(patsubst %.cpp,$(OBJDIR)/%.obj,$(CPPSOURCES))
ASMOBJECTS = $(patsubst %.asm,$(OBJDIR)/%.obj,$(ASMSOURCES))
OBJECTS = $(COBJECTS) $(CXXOBJECTS) $(CPPOBJECTS) $(ASMOBJECTS)
CDEPENDS = $(patsubst %.c,%.d,$(CSOURCES))
CXXDEPENDS = $(patsubst %.cxx,%.d,$(CXXSOURCES))
CPPDEPENDS = $(patsubst %.cpp,%.d,$(CPPSOURCES))
# For mains in normal (non-bin) src dir
ifneq ($(wildcard *_main.c*),)
include $(OCPI_BASE_DIR)/Makefile.ocpi.sub-bin
endif
#
# Rules
#
.PHONY: objdir objects depends generated clean distclean cleanup distcleanup
objdir:
$(AT)if test "x$(OCPI_OUT_DIR)" != "x" -a ! -d $(OBJDIR) ; then echo Creating object directory $(OBJDIR); mkdir -p $(OBJDIR) ; fi
depends: $(CDEPENDS) $(CXXDEPENDS) $(CPPDEPENDS)
#generated: depends
objects: generated objdir $(OBJECTS)
clean:: cleanup
-rm -f $(OBJECTS)
distclean:: distcleanup
-rm -f $(OBJECTS)
#
# Direct dependencies for C/C++ files
#
$(COBJECTS): $(OBJDIR)/%.obj: %.c
$(CXXOBJECTS): $(OBJDIR)/%.obj: %.cxx
$(CPPOBJECTS): $(OBJDIR)/%.obj: %.cpp
$(ASMOBJECTS): $(OBJDIR)/%.obj: %.asm
$(CDEPENDS): %.d: %.c
$(CXXDEPENDS): %.d: %.cxx
$(CPPDEPENDS): %.d: %.cpp
-include $(OBJDIR)/*.deps
#
# Include generated dependency files
#
ifneq (,)
ifneq ($(findstring clean,$(MAKECMDGOALS)),clean)
ifneq ($(wildcard *.d),)
include *.d
endif
endif
endif