# CONFIG.Common.vxWorksCommon # # $Id$ # This file is maintained by the build community. # # Definitions for vxWorks target archs # Sites may override these definitions in CONFIG_SITE.Common.vxWorksCommon # or CONFIG_SITE..vxWorksCommon #------------------------------------------------------- # Vx valid build types VALID_BUILDS = Ioc #-------------------------------------------------- # operating system class (include/os/) OS_CLASS = vxWorks #------------------------------------------------------- # Prefix and suffix definitions EXE = OBJ = .o LIB_PREFIX =lib LIB_SUFFIX = .a LIB_EXT = .a MUNCH_SUFFIX = .munch #------------------------------------------------------- # Library definitions LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX)) #-------------------------------------------------- # Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \ $(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \ $($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \ $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \ $(firstword $($(lib)_DIR) $(INSTALL_LIB))))) PROD_LDLIBS = $(addprefix -l,$($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\ $($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS)) PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS)) PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%)) #------------------------------------------------------- # Prod definitions MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX)) CTDT_SRCS = $(PRODNAME:%$(EXE)=%_ctdt.c) CTDT_OBJS = $(PRODNAME:%$(EXE)=%_ctdt$(OBJ)) NMS = $(PRODNAME:%$(EXE)=%.nm) #------------------------------------------------------- # R3.13 compatability object library definitions # Does not allow $*_SRCS or $*_OBJS. Allows only OBJLIB_SRCS and OBJLIB_OBJS. OBJLIB += $(OBJLIB_$(OS_CLASS)) OBJLIB_SUFFIX = Library.o OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB))) OBJLIB_LD_OBJS += $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS))) PRODTARGETS += $(OBJLIBNAME) INSTALL_PROD += $(OBJLIBNAME:%=$(INSTALL_BIN)/%) OBJLIB_MUNCHNAME += $(OBJLIBNAME:%$(OBJ)=%$(MUNCH_SUFFIX)) INSTALL_MUNCHS += $(OBJLIB_MUNCHNAME:%=$(INSTALL_BIN)/%) PRODTARGETS += $(OBJLIB_MUNCHNAME) CTDT_SRCS += $(OBJLIBNAME:%$(OBJ)=%_ctdt.c) CTDT_OBJS += $(OBJLIBNAME:%$(OBJ)=%_ctdt$(OBJ)) NMS += $(OBJLIBNAME:%$(OBJ)=%.nm) OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS) SRC_FILES += $(OBJLIB_SRCS) #-------------------------------------------------- # vxWorks directory definitions # Tornado directory definitions GNU_TARGET_INCLUDE_DIR = $(VX_DIR)/target/h GNU_DIR = $(VX_DIR)/host/$(WIND_HOST_TYPE) #-------------------------------------------------- # C++ host processing NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE) #-------------------------------------------------- # The follow 2 exports prevent gnu cross-compiler # from finding wrong assembler (as). export WIND_BASE = $(VX_DIR) export WIND_HOST_TYPE #-------------------------------------------------- # Tornado2.2 # The follow export allows vxWorks.h to include gnu header files export TOOL_FAMILY = GNU #-------------------------------------------------- # Operating system flags OP_SYS_CPPFLAGS += -DvxWorks OP_SYS_CFLAGS += -fno-builtin #OP_SYS_CFLAGS += -fno-builtin -fdollars-in-identifiers OP_SYS_LDFLAGS += # Fix for vxWorks headers using macros defined in # vxWorks.h but not including vxWorks.h OP_SYS_INCLUDE_CPPFLAGS += -include $(GNU_TARGET_INCLUDE_DIR)/vxWorks.h #-------------------------------------------------- # code flags CODE_CFLAGS = # # WRS still uses an old gnu compiler with a broken -frepo and # otherwise no automatic template instantiation mechanism as # is the defacto standard approach today. If we remove this # flag certain ppc targets will not build. CODE_CXXFLAGS = -fno-implicit-templates #-------------------------------------------------- # posix c preprocessor flags POSIX_CPPFLAGS_YES = -D_POSIX_SOURCE POSIX_CPPFLAGS_NO = #-------------------------------------------------- # no shared libs for vxWorks SHRLIB_CFLAGS = SHRLIB_LDFLAGS = #-------------------------------------------------- # osithead use default stack, YES or NO override OSITHREAD_USE_DEFAULT_STACK = NO #-------------------------------------------------- # Link definitions LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS) LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS) #-------------------------------------------------- # Definitions for compile of *_ctdt.c file CFLAGS_ctdt = $(filter-out -pedantic,$(CFLAGS)) -fdollars-in-identifiers COMPILE.ctdt = $(CC) -c $(CPPFLAGS) $(CFLAGS_ctdt) $(call PATH_FILTER,$(INCLUDES)) $(SOURCE_FLAG) #-------------------------------------------------- # Allow site overrides -include $(CONFIG)/os/CONFIG_SITE.Common.vxWorksCommon -include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon