diff --git a/Makefile b/Makefile index 121b2488e5a1f36f4d1618b4dc991a9dc632db73..cbf7005bcb83d1d207ffe9f273b21e905e022e3d 100644 --- a/Makefile +++ b/Makefile @@ -251,9 +251,15 @@ endif ASTCFLAGS+=$(MALLOC_DEBUG)$(BUSYDETECT)$(OPTIONS) -MOD_SUBDIRS:=res channels pbx apps codecs formats cdr funcs main +MOD_SUBDIRS:=channels pbx apps codecs formats cdr funcs OTHER_SUBDIRS:=utils agi SUBDIRS:=$(OTHER_SUBDIRS) $(MOD_SUBDIRS) +# in cygwin we need to build main (i.e. asterisk.dll) first, then res. +ifneq ($(findstring $(OSARCH), mingw32 cygwin ),) + SUBDIRS+= main res +else + OTHER_SUBDIRS += res main +endif SUBDIRS_INSTALL:=$(SUBDIRS:%=%-install) SUBDIRS_CLEAN:=$(SUBDIRS:%=%-clean) SUBDIRS_DIST_CLEAN:=$(SUBDIRS:%=%-dist-clean) @@ -339,12 +345,25 @@ $(SUBDIRS): include/asterisk/version.h include/asterisk/build.h include/asterisk # a parallel build, since if there are modules selected to be embedded the # directories containing them must be completed before the main Asterisk # binary can be built +ifeq ($(findstring $(OSARCH), mingw32 cygwin ),) main: $(filter-out main,$(MOD_SUBDIRS)) +else +SUBDIR_DEPS=main res +main: + @ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" \ + ASTLDFLAGS="$(ASTLDFLAGS)" AST_LIBS="$(AST_LIBS)" \ + $(MAKE) --no-print-directory --no-builtin-rules -C $@ SUBDIR=$@ all + +res: main + @ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" \ + ASTLDFLAGS="$(ASTLDFLAGS)" AST_LIBS="$(AST_LIBS)" \ + $(MAKE) --no-print-directory --no-builtin-rules -C $@ SUBDIR=$@ all +endif -$(MOD_SUBDIRS): +$(MOD_SUBDIRS): $(SUBDIR_DEPS) @ASTCFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(MAKE) --no-print-directory --no-builtin-rules -C $@ SUBDIR=$@ all -$(OTHER_SUBDIRS): +$(OTHER_SUBDIRS): $(SUBDIR_DEPS) @ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(ASTCFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(MAKE) --no-print-directory --no-builtin-rules -C $@ SUBDIR=$@ all defaults.h: makeopts