633 lines
15 KiB
Plaintext
633 lines
15 KiB
Plaintext
# $Id$
|
|
#
|
|
# Rules for making things specified in Makefile.Host
|
|
#
|
|
# Some rules for filename-massage are system specific
|
|
# and have "ifdefs" here instead of using definitions
|
|
# from CONFIG.Host.$(ARCH_CLASS) - sorry about this,
|
|
# but so far the rules are quite similar on all systems
|
|
# except WIN32 has some specials.
|
|
#
|
|
# Maybe there is a way to use indentation to make it
|
|
# easier to read this file?
|
|
#
|
|
# Most things may also work if you say e.g.
|
|
# VAR+=ADD
|
|
# even if ADD is not there, but this way "VAR" would
|
|
# be defined in any case, that's why I try to use
|
|
# ifdef ADD
|
|
# VAR+=ADD
|
|
# endif
|
|
#
|
|
# -kuk-
|
|
|
|
# we are in O.$(OS_CLASS), but most sources are one dir above:
|
|
#
|
|
# The use of VPATH (no suffix specification) caused everything
|
|
# to break several times.
|
|
# vpath, of course, has the disadvantage that we need explicit rules
|
|
# for scripts or similar os-specific filed which have _no_ suffix...
|
|
|
|
|
|
ifdef T_A
|
|
|
|
vpath %.c $(USER_VPATH) $(ALL_SRC_DIRS)
|
|
vpath %.cc $(USER_VPATH) $(ALL_SRC_DIRS)
|
|
vpath %.cpp $(USER_VPATH) $(ALL_SRC_DIRS)
|
|
vpath %.C $(USER_VPATH) $(ALL_SRC_DIRS)
|
|
vpath %.rc $(USER_VPATH) $(ALL_SRC_DIRS)
|
|
vpath %.h $(USER_VPATH) $(ALL_SRC_DIRS)
|
|
vpath %.skel.static $(USER_VPATH) $(GENERIC_SRC_DIRS)
|
|
|
|
#---------------------------------------------------------------
|
|
|
|
include $(CONFIG)/CONFIG_ADDONS
|
|
|
|
#---------------------------------------------------------------
|
|
# Set opt and warn
|
|
ifeq ($(HOST_ARCH),$(T_A))
|
|
OPT=$(HOST_OPT)
|
|
WARN=$(HOST_WARN)
|
|
else
|
|
OPT=$(CROSS_OPT)
|
|
WARN=$(CROSS_WARN)
|
|
endif
|
|
|
|
#---------------------------------------------------------------
|
|
|
|
PROD := $(addsuffix $(EXE),$(PROD))
|
|
TESTPROD := $(addsuffix $(EXE),$(TESTPROD))
|
|
|
|
#---------------------------------------------------------------
|
|
# Set PROD, OBJS, LIBRARY_HOST, and LIBRARY_IOC
|
|
|
|
ifeq ($(findstring Host,$(VALID_BUILDS)),Host)
|
|
PROD += $(PROD_HOST)
|
|
LIBRARY_HOST += $(LIBRARY)
|
|
OBJS += $(OBJS_HOST)
|
|
else
|
|
# PROD and TESTPROD not built for ioc only builds
|
|
PROD =
|
|
TESTPROD =
|
|
LIBRARY_IOC += $(LIBRARY)
|
|
endif
|
|
|
|
|
|
ifeq ($(findstring Ioc,$(VALID_BUILDS)),Ioc)
|
|
OBJS += $(OBJS_IOC)
|
|
endif
|
|
#---------------------------------------------------------------
|
|
|
|
ifdef TEMPLATES_DIR
|
|
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
|
else
|
|
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)
|
|
endif
|
|
|
|
#---------------------------------------------------------------
|
|
# must use c++ linker if linking to shared libs with c++ code
|
|
LINK.c = $(LINK.cpp)
|
|
|
|
#---------------------------------------------------------------
|
|
# Libraries
|
|
#
|
|
# if there are no objects LIBOBJS_IOC or LIBOBJS_HOST to
|
|
# include in a library (may be for e.g. base/src/libCompat
|
|
# on some archs), don't define (and build) any library!
|
|
|
|
# Only one LIBRARY_HOST allowed
|
|
ifdef LIBRARY_HOST
|
|
LIBSRCS_HOST+= $(SRCS) $(LIBSRCS) $($(addsuffix _SRCS,$(LIBRARY_HOST)))
|
|
ifneq ($(strip $($(addsuffix _SRCS_$(OS_CLASS),$(LIBRARY_HOST)))),)
|
|
LIBSRCS_HOST += $(subst -nil-,,$($(addsuffix _SRCS_$(OS_CLASS),$(LIBRARY_HOST))))
|
|
else
|
|
LIBSRCS_HOST += $($(addsuffix _SRCS_DEFAULT,$(LIBRARY_HOST)))
|
|
endif
|
|
LIBOBJS_HOST+=$(addsuffix $(OBJ),$(basename $(LIBSRCS_HOST)))
|
|
ifneq (,$(strip $(LIBOBJS_HOST)))
|
|
LIBTARGETS += $(LIBNAME_HOST)
|
|
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
|
LIBTARGETS += $(SHRLIBNAME_HOST)
|
|
endif # SHARED_LIBRARIES=YES
|
|
endif # LIBOBJS_HOST
|
|
endif # LIBRARY_HOST
|
|
|
|
# Only one LIBRARY_IOC allowed
|
|
ifdef LIBRARY_IOC
|
|
LIBSRCS_IOC+= $(SRCS) $(LIBSRCS) $($(addsuffix _SRCS,$(LIBRARY_IOC)))
|
|
ifneq ($(strip $($(addsuffix _SRCS_$(OS_CLASS),$(LIBRARY_IOC)))),)
|
|
LIBSRCS_IOC += $(subst -nil-,,$($(addsuffix _SRCS_$(OS_CLASS),$(LIBRARY_IOC))))
|
|
else
|
|
LIBSRCS_IOC += $($(addsuffix _SRCS_DEFAULT,$(LIBRARY_IOC)))
|
|
endif
|
|
LIBOBJS_IOC+=$(addsuffix $(OBJ), $(basename $(LIBSRCS_IOC))) $(LIBOBJS)
|
|
ifneq (,$(strip $(LIBOBJS_IOC)))
|
|
LIBTARGETS += $(LIBNAME_IOC)
|
|
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
|
LIBTARGETS += $(SHRLIBNAME_IOC)
|
|
endif # SHARED_LIBRARIES=YES
|
|
endif # LIBOBJS_IOC
|
|
endif # LIBRARY_IOC
|
|
|
|
ifneq (,$(strip $(LIBOBJS_HOST) $(LIBOBJS_IOC)))
|
|
LIBTARGETS += $(INSTALL_LIBS)
|
|
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
|
CFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
|
CXXFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
|
PROD_VERSION =$(SHRLIB_VERSION)
|
|
SHRLIB_LINKER = $(CXX)
|
|
LIBTARGETS += $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS)
|
|
endif # SHARED_LIBRARIES=YES
|
|
endif
|
|
|
|
#---------------------------------------------------------------
|
|
# Main targets
|
|
|
|
all: install
|
|
|
|
install: buildInstall
|
|
|
|
buildInstall : build
|
|
|
|
build : inc
|
|
|
|
rebuild: clean install
|
|
|
|
inc: $(INSTALL_INC) $(INSTALL_OSINC)
|
|
|
|
build: $(MENUS) $(RECTYPES) $(BPTS) $(OBJS) \
|
|
$(LIBTARGETS) $(PROD) $(TESTPROD) $(TARGETS)
|
|
|
|
ifdef DBDEXPAND
|
|
build: $(DBDNAME)
|
|
endif
|
|
|
|
buildInstall : \
|
|
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
|
|
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) \
|
|
$(INSTALL_OBJS) \
|
|
$(INSTALL_MANS) \
|
|
$(INSTALL_DOCS) \
|
|
$(INSTALL_HTMLS) \
|
|
$(INSTALL_TEMPLATE) \
|
|
$(INSTALL_CONFIGS) \
|
|
$(INSTALL_DBS) $(INSTALL_BPTS) \
|
|
$(INSTALL_DBDNAME) $(INSTALL_INCREC)
|
|
|
|
ifdef BIN_INSTALLS
|
|
buildInstall : binInstalls
|
|
endif
|
|
|
|
clean::
|
|
@echo "Cleaning"
|
|
@$(RM) *.i *$(OBJ) *.a $(PROD) $(TESTPROD) $(LIBNAME_IOC)\
|
|
$(LIBNAME_HOST) $(SHRLIBNAME_IOC) $(SHRLIBNAME_HOST)\
|
|
$(INC) *$(RES) $(TARGETS) $(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) \
|
|
$(DBDNAME) *.out
|
|
ifdef BAF
|
|
@$(RM) $(PROD_BAF) $(LIB_BAF_IOC) $(LIB_BAF_HOST) *$(BOF)
|
|
endif
|
|
ifdef DBDEXPAND
|
|
@$(RM) $(DBDNAME)
|
|
endif
|
|
|
|
#---------------------------------------------------------------
|
|
|
|
# WIN95/NT source browser
|
|
#ifdef BAF
|
|
PROD_BAF = $(addsuffix $(BAF), $(basename $(PROD)))
|
|
LIB_BAF_IOC=$(addsuffix $(BAF),$(basename $(LIBRARY_IOC)))
|
|
LIB_BAF_HOST=$(addsuffix $(BAF),$(basename $(LIBRARY_HOST)))
|
|
browse: $(LIB_BAF_IOC) $(LIB_BAF_HOST) $(PROD_BAF)
|
|
#endif
|
|
|
|
#---------------------------------------------------------------
|
|
|
|
$(DIRECTORY_TARGETS) :
|
|
$(MKDIR) -p $@
|
|
|
|
#---------------------------------------------------------------
|
|
# Products
|
|
#
|
|
|
|
PROD += $(TESTPROD)
|
|
ifdef PROD
|
|
|
|
COND_PROD_SRCS=$(foreach prod, $(basename $(PROD)), $($(prod)_SRCS) $($(prod)_SRCS_$(OS_CLASS)))
|
|
COND_PROD_RCS=$(foreach prod, $(basename $(PROD)), $($(prod)_RCS) $($(prod)_RCS_$(OS_CLASS)))
|
|
|
|
ifdef PRODNAME
|
|
|
|
ifneq ($(strip $(PRODNAME_SRCS_$(OS_CLASS))),)
|
|
PRODNAME_SRCS += $(subst -nil-,,$(PRODNAME_SRCS_$(OS_CLASS)))
|
|
else
|
|
ifdef PRODNAME_SRCS_DEFAULT
|
|
PRODNAME_SRCS += $(PRODNAME_SRCS_DEFAULT)
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(strip $(PRODNAME_RCS_$(OS_CLASS))),)
|
|
PRODNAME_RCS += $(subst -nil-,,$(PRODNAME_RCS_$(OS_CLASS)))
|
|
else
|
|
ifdef PRODNAME_RCS_DEFAULT
|
|
PRODNAME_RCS += $(PRODNAME_RCS_DEFAULT)
|
|
endif
|
|
endif
|
|
|
|
$(PRODNAME): $(PROD_DEPLIBS) $(PRODNAME_DEPLIBS)
|
|
|
|
ifdef PRODNAME_SRCS
|
|
|
|
PRODNAME_LINKER = $(LINK.cpp)
|
|
|
|
PRODNAME_OBJS=$(addsuffix $(OBJ), $(basename $(PRODNAME_SRCS)))
|
|
PRODNAME_RESS=$(addsuffix $(RES), $(basename $(PRODNAME_RCS)))
|
|
|
|
BROWSE_OBJECTS = $(addsuffix $(BOF), $(basename $(PRODNAME_SRCS)))
|
|
|
|
$(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS)
|
|
@$(RM) $@
|
|
$(PRODNAME_LINKER) $(PRODNAME_OBJS) $(PRODNAME_RESS) $(LDLIBS)
|
|
|
|
else # PRODNAME_SRCS notdefined
|
|
|
|
BROWSE_OBJECTS = $(addsuffix $(BOF), $(basename $(PRODNAME)))
|
|
|
|
endif # PRODNAME_SRCS notdefined
|
|
|
|
# WIN95/NT source browser
|
|
ifdef BAF
|
|
$(addsuffix $(BAF), $(basename $(PRODNAME))): $(BROWSE_OBJECTS)
|
|
@echo "Building source browser archive $@"
|
|
@$(RM) $@
|
|
$(BAFCMD) $^
|
|
endif
|
|
|
|
else # PRODNAME notdefined
|
|
|
|
# We have to use the product's true dependancies and
|
|
# call make again to determine if product should be rebuilt
|
|
|
|
ifneq ($(strip $(SRCS) $(COND_PROD_SRCS)),)
|
|
PROD_OBJS=$(addsuffix $(OBJ), $(basename $(SRCS) $(COND_PROD_SRCS)))
|
|
|
|
PROD_RESS=$(addsuffix $(RES), $(basename $(RCS) $(COND_PROD_RCS)))
|
|
|
|
PROD_MAKE_COMMAND=$(MAKE) -f ../Makefile$(B_T) TOP=$(TOP) T_A=$(T_A) $@\
|
|
PRODNAME=$(addsuffix $(EXE), $(basename $@))\
|
|
PRODNAME_SRCS="$(SRCS) $($(basename $@)_SRCS)"\
|
|
PRODNAME_SRCS_DEFAULT="$($(basename $@)_SRCS_DEFAULT)"\
|
|
PRODNAME_SRCS_$(OS_CLASS)="$($(basename $@)_SRCS_$(OS_CLASS))"\
|
|
PRODNAME_RCS="$(RCS) $($(basename $@)_RCS)"\
|
|
PRODNAME_RCS_DEFAULT="$($(basename $@)_RCS_DEFAULT)"\
|
|
PRODNAME_RCS_$(OS_CLASS)="$($(basename $@)_RCS_$(OS_CLASS))"\
|
|
PRODNAME_LIBS="$($(basename $@)_LIBS)"
|
|
|
|
$(PROD): $(SRCS) $(PROD_OBJS) $(COND_PROD_SRCS) $(PROD_RESS) \
|
|
$(PROD_DEPLIBS) $(COND_PROD_DEPLIBS)
|
|
|
|
|
|
$(PROD):
|
|
@$(PROD_MAKE_COMMAND)
|
|
|
|
ifdef BAF
|
|
$(PROD_BAF): $(PROD)
|
|
@$(PROD_MAKE_COMMAND)
|
|
endif
|
|
|
|
endif
|
|
endif # PRODNAME notdefined
|
|
endif # PROD defined
|
|
|
|
#---------------------------------------------------------------
|
|
#---------------------------------------------------------------
|
|
# Generic Rules for 'simple' targets that
|
|
# can be generated from a single source with same basename.
|
|
#
|
|
# The usual two rules .c* -> $(OBJ) and then $(OBJ) -> $(EXE)
|
|
# do not work because the $(OBJ)->$(EXE) rule wouldn't
|
|
# know if the original source was C or C++.
|
|
#
|
|
# Hint: The $(subst...) construct removes the .c or .cpp
|
|
# as well as the '../' from the filename and adds $(OBJ):
|
|
# e.g. $< = '../abc.c' -> 'abc.o'
|
|
#
|
|
# The order of the following rules is
|
|
# VERY IMPORTANT !!!!
|
|
|
|
depends: $(LIBSRCS_IOC) $(LIBSRCS_HOST) $(SRCS) $(COND_PROD_SRCS)
|
|
$(RM) DEPENDS
|
|
touch DEPENDS
|
|
$(DEPENDS_RULE)
|
|
|
|
%$(EXE): %.c
|
|
@$(RM) $@
|
|
$(COMPILE.c) $<
|
|
$(LINK.c) $(notdir $(basename $<))$(OBJ) $(LDLIBS)
|
|
|
|
%$(EXE): %.cpp
|
|
@$(RM) $@
|
|
$(COMPILE.cpp) $<
|
|
$(LINK.cpp) $(notdir $(basename $<))$(OBJ) $(LDLIBS)
|
|
|
|
%$(EXE): %.cc
|
|
@$(RM) $@
|
|
$(COMPILE.cpp) $<
|
|
$(LINK.cpp) $(notdir $(basename $<))$(OBJ) $(LDLIBS)
|
|
|
|
%$(EXE): %.3
|
|
@$(RM) $@
|
|
$(COMPILE.cpp) $<
|
|
$(LINK.cpp) $(notdir ,$(basename $<))$(OBJ) $(LDLIBS)
|
|
|
|
# C++ munching for VxWorks
|
|
%.out : %.o
|
|
@ $(RM) ctct.o ctdt.c
|
|
$(NM) $< | $(MUNCH) > ctdt.c
|
|
$(COMPILE.c) -traditional ctdt.c
|
|
$(LINK.) $@ $< ctdt.o
|
|
@ $(RM) ctdt.c ctdt.o
|
|
|
|
|
|
%$(OBJ): %.c
|
|
@$(RM) $@
|
|
$(COMPILE.c) $<
|
|
|
|
%$(OBJ): %.cc
|
|
@$(RM) $@
|
|
$(COMPILE.cpp) $<
|
|
|
|
%$(OBJ): %.cpp
|
|
@$(RM) $@
|
|
$(COMPILE.cpp) $<
|
|
|
|
%$(OBJ): %.C
|
|
@$(RM) $@
|
|
$(COMPILE.cpp) $<
|
|
|
|
# WIN95/NT resource compiler
|
|
%$(RES): %.rc
|
|
@$(RM) $@
|
|
$(RCCMD)
|
|
|
|
# WIN95/NT source browser
|
|
%.bsc: %.sbr
|
|
@echo "building source browser archive $@"
|
|
$(RM) $@
|
|
$(BAFCMD) $<
|
|
|
|
#
|
|
# rename the y.tab.h file only if we
|
|
# are creating it
|
|
#
|
|
%.h %.c: ../%.y
|
|
$(RM) $*.c y.tab.c
|
|
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
|
$(RM) $*.h y.tab.h
|
|
endif
|
|
$(YACC) $(YACCOPT) $<
|
|
$(MV) y.tab.c $*.c
|
|
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
|
$(MV) y.tab.h $*.h
|
|
endif
|
|
|
|
%.c: ../%.l
|
|
@$(RM) lex.yy.c
|
|
$(LEX) $(LEXOPT) $<
|
|
@$(RM) $@
|
|
$(MV) lex.yy.c $@
|
|
|
|
#state notation language rule
|
|
%.c: ../%.st
|
|
@echo "preprocessing $*.st"
|
|
@$(RM) $*.i
|
|
$(CPP) $(CPPFLAGS) $(CPPSNCFLAGS) $< > $*.i
|
|
@echo "converting $*.i"
|
|
@$(RM) $@
|
|
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
|
|
|
|
%.c: %.stt
|
|
@echo "converting $<
|
|
ln -s $< $*.st
|
|
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
|
|
@$(RM) $*.st
|
|
|
|
# Capfast Rules:
|
|
%.db: %.edf
|
|
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
|
|
|
%.db: ../%.edf
|
|
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
|
|
|
%.edf: ../%.sch
|
|
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
|
|
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
|
|
|
|
# Adl2dl rule
|
|
%.dl : ../%.adl
|
|
-$(ADL2DL) $< $@
|
|
|
|
# Mangen Rule:
|
|
%.1:%
|
|
$(MANGEN) -s $<
|
|
$(MV) $(<F).nr $(<F).1
|
|
|
|
# Mangen Rule:
|
|
%.1:../%
|
|
$(MANGEN) -s $<
|
|
$(MV) $(<F).nr $(<F).1
|
|
|
|
$(INSTALL_DBD)/%: %
|
|
echo "Installing $@"
|
|
$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
|
|
|
$(INSTALL_DBD)/%: ../%
|
|
@echo "Installing $@"
|
|
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
|
|
|
%Record.h: %Record.dbd
|
|
$(RM) $@
|
|
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(HOSTEXE) \
|
|
$(DBDFLAGS) $<
|
|
|
|
%Record.h: ../%Record.dbd
|
|
$(RM) $@
|
|
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(HOSTEXE) \
|
|
$(DBDFLAGS) $<
|
|
|
|
menu%.h: menu%.dbd
|
|
$(RM) $@
|
|
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(HOSTEXE) $<
|
|
|
|
menu%.h: ../menu%.dbd
|
|
$(RM) $@
|
|
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(HOSTEXE) $<
|
|
|
|
bpt%.dbd: bpt%.data
|
|
$(RM) $@
|
|
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(HOSTEXE) $<
|
|
|
|
bpt%.dbd: ../bpt%.data
|
|
$(RM) $@
|
|
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(HOSTEXE) $<
|
|
|
|
ifdef DBDEXPAND
|
|
$(DBDNAME): ../$(DBDEXPAND)
|
|
@echo Expanding dbd
|
|
@$(RM) $@
|
|
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(HOSTEXE) $(DBDFLAGS) $< > $@
|
|
endif
|
|
|
|
# WIN95/NT source browser
|
|
ifdef BAF
|
|
|
|
$(LIB_BAF_HOST): $(addsuffix $(BOF),$(basename $(LIBSRCS_HOST)))
|
|
@echo "Building source browser archive $@"
|
|
@$(RM) $@
|
|
$(BAFCMD) $^
|
|
|
|
$(LIB_BAF_IOC): $(addsuffix $(BOF),$(basename $(LIBSRCS_IOC)))
|
|
@echo "Building source browser archive $@"
|
|
@$(RM) $@
|
|
$(BAFCMD) $^
|
|
|
|
endif
|
|
|
|
ifneq (,$(wildcard ../baseLIBOBJS))
|
|
$(LIBNAME_IOC): ../baseLIBOBJS
|
|
endif
|
|
|
|
# rule for lib (archive of object files) creation
|
|
$(LIBNAME_IOC): $(LIBOBJS_IOC)
|
|
$(RM) $@
|
|
$(ARCMD) $(LIBOBJS_IOC)
|
|
ifneq ($(RANLIB)xx,xx)
|
|
$(RANLIB) $@;
|
|
endif # RANLIB
|
|
|
|
$(DLL_LINK_LIBNAME_IOC) $(SHRLIBNAME_IOC): $(LIBOBJS_IOC)
|
|
$(LINK.shrlib_IOC) $(LIBOBJS_IOC) $(DLL_LDLIBS)
|
|
|
|
# rule for lib (archive of object files) creation
|
|
$(LIBNAME_HOST): $(LIBOBJS_HOST)
|
|
$(RM) $@
|
|
$(ARCMD) $(LIBOBJS_HOST)
|
|
ifneq ($(RANLIB)xx,xx)
|
|
$(RANLIB) $@;
|
|
endif # RANLIB
|
|
|
|
|
|
$(DLL_LINK_LIBNAME_HOST) $(SHRLIBNAME_HOST): $(LIBOBJS_HOST)
|
|
$(LINK.shrlib_HOST) $(LIBOBJS_HOST) $(DLL_LDLIBS)
|
|
|
|
binInstalls: $(BIN_INSTALLS)
|
|
@echo "Installing $(^F)"
|
|
@$(INSTALL) -d -m 555 $^ $(INSTALL_BIN)
|
|
|
|
$(INSTALL_BIN)/%: ../os/$(OS_CLASS)/%
|
|
@echo "Installing os-specific script $@"
|
|
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
|
|
|
$(INSTALL_BIN)/%: %
|
|
@echo "Installing binary $@"
|
|
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
|
|
|
$(INSTALL_BIN)/%: ../%
|
|
@echo "Installing script $@"
|
|
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
|
|
|
$(INSTALL_LIB)/%.a: %.a
|
|
@echo "Installing library $@"
|
|
@$(INSTALL_LIBRARY) -d -m 644 $< $(INSTALL_LIB)
|
|
ifneq ($(RANLIB)xx,xx)
|
|
$(RANLIB) $(RANLIBFLAGS) $@
|
|
endif # RANLIB
|
|
|
|
$(INSTALL_LIB)/%.lib: %.lib
|
|
@echo "Installing library $@"
|
|
@$(INSTALL_LIBRARY) -d -m 644 $< $(INSTALL_LIB)
|
|
|
|
$(INSTALL_SHRLIB)/lib%: lib%
|
|
@echo "Installing library $@"
|
|
@$(INSTALL) -d -m 555 $< $(INSTALL_SHRLIB)
|
|
ifdef SHRLIB_VERSION
|
|
@$(RM) $(@:%.$(SHRLIB_VERSION)=%)
|
|
ln -s $< $(@:%.$(SHRLIB_VERSION)=%)
|
|
endif # SHRLIB_VERSION
|
|
|
|
ifneq ($(INSTALL_TCLLIB),$(INSTALL_BIN))
|
|
$(INSTALL_TCLLIB)/%: %
|
|
@echo "Installing Tcl library $@"
|
|
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
|
|
|
|
$(INSTALL_TCLLIB)/%: ../%
|
|
@echo "Installing Tcl library $@"
|
|
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
|
|
endif
|
|
|
|
$(INSTALL_CONFIG)/%: %
|
|
@echo "Installing config file $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(INSTALL_CONFIG)/%: ../%
|
|
@echo "Installing config file $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
|
|
@echo "Installing man file $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
|
|
@echo "Installing man file $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(INSTALL_INCLUDE)/os/$(OS_CLASS)/% : %
|
|
@echo "Installing os dependent include file $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(INSTALL_INCLUDE)/% : %
|
|
@echo "Installing generic include file $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(INSTALL_DOC)/%: %
|
|
@echo "Installing doc $@"
|
|
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
|
|
|
$(INSTALL_DOC)/%: ../%
|
|
@echo "Installing doc $@"
|
|
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
|
|
|
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
|
|
@echo "Installing html $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
|
|
@echo "Installing html $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: ../%
|
|
@echo "Installing $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
|
|
@echo "Installing $@"
|
|
@$(INSTALL) -d -m 644 $< $(@D)
|
|
|
|
.PRECIOUS: %.o %.c
|
|
|
|
-include DEPENDS
|
|
|
|
.PHONY: all inc depends build install clean rebuild buildInstall binInstalls \
|
|
iocBinInstalls
|
|
|
|
ifneq (,$(wildcard ../base.dbd))
|
|
$(DBDNAME): ../base.dbd $(RECTYPES:%.h=../%.dbd)
|
|
else
|
|
$(DBDNAME): $(RECTYPES:%.h=../%.dbd)
|
|
endif
|
|
|
|
endif # T_A defined
|
|
|
|
# EOF RULES.Host
|
|
|