blob: 23db1f594561002c5bc0d674a5e933b76e69c9d6 [file] [log] [blame]
Brad Bishop9a9ace92016-06-13 14:29:39 -04001LIBS += libwritefrudata.so
2HOST_LIBS += libstrgfnhandler.so
vishwa13555bd2015-11-10 12:10:38 -06003libwritefrudata.so_OBJS += frup.o writefrudata.o
Brad Bishopdcdc0932016-06-13 14:21:46 -04004libwritefrudata.so_VERSION = 1
vishwa13555bd2015-11-10 12:10:38 -06005libstrgfnhandler.so_OBJS += strgfnhandler.o
Brad Bishopdcdc0932016-06-13 14:21:46 -04006libstrgfnhandler.so_VERSION = 1
vishwa13555bd2015-11-10 12:10:38 -06007
8EXES += phosphor-read-eeprom
9
10phosphor-read-eeprom_OBJS += readeeprom.o argument.o
Brad Bishopde6a3792016-07-25 17:09:12 -040011phosphor-read-eeprom_LDLIBS += mapper
vishwa13555bd2015-11-10 12:10:38 -060012phosphor-read-eeprom_EXTRA_LIBS += writefrudata
13libstrgfnhandler.so_EXTRA_LIBS += writefrudata
Brad Bishopde6a3792016-07-25 17:09:12 -040014libwritefrudata.so_LDLIBS += mapper
vishwa13555bd2015-11-10 12:10:38 -060015libwritefrudata.so_NEEDED += libsystemd
16phosphor-read-eeprom_NEEDED += libsystemd
Hariharasubramanian R44473092015-10-15 08:25:28 -050017
Patrick Williams7bb1b152015-10-31 23:27:17 -050018#### -----------------------------------------------------------------------####
19# #
20## Compilare Regulas Sequi ##
21# #
22#### -----------------------------------------------------------------------####
vishwa13555bd2015-11-10 12:10:38 -060023OPTFLAGS ?= -O3 -g -pipe -G -K
Patrick Williams7bb1b152015-10-31 23:27:17 -050024CFLAGS ?= $(OPTFLAGS)
25CXXFLAGS ?= $(OPTFLAGS)
26CFLAGS += -Wall -flto -fPIC
Chris Austenb45c4cb2015-11-01 06:34:56 -060027CXXFLAGS += --std=gnu++14 -Wall -flto -fPIC
Hariharasubramanian R44473092015-10-15 08:25:28 -050028
Patrick Williams7bb1b152015-10-31 23:27:17 -050029__PKG_CONFIG = $(if $1,$(shell pkg-config $2 $1))
vishwa13555bd2015-11-10 12:10:38 -060030__EXTRA_LIB_RESOLV = $(if $1,$1)
Patrick Williams7bb1b152015-10-31 23:27:17 -050031
32define __BUILD_EXE
Brad Bishop9a9ace92016-06-13 14:29:39 -040033$1 : $$($1_OBJS) | $$(LIBS) $$(HOST_LIBS)
Brad Bishopde6a3792016-07-25 17:09:12 -040034 $$(LINK.cpp) -o $$@ $$^ $(call __EXTRA_LIB_RESOLV,$(addprefix -l,$($1_EXTRA_LIBS))) -L. $(addprefix -l,$($1_LDLIBS)) $(call __PKG_CONFIG,$($1_NEEDED),--libs)
Patrick Williams7bb1b152015-10-31 23:27:17 -050035
36$(eval CXXFLAGS += $(call __PKG_CONFIG,$($1_NEEDED),--cflags))
37
38#include $$($1_OBJS:.o=.d)
39endef
40
41$(foreach exe,$(EXES),$(eval $(call __BUILD_EXE,$(exe))))
42
43define __BUILD_LIB
vishwa13555bd2015-11-10 12:10:38 -060044$1 : $$($1_OBJS) | $$(addsuffix .so,$$(addprefix lib,$$($1_EXTRA_LIBS)))
Brad Bishopde6a3792016-07-25 17:09:12 -040045 $$(LINK.cpp) -fPIC -shared -Wl,-soname,$$@ -o $$(addsuffix .$($1_VERSION), $$@) $$^ $(call __EXTRA_LIB_RESOLV,$(addprefix -l,$($1_EXTRA_LIBS))) -L. $(addprefix -l,$($1_LDLIBS)) $(call __PKG_CONFIG,$($1_NEEDED),--libs)
Brad Bishopdcdc0932016-06-13 14:21:46 -040046 ln -sf $$(addsuffix .$($1_VERSION), $$@) $1
Patrick Williams7bb1b152015-10-31 23:27:17 -050047
48$(eval CXXFLAGS += $(call __PKG_CONFIG,$($1_NEEDED),--cflags))
49
50#include $$($1_OBJS:.o=.d)
51endef
52
53$(foreach lib,$(LIBS),$(eval $(call __BUILD_LIB,$(lib))))
vishwa13555bd2015-11-10 12:10:38 -060054$(foreach lib,$(HOST_LIBS),$(eval $(call __BUILD_LIB,$(lib))))
Patrick Williams7bb1b152015-10-31 23:27:17 -050055
56.PHONY: clean
57clean:
58 $(RM) $(foreach exe,$(EXES),$(exe) $($(exe)_OBJS)) \
Brad Bishopdcdc0932016-06-13 14:21:46 -040059 $(foreach lib,$(LIBS),$(addsuffix .$($(lib)_VERSION), $(lib)) $(lib) $($(lib)_OBJS)) \
60 $(foreach lib,$(HOST_LIBS),$(addsuffix .$($(lib)_VERSION), $(lib)) $(lib) $($(lib)_OBJS))
Hariharasubramanian R44473092015-10-15 08:25:28 -050061
Vishwa4be4b7a2015-10-31 22:55:50 -050062DESTDIR ?= /
Patrick Williams7bb1b152015-10-31 23:27:17 -050063BINDIR ?= /usr/bin
Vishwa4be4b7a2015-10-31 22:55:50 -050064LIBDIR ?= /usr/lib
65
Patrick Williams7bb1b152015-10-31 23:27:17 -050066.PHONY: install
Vishwa4be4b7a2015-10-31 22:55:50 -050067install:
Patrick Williams7bb1b152015-10-31 23:27:17 -050068 $(if $(EXES),\
69 install -m 0755 -d $(DESTDIR)$(BINDIR) && \
70 install -m 0755 $(EXES) $(DESTDIR)$(BINDIR) \
71 )
72 $(if $(LIBS),\
73 install -m 0755 -d $(DESTDIR)$(LIBDIR)/host-ipmid && \
Brad Bishopdcdc0932016-06-13 14:21:46 -040074 install -m 0755 $(foreach lib,$(HOST_LIBS),$(addsuffix .$($(lib)_VERSION), $(lib))) $(DESTDIR)$(LIBDIR)/host-ipmid && \
75 install -m 0755 $(foreach lib,$(LIBS),$(addsuffix .$($(lib)_VERSION), $(lib))) $(DESTDIR)$(LIBDIR) \
76 $(foreach lib,$(HOST_LIBS), && ln -sf $(addsuffix .$($(lib)_VERSION), $(lib)) $(DESTDIR)$(LIBDIR)/host-ipmid/$(lib)) \
77 $(foreach lib,$(LIBS), && ln -sf $(addsuffix .$($(lib)_VERSION), $(lib)) $(DESTDIR)$(LIBDIR)/$(lib)) \
Patrick Williams7bb1b152015-10-31 23:27:17 -050078 )
79
80.DEFAULT_GOAL: all
81.PHONY: all
82all: $(EXES) $(LIBS)