Put into Makefile.moddir_rules the common instructions used to

generate loadable and embedded module lists.

Individual Makefiles now are a lot simpler, possibly as simple as this:

    -include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
    MODULE_PREFIX=cdr_
    all: _all
    include $(ASTTOPDIR)/Makefile.moddir_rules

and also more flexible because in a single directory we can combine
various types of modules (app_, cdr_, func_, ... ) by simply
listing them in the MODULE_PREFIX variable.

The individual Makefiles can also create list of modules to be
excluded by listing them in the variablel MODULE_EXCLUDE (see an
example in channels/Makefile).

With this change it becomes trivial to integrate a directory with
locally created/modified sources into the main build.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@92082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Luigi Rizzo
2007-12-10 03:50:38 +00:00
parent 1e1a9e30d8
commit 5490889153
9 changed files with 48 additions and 75 deletions

View File

@@ -11,8 +11,7 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
C_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.c,%,$(wildcard chan_*.c)))
CC_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.cc,%,$(wildcard chan_*.cc)))
MODULE_PREFIX=chan_
ifeq ($(OSARCH),OpenBSD)
PTLIB=-lpt_OpenBSD_x86_r
@@ -36,13 +35,13 @@ ifeq ($(OSARCH),NetBSD)
H323LIB=-lh323_NetBSD_x86_r
endif
MODULE_EXCLUDE:=
ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
C_MODS:=$(filter-out chan_oss,$(C_MODS))
C_MODS:=$(filter-out chan_unistim,$(C_MODS))
MODULE_EXCLUDE+= chan_oss chan_unistim
endif
ifeq ($(wildcard h323/libchanh323.a),)
CC_MODS:=$(filter-out chan_h323,$(CC_MODS))
MODULE_EXCLUDE += chan_h323
endif
ifndef OPENH323DIR
@@ -53,13 +52,6 @@ ifndef PWLIBDIR
PWLIBDIR=$(HOME)/pwlib
endif
LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
ifneq ($(findstring channels,$(MENUSELECT_EMBED)),)
EMBEDDED_MODS:=$(LOADABLE_MODS)
LOADABLE_MODS:=
endif
all: _all
include $(ASTTOPDIR)/Makefile.moddir_rules