blob: d0f3c6449e0639a323f9a08eed1c4ae51eaf9e2f [file] [log] [blame]
TCF_AGENT_DIR=.
include $(TCF_AGENT_DIR)/Makefile.inc
# include custom Makefile fragments if defined
ifdef MAKE_INC
include $(MAKE_INC)
endif
# frame pointers are needed for agent diagnostics to work properly
ifeq ($(CC),gcc)
OPTS += -fno-omit-frame-pointer
endif
ifeq ($(CC),g++)
OPTS += -fno-omit-frame-pointer
endif
LUALIBS = $(LIBS) $(LUADIR)/lib/liblua$(EXTLIB)
ifeq ($(OPSYS),Msys)
LUALIBS += -lm
else
ifneq ($(OPSYS),Windows)
LUALIBS += -lm -ldl
endif
endif
LIBTCF ?= $(BINDIR)/libtcf$(EXTLIB)
override CFLAGS += $(OPTS)
LINK_FLAGS += $(LINK_OPTS)
all: $(EXECS)
libtcf: $(LIBTCF)
$(BINDIR)/libtcf$(EXTLIB) : $(OFILES)
$(AR) $(AR_FLAGS) $(AR_OUT_F)$@ $^
$(RANLIB)
$(BINDIR)/agent$(EXTEXE): $(BINDIR)/main/main$(EXTOBJ) $(LIBTCF)
$(LINK) $(LINK_FLAGS) $(LINK_OUT_F)$@ $(BINDIR)/main/main$(EXTOBJ) \
$(LIBTCF) $(LIBS)
$(BINDIR)/client$(EXTEXE): $(BINDIR)/main/main_client$(EXTOBJ) $(LIBTCF)
$(LINK) $(LINK_FLAGS) $(LINK_OUT_F)$@ \
$(BINDIR)/main/main_client$(EXTOBJ) $(LIBTCF) $(LIBS)
$(BINDIR)/tcflua$(EXTEXE): $(BINDIR)/main/main_lua$(EXTOBJ) $(LIBTCF)
$(LINK) $(LINK_FLAGS) $(EXPORT_DYNAMIC) $(LINK_OUT_F)$@ \
$(BINDIR)/main/main_lua$(EXTOBJ) $(LIBTCF) $(LUALIBS)
$(BINDIR)/tcfreg$(EXTEXE): $(BINDIR)/main/main_reg$(EXTOBJ) $(LIBTCF)
$(LINK) $(LINK_FLAGS) $(LINK_OUT_F)$@ $(BINDIR)/main/main_reg$(EXTOBJ) \
$(LIBTCF) $(LIBS)
$(BINDIR)/valueadd$(EXTEXE): $(BINDIR)/main/main_va$(EXTOBJ) $(LIBTCF)
$(LINK) $(LINK_FLAGS) $(LINK_OUT_F)$@ $(BINDIR)/main/main_va$(EXTOBJ) \
$(LIBTCF) $(LIBS)
$(BINDIR)/tcflog$(EXTEXE): $(BINDIR)/main/main_log$(EXTOBJ) $(LIBTCF)
$(LINK) $(LINK_FLAGS) $(LINK_OUT_F)$@ $(BINDIR)/main/main_log$(EXTOBJ) \
$(LIBTCF) $(LIBS)
$(BINDIR)/%$(EXTOBJ): %.c $(HFILES) Makefile Makefile.inc $(EXTRA_CCDEPS)
@$(call MKDIR,$(dir $@))
$(CC) $(CFLAGS) $(OUT_OBJ_F)$@ $(NO_LINK_F) $<
clean::
$(call RMDIR,$(BINDIR))
ifeq ($(OPSYS),GNU/Linux)
install: all
install -d -m 755 $(INSTALLROOT)$(SBIN)
install -d -m 755 $(INSTALLROOT)$(INIT)
install -d -m 755 $(INSTALLROOT)$(INCLUDE)
install -d -m 755 $(INSTALLROOT)$(INCLUDE)/tcf
install -d -m 755 $(INSTALLROOT)$(INCLUDE)/tcf/framework
install -d -m 755 $(INSTALLROOT)$(INCLUDE)/tcf/services
install -c $(BINDIR)/agent -m 755 $(INSTALLROOT)$(SBIN)/tcf-agent
install -c $(BINDIR)/client -m 755 $(INSTALLROOT)$(SBIN)/tcf-client
install -c main/tcf-agent.init -m 755 $(INSTALLROOT)$(INIT)/tcf-agent
install -c config.h -m 755 $(INSTALLROOT)$(INCLUDE)/tcf/config.h
install -c -t $(INSTALLROOT)$(INCLUDE)/tcf/framework -m 644 framework/*.h
install -c -t $(INSTALLROOT)$(INCLUDE)/tcf/services -m 644 services/*.h
ALLFILES = Makefile* *.html *.sln *.vcproj *.h \
bin framework machine main services system
tcf-agent-$(VERSION).tar.bz2: $(HFILES) $(CFILES) Makefile Makefile.inc \
main/tcf-agent.spec main/tcf-agent.init
rm -rf tcf-agent-$(VERSION) tcf-agent-$(VERSION).tar.bz2
mkdir tcf-agent-$(VERSION)
tar c --exclude "*.svn" $(ALLFILES) | tar x -C tcf-agent-$(VERSION)
tar cjf tcf-agent-$(VERSION).tar.bz2 tcf-agent-$(VERSION)
rm -rf tcf-agent-$(VERSION)
tar: tcf-agent-$(VERSION).tar.bz2
rpm: all tar
rm -rf RPM
mkdir RPM RPM/BUILD RPM/RPMS RPM/RPMS/`uname -i` \
RPM/RPMS/noarch RPM/SOURCES RPM/SPECS RPM/SRPMS RPM/tmp
echo "%_topdir $(PWD)/RPM" >~/.rpmmacros
echo "%_tmppath $(PWD)/RPM/tmp" >>~/.rpmmacros
rpmbuild -ta tcf-agent-$(VERSION).tar.bz2
mv RPM/RPMS/`uname -i`/*.rpm .
mv RPM/SRPMS/*.rpm .
rm -rf RPM ~/.rpmmacros
clean::
rm -rf RPM *.tar *.tar.bz2 *.rpm
endif