Added RULES_TARGET & made changes to allow removing makeMakefileInclude.pl
This commit is contained in:
@@ -116,7 +116,6 @@ GNU=NO
|
||||
# Prefix and suffix
|
||||
DEP=.depends
|
||||
OBJ = .
|
||||
RES = .
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=
|
||||
LIB_PREFIX=
|
||||
@@ -151,7 +150,7 @@ JAR =
|
||||
#--------------------------------------------------
|
||||
# obj files
|
||||
|
||||
TARGET_OBJS = $($*_OBJLIBS) $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS)))
|
||||
TARGET_OBJS = $($*_OBJLIBS) $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS) $($*_SRCS)))
|
||||
|
||||
PRODUCT_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(USR_OBJS) $(PROD_OBJS)))
|
||||
PROD_LD_OBJS = $(USR_OBJLIBS) $(PROD_OBJLIBS) $(TARGET_OBJS) $(PRODUCT_OBJS)
|
||||
@@ -162,12 +161,12 @@ LIBRARY_LD_OBJS = $(USR_OBJLIBS) $(LIB_OBJLIBS) $(TARGET_OBJS) $(LIBRARY_OBJS)
|
||||
#--------------------------------------------------
|
||||
# WIN95/NT resource files
|
||||
|
||||
TARGET_RESS = $(addsuffix $(RES),$(basename $($*_RCS)))
|
||||
TARGET_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $($*_RCS))),)
|
||||
|
||||
PROD_RESS = $(addsuffix $(RES),$(basename $(RCS) $(PROD_RCS)))
|
||||
PROD_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(PROD_RCS))),)
|
||||
PROD_LD_RESS = $(TARGET_RESS) $(PROD_RESS)
|
||||
|
||||
LIBRARY_RESS = $(addsuffix $(RES),$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS)))
|
||||
LIBRARY_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS))),)
|
||||
LIBRARY_LD_RESS = $(TARGET_RESS) $(LIBRARY_RESS)
|
||||
|
||||
#--------------------------------------------------
|
||||
@@ -247,7 +246,7 @@ STATIC_LDLIBS = $(STATIC_LDLIBS_$(STATIC_BUILD))
|
||||
|
||||
#--------------------------------------------------
|
||||
# cflags for shared library src files (from SHRLIB_CFLAGS)
|
||||
LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY) $(LOADABLE_LIBRARY),$($(lib)_OBJS) $(LIBRARY_OBJS)))
|
||||
LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY) $(LOADABLE_LIBRARY),$($(lib)_OBJSNAME) $(LIBRARY_OBJS)))
|
||||
LIBRARY_SRC_CFLAGS=$($(patsubst $*,SHRLIB,$(findstring $*,$(LIBRARY_SRCS)))_CFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
|
||||
@@ -74,17 +74,11 @@ ifneq (,$(strip $(HDEPENDS_FILES)))
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Create included Makefile for prod,testprod, and library targets
|
||||
# Included defines and rules for prod,testprod, and library targets
|
||||
|
||||
ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(LOADABLE_LIBRARY)))
|
||||
|
||||
MakefileInclude: ../Makefile $(wildcard $(TOP)/configure/RELEASE*)
|
||||
@$(RM) $@
|
||||
@$(PERL) $(TOOLS)/makeMakefileInclude.pl $(PROD) $(TESTPROD) $(LIBRARY) $(LOADABLE_LIBRARY) $@
|
||||
|
||||
-include MakefileInclude
|
||||
|
||||
endif # PROD, TESTPROD, LIBRARY, or LOADABLE_LIBRARY defined
|
||||
#ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(LOADABLE_LIBRARY)))
|
||||
include $(CONFIG)/RULES_TARGET
|
||||
#endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Products and Object libraries
|
||||
|
||||
111
configure/RULES_TARGET
Executable file
111
configure/RULES_TARGET
Executable file
@@ -0,0 +1,111 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# RULES_TARGET
|
||||
#
|
||||
# This file is to be maintained by the community.
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define TARGET_template
|
||||
$(1)_$(2) += $$(if $$(strip $$($(1)_$(2)_$$(OS_CLASS))), \
|
||||
$$(subst -nil-,,$$($(1)_$(2)_$$(OS_CLASS))), \
|
||||
$$($(1)_$(2)_DEFAULT))
|
||||
endef
|
||||
|
||||
$(foreach type, SRCS RCS OBJS LDFLAGS OBJLIBS LDOBJS SYS_LIBS , \
|
||||
$(foreach target, $(PROD) $(TESTPROD) $(LIBRARY) $(LOADABLE_LIBRARY) , \
|
||||
$(eval $(call TARGET_template,$(strip $(target)),$(type)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# This define block requires GNU make 3.81
|
||||
define PROD_template
|
||||
ifeq ($$(strip $$($(1)_OBJS) $$($(1)_SRCS) $$(PRODUCT_OBJS)),)
|
||||
$(1)_OBJS = $(1)$$(OBJ)
|
||||
endif
|
||||
endef
|
||||
|
||||
$(foreach target, $(PROD) $(TESTPROD), \
|
||||
$(eval $(call PROD_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define TARGET2_template
|
||||
$(1)_LDLIBS += $$($(1)_LIBS)
|
||||
$(1)_LDLIBS += $$(if $$(strip $$($(1)_LIBS_$$(OS_CLASS))), \
|
||||
$$(subst -nil-,,$$($(1)_LIBS_$$(OS_CLASS))), \
|
||||
$$($(1)_LIBS_DEFAULT))
|
||||
|
||||
$(1)_RESS = $$(if $$(RES),$$(addsuffix $$(RES),$$(basename $$($(1)_RCS))),)
|
||||
$(1)_OBJSNAME = $$(addsuffix $$(OBJ),$$(basename $$($(1)_OBJS) $$($(1)_SRCS) ))
|
||||
$(1)_DEPLIBS = $$(foreach lib, $$($(1)_LDLIBS),\
|
||||
$$(firstword $$(wildcard $$(addsuffix /$$(LIB_PREFIX)$$(lib).*,\
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))\
|
||||
$$(addsuffix /$$(LIB_PREFIX)$$(lib)$$(LIB_SUFFIX),\
|
||||
$$(firstword $$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))))
|
||||
|
||||
endef
|
||||
|
||||
$(foreach target, $(PROD) $(TESTPROD) $(LIBRARY) $(LOADABLE_LIBRARY) , \
|
||||
$(eval $(call TARGET2_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define PROD2_template
|
||||
|
||||
$(1)$$(EXE): $$($(1)_OBJSNAME) $$($(1)_RESS) $$($(1)_DEPLIBS)
|
||||
endef
|
||||
|
||||
$(foreach target, $(PROD) $(TESTPROD), \
|
||||
$(eval $(call PROD2_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define LIBRARY_template
|
||||
BUILD_LIBRARY += $$(if $$(strip $$($(1)_OBJSNAME) $$(LIBRARY_OBJS)),$(1),)
|
||||
|
||||
$(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS),\
|
||||
$$(firstword $$(wildcard $$(addsuffix /$$(LIB_PREFIX)$$(lib).*,\
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))\
|
||||
$$(addsuffix /$$(LIB_PREFIX)$$(lib)$$(LIB_SUFFIX),\
|
||||
$$(firstword $$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))))
|
||||
|
||||
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(LIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(LIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(LIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
|
||||
endef
|
||||
|
||||
$(foreach target, $(LIBRARY), \
|
||||
$(eval $(call LIBRARY_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define LOADABLE_LIBRARY_template
|
||||
LOADABLE_BUILD_LIBRARY += $$(if $$(strip $$($(1)_OBJSNAME) $$(LIBRARY_OBJS)),$(1),)
|
||||
|
||||
$(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS),\
|
||||
$$(firstword $$(wildcard $$(addsuffix /$$(LIB_PREFIX)$$(lib).\*,\
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))\
|
||||
$$(addsuffix /$$(LIB_PREFIX)$$(lib)$$(LIB_SUFFIX),\
|
||||
$$(firstword $$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))))
|
||||
|
||||
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
|
||||
endef
|
||||
|
||||
$(foreach target, $(LOADABLE_LIBRARY), \
|
||||
$(eval $(call LOADABLE_LIBRARY_template,$(strip $(target)))))
|
||||
|
||||
Reference in New Issue
Block a user