]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_perl build on windows.
authorMichael Jerris <mike@jerris.com>
Mon, 6 Mar 2006 00:02:45 +0000 (00:02 +0000)
committerMichael Jerris <mike@jerris.com>
Mon, 6 Mar 2006 00:02:45 +0000 (00:02 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@755 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/include/switch_platform.h
src/mod/languages/mod_perl/fs_perl.vcproj
src/mod/languages/mod_perl/mod_perl.c
src/mod/languages/mod_perl/mod_perl.vcproj [new file with mode: 0644]
src/mod/languages/mod_perl/perlibs.h
w32/vsnet/Freeswitch.sln

index 4b99a680a7252779fb2f1eeb997912a9b3bf26bd..093ada3772e7b7afbc1bd5c775daff0fdb1b353b 100644 (file)
@@ -78,10 +78,12 @@ typedef unsigned long       in_addr_t;
 #endif
 #define PACKED
 #include <io.h>
+#ifndef WIN32IOP_H //macro collision with perl
 #define write _write
 #define open _open
 #define close _close
 #define read _read
+#endif
 #else
 /* packed attribute */
 #ifndef PACKED
index ed6b53a6a56cd47bc96c92deeb11f5f32a79fd5e..36d6f476066ea12e864cf0df73a30088236ce8c3 100644 (file)
@@ -24,6 +24,7 @@
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
+                               CommandLine="if not exist perlxsi.c perl -MExtUtils::Embed -e xsinit"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
@@ -41,8 +42,8 @@
                                Name="VCCLCompilerTool"\r
                                AdditionalOptions="@compiler.opts"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;.."\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FS_PERL_EXPORTS"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;."\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FS_PERL_EXPORTS;MULTIPLICITY;EMBED_PERL"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="3"\r
@@ -62,6 +63,7 @@
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
+                               AdditionalOptions="/EXPORT:xs_init"\r
                                OutputFile="$(OutDir)\Perl\$(ProjectName).dll"\r
                                LinkIncremental="2"\r
                                GenerateDebugInformation="true"\r
@@ -91,7 +93,7 @@
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine="@xcopy $(InputDir)fs_perl.pm $(Outdir)\Perl\ /C /D /Y&#x0D;&#x0A;@if not exist $(Outdir)\Perl\freeswitch.pm xcopy $(InputDir)freeswitch.pm $(Outdir)\Perl\ /C /Y"\r
+                               CommandLine="@xcopy $(InputDir)fs_perl.pm $(Outdir)\Perl\ /C /D /Y&#x0D;&#x0A;@if not exist $(Outdir)\Perl\freeswitch.pm xcopy $(InputDir)freeswitch.pm $(Outdir)\Perl\ /C /Y&#x0D;&#x0A;"\r
                        />\r
                </Configuration>\r
                <Configuration\r
                        >\r
                        <Tool\r
                                Name="VCPreBuildEventTool"\r
+                               CommandLine="if not exist perlxsi.c perl -MExtUtils::Embed -e xsinit"\r
                        />\r
                        <Tool\r
                                Name="VCCustomBuildTool"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                AdditionalOptions="@compiler.opts"\r
-                               AdditionalIncludeDirectories="c:\perl\lib\CORE;"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FS_PERL_EXPORTS"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;."\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FS_PERL_EXPORTS;MULTIPLICITY;EMBED_PERL"\r
                                RuntimeLibrary="2"\r
                                UsePrecompiledHeader="0"\r
                                WarningLevel="3"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
+                               AdditionalOptions="/EXPORT:xs_init"\r
                                OutputFile="$(OutDir)\Perl\$(ProjectName).dll"\r
                                LinkIncremental="1"\r
                                GenerateDebugInformation="true"\r
                        />\r
                        <Tool\r
                                Name="VCPostBuildEventTool"\r
-                               CommandLine="@xcopy $(InputDir)fs_perl.pm $(Outdir)\Perl\ /C /D /Y&#x0D;&#x0A;@if not exist $(Outdir)\Perl\freeswitch.pm xcopy $(InputDir)freeswitch.pm $(Outdir)\Perl\ /C /Y"\r
+                               CommandLine="@xcopy $(InputDir)fs_perl.pm $(Outdir)\Perl\ /C /D /Y&#x0D;&#x0A;@if not exist $(Outdir)\Perl\freeswitch.pm xcopy $(InputDir)freeswitch.pm $(Outdir)\Perl\ /C /Y&#x0D;&#x0A;"\r
                        />\r
                </Configuration>\r
        </Configurations>\r
                        <File\r
                                RelativePath=".\switch_swig_wrap.c"\r
                                >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                               WarningLevel="0"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCLCompilerTool"\r
+                                               WarningLevel="0"\r
+                                       />\r
+                               </FileConfiguration>\r
                        </File>\r
                </Filter>\r
                <Filter\r
index f3c2d07cf2c536f2bd326e1f50bc623cc4a39b11..7c33a443a1c7831cc0b5bc3902350b72ae27ec1d 100644 (file)
  * mod_perl.c -- Perl
  *
  */
-#include <switch.h>
+
+#ifdef _MSC_VER
+#include <perlibs.h>
+#pragma comment(lib, PERL_LIB)
+#endif
+
 #include <EXTERN.h>
 #include <perl.h>
+#include <switch.h>
 static char *embedding[] = { "", "-e", "" };
 EXTERN_C void xs_init(pTHX);
 
diff --git a/src/mod/languages/mod_perl/mod_perl.vcproj b/src/mod/languages/mod_perl/mod_perl.vcproj
new file mode 100644 (file)
index 0000000..0faec35
--- /dev/null
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="mod_perl"\r
+       ProjectGUID="{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"\r
+       RootNamespace="mod_perl"\r
+       Keyword="Win32Proj"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="Debug"\r
+                       IntermediateDirectory="Debug"\r
+                       ConfigurationType="2"\r
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                               CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs mod_perl Debug"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalOptions="@compiler.opts"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;."\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;_CRT_SECURE_NO_DEPRECATE;MULTIPLICITY;EMBED_PERL"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="4"\r
+                               WarnAsError="true"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               OutputFile="..\..\..\..\w32\vsnet\$(OutDir)/mod/mod_perl.dll"\r
+                               LinkIncremental="2"\r
+                               AdditionalLibraryDirectories=""\r
+                               GenerateDebugInformation="true"\r
+                               ProgramDatabaseFile="$(OutDir)/mod_perl.pdb"\r
+                               SubSystem="2"\r
+                               ImportLibrary="$(OutDir)/mod_perl.lib"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="Release"\r
+                       IntermediateDirectory="Release"\r
+                       ConfigurationType="2"\r
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                               CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs mod_perl Release"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalOptions="@compiler.opts"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;."\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;_CRT_SECURE_NO_DEPRECATE;MULTIPLICITY;EMBED_PERL"\r
+                               RuntimeLibrary="2"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="4"\r
+                               WarnAsError="true"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               OutputFile="..\..\..\..\w32\vsnet\$(OutDir)/mod/mod_perl.dll"\r
+                               LinkIncremental="1"\r
+                               AdditionalLibraryDirectories=""\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               LinkTimeCodeGeneration="1"\r
+                               ImportLibrary="$(OutDir)/mod_perl.lib"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Source Files"\r
+                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath=".\mod_perl.c"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Header Files"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
index 2460b3cba67cef8a270dc68d8ce51c91f42149f8..41f26ed7e69d4adf86550c9320b7988445fb7aa1 100644 (file)
@@ -1 +1 @@
-#define PERL_LIB "C:\perl\lib\CORE\perl58.lib"\r
+#define PERL_LIB "C:\\perl\\lib\\CORE\\perl58.lib"\r
index b07a8ad28f2e4112cb874e0e41eb38f2c445eb28..7781a5060942dcfc5c5932795b7829c064caa81c 100644 (file)
@@ -163,6 +163,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "..\..\src\m
        EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fs_perl", "..\..\src\mod\languages\mod_perl\fs_perl.vcproj", "{B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_perl", "..\..\src\mod\languages\mod_perl\mod_perl.vcproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
+               {B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8} = {B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8}\r
+       EndProjectSection\r
 EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
@@ -286,6 +295,10 @@ Global
                {B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8}.Debug|Win32.Build.0 = Debug|Win32\r
                {B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8}.Release|Win32.ActiveCfg = Release|Win32\r
                {B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8}.Release|Win32.Build.0 = Release|Win32\r
+               {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32\r
+               {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32\r
+               {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.Build.0 = Release|Win32\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
@@ -316,6 +329,7 @@ Global
                {EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}\r
                {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
                {B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
+               {7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}\r
                {692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}\r
        EndGlobalSection\r
 EndGlobal\r