new way to build
This commit is contained in:
17
Makefile
17
Makefile
@@ -1,24 +1,11 @@
|
||||
#
|
||||
# Top Level EPICS Makefile
|
||||
# by Matthew Needes and Mike Bordua
|
||||
#
|
||||
# Notes:
|
||||
# The build, clean, install, and depends "commands" do not have
|
||||
# their own dependency lists; they are instead handled by
|
||||
# the build.%, clean.%, etc. dependencies.
|
||||
#
|
||||
# However, the release dependencies DOES require a complete
|
||||
# install because the release.% syntax is illegal.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
TOP=.
|
||||
TOP = .
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
DIRS = configure
|
||||
DIRS += config
|
||||
DIRS += src
|
||||
DIRS += config configure src
|
||||
|
||||
include $(TOP)/configure/RULES_TOP
|
||||
|
||||
|
||||
@@ -178,7 +178,9 @@ EPICS_INCLUDES = -I$(INSTALL_INCLUDE)/os/$(OS_CLASS) -I$(INSTALL_INCLUDE)
|
||||
# (convenience for extensions and applications)
|
||||
ifneq ($(EPICS_BASE),$(TOP))
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS) -I$(EPICS_BASE_INCLUDE)
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE)
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE)/generic
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ endif
|
||||
# frc5ce
|
||||
# hkbaja47
|
||||
#
|
||||
CROSS_COMPILER_TARGET_ARCHS=mv167
|
||||
CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040
|
||||
|
||||
|
||||
# If only a subset of the host architectures perform
|
||||
|
||||
@@ -6,36 +6,5 @@ TOP=..
|
||||
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
INSTALL_CONFIG = $(INSTALL_LOCATION)/config
|
||||
|
||||
CONFIGS += CONFIG
|
||||
CONFIGS += CONFIG_BASE
|
||||
CONFIGS += CONFIG_BASE_VERSION
|
||||
CONFIGS += CONFIG_COMMON
|
||||
CONFIGS += CONFIG_ENV
|
||||
|
||||
CONFIGS += CONFIG.Host.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG_HOST_ARCH.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG.Host.UnixCommon
|
||||
CONFIGS += CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
CONFIGS += CONFIG.Vx
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG.Vx.*))
|
||||
#CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG.Vx.%)
|
||||
|
||||
CONFIGS += CONFIG_SITE
|
||||
CONFIGS += CONFIG_SITE_ENV
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG_SITE*))
|
||||
|
||||
CONFIGS += RULES.Host
|
||||
CONFIGS += RULES.Unix
|
||||
CONFIGS += RULES.Vx
|
||||
CONFIGS += RULES_ARCHS
|
||||
CONFIGS += RULES_DIRS
|
||||
CONFIGS += RULES_TOP
|
||||
|
||||
BIN_INSTALLS += $(wildcard ../tools/*.pl)
|
||||
BIN_INSTALLS += ../tools/installEpics
|
||||
|
||||
include $(TOP)/configure/RULES_BUILD
|
||||
include $(TOP)/configure/RULES_ARCHS
|
||||
|
||||
|
||||
41
config/Makefile.Host
Normal file
41
config/Makefile.Host
Normal file
@@ -0,0 +1,41 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
TOP=..
|
||||
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
INSTALL_CONFIG = $(INSTALL_LOCATION)/config
|
||||
|
||||
CONFIGS += CONFIG
|
||||
CONFIGS += CONFIG_BASE
|
||||
CONFIGS += CONFIG_BASE_VERSION
|
||||
CONFIGS += CONFIG_COMMON
|
||||
CONFIGS += CONFIG_ENV
|
||||
|
||||
CONFIGS += CONFIG.Host.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG_HOST_ARCH.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG.Host.UnixCommon
|
||||
CONFIGS += CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
CONFIGS += CONFIG.Vx
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG.Vx.*))
|
||||
#CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG.Vx.%)
|
||||
|
||||
CONFIGS += CONFIG_SITE
|
||||
CONFIGS += CONFIG_SITE_ENV
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG_SITE*))
|
||||
|
||||
CONFIGS += RULES.Host
|
||||
CONFIGS += RULES.Unix
|
||||
CONFIGS += RULES.Vx
|
||||
CONFIGS += RULES_ARCHS
|
||||
CONFIGS += RULES_DIRS
|
||||
CONFIGS += RULES_TOP
|
||||
|
||||
BIN_INSTALLS += $(wildcard ../tools/*.pl)
|
||||
BIN_INSTALLS += ../tools/installEpics
|
||||
|
||||
include $(TOP)/configure/RULES_BUILD
|
||||
|
||||
@@ -33,14 +33,6 @@ INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
|
||||
|
||||
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
|
||||
|
||||
# if we are not building base add base includes
|
||||
#
|
||||
ifneq ($(EPICS_BASE),$(TOP))
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE) -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)
|
||||
endif
|
||||
endif
|
||||
|
||||
all:: install
|
||||
|
||||
rebuild:: clean install
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Cross compiler default definitions
|
||||
|
||||
BUILD_TYPE = CROSS
|
||||
BUILD_CLASS = CROSS
|
||||
|
||||
ANSI = GCC
|
||||
CPLUSPLUS = G++
|
||||
|
||||
@@ -15,15 +15,20 @@ SNC = $(EPICS_BASE_HOST_BIN)/snc$(HOSTEXE)
|
||||
|
||||
EPICS_BASE_INCLUDE = $(EPICS_BASE)/include
|
||||
|
||||
# build command line include directories
|
||||
ifneq ($(EPICS_BASE),$(TOP))
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
INSTALL_INCLUDES += \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)MT\
|
||||
-I$(EPICS_BASE_INCLUDE)/os/posixMT \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)$(B_T_SUFFIX) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/posix$(B_T_SUFFIX) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/posix \
|
||||
-I$(EPICS_BASE_INCLUDE)/generic$(B_T_SUFFIX) \
|
||||
-I$(EPICS_BASE_INCLUDE)/generic \
|
||||
-I$(EPICS_BASE_INCLUDE)
|
||||
|
||||
INSTALL_DBDFLAGS += \
|
||||
-I$(EPICS_BASE)/dbd
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -6,8 +6,44 @@
|
||||
# This file is to be maintained by the community.
|
||||
#
|
||||
|
||||
BUILD_TYPE = HOST
|
||||
#-------------------------------------------------------
|
||||
# Default valid build types and include directory suffixes
|
||||
#
|
||||
# Host means single-thread non-ioc
|
||||
# HostMT means multi-thread non-ioc
|
||||
# Ioc means multi-thread ioc
|
||||
# IocST means single-thread ioc
|
||||
|
||||
VALID_BUILDS = Host Ioc HostMT IocST
|
||||
Host_SUFFIX=
|
||||
HostMT_SUFFIX=MT
|
||||
Ioc_SUFFIX=Ioc
|
||||
IocST_SUFFIX=IocST
|
||||
|
||||
B_T_SUFFIX = $($(B_T)_SUFFIX)
|
||||
|
||||
# vpath directories
|
||||
OS_SRC_DIRS += $(foreach dir,$(SRC_DIRS), \
|
||||
$(dir)/os/$(OS_CLASS)$(B_T_SUFFIX) $(dir)/os/posix$(B_T_SUFFIX) \
|
||||
$(dir)/os/$(OS_CLASS) $(dir)/os/posix \
|
||||
$(dir)/generic$(B_T_SUFFIX) $(dir)/generic $(dir))
|
||||
|
||||
OS_DIRS += ../os/$(OS_CLASS)$(B_T_SUFFIX) ../os/posix$(B_T_SUFFIX) \
|
||||
../os/$(OS_CLASS) ../os/posix \
|
||||
../generic$(B_T_SUFFIX) ../generic
|
||||
|
||||
# compile line include directories
|
||||
SRC_INCLUDES += $(addprefix -I,$(OS_SRC_DIRS) $(OS_DIRS))
|
||||
INSTALL_INCLUDES += \
|
||||
-I$(INSTALL_INCLUDE)/os/$(OS_CLASS)$(B_T_SUFFIX) \
|
||||
-I$(INSTALL_INCLUDE)/os/posix$(B_T_SUFFIX) \
|
||||
-I$(INSTALL_INCLUDE)/os/$(OS_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)/os/posix \
|
||||
-I$(INSTALL_INCLUDE)/generic$(B_T_SUFFIX) \
|
||||
-I$(INSTALL_INCLUDE)/generic \
|
||||
-I$(INSTALL_INCLUDE)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Common Configuration Information
|
||||
|
||||
# CROSS1 will be defined only when CROSS_COMPILER_HOST_ARCHS is NOT defined
|
||||
@@ -107,15 +143,15 @@ G++_SHRLIB_LDFLAGS_YES = -shared
|
||||
|
||||
#--------------------------------------------------
|
||||
# C compiler
|
||||
CC = $($(ANSI)_$(CMPLR)) $(GCC_CFLAGS_$(BUILD_TYPE))
|
||||
CC = $($(ANSI)_$(CMPLR)) $(GCC_CFLAGS_$(BUILD_CLASS))
|
||||
AR = $($(ANSI)_AR)
|
||||
CPP = $($(ANSI)_CPP) $(GCC_CPPFLAGS_$(BUILD_TYPE))
|
||||
CPP = $($(ANSI)_CPP) $(GCC_CPPFLAGS_$(BUILD_CLASS))
|
||||
RANLIB = $($(ANSI)_RANLIB)
|
||||
LD = $($(ANSI)_LD)
|
||||
|
||||
#--------------------------------------------------
|
||||
# C++ compiler
|
||||
CXX = $($(CPLUSPLUS)_$(CXXCMPLR)) $(GCC_CFLAGS_$(BUILD_TYPE))
|
||||
CXX = $($(CPLUSPLUS)_$(CXXCMPLR)) $(GCC_CFLAGS_$(BUILD_CLASS))
|
||||
CXX_LD = $($(CPLUSPLUS)_LD)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
@@ -176,13 +212,13 @@ INSTALL_DBDFLAGS = -I $(INSTALL_LOCATION)/dbd
|
||||
|
||||
#--------------------------------------------------
|
||||
# Warnings flags (CONFIG.<arch> will override)
|
||||
WARN_CFLAGS = $($(ANSI)_WARN_$($(BUILD_TYPE)_WARN))
|
||||
WARN_CXXFLAGS = $($(CPLUSPLUS)_WARN_$($(BUILD_TYPE)_WARN))
|
||||
WARN_CFLAGS = $($(ANSI)_WARN_$($(BUILD_CLASS)_WARN))
|
||||
WARN_CXXFLAGS = $($(CPLUSPLUS)_WARN_$($(BUILD_CLASS)_WARN))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Optimization flags (CONFIG.<arch> will override)
|
||||
OPT_CFLAGS = $($(ANSI)_OPT_$($(BUILD_TYPE)_OPT))
|
||||
OPT_CXXFLAGS = $($(CPLUSPLUS)_OPT_$($(BUILD_TYPE)_OPT))
|
||||
OPT_CFLAGS = $($(ANSI)_OPT_$($(BUILD_CLASS)_OPT))
|
||||
OPT_CXXFLAGS = $($(CPLUSPLUS)_OPT_$($(BUILD_CLASS)_OPT))
|
||||
OPT_LDFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
@@ -203,7 +239,7 @@ DEPENDS_RULE = -$(COMPILE.cc) $(DEPENDS_FLAG) $^ > DEPENDS
|
||||
#--------------------------------------------------
|
||||
# Include files
|
||||
|
||||
INCLUDES = -I. -I.. $(USR_INCLUDES) $(INSTALL_INCLUDES) $(TARGET_INCLUDES) $(OP_SYS_INCLUDES)
|
||||
INCLUDES = -I. -I.. $(USR_INCLUDES) $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(TARGET_INCLUDES) $(OP_SYS_INCLUDES)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Flags
|
||||
|
||||
@@ -43,7 +43,7 @@ endif
|
||||
#
|
||||
#CROSS_COMPILER_TARGET_ARCHS= vxWorks-68040
|
||||
CROSS_COMPILER_TARGET_ARCHS= mv167 ppc604
|
||||
|
||||
CROSS_COMPILER_TARGET_ARCHS= vxWorks-68040
|
||||
|
||||
# If only a subset of the host architectures perform
|
||||
# the build for the CROSS_COMPILER_TARGET_ARCHS
|
||||
@@ -95,18 +95,18 @@ SHARED_LIBRARIES=NO
|
||||
# must be either YES or NO
|
||||
STATIC_BUILD=NO
|
||||
|
||||
# Unix Optimization
|
||||
# Host build optimization
|
||||
# must be either YES or NO
|
||||
HOST_OPT=YES
|
||||
Host_OPT=YES
|
||||
|
||||
# VxWorks Optimization
|
||||
# IOC build optimization
|
||||
# must be either YES or NO
|
||||
CROSS_OPT=YES
|
||||
IOC_OPT=YES
|
||||
|
||||
# Generate Verbose Compiler Warnings for Unix
|
||||
# Generate Verbose Compiler Warnings for Host builds
|
||||
# must be either YES or NO
|
||||
HOST_WARN=YES
|
||||
Host_WARN=YES
|
||||
|
||||
# Generate Verbose Compiler Warnings for crosscompiles
|
||||
# Generate Verbose Compiler Warnings for IOC builds
|
||||
# must be either YES or NO
|
||||
CROSS_WARN=YES
|
||||
IOC_WARN=YES
|
||||
|
||||
@@ -6,27 +6,5 @@ TOP=..
|
||||
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
CONFIGS += CONFIG
|
||||
CONFIGS += CONFIG_BASE
|
||||
CONFIGS += CONFIG_BASE_VERSION
|
||||
CONFIGS += CONFIG_COMMON
|
||||
CONFIGS += CONFIG_ENV
|
||||
|
||||
CONFIGS += CONFIG.CrossCommon
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG.Host.*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG.Target.*))
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG_SITE*))
|
||||
|
||||
CONFIGS += RELEASE
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RELEASE.*))
|
||||
CONFIGS += RULES_ARCHS
|
||||
CONFIGS += RULES_BUILD
|
||||
CONFIGS += RULES_DIRS
|
||||
CONFIGS += RULES_TOP
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../tools/*.pl))
|
||||
CONFIGS += tools/installEpics
|
||||
|
||||
include $(TOP)/configure/RULES_BUILD
|
||||
include $(TOP)/configure/RULES_ARCHS
|
||||
|
||||
|
||||
176
configure/RULES.Db
Normal file
176
configure/RULES.Db
Normal file
@@ -0,0 +1,176 @@
|
||||
#RULES.Db
|
||||
|
||||
include $(CONFIG)/RULES_ARCHS
|
||||
ifdef T_A
|
||||
|
||||
MAKEBPT = $(EPICS_BASE_HOST_BIN)/makeBpt$(EXE)
|
||||
DBEXPAND = $(EPICS_BASE_HOST_BIN)/dbExpand$(EXE)
|
||||
DBST = dbst
|
||||
MAKEDBDEPENDS = $(PERL) $(TOP)/configure/makeDbDepends.pl
|
||||
REPLACEVAR = $(PERL) $(TOP)/configure/replaceVAR.pl
|
||||
ifndef WIN32
|
||||
TOUCH = touch
|
||||
else
|
||||
TOUCH = type NUL >>
|
||||
endif
|
||||
|
||||
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DATA=$(INSTALLDB:%=$(INSTALL_DB)/%)
|
||||
|
||||
all: install
|
||||
|
||||
inc: $(INSTALL_DBS)
|
||||
|
||||
rebuild: clean install
|
||||
|
||||
install: inc buildInstall
|
||||
|
||||
buildInstall: build $(INSTALL_BPTS) $(INSTALL_DATA)
|
||||
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) $(DB) $(DBDNAME) *.template *.substitutions *.db.raw \
|
||||
*.db-stamp *.edf esiread.cnf
|
||||
|
||||
depends:
|
||||
|
||||
##################################################### "Foreign" templates
|
||||
|
||||
TEMPLATE_LINKS = $(filter-out $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
|
||||
TEMPLATE_FILES = $(filter $(notdir $(USES_TEMPLATE)), $(USES_TEMPLATE))
|
||||
DB_STAMP = $(patsubst %.db, %.db-stamp, $(DB))
|
||||
DB_REALTARGET = $(patsubst %.db-stamp, %.db, $@)
|
||||
|
||||
ifneq '$(TEMPLATE_LINKS)' ''
|
||||
build: $(notdir $(TEMPLATE_LINKS))
|
||||
endif
|
||||
build: $(INSTALL_DBDNAME) $(TEMPLATE_FILES) $(DB_STAMP)
|
||||
|
||||
$(notdir $(TEMPLATE_LINKS)): %.template:
|
||||
ifndef WIN32
|
||||
@$(RM) $(notdir $(TEMPLATE_LINKS))
|
||||
ln -s $(TEMPLATE_LINKS) .
|
||||
else
|
||||
@$(RM) $(notdir $(TEMPLATE_LINKS))
|
||||
$(CP) $(TEMPLATE_LINKS) .
|
||||
endif
|
||||
|
||||
##################################################### Inflated or plain databases
|
||||
|
||||
$(INSTALL_DB)/%.db: %.db-stamp
|
||||
@echo "Installing database $@"
|
||||
@$(INSTALL) -d -m 644 $(patsubst %.db-stamp, %.db, $<) $(@D)
|
||||
|
||||
# Must have DBDNAME defined to use dbst optimization
|
||||
ifndef DBDNAME
|
||||
DB_OPT = NO
|
||||
endif
|
||||
|
||||
# dbst based database optimization
|
||||
ifeq '$(DB_OPT)' 'YES'
|
||||
.PRECIOUS: %.db.raw
|
||||
%.db-stamp: %.db.raw $(INSTALL_DBD)/$(DBDNAME)
|
||||
@echo "Optimizing database $@"
|
||||
$(DBST) $(INSTALL_DBD)/$(DBDNAME) $< -d > $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
%.db-stamp: %.t.db.raw $(INSTALL_DBD)/$(DBDNAME)
|
||||
@echo "Optimizing database $@"
|
||||
$(DBST) $(INSTALL_DBD)/$(DBDNAME) $< -d > $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
else
|
||||
# NO optimization => move it and keep a stamp
|
||||
%.db-stamp: %.db.raw
|
||||
@$(MV) $< $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
@$(TOUCH) $<
|
||||
%.db-stamp: %.t.db.raw
|
||||
@$(MV) $< $(DB_REALTARGET)
|
||||
@$(TOUCH) $@
|
||||
@$(TOUCH) $<
|
||||
endif
|
||||
|
||||
%.t.db.raw: %.substitutions
|
||||
@echo "Inflating database from $<"
|
||||
@$(RM) $@
|
||||
@$(MSI) -S $< > $@
|
||||
|
||||
##################################################### CapFast filter
|
||||
|
||||
%.edf: ../%.sch $(DEPSCHS)
|
||||
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
|
||||
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
|
||||
|
||||
##################################################### Substitution files
|
||||
|
||||
$(INSTALL_DB)/%.substitutions: %.substitutions
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $(@F) $(@D)
|
||||
|
||||
%.substitutions: ../%.substitutions
|
||||
@$(CP) $< $@
|
||||
|
||||
ifdef CREATESUBSTITUTIONS
|
||||
%.substitutions:
|
||||
@$(CREATESUBSTITUTIONS) $*
|
||||
endif
|
||||
|
||||
# Better make it PRECIOUS (to get around make bug)
|
||||
.PRECIOUS: %.substitutions
|
||||
|
||||
##################################################### Template databases
|
||||
|
||||
# Installed template files (dbLoadTemplate() on IOC side)
|
||||
$(INSTALL_DB)/%.template: %.template
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $(@F) $(@D)
|
||||
|
||||
%.template: ../%.template
|
||||
@$(CP) $< $@
|
||||
|
||||
%.template: %.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
|
||||
@$(REPLACEVAR) < $@.VAR > $@
|
||||
@$(RM) $@.VAR
|
||||
|
||||
##################################################### Flat databases
|
||||
|
||||
%.db.raw: ../%.db
|
||||
$(CP) $< $@
|
||||
|
||||
%.db.raw: %.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
|
||||
@$(REPLACEVAR) < $@.VAR > $@
|
||||
@$(RM) $@.VAR
|
||||
|
||||
##################################################### DBD stuff
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
bpt%.dbd: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(MAKEBPT) $<
|
||||
|
||||
ifdef DBDEXPAND
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo "Expanding dbd"
|
||||
@$(RM) $@
|
||||
$(DBEXPAND) $(USR_DBDFLAGS) $< > $@
|
||||
endif
|
||||
|
||||
##################################################### Dependencies
|
||||
|
||||
DEPENDS: $(filter $(patsubst %.db, %.substitutions, $(DB)), $(wildcard *.substitutions))
|
||||
@echo "Making template database dependencies"
|
||||
@$(MAKEDBDEPENDS) $^
|
||||
|
||||
-include DEPENDS
|
||||
|
||||
endif
|
||||
@@ -3,8 +3,11 @@
|
||||
#
|
||||
|
||||
ifndef T_A
|
||||
|
||||
all: install
|
||||
|
||||
rebuild: clean all
|
||||
|
||||
ACTIONS += inc
|
||||
ACTIONS += build
|
||||
ACTIONS += install
|
||||
@@ -15,78 +18,34 @@ ACTIONS += rebuild
|
||||
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
|
||||
#
|
||||
# hostActionArchTargets
|
||||
#
|
||||
hostArchs = $(HOST_ARCH)
|
||||
hostActionArchTargets = $(foreach x, $(ACTIONS),\
|
||||
$(foreach arch,$(hostArchs), $(x)$(DIVIDER)$(arch)))
|
||||
ifeq (Makefile, $(wildcard Makefile))
|
||||
hostDirs = $(addprefix O.,$(hostArchs))
|
||||
$(hostActionArchTargets) : $(hostDirs)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile TOP=../$(TOP) T_A=$(archPart) $(actionPart)
|
||||
$(hostArchs) : % : O.%
|
||||
$(MAKE) -C O.$@ -f ../Makefile TOP=../$(TOP) T_A=$@
|
||||
else
|
||||
$(hostActionArchTargets) :
|
||||
$(hostArchs) :
|
||||
endif
|
||||
|
||||
#
|
||||
# crossActionArchTargets
|
||||
#
|
||||
crossArchs = $(filter-out $(hostArchs),$(BUILD_ARCHS))
|
||||
crossActionArchTargets = $(foreach x, $(ACTIONS), \
|
||||
$(foreach arch, $(CROSS_COMPILER_TARGET_ARCHS), $(x)$(DIVIDER)$(arch)))
|
||||
ifeq (Makefile, $(wildcard Makefile))
|
||||
crossDirs = $(addprefix O.,$(crossArchs))
|
||||
$(crossActionArchTargets) : $(crossDirs)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile TOP=../$(TOP) T_A=$(archPart) $(actionPart)
|
||||
$(crossArchs) : % : O.%
|
||||
$(MAKE) -C O.$@ -f ../Makefile TOP=../$(TOP) T_A=$@
|
||||
else
|
||||
$(crossActionArchTargets) :
|
||||
$(crossArchs) :
|
||||
endif
|
||||
|
||||
$(hostDirs) :
|
||||
$(PERL) $(TOOLS)/makeMakefile.pl $@ $(TOP)
|
||||
|
||||
$(crossDirs) :
|
||||
$(PERL) $(TOOLS)/makeMakefile.pl $@ $(TOP)
|
||||
|
||||
#
|
||||
# host/cross action targets
|
||||
#
|
||||
$(ACTIONS) : % : %$(DIVIDER)host %$(DIVIDER)cross
|
||||
HostActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)host)
|
||||
CrossActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)cross)
|
||||
$(HostActionTargets) : %$(DIVIDER)host : $(addprefix %$(DIVIDER), $(hostArchs))
|
||||
$(CrossActionTargets) : %$(DIVIDER)cross : $(addprefix %$(DIVIDER), $(crossArchs))
|
||||
actionArchTargets = $(foreach x, $(ACTIONS),\
|
||||
$(foreach arch,$(BUILD_ARCHS), $(x)$(DIVIDER)$(arch)))
|
||||
|
||||
|
||||
% : %$(DIVIDER)host %$(DIVIDER)cross
|
||||
$(actionArchTargets) :
|
||||
$(MAKE) -f Makefile T_A=$(archPart) $(actionPart)
|
||||
|
||||
#
|
||||
# arch targets
|
||||
#
|
||||
host : $(hostArchs)
|
||||
cross : $(crossArchs)
|
||||
$(BUILD_ARCHS) : % :
|
||||
$(MAKE) -f Makefile T_A=$@
|
||||
|
||||
$(ACTIONS):%: $(foreach arch, $(BUILD_ARCHS), %$(DIVIDER)$(arch))
|
||||
|
||||
#
|
||||
# special clean rule
|
||||
#
|
||||
clean ::
|
||||
$(RMDIR) $(hostDirs) $(crossDirs)
|
||||
$(RMDIR) $(addsuffix *,$(addprefix O.,$(BUILD_ARCHS)))
|
||||
|
||||
clean$(DIVIDER)% ::
|
||||
$(RMDIR) O.$*
|
||||
$(RMDIR) O.$**
|
||||
|
||||
.PHONY : $(HostActionTargets)
|
||||
.PHONY : $(CrossActionTargets)
|
||||
.PHONY : $(crossActionArchTargets)
|
||||
.PHONY : $(hostActionArchTargets)
|
||||
.PHONY : $(hostArchs) $(crossArchs)
|
||||
.PHONY : $(ACTIONS) clean all host cross
|
||||
.PHONY : $(buildActionTargets)
|
||||
.PHONY : $(buildActionArchTargets)
|
||||
.PHONY : $(buildArchs)
|
||||
.PHONY : $(ACTIONS) clean all
|
||||
|
||||
else #T_A
|
||||
ifndef B_T
|
||||
include $(CONFIG)/RULES_BUILD_TYPE
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -28,64 +28,25 @@
|
||||
# vpath, of course, has the disadvantage that we need explicit rules
|
||||
# for scripts or similar os-specific filed which have _no_ suffix...
|
||||
|
||||
include $(CONFIG)/RULES_ARCHS
|
||||
|
||||
ifdef T_A
|
||||
BUILD=YES
|
||||
ifneq ($(THREAD_TYPE),)
|
||||
ifneq ($(OS_THREAD_TYPE),)
|
||||
ifneq ($(THREAD_TYPE),$(findstring $(THREAD_TYPE),$(OS_THREAD_TYPE)))
|
||||
BUILD=NO
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq ($(BUILD),YES)
|
||||
|
||||
ifneq ($(THREAD_TYPE),ST)
|
||||
OS_SRC_DIRS += $(foreach dir,$(SRC_DIRS), \
|
||||
$(dir)/os/$(OS_CLASS)MT $(dir)/os/posixMT \
|
||||
$(dir)/os/$(OS_CLASS) $(dir)/os/posix \
|
||||
$(dir)/generic $(dir)) . ..
|
||||
INSTALL_INCLUDES += $(foreach dir,$(SRC_DIRS) $(INSTALL_INCLUDE), \
|
||||
-I$(dir)/os/$(OS_CLASS)MT -I$(dir)/os/posixMT \
|
||||
-I$(dir)/os/$(OS_CLASS) -I$(dir)/os/posix \
|
||||
-I$(dir)/generic -I$(dir))
|
||||
|
||||
INSTALL_INC += $(subst generic/,,$(foreach inc,$(INC), \
|
||||
$(firstword $(foreach dir,$(SRC_DIRS) .., \
|
||||
$(subst $(dir),$(INSTALL_INCLUDE),$(firstword $(wildcard \
|
||||
$(dir)/os/$(OS_CLASS)MT/$(inc) \
|
||||
$(dir)/os/posixMT/$(inc) \
|
||||
$(dir)/os/$(OS_CLASS)/$(inc) \
|
||||
$(dir)/os/posix/$(inc)\
|
||||
$(dir)/generic/$(inc) \
|
||||
$(dir)/$(inc) \
|
||||
../$(inc) \
|
||||
)))) $(INSTALL_INCLUDE)/$(inc))))
|
||||
ifdef B_T
|
||||
|
||||
ifneq ($(strip $(SRC_DIRS)),)
|
||||
vpath %.c $(USER_VPATH) . .. $(OS_SRC_DIRS)
|
||||
vpath %.cc $(USER_VPATH) . .. $(OS_SRC_DIRS)
|
||||
vpath %.C $(USER_VPATH) . .. $(OS_SRC_DIRS)
|
||||
vpath %.rc $(USER_VPATH) . .. $(OS_SRC_DIRS)
|
||||
vpath %.h $(USER_VPATH) . .. $(OS_SRC_DIRS)
|
||||
else
|
||||
OS_SRC_DIRS += $(foreach dir,$(SRC_DIRS), \
|
||||
$(dir)/os/$(OS_CLASS) $(dir)/os/posix $(dir)/generic $(dir)) . ..
|
||||
INSTALL_INCLUDES += $(foreach dir,$(SRC_DIRS) $(INSTALL_INCLUDE), \
|
||||
-I$(dir)/os/$(OS_CLASS) -I$(dir)/os/posix -I$(dir)/generic -I$(dir))
|
||||
INSTALL_INC += $(subst generic/,,$(foreach inc,$(INC), \
|
||||
$(firstword $(foreach dir,$(SRC_DIRS) .., \
|
||||
$(subst $(dir),$(INSTALL_INCLUDE),$(firstword $(wildcard \
|
||||
$(dir)/os/$(OS_CLASS)/$(inc) \
|
||||
$(dir)/os/posix/$(inc)\
|
||||
$(dir)/generic/$(inc) \
|
||||
$(dir)/$(inc) \
|
||||
../$(inc) \
|
||||
)))) $(INSTALL_INCLUDE)/$(inc))))
|
||||
|
||||
vpath %.c $(USER_VPATH) . .. $(OS_DIRS)
|
||||
vpath %.cc $(USER_VPATH) . .. $(OS_DIRS)
|
||||
vpath %.C $(USER_VPATH) . .. $(OS_DIRS)
|
||||
vpath %.rc $(USER_VPATH) . .. $(OS_DIRS)
|
||||
vpath %.h $(USER_VPATH) . ..
|
||||
endif
|
||||
|
||||
vpath %.c $(USER_VPATH) $(OS_SRC_DIRS) ../os/$(OS_CLASS) ../os/generic ..
|
||||
vpath %.cc $(USER_VPATH) $(OS_SRC_DIRS) ../os/$(OS_CLASS) ../os/generic ..
|
||||
vpath %.C $(USER_VPATH) $(OS_SRC_DIRS) ../os/$(OS_CLASS) ../os/generic ..
|
||||
vpath %.rc $(USER_VPATH) $(OS_SRC_DIRS) ../os/$(OS_CLASS) ../os/generic ..
|
||||
# This prevents base/src/include/*.h from being installed. Why??
|
||||
#vpath %.h ../os/$(OS_CLASS) ../os/generic ..
|
||||
vpath %.h $(USER_VPATH) $(OS_SRC_DIRS) .. .
|
||||
#vpath %.h ../os/$(OS_CLASS)
|
||||
|
||||
# check for add-on CFLAGS and CXXFLAGS
|
||||
#
|
||||
@@ -193,19 +154,12 @@ endif
|
||||
ifneq ($(strip $(LIBRARY_$(OS_CLASS))),)
|
||||
LIBRARY+=$(subst -nil-,,$(LIBRARY_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIBRARY_DEFAULT
|
||||
ifneq (,$(LIBRARY_DEFAULT))
|
||||
#ifdef LIBRARY_DEFAULT
|
||||
LIBRARY+=$(LIBRARY_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SHARED_LIBRARIES_$(OS_CLASS))),)
|
||||
SHARED_LIBRARIES+=$(subst -nil-,,$(SHARED_LIBRARIES_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SHARED_LIBRARIES_DEFAULT
|
||||
SHARED_LIBRARIES_+=$(SHARED_LIBRARIES_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_LIBS_$(OS_CLASS))),)
|
||||
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
@@ -244,6 +198,14 @@ PROD += $(PROD_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PRODMT_$(OS_CLASS))),)
|
||||
PRODMT += $(subst -nil-,,$(PRODMT_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PRODMT_DEFAULT
|
||||
PRODMT += $(PRODMT_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific scripts
|
||||
#
|
||||
@@ -267,33 +229,31 @@ endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
## LIBSRCS and LIBOBJS for LIBRARY
|
||||
|
||||
LIBSRCS += $($(addsuffix _SRCS,$(LIBRARY)))
|
||||
|
||||
###### The following stmt does not work #########
|
||||
ifneq ($($(addsuffix _SRCS_$(OS_CLASS),$(LIBRARY))),)
|
||||
XXX=aaa
|
||||
ifneq ($(foreach lib,$(LIBRARY),$($(lib)_SRCS_$(OS_CLASS))),)
|
||||
LIBSRCS += $(subst -nil-,,$($(addsuffix _SRCS_$(OS_CLASS),$(LIBRARY))))
|
||||
else
|
||||
XXX=bbb
|
||||
LIBSRCS+=$($(addsuffix _SRCS_DEFAULT,$(LIBRARY)))
|
||||
LIBSRCS += $($(addsuffix _SRCS_DEFAULT,$(LIBRARY)))
|
||||
endif
|
||||
|
||||
# adjust object names for library contents
|
||||
#
|
||||
ifdef LIBSRCS
|
||||
LIBOBJS+=$(addsuffix $(OBJ), $(basename $(LIBSRCS)))
|
||||
LIBOBJS += $(addsuffix $(OBJ), $(basename $(LIBSRCS)))
|
||||
endif
|
||||
|
||||
# adjust executables
|
||||
ifdef TESTPROD
|
||||
TESTPROD := $(addsuffix $(EXE), $(TESTPROD))
|
||||
endif
|
||||
|
||||
# adjust executables
|
||||
ifdef PROD
|
||||
PROD := $(addsuffix $(EXE), $(PROD))
|
||||
endif
|
||||
#---------------------------------------------------------------
|
||||
PROD := $(addsuffix $(EXE),$(PROD))
|
||||
TESTPROD := $(addsuffix $(EXE),$(TESTPROD))
|
||||
TARGETS := $(addsuffix $(EXE),$(TARGETS))
|
||||
|
||||
LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS)
|
||||
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
||||
LIBTARGETS += $(SHRLIBNAME) $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS)
|
||||
endif # SHARED_LIBRARIES=YES
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# ----------------------------------------------------
|
||||
@@ -312,6 +272,7 @@ INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
|
||||
INSTALL_DLL_LINK_LIBS=$(DLL_LINK_LIBNAME:%=$(INSTALL_LIB)/%)
|
||||
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
|
||||
|
||||
INSTALL_INCREC = $(INCREC:%= $(INSTALL_INCLUDE)/%)
|
||||
MANLIST = 1 2 3 4 5 6 7 8 9
|
||||
@@ -319,7 +280,6 @@ INSTALL_MANS = $(foreach n, \
|
||||
$(MANLIST), $(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
|
||||
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
|
||||
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
|
||||
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
|
||||
ifdef TEMPLATES_DIR
|
||||
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
else
|
||||
@@ -336,9 +296,36 @@ INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)\
|
||||
|
||||
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
|
||||
|
||||
INSTALL_INC += $(foreach inc,$(INC), \
|
||||
$(addprefix $(INSTALL_INCLUDE)/, \
|
||||
$(firstword \
|
||||
$(foreach dir,$(SRC_DIRS), \
|
||||
$(subst $(dir)/, , \
|
||||
$(wildcard \
|
||||
$(dir)/os/$(OS_CLASS)$(B_T_SUFFIX)/$(inc) \
|
||||
$(dir)/os/posix$(B_T_SUFFIX)/$(inc) \
|
||||
$(dir)/os/$(OS_CLASS)/$(inc) \
|
||||
$(dir)/os/posix/$(inc) \
|
||||
$(dir)/generic$(B_T_SUFFIX)/$(inc) \
|
||||
$(dir)/generic/$(inc) \
|
||||
$(dir)/$(inc) \
|
||||
))) $(subst ../, ,$(wildcard ../$(inc) ../os/$(OS_CLASS)/$(inc))) $(inc)) ))
|
||||
|
||||
#INSTALL_INC += $(subst generic/,,$(foreach inc,$(INC), \
|
||||
# $(firstword $(foreach dir,$(SRC_DIRS) .., \
|
||||
# $(addprefix $(INSTALL_INCLUDE)/, \
|
||||
# $(subst $(dir)/, ,$(firstword $(wildcard \
|
||||
# $(dir)/os/$(OS_CLASS)$(B_T_SUFFIX)/$(inc) \
|
||||
# $(dir)/os/posix$(B_T_SUFFIX)/$(inc) \
|
||||
# $(dir)/os/$(OS_CLASS)/$(inc) \
|
||||
# $(dir)/os/posix/$(inc) \
|
||||
# $(dir)/generic$(B_T_SUFFIX)/$(inc) \
|
||||
# $(dir)/generic/$(inc) \
|
||||
# $(dir)/$(inc) \
|
||||
# ../$(inc) ) $(inc) ))) ))))
|
||||
|
||||
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
|
||||
#---------------------------------------------------------------
|
||||
#---------------------------------------------------------------
|
||||
# must use c++ linker if linking to shared libs with c++ code
|
||||
#ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
||||
ifneq ($(strip $(CPLUSPLUS)),)
|
||||
@@ -353,9 +340,19 @@ endif # CPLUSPLUS
|
||||
# in this library (may be for e.g. base/src/libCompat
|
||||
# on some archs), don't define (and build) any library!
|
||||
|
||||
# LIBRARY
|
||||
|
||||
ifdef LIBRARY
|
||||
CFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
||||
CXXFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
||||
SHRLIB_LINKER = $(CXX)
|
||||
LIB_SRCS=$(LIBRARY_SRCS) $($(basename $(LIBRARY))_SRCS)
|
||||
LIBRARY_OBJS+=$(addsuffix $(OBJ), $(basename $(LIB_SRCS)))
|
||||
endif # LIBRARY
|
||||
|
||||
|
||||
ifdef LIBNAME
|
||||
ifdef LIBOBJS
|
||||
LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS)
|
||||
CFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
||||
CXXFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
||||
|
||||
@@ -368,48 +365,38 @@ SHRLIB_LINKER = $(CXX)
|
||||
else
|
||||
SHRLIB_LINKER = $(CC)
|
||||
endif
|
||||
LIBTARGETS += $(SHRLIBNAME) $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS)
|
||||
|
||||
endif # SHARED_LIBRARIES=YES
|
||||
|
||||
endif # LIBOBJS
|
||||
endif # LIBRARY
|
||||
endif # LIBNAME
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Main targets
|
||||
|
||||
all: install
|
||||
|
||||
install: buildInstall
|
||||
|
||||
buildInstall : build
|
||||
|
||||
build : inc
|
||||
|
||||
build: $(LIBTARGETS) $(PROD) $(TESTPROD)
|
||||
rebuild: clean install
|
||||
|
||||
buildInstall : $(TARGETS) \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
|
||||
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX)
|
||||
inc: $(INSTALL_INC)
|
||||
|
||||
build: $(MENUS) $(RECTYPES) $(BPTS)
|
||||
build: $(LIBTARGETS) $(PROD) $(TESTPROD) $(TARGETS) \
|
||||
$(MENUS) $(RECTYPES) $(BPTS)
|
||||
|
||||
ifdef DBDEXPAND
|
||||
build: $(DBDNAME)
|
||||
endif
|
||||
|
||||
inc: $(INSTALL_INC)
|
||||
|
||||
# WIN95/NT source browser
|
||||
#ifdef BAF
|
||||
PROD_BAF = $(addsuffix $(BAF), $(basename $(PROD)))
|
||||
LIB_BAF = $(addsuffix $(BAF), $(basename $(LIBRARY)))
|
||||
browse: $(LIB_BAF) $(PROD_BAF)
|
||||
#endif
|
||||
|
||||
rebuild: clean install
|
||||
|
||||
install: inc buildInstall
|
||||
|
||||
buildInstall : $(INSTALL_MANS) \
|
||||
buildInstall : \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
|
||||
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) \
|
||||
$(INSTALL_MANS) \
|
||||
$(INSTALL_DOCS) \
|
||||
$(INSTALL_HTMLS) \
|
||||
$(INSTALL_TEMPLATE) \
|
||||
@@ -424,8 +411,8 @@ endif
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) *.i *$(OBJ) *.a $(PROD) $(TESTPROD) $(LIBNAME) $(SHRLIBNAME) \
|
||||
$(INC) *$(RES) $(TARGETS) \
|
||||
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME) *.out
|
||||
$(INC) *$(RES) $(TARGETS) $(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) \
|
||||
$(DBDNAME) *.out
|
||||
ifdef BAF
|
||||
@$(RM) $(PROD_BAF) $(LIB_BAF) *$(BOF)
|
||||
endif
|
||||
@@ -433,6 +420,22 @@ ifdef DBDEXPAND
|
||||
@$(RM) $(DBDNAME)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
# WIN95/NT source browser
|
||||
#ifdef BAF
|
||||
PROD_BAF = $(addsuffix $(BAF), $(basename $(PROD)))
|
||||
LIB_BAF = $(addsuffix $(BAF), $(basename $(LIBRARY)))
|
||||
browse: $(LIB_BAF) $(PROD_BAF)
|
||||
#endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
DIRECTORY_TARGETS += $(INSTALL_DBD) $(INSTALL_INCLUDE)
|
||||
|
||||
$(DIRECTORY_TARGETS) :
|
||||
$(MKDIR) -p $@
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Products
|
||||
#
|
||||
@@ -480,11 +483,11 @@ $(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS)
|
||||
@$(RM) $@
|
||||
$(PRODNAME_LINKER) $(PRODNAME_OBJS) $(PRODNAME_RESS) $(LDLIBS)
|
||||
|
||||
else # ifdef PRODNAME_SRCS
|
||||
else # PRODNAME_SRCS notdefined
|
||||
|
||||
BROWSE_OBJECTS = $(addsuffix $(BOF), $(basename $(PRODNAME)))
|
||||
|
||||
endif # ifdef PRODNAME_SRCS
|
||||
endif # PRODNAME_SRCS notdefined
|
||||
|
||||
# WIN95/NT source browser
|
||||
ifdef BAF
|
||||
@@ -494,7 +497,7 @@ $(addsuffix $(BAF), $(basename $(PRODNAME))): $(BROWSE_OBJECTS)
|
||||
$(BAFCMD) $^
|
||||
endif
|
||||
|
||||
else # PRODNAME not defined
|
||||
else # PRODNAME notdefined
|
||||
|
||||
# We have to use the product's true dependancies and
|
||||
# call make again to determine if product should be rebuilt
|
||||
@@ -504,7 +507,7 @@ PROD_OBJS=$(addsuffix $(OBJ), $(basename $(SRCS) $(COND_PROD_SRCS)))
|
||||
|
||||
PROD_RESS=$(addsuffix $(RES), $(basename $(RCS) $(COND_PROD_RCS)))
|
||||
|
||||
PROD_MAKE_COMMAND=$(MAKE) -f ../Makefile $@\
|
||||
PROD_MAKE_COMMAND=$(MAKE) -f ../Makefile.$(B_T) T_A=$(T_A) B_T=$(B_T) $@\
|
||||
PRODNAME=$(addsuffix $(EXE), $(basename $@))\
|
||||
PRODNAME_SRCS="$(SRCS) $($(basename $@)_SRCS)"\
|
||||
PRODNAME_SRCS_DEFAULT="$($(basename $@)_SRCS_DEFAULT)"\
|
||||
@@ -515,6 +518,9 @@ PROD_MAKE_COMMAND=$(MAKE) -f ../Makefile $@\
|
||||
PRODNAME_LIBS="$($(basename $@)_LIBS)"
|
||||
|
||||
$(PROD): $(SRCS) $(COND_PROD_SRCS) $(PROD_RESS) $(PROD_DEPLIBS) $(COND_PROD_DEPLIBS)
|
||||
|
||||
|
||||
$(PROD):
|
||||
@$(PROD_MAKE_COMMAND)
|
||||
|
||||
ifdef BAF
|
||||
@@ -523,9 +529,8 @@ $(PROD_BAF): $(PROD)
|
||||
endif
|
||||
|
||||
endif
|
||||
endif #ifdef PRODNAME
|
||||
|
||||
endif #ifdef PROD
|
||||
endif # PRODNAME notdefined
|
||||
endif # PROD defined
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Java classes and packages
|
||||
@@ -599,7 +604,7 @@ endif #ifdef JAVA
|
||||
# The order of the following rules is
|
||||
# VERY IMPORTANT !!!!
|
||||
|
||||
depends: $(LIBSRCS) $(SRCS) $(COND_PROD_SRCS)
|
||||
depends: $(LIBSRCS) $(LIBSRCS) $(SRCS) $(COND_PROD_SRCS)
|
||||
$(RM) DEPENDS
|
||||
touch DEPENDS
|
||||
$(DEPENDS_RULE)
|
||||
@@ -614,7 +619,7 @@ depends: $(LIBSRCS) $(SRCS) $(COND_PROD_SRCS)
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(notdir $(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
%$(EXE): %.C
|
||||
%$(EXE): %.3
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(notdir ,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
@@ -713,8 +718,8 @@ endif
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
echo "Installing $@"
|
||||
$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@@ -741,11 +746,11 @@ menu%.h: ../menu%.dbd
|
||||
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
|
||||
@@ -762,19 +767,9 @@ $(LIB_BAF): $(addsuffix $(BOF), $(basename $(LIBSRCS)))
|
||||
endif
|
||||
|
||||
ifneq (,$(wildcard ../baseLIBOBJS))
|
||||
$(LIBNAME_vxWorks): ../baseLIBOBJS
|
||||
$(LIBNAME): ../baseLIBOBJS
|
||||
endif
|
||||
|
||||
$(LIBNAME_vxWorks): $(LIBOBJS)
|
||||
$(RM) $@
|
||||
$(ARCMD) $(LIBOBJS)
|
||||
ifneq ($(RANLIB)xx,xx)
|
||||
$(RANLIB) $@;
|
||||
endif # RANLIB
|
||||
|
||||
$(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS)
|
||||
$(LINK.shrlib) $(LIBOBJS) $(DLL_LDLIBS)
|
||||
|
||||
# rule for lib (archive of object files) creation
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
$(RM) $@
|
||||
@@ -783,6 +778,9 @@ ifneq ($(RANLIB)xx,xx)
|
||||
$(RANLIB) $@;
|
||||
endif # RANLIB
|
||||
|
||||
$(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS)
|
||||
$(LINK.shrlib) $(LIBOBJS) $(DLL_LDLIBS)
|
||||
|
||||
binInstalls: $(BIN_INSTALLS)
|
||||
@echo "Installing $(^F)"
|
||||
@$(INSTALL) -d -m 555 $^ $(INSTALL_BIN)
|
||||
@@ -897,18 +895,8 @@ else
|
||||
$(DBDNAME): $(RECTYPES:%.h=../%.dbd)
|
||||
endif
|
||||
|
||||
else
|
||||
endif # B_T defined
|
||||
endif # T_A defined
|
||||
|
||||
all:
|
||||
buildInstall :
|
||||
build :
|
||||
inc:
|
||||
rebuild:
|
||||
install:
|
||||
clean::
|
||||
depends:
|
||||
|
||||
endif #BUILD
|
||||
endif #T_A
|
||||
# EOF RULES.Host
|
||||
|
||||
|
||||
@@ -4,23 +4,23 @@
|
||||
|
||||
|
||||
ARCHS += $(BUILD_ARCHS) host cross
|
||||
ACTIONS += clean depends buildInstall
|
||||
ACTIONS += inc build install buildInstall depends clean
|
||||
|
||||
dirPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
actionArchPart = $(join $(word 2, $(subst $(DIVIDER), ,$@)), \
|
||||
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$@))))
|
||||
|
||||
dirActionArchTargets = $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS) install,\
|
||||
$(foreach action, $(ACTIONS),\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(dir)$(DIVIDER)$(action)$(DIVIDER)$(arch))))
|
||||
dirArchTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach arch, $(ARCHS),\
|
||||
$(dir)$(DIVIDER)$(arch)))
|
||||
dirActionTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS) install,\
|
||||
$(foreach action, $(ACTIONS),\
|
||||
$(dir)$(DIVIDER)$(action)))
|
||||
actionArchTargets = $(foreach action, $(ACTIONS) install,\
|
||||
actionArchTargets = $(foreach action, $(ACTIONS),\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
|
||||
@@ -28,7 +28,7 @@ installArchTargets = $(foreach action, install,\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
|
||||
all install : buildInstall
|
||||
all: install
|
||||
|
||||
rebuild : clean all
|
||||
|
||||
|
||||
@@ -5,30 +5,23 @@
|
||||
# called from RULES_ARCHS
|
||||
#
|
||||
#
|
||||
# Usage: perl makeMakefile.pl O.*-dir top
|
||||
# Usage: perl makeMakefile.pl O.*-dir b_t top
|
||||
|
||||
$dir = $ARGV[0];
|
||||
$top= $ARGV[1];
|
||||
$t_a= $ARGV[1];
|
||||
$top= $ARGV[2];
|
||||
$b_t = $ARGV[3];
|
||||
$makefile="$dir/Makefile";
|
||||
|
||||
if ($dir =~ m'O.(.+)')
|
||||
{
|
||||
$t_a = $1;
|
||||
}
|
||||
else
|
||||
{
|
||||
die "Cannot extract T_A from $dir";
|
||||
}
|
||||
|
||||
mkdir ($dir, 0777) unless -d $dir;
|
||||
|
||||
open OUT, "> $makefile" or die "Cannot create $makefile";
|
||||
|
||||
print OUT "#This Makefile created by makeMakefiles.pl\n\n\n";
|
||||
print OUT "all :\n";
|
||||
print OUT " \$(MAKE) -f ../Makefile TOP=../$top T_A=$t_a \$@\n\n";
|
||||
print OUT " \$(MAKE) -f ../Makefile.$b_t TOP=../$top T_A=$t_a B_T=$b_t \$@\n\n";
|
||||
print OUT ".DEFAULT: force\n";
|
||||
print OUT " \$(MAKE) -f ../Makefile TOP=../$top T_A=$t_a \$@\n\n";
|
||||
print OUT " \$(MAKE) -f ../Makefile.$b_t TOP=../$top T_A=$t_a B_T=$b_t \$@\n\n";
|
||||
print OUT "force: ;\n";
|
||||
|
||||
close OUT;
|
||||
|
||||
11
src/Makefile
11
src/Makefile
@@ -21,20 +21,15 @@ DIRS += bpt
|
||||
DIRS += ca
|
||||
DIRS += util
|
||||
DIRS += misc
|
||||
DIRS += sequencer
|
||||
DIRS += dbtools
|
||||
DIRS += rsrv
|
||||
DIRS += rec
|
||||
DIRS += as
|
||||
DIRS += dev
|
||||
#FOR NOW JUST BUILD vxWorks dependent stuff
|
||||
#Following are optional
|
||||
DIRS += vxWorks
|
||||
|
||||
#
|
||||
# if CPLUSPLUS isnt empty then include C++ src codes
|
||||
#
|
||||
DIRS += $(patsubst %,gdd,$(strip $(CPLUSPLUS)))
|
||||
DIRS += $(patsubst %,cas,$(strip $(CPLUSPLUS)))
|
||||
#DIRS += gdd
|
||||
#DIRS += cas
|
||||
|
||||
include $(TOP)/configure/RULES_DIRS
|
||||
|
||||
|
||||
@@ -3,10 +3,5 @@ TOP=../../..
|
||||
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
osiTimeTest_LIBS += Com
|
||||
osiTimeTest_SRCS += osiTimeTest.cc
|
||||
PROD_DEFAULT = osiTimeTest
|
||||
PROD_vxWorks = -nil-
|
||||
|
||||
include $(TOP)/configure/RULES_BUILD
|
||||
include $(TOP)/configure/RULES_ARCHS
|
||||
|
||||
|
||||
11
src/libCom/test/Makefile.Host
Normal file
11
src/libCom/test/Makefile.Host
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
TOP=../../..
|
||||
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
osiTimeTest_LIBS += Com
|
||||
osiTimeTest_SRCS += osiTimeTest.cc
|
||||
PROD= osiTimeTest
|
||||
|
||||
include $(TOP)/configure/RULES_BUILD
|
||||
|
||||
Reference in New Issue
Block a user