From 6938f4b2b002accd9c86e5cc63cfe31d0fe10e47 Mon Sep 17 00:00:00 2001
From: Luigi Rizzo <rizzo@icir.org>
Date: Tue, 20 Nov 2007 16:12:10 +0000
Subject: [PATCH] Fix building of modules under cygwin.

After this commit we can actually load modules under windows,
and we can start debugging more interesting problems related
to the load order and functionality of modules.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 Makefile.moddir_rules | 3 +--
 apps/Makefile         | 6 ++++++
 channels/Makefile     | 4 ++++
 pbx/Makefile          | 4 ++++
 res/Makefile          | 7 +++++++
 5 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules
index 54113de741..988f484d4d 100644
--- a/Makefile.moddir_rules
+++ b/Makefile.moddir_rules
@@ -66,9 +66,8 @@ _all: $(LOADABLE_MODS:%=%.so)
 ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
   # linker options and extra libraries for cygwin
   SOLINK=-Wl,--out-implib=lib$@.a -shared
-  LIBS+=-L../main -lasterisk -L../res
+  LIBS+=-L../main -lasterisk -L../res $($@_LIBS)
   # additional libraries in res/
-  LIBS_RES:= -lres_monitor -lres_adsi -lres_features
 endif
 endif
 
diff --git a/apps/Makefile b/apps/Makefile
index d0e9215afb..0f2fb7780f 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -39,3 +39,9 @@ endif
 all: _all
 
 include $(ASTTOPDIR)/Makefile.moddir_rules
+
+ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
+  LIBS+= -lres_features.so -lres_ael_share.so -lres_monitor.so -lres_speech.so
+  LIBS+= -lres_smdi.so
+endif
+
diff --git a/channels/Makefile b/channels/Makefile
index 53c7790b9b..bfe4f9149c 100644
--- a/channels/Makefile
+++ b/channels/Makefile
@@ -64,6 +64,10 @@ all: _all
 
 include $(ASTTOPDIR)/Makefile.moddir_rules
 
+ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
+  LIBS+= -lres_monitor.so -lres_features.so
+endif
+
 clean::
 	rm -f gentone
 	$(MAKE) -C misdn clean
diff --git a/pbx/Makefile b/pbx/Makefile
index 6a229a8d8d..24c4a8e0d2 100644
--- a/pbx/Makefile
+++ b/pbx/Makefile
@@ -25,6 +25,10 @@ all: _all
 
 include $(ASTTOPDIR)/Makefile.moddir_rules
 
+ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
+  LIBS+= -lres_ael_share.so -lres_monitor.so
+endif
+
 clean::
 	rm -f ael/*.o
 
diff --git a/res/Makefile b/res/Makefile
index 0d0863d51a..4912a1dc97 100644
--- a/res/Makefile
+++ b/res/Makefile
@@ -25,6 +25,13 @@ all: _all
 
 include $(ASTTOPDIR)/Makefile.moddir_rules
 
+ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
+  # order-only dependency: build res_monitor before res_features
+  res_features.so: | res_monitor.so
+  # res_features uses some functions from res_monitor
+  res_features.so_LIBS:= -lres_monitor.so
+endif
+
 ael/ael_lex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h
 ael/ael_lex.o: ASTCFLAGS+=-I. -Iael 
 
-- 
GitLab