forked from AaronDMarasco-VSI/opencpi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.ocpi.sub-bin
106 lines (91 loc) · 3.42 KB
/
Makefile.ocpi.sub-bin
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
# 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/>.
CMAINS = $(filter-out $(EXCLUDE_SOURCES),$(wildcard *_main.c))
CXXMAINS = $(filter-out $(EXCLUDE_SOURCES),$(wildcard *_main.cxx))
OTHEROBJS = $(filter-out %_main.obj,$(OBJECTS))
ORIGEXECUTABLES = $(patsubst %_main.c,$(OBJDIR)/%_main.exe,$(CMAINS)) \
$(patsubst %_main.cxx,$(OBJDIR)/%_main.exe,$(CXXMAINS))
WINNTEXECUTABLES = $(patsubst %_main.c,$(OBJDIR)/%.exe,$(CMAINS)) \
$(patsubst %_main.cxx,$(OBJDIR)/%.exe,$(CXXMAINS))
LINUXEXECUTABLES = $(patsubst %_main.c,$(OBJDIR)/%,$(CMAINS)) \
$(patsubst %_main.cxx,$(OBJDIR)/%,$(CXXMAINS))
VXWORKSDKMEXECUTABLES = $(patsubst %_main.c,$(OBJDIR)/%.out,$(CMAINS)) \
$(patsubst %_main.cxx,$(OBJDIR)/%.out,$(CXXMAINS))
ALLEXECUTABLES = $(ORIGEXECUTABLES) $(WINNTEXECUTABLES) \
$(LINUXEXECUTABLES) $(VXWORKSDKMEXECUTABLES)
ifeq ($(OCPI_TARGET_OS),winnt)
EXECUTABLES = $(WINNTEXECUTABLES)
else
ifneq ($(filter linux macos,$(OCPI_TARGET_OS)),)
EXECUTABLES = $(LINUXEXECUTABLES)
else
ifeq ($(OCPI_TARGET_OS),vxworksdkm)
EXECUTABLES = $(VXWORKSDKMEXECUTABLES)
endif
endif
endif
#
# Rules
#
.PHONY: executables
#all: executables
executables: generated objdir $(EXECUTABLES)
clean:: cleanup
rm -f $(ALLEXECUTABLES)
distclean:: distcleanup
rm -f $(ALLEXECUTABLES)
ifeq ($(OCPI_TARGET_OS),winnt)
$(OBJDIR)/%.exe: $(OBJDIR)/%_main.exe
cp $< $@
else
ifneq ($(filter linux macos,$(OCPI_TARGET_OS)),)
$(OBJDIR)/%: $(OBJDIR)/%_main.exe
rm -f $@; cp -p $< $@; touch $@
else
ifeq ($(OCPI_TARGET_OS),vxworksdkm)
$(OBJDIR)/%.out: $(OBJDIR)/%_main.exe
cp $< $@
endif
endif
endif
ifeq ($(OCPI_TARGET_OS),winnt)
else
ifneq ($(filter linux macos,$(OCPI_TARGET_OS)),)
# $(OTHEROBJS) \
$(EXECUTABLES): $(OBJDIR)/%: $(OBJDIR)/%_main.exe
$(infox ZZZZZZZZZ:$(EXPORTSHLIB))
$(infox XYXYX:$(if $(filter 0,$(OCPI_BUILD_SHARED_LIBRARIES)),$(EXPORTLIB),$(EXPORTSHLIB)))
$(ORIGEXECUTABLES): $(OBJDIR)/%.exe: $(OBJDIR)/%.obj \
$(or $(foreach d,.. ../..,$(wildcard $d/$(if $(filter 0,$(OCPI_BUILD_SHARED_LIBRARIES)),$(UNIXLIB),$(UNIXSHLIB))))) \
$(foreach l,$(ALLLIBS),$(call LIBDEP,$l)) \
$(foreach p,$(PREQLIBS),$(call PREQDEP,$p)) \
$(DYNOBJS)
# $(wildcard $(LIBDIR)/lib*.$(LIBDEPSUFFIX)) \
else
ifeq ($(OCPI_TARGET_OS),vxworksdkm)
ifeq ($(OCPI_BUILD_SHARED_LIBRARIES),1)
$(EXECUTABLES): $(OBJDIR)/%.out: $(OBJDIR)/%_main.exe
$(ORIGEXECUTABLES): $(OBJDIR)/%.exe: $(OBJDIR)/%.obj $(OTHEROBJS)
else
$(EXECUTABLES): $(OBJDIR)/%.out: $(OBJDIR)/%_main.exe
$(ORIGEXECUTABLES): $(OBJDIR)/%.exe: $(OBJDIR)/%.obj $(OTHEROBJS) $(wildcard $(LIBDIR)/lib*.a) \
$(join $(addsuffix $(OCPI_OUT_DIR)/,$(dir $(ALLLIBS))),$(patsubst %,libocpi_%.a,$(notdir $(ALLLIBS))))
endif
endif
endif
endif