Various build system issues
* Removed broken Windows source browser rules and 'browse' targets * Fixed parallel build issue for Make > 3.81 * Other tidying-up in RULES_ARCHS * Fix the RTEMS override of the ECHO variable
This commit is contained in:
@ -177,7 +177,7 @@ LIBRARY_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(LIB_SRCS) $(L
|
||||
LIBRARY_LD_OBJS = $(USR_OBJLIBS) $(LIB_OBJLIBS) $(TARGET_OBJS) $(LIBRARY_OBJS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# WIN95/NT resource files
|
||||
# Windows resource files
|
||||
|
||||
TARGET_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $($*_RCS))),)
|
||||
|
||||
@ -187,11 +187,6 @@ PROD_LD_RESS = $(TARGET_RESS) $(PROD_RESS)
|
||||
LIBRARY_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS))),)
|
||||
LIBRARY_LD_RESS = $(TARGET_RESS) $(LIBRARY_RESS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# WIN95/NT source browser
|
||||
PROD_BAF = $(addsuffix $(BAF), $(basename $(PROD)))
|
||||
LIB_BAF=$(addsuffix $(BAF),$(basename $(LIBRARY)))
|
||||
|
||||
#--------------------------------------------------
|
||||
# C preprocessor, compiler, and linker flag defaults
|
||||
|
||||
|
@ -151,7 +151,6 @@ ACTIONS = inc
|
||||
ACTIONS += build
|
||||
ACTIONS += install
|
||||
ACTIONS += buildInstall
|
||||
ACTIONS += browse
|
||||
ACTIONS += runtests tapfiles
|
||||
|
||||
actionArchTargets = $(foreach x, $(ACTIONS),\ $(foreach arch,$(BUILD_ARCHS), $(x)$(DIVIDER)$(arch)))
|
||||
|
@ -17,48 +17,39 @@ ACTIONS = inc
|
||||
ACTIONS += build
|
||||
ACTIONS += install
|
||||
ACTIONS += buildInstall
|
||||
ACTIONS += browse
|
||||
ACTIONS += runtests tapfiles
|
||||
#ACTIONS += rebuild
|
||||
|
||||
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
|
||||
actionArchTargets = $(foreach x, $(ACTIONS),\
|
||||
$(foreach arch,$(BUILD_ARCHS), $(x)$(DIVIDER)$(arch)))
|
||||
actionArchTargets = $(foreach action, $(ACTIONS), \
|
||||
$(addprefix $(action)$(DIVIDER), $(BUILD_ARCHS)))
|
||||
|
||||
cleanArchTargets = $(foreach arch,$(BUILD_ARCHS), clean$(DIVIDER)$(arch))
|
||||
cleanArchTargets = $(addprefix clean$(DIVIDER), $(BUILD_ARCHS))
|
||||
|
||||
buildDirs = $(addprefix O.,$(BUILD_ARCHS))
|
||||
buildDirs = $(addprefix O., $(BUILD_ARCHS))
|
||||
|
||||
#*************************************************************************
|
||||
# Create epics_host_arch dependancies for GNU make -j option
|
||||
# Only works with GNU make 3.81 or later (uses eval function)
|
||||
# Needed in dirs where EPICS_HOST_ARCH build creates a tool used in
|
||||
# Create EPICS_HOST_ARCH dependancies for GNU make -j option
|
||||
# Needed in dirs where EPICS_HOST_ARCH builds a tool used by
|
||||
# cross arch builds
|
||||
|
||||
CROSS_ARCHS += $(CROSS1) $(CROSS2)
|
||||
|
||||
define DEP_template
|
||||
$(2): $$(EPICS_HOST_ARCH)
|
||||
$(1)$$(DIVIDER)$(2): $(1)$$(DIVIDER)$$(EPICS_HOST_ARCH) O.$(2)
|
||||
$(2) : $(EPICS_HOST_ARCH)
|
||||
$(1)$(DIVIDER)$(2) : $(1)$(DIVIDER)$(EPICS_HOST_ARCH) O.$(2)
|
||||
endef
|
||||
|
||||
ifeq ($(MAKE_VERSION),3.81)
|
||||
$(foreach action, $(ACTIONS), $(foreach arch,\
|
||||
$(CROSS_ARCHS),$(eval $(call DEP_template,$(action),$(arch)))))
|
||||
else
|
||||
ifeq ($(findstring j,$(MAKEFLAGS)),j)
|
||||
$(foreach action, $(ACTIONS), $(foreach arch,\
|
||||
$(CROSS_ARCHS),$(eval $(call DEP_template,$(action),$(arch)))))
|
||||
endif
|
||||
endif
|
||||
$(foreach action, $(ACTIONS), $(foreach arch, $(CROSS_ARCHS), \
|
||||
$(eval $(call DEP_template,$(action),$(arch)))))
|
||||
|
||||
#*************************************************************************
|
||||
|
||||
# Allows rebuild to work with parallel builds option, -j.
|
||||
ifeq (rebuild,$(filter rebuild,$(MAKECMDGOALS)))
|
||||
$(buildDirs) O.Common : clean
|
||||
rebuild: install
|
||||
$(buildDirs) O.Common : clean
|
||||
rebuild : install
|
||||
endif
|
||||
|
||||
$(actionArchTargets) : $(buildDirs) O.Common
|
||||
@ -67,7 +58,7 @@ $(actionArchTargets) : $(buildDirs) O.Common
|
||||
$(BUILD_ARCHS) : % : O.% O.Common
|
||||
$(MAKE) -C O.$@ -f ../Makefile TOP=$(TOP)/.. T_A=$@
|
||||
|
||||
$(ACTIONS):%: $(foreach arch, $(BUILD_ARCHS), %$(DIVIDER)$(arch))
|
||||
$(ACTIONS) : % : $(foreach arch, $(BUILD_ARCHS), %$(DIVIDER)$(arch))
|
||||
|
||||
$(buildDirs):
|
||||
$(PERL) $(TOOLS)/makeMakefile.pl $@ $(TOP)/..
|
||||
@ -78,21 +69,21 @@ O.Common:
|
||||
#
|
||||
# special clean rule
|
||||
#
|
||||
clean : archs_common_clean
|
||||
clean: archsCommonClean
|
||||
|
||||
archs_common_clean :
|
||||
$(RMDIR) $(addprefix O.,$(BUILD_ARCHS)) O.Common
|
||||
archsCommonClean:
|
||||
$(RMDIR) $(buildDirs) O.Common
|
||||
|
||||
archclean :
|
||||
$(RMDIR) $(addprefix O.,$(BUILD_ARCHS))
|
||||
archclean:
|
||||
$(RMDIR) $(buildDirs)
|
||||
|
||||
$(cleanArchTargets) :
|
||||
$(cleanArchTargets):
|
||||
$(RMDIR) O.$(archPart)
|
||||
|
||||
realclean :
|
||||
realclean:
|
||||
$(RMDIR) O.*
|
||||
|
||||
.PHONY : $(actionArchTargets)
|
||||
.PHONY : $(cleanArchTargets)
|
||||
.PHONY : $(BUILD_ARCHS) rebuild arch_common_clean
|
||||
.PHONY : $(BUILD_ARCHS) rebuild archsCommonClean
|
||||
.PHONY : $(ACTIONS) clean realclean archclean host all
|
||||
|
@ -166,17 +166,6 @@ build_clean:
|
||||
ifdef RES
|
||||
@$(RM) *$(RES)
|
||||
endif
|
||||
ifdef BAF
|
||||
@$(RM) $(PROD_BAF) $(LIB_BAF)
|
||||
endif
|
||||
ifdef BOF
|
||||
@$(RM) *$(BOF)
|
||||
endif
|
||||
|
||||
# WIN95/NT source browser
|
||||
#ifdef BAF
|
||||
browse: $(LIB_BAF) $(PROD_BAF)
|
||||
#endif
|
||||
|
||||
$(DIRECTORY_TARGETS) :
|
||||
$(MKDIR) -p $@
|
||||
@ -238,17 +227,11 @@ $(TESTPRODNAME) $(PRODNAME): %$(EXE):
|
||||
@$(RM) $@
|
||||
$(COMPILE.cpp) -c $<
|
||||
|
||||
# WIN95/NT resource compiler
|
||||
# Windows resource compiler
|
||||
%$(RES): %.rc
|
||||
@$(RM) $@
|
||||
$(RCCMD)
|
||||
|
||||
# WIN95/NT source browser
|
||||
%.bsc: %.sbr
|
||||
$(ECHO) "building source browser archive $@"
|
||||
@$(RM) $@
|
||||
$(BAFCMD) $<
|
||||
|
||||
YACCOPT ?= $($*_YACCOPT)
|
||||
#
|
||||
# rename the y.tab.h file only if we
|
||||
@ -271,16 +254,6 @@ YACCOPT ?= $($*_YACCOPT)
|
||||
@$(RM) $@
|
||||
$(MV) $*.yy.c $@
|
||||
|
||||
# WIN95/NT source browser
|
||||
ifdef BAF
|
||||
|
||||
$(LIB_BAF): $(addsuffix $(BOF),$(basename $(LIBRARY_LD_OBJS)))
|
||||
$(ECHO) "Building source browser archive $@"
|
||||
@$(RM) $@
|
||||
$(BAFCMD) $^
|
||||
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Libraries, shared/DLL and stubs
|
||||
|
||||
|
@ -71,6 +71,8 @@ CPPFLAGS += $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\
|
||||
$(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
|
||||
$(OP_SYS_CPPFLAGS) $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
|
||||
ECHO = @$(if $(findstring s,$(patsubst T_A=%,,$(MAKEFLAGS))),$(NOP),echo)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Although RTEMS uses gcc, it wants to use gcc its own way
|
||||
CROSS_CPPFLAGS =
|
||||
|
@ -21,8 +21,6 @@ RCCMD = rc -l 0x409 $(INCLUDES) -fo $@ $<
|
||||
|
||||
ARCMD = lib -nologo -verbose -out:$@ $(LIB_OPT_LDFLAGS) $(LIBRARY_LD_OBJS)
|
||||
|
||||
BAFCMD = bscmake -nologo -o $@
|
||||
|
||||
#
|
||||
# Configure OS vendor C compiler
|
||||
CC = cl
|
||||
@ -151,8 +149,6 @@ WIN32=1
|
||||
EXE=.exe
|
||||
OBJ=.obj
|
||||
RES=.res
|
||||
BAF=.bsc
|
||||
BOF=.sbr
|
||||
|
||||
# Problem: MS Visual C++ does not recognize *.cc as C++ source,
|
||||
# so we do C++ compiles using the global flag -TP
|
||||
|
@ -54,7 +54,7 @@ menuGlobal_DBD += menuYesNo.dbd
|
||||
menuGlobal_DBD += menuSimm.dbd
|
||||
|
||||
DBDINC += $(basename $(menuGlobal_DBD))
|
||||
DBDINC += menuScan.dbd
|
||||
DBDINC += menuScan
|
||||
DBDINC += dbCommon
|
||||
|
||||
dbMenusPod = $(notdir $(wildcard ../db/menu*.dbd.pod))
|
||||
|
Reference in New Issue
Block a user