Author: vedge
Date: 2008-11-01 13:26:39 -0300 (Sat, 01 Nov 2008)
New Revision: 770
Modified:
trunk/BSDBuild/Core.pm
trunk/BSDBuild/agar-core.pm
trunk/BSDBuild/agar-dev.pm
trunk/BSDBuild/agar-map.pm
trunk/BSDBuild/agar-math.pm
trunk/BSDBuild/agar-rg.pm
trunk/BSDBuild/agar-vg.pm
trunk/BSDBuild/agar.pm
trunk/BSDBuild/edacious.pm
trunk/BSDBuild/freesg.pm
trunk/BSDBuild/freetype.pm
trunk/BSDBuild/opengl.pm
trunk/BSDBuild/pthreads.pm
trunk/BSDBuild/sdl.pm
trunk/build.proj.mk
trunk/build.subdir.mk
Log:
- add catch-all cases to all EMUL operations.
- hardcode mingw32 paths when compiling project files for cb-gcc.
- handle ${PROJINCLUDES} in a cleaner way.
- add ${PROJCONFIGDIR} setting.
Modified: trunk/BSDBuild/Core.pm
===================================================================
--- trunk/BSDBuild/Core.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/Core.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -24,7 +24,12 @@
# USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE..
our $LUA = undef;
+our $EmulOS = undef;
+our $EmulOSRel = undef;
+our $EmulArch = undef;
+our $EmulEnv = undef;
+
#
# Bourne instructions.
#
@@ -736,7 +741,7 @@
$^W = 0;
@ISA = qw(Exporter);
- @EXPORT = qw($LUA %TESTS %DESCR MkExecOutput MkExecOutputUnique
MkFileOutput Which MkFail MKSave TryCompile MkCompileC MkCompileCXX
MkCompileAndRunC MkCompileAndRunCXX TryCompileFlagsC TryCompileFlagsCXX Log
MkDefine MkAppend MkIf MkElif MkElse MkEndif MkSaveMK MkSaveDefine MkSaveUndef
MkPrint MkPrintN PmComment PmDefineBool PmDefineString PmIncludePath PmLibPath
PmBuildFlag DetectHeaderC BeginTestHeaders EndTestHeaders);
+ @EXPORT = qw($LUA $EmulOS $EmulOSRel $EmulArch $EmulEnv %TESTS %DESCR
MkExecOutput MkExecOutputUnique MkFileOutput Which MkFail MKSave TryCompile
MkCompileC MkCompileCXX MkCompileAndRunC MkCompileAndRunCXX TryCompileFlagsC
TryCompileFlagsCXX Log MkDefine MkAppend MkIf MkElif MkElse MkEndif MkSaveMK
MkSaveDefine MkSaveUndef MkPrint MkPrintN PmComment PmDefineBool PmDefineString
PmIncludePath PmLibPath PmBuildFlag DetectHeaderC BeginTestHeaders
EndTestHeaders);
}
;1
Modified: trunk/BSDBuild/agar-core.pm
===================================================================
--- trunk/BSDBuild/agar-core.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/agar-core.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -88,23 +88,16 @@
} elsif ($os eq 'windows') {
MkDefine('AGAR_CORE_CFLAGS', '');
MkDefine('AGAR_CORE_LIBS', 'ag_core');
- } elsif ($os eq 'linux' || $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('AGAR_CORE_CFLAGS', '-I/usr/include/agar
-I/usr/include '.
'-I/usr/local/include/agar '.
'-I/usr/local/include ');
MkDefine('AGAR_CORE_LIBS', '-L/usr/local/lib -lag_core
-lpthread ');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_AGAR_CORE', 'yes');
MkSaveDefine('HAVE_AGAR_CORE', 'AGAR_CORE_CFLAGS', 'AGAR_CORE_LIBS');
MkSaveMK('AGAR_CORE_CFLAGS', 'AGAR_CORE_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_AGAR_CORE', 'no');
- MkSaveUndef('HAVE_AGAR_CORE');
- MkSaveMK('AGAR_CORE_CFLAGS', 'AGAR_CORE_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/agar-dev.pm
===================================================================
--- trunk/BSDBuild/agar-dev.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/agar-dev.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -74,23 +74,15 @@
if ($os eq 'windows') {
MkDefine('AGAR_DEV_CFLAGS', '');
MkDefine('AGAR_DEV_LIBS', 'ag_dev');
- } elsif ($os eq 'linux' || $os eq 'darwin' ||
- $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('AGAR_DEV_CFLAGS', '-I/usr/local/include/agar '.
'-I/usr/include/agar');
MkDefine('AGAR_DEV_LIBS', '-L/usr/local/lib -lag_dev');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_AGAR_DEV', 'yes');
MkSaveDefine('HAVE_AGAR_DEV', 'AGAR_DEV_CFLAGS', 'AGAR_DEV_LIBS');
MkSaveMK('AGAR_DEV_CFLAGS', 'AGAR_DEV_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_AGAR_DEV', 'no');
- MkSaveUndef('HAVE_AGAR_DEV');
- MkSaveMK('AGAR_DEV_CFLAGS', 'AGAR_DEV_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/agar-map.pm
===================================================================
--- trunk/BSDBuild/agar-map.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/agar-map.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -70,23 +70,15 @@
if ($os eq 'windows') {
MkDefine('AGAR_MAP_CFLAGS', '');
MkDefine('AGAR_MAP_LIBS', 'ag_map');
- } elsif ($os eq 'linux' || $os eq 'darwin' ||
- $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('AGAR_MAP_CFLAGS', '-I/usr/local/include/agar '.
'-I/usr/include/agar');
MkDefine('AGAR_MAP_LIBS', '-L/usr/local/lib -lag_map');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_AGAR_MAP', 'yes');
MkSaveDefine('HAVE_AGAR_MAP', 'AGAR_MAP_CFLAGS', 'AGAR_MAP_LIBS');
MkSaveMK('AGAR_MAP_CFLAGS', 'AGAR_MAP_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_AGAR_MAP', 'no');
- MkSaveUndef('HAVE_AGAR_MAP');
- MkSaveMK('AGAR_MAP_CFLAGS', 'AGAR_MAP_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/agar-math.pm
===================================================================
--- trunk/BSDBuild/agar-math.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/agar-math.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -79,23 +79,16 @@
} elsif ($os eq 'windows') {
MkDefine('AGAR_MATH_CFLAGS', '');
MkDefine('AGAR_MATH_LIBS', 'ag_math');
- } elsif ($os eq 'linux' || $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('AGAR_MATH_CFLAGS', '-I/usr/include/agar
-I/usr/include '.
'-I/usr/local/include/agar '.
'-I/usr/local/include ');
MkDefine('AGAR_MATH_LIBS', '-L/usr/local/lib -lag_math');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_AGAR_MATH', 'yes');
MkSaveDefine('HAVE_AGAR_MATH', 'AGAR_MATH_CFLAGS', 'AGAR_MATH_LIBS');
MkSaveMK('AGAR_MATH_CFLAGS', 'AGAR_MATH_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_AGAR_MATH', 'no');
- MkSaveUndef('HAVE_AGAR_MATH');
- MkSaveMK('AGAR_MATH_CFLAGS', 'AGAR_MATH_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/agar-rg.pm
===================================================================
--- trunk/BSDBuild/agar-rg.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/agar-rg.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -72,23 +72,15 @@
if ($os eq 'windows') {
MkDefine('AGAR_RG_CFLAGS', '');
MkDefine('AGAR_RG_LIBS', 'ag_rg');
- } elsif ($os eq 'linux' || $os eq 'darwin' ||
- $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('AGAR_RG_CFLAGS', '-I/usr/local/include/agar '.
'-I/usr/include/agar');
MkDefine('AGAR_RG_LIBS', '-L/usr/local/lib -lag_rg');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_AGAR_RG', 'yes');
MkSaveDefine('HAVE_AGAR_RG', 'AGAR_RG_CFLAGS', 'AGAR_RG_LIBS');
MkSaveMK('AGAR_RG_CFLAGS', 'AGAR_RG_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_AGAR_RG', 'no');
- MkSaveUndef('HAVE_AGAR_RG');
- MkSaveMK('AGAR_RG_CFLAGS', 'AGAR_RG_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/agar-vg.pm
===================================================================
--- trunk/BSDBuild/agar-vg.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/agar-vg.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -69,23 +69,15 @@
if ($os eq 'windows') {
MkDefine('AGAR_VG_CFLAGS', '');
MkDefine('AGAR_VG_LIBS', 'ag_vg');
- } elsif ($os eq 'linux' || $os eq 'darwin' ||
- $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('AGAR_VG_CFLAGS', '-I/usr/local/include/agar '.
'-I/usr/include/agar');
MkDefine('AGAR_VG_LIBS', '-L/usr/local/lib -lag_vg');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_AGAR_VG', 'yes');
MkSaveDefine('HAVE_AGAR_VG', 'AGAR_VG_CFLAGS', 'AGAR_VG_LIBS');
MkSaveMK('AGAR_VG_CFLAGS', 'AGAR_VG_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_AGAR_VG', 'no');
- MkSaveUndef('HAVE_AGAR_VG');
- MkSaveMK('AGAR_VG_CFLAGS', 'AGAR_VG_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/agar.pm
===================================================================
--- trunk/BSDBuild/agar.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/agar.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -77,25 +77,18 @@
} elsif ($os eq 'windows') {
MkDefine('AGAR_CFLAGS', '');
MkDefine('AGAR_LIBS', 'ag_core ag_gui');
- } elsif ($os eq 'linux' || $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('AGAR_CFLAGS', '-I/usr/include/agar -I/usr/include '.
'-I/usr/local/include/agar '.
'-I/usr/local/include ');
MkDefine('AGAR_LIBS', '-L/usr/local/lib -lag_gui -lag_core
-lSDL '.
'-lpthread -lfreetype -lz
-L/usr/X11R6/lib '.
'-lGL -lm');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_AGAR', 'yes');
MkSaveDefine('HAVE_AGAR', 'AGAR_CFLAGS', 'AGAR_LIBS');
MkSaveMK('AGAR_CFLAGS', 'AGAR_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_AGAR', 'no');
- MkSaveUndef('HAVE_AGAR');
- MkSaveMK('AGAR_CFLAGS', 'AGAR_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/edacious.pm
===================================================================
--- trunk/BSDBuild/edacious.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/edacious.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -68,13 +68,43 @@
return (0);
}
+sub Emul
+{
+ my ($os, $osrel, $machine) = @_;
+
+ if ($os eq 'darwin') {
+ MkDefine('EDACIOUS_CFLAGS', '-I/opt/local/include/edacious '.
+ '-I/opt/local/include '.
+ '-I/usr/local/include/edacious '.
+
'-I/usr/local/include '.
+ '-I/usr/include/edacious
-I/usr/include '.
+ '-D_THREAD_SAFE');
+ MkDefine('EDACIOUS_LIBS', '-L/usr/lib -L/opt/local/lib '.
+ '-L/usr/local/lib '.
+ '-L/usr/X11R6/lib '.
+ '-les_core');
+ } elsif ($os eq 'windows') {
+ MkDefine('EDACIOUS_CFLAGS', '');
+ MkDefine('EDACIOUS_LIBS', 'es_core');
+ } else {
+ MkDefine('EDACIOUS_CFLAGS', '-I/usr/include/edacious
-I/usr/include '.
+ '-I/usr/local/include/edacious '.
+
'-I/usr/local/include ');
+ MkDefine('EDACIOUS_LIBS', '-L/usr/local/lib -les_core');
+ }
+ MkDefine('HAVE_EDACIOUS', 'yes');
+ MkSaveDefine('HAVE_EDACIOUS', 'EDACIOUS_CFLAGS', 'EDACIOUS_LIBS');
+ MkSaveMK('EDACIOUS_CFLAGS', 'EDACIOUS_LIBS');
+ return (1);
+}
+
sub Link
{
my $var = shift;
- if ($var eq 'edacious') {
+ if ($var eq 'edacious' || $var eq 'es_core') {
print << 'EOF';
-tinsert(package.links, { "edacious" })
+tinsert(package.links, { "es_core" })
EOF
return (1);
}
@@ -86,6 +116,7 @@
$TESTS{'edacious'} = \&Test;
$DESCR{'edacious'} = 'Edacious (http://edacious.hypertriton.com/)';
$DEPS{'edacious'} = 'cc,agar,agar-vg,agar-math';
+ $EMUL{'edacious'} = \&Emul;
$LINK{'edacious'} = \&Link;
}
Modified: trunk/BSDBuild/freesg.pm
===================================================================
--- trunk/BSDBuild/freesg.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/freesg.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -79,23 +79,16 @@
} elsif ($os eq 'windows') {
MkDefine('FREESG_CFLAGS', '');
MkDefine('FREESG_LIBS', 'freesg_pe freesg glu');
- } elsif ($os eq 'linux' || $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('FREESG_CFLAGS', '-I/usr/include/freesg -I/usr/include
'.
'-I/usr/local/include/freesg '.
'-I/usr/local/include ');
MkDefine('FREESG_LIBS', '-L/usr/local/lib -lfreesg_pe -lfreesg
-lGLU');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_FREESG', 'yes');
MkSaveDefine('HAVE_FREESG', 'FREESG_CFLAGS', 'FREESG_LIBS');
MkSaveMK('FREESG_CFLAGS', 'FREESG_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_FREESG', 'no');
- MkSaveUndef('HAVE_FREESG');
- MkSaveMK('FREESG_CFLAGS', 'FREESG_LIBS');
- return (1);
}
sub Link
Modified: trunk/BSDBuild/freetype.pm
===================================================================
--- trunk/BSDBuild/freetype.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/freetype.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -72,13 +72,36 @@
sub Link
{
my $lib = shift;
+ my @inclpaths = ();
+ my @libpaths = ();
if ($lib eq 'freetype') {
- print << 'EOF';
-if (hdefs["HAVE_FREETYPE"] ~= nil) then
- table.insert(package.links, { "freetype" })
-end
-EOF
+ print 'if (hdefs["HAVE_FREETYPE"] ~= nil) then'."\n";
+ print 'table.insert(package.links, { "freetype" })'."\n";
+
+ if ($EmulEnv =~ /^cb-(gcc|ow)$/) {
+ if ($EmulOS eq 'windows') {
+ @inclpaths =
('C:\\\\MinGW\\\\include\\\\freetype',
+ 'C:\\\\MinGW\\\\include',
+ 'C:\\\\Program
Files\\\\freetype\\\\include');
+ @libpaths = ('C:\\\\MinGW\\\\lib\\\\freetype',
+ 'C:\\\\MinGW\\\\lib',
+ 'C:\\\\Program
Files\\\\freetype\\\\lib');
+ } else {
+ @inclpaths = ('/usr/include/freetype',
+ '/usr/local/include/freetype',
+
'/usr/X11R6/include/freetype');
+ @libpaths = ('/usr/local/lib',
'/usr/X11R6/lib', '/usr/lib');
+ }
+ foreach my $path (@inclpaths) {
+ print
"table.insert(package.includepaths,{\"$path\"})\n";
+ }
+ foreach my $path (@libpaths) {
+ print
"table.insert(package.libpaths,{\"$path\"})\n";
+ }
+ }
+
+ print "end\n";
return (1);
}
return (0);
@@ -95,7 +118,7 @@
} elsif ($os eq 'windows') {
MkDefine('FREETYPE_CFLAGS', '');
MkDefine('FREETYPE_LIBS', 'freetype6');
- } elsif ($os eq 'linux' || $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('FREETYPE_CFLAGS', '-I/usr/include/freetype2 '.
'-I/usr/local/include/freetype2 '.
'-I/usr/local/include '.
@@ -106,18 +129,11 @@
'-L/usr/X11R6/lib '.
'-Wl,--rpath --Wl,/usr/X11R6/lib ' .
'-lfreetype -lz');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_FREETYPE', 'yes');
MkSaveDefine('HAVE_FREETYPE', 'FREETYPE_CFLAGS', 'FREETYPE_LIBS');
MkSaveMK('FREETYPE_CFLAGS', 'FREETYPE_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_FREETYPE', 'no');
- MkSaveUndef('HAVE_FREETYPE');
- MkSaveMK('FREETYPE_CFLAGS', 'FREETYPE_LIBS');
- return (1);
}
BEGIN
Modified: trunk/BSDBuild/opengl.pm
===================================================================
--- trunk/BSDBuild/opengl.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/opengl.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -111,20 +111,31 @@
sub Link
{
my $lib = shift;
+ my @paths = ();
- if ($lib eq 'opengl') {
- print << 'EOF';
-if (hdefs["HAVE_OPENGL"] ~= nil) then
- if (windows) then
- tinsert(package.links, { "opengl32" })
- else
- tinsert(package.links, { "GL" })
- end
-end
-EOF
- return (1);
+ if ($lib ne 'opengl') {
+ return (0);
}
- return (0);
+
+ if ($EmulEnv =~ /^cb-(gcc|ow)$/) {
+ @paths = ('C:\\\\MinGW\\\\include');
+ } else {
+ @paths = ('/usr/include',
+ '/usr/local/include',
+ '/usr/X11R6/include');
+ }
+
+ print 'if (hdefs["HAVE_OPENGL"] ~= nil) then'."\n";
+ if ($EmulOS eq 'windows') {
+ print 'table.insert(package.links, {"opengl32"})'."\n";
+ } else {
+ print 'table.insert(package.links, {"GL"})'."\n";
+ }
+ foreach my $path (@paths) {
+ print "table.insert(package.includepaths,{\"$path\"})\n";
+ }
+ print "end\n";
+ return (1);
}
sub Emul
@@ -137,21 +148,14 @@
} elsif ($os eq 'windows') {
MkDefine('OPENGL_CFLAGS', '');
MkDefine('OPENGL_LIBS', 'opengl32');
- } elsif ($os eq 'linux' || $os =~ /^(open|net|free)bsd$/) {
+ } else {
MkDefine('OPENGL_CFLAGS', '-I/usr/X11R6/include');
MkDefine('OPENGL_LIBS', '-lGL');
- } else {
- goto UNAVAIL;
}
MkDefine('HAVE_OPENGL', 'yes');
MkSaveDefine('HAVE_OPENGL', 'OPENGL_CFLAGS', 'OPENGL_LIBS');
MkSaveMK('OPENGL_CFLAGS', 'OPENGL_LIBS');
return (1);
-UNAVAIL:
- MkDefine('HAVE_OPENGL', 'no');
- MkSaveUndef('HAVE_OPENGL');
- MkSaveMK('OPENGL_CFLAGS', 'OPENGL_LIBS');
- return (1);
}
BEGIN
Modified: trunk/BSDBuild/pthreads.pm
===================================================================
--- trunk/BSDBuild/pthreads.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/pthreads.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -271,9 +271,7 @@
MkSaveUndef('HAVE_PTHREAD_MUTEX_RECURSIVE');
MkSaveUndef('HAVE_PTHREAD_MUTEX_RECURSIVE_NP');
- return (1);
- }
- if ($os eq 'darwin') {
+ } elsif ($os eq 'darwin') {
MkDefine('HAVE_PTHREADS', 'yes');
MkDefine('HAVE_PTHREADS_XOPEN', 'yes');
MkDefine('HAVE_PTHREAD_MUTEX_RECURSIVE', 'yes');
@@ -288,9 +286,7 @@
'PTHREADS_LIBS', 'HAVE_PTHREAD_MUTEX_RECURSIVE');
MkSaveUndef('HAVE_PTHREAD_MUTEX_RECURSIVE_NP');
- return (1);
- }
- if ($os eq 'windows') {
+ } elsif ($os eq 'windows') {
MkDefine('HAVE_PTHREADS', 'yes');
MkDefine('HAVE_PTHREADS_XOPEN', 'yes');
MkDefine('HAVE_PTHREAD_MUTEX_RECURSIVE', 'yes');
@@ -305,40 +301,35 @@
'PTHREADS_LIBS', 'HAVE_PTHREAD_MUTEX_RECURSIVE');
MkSaveUndef('HAVE_PTHREAD_MUTEX_RECURSIVE_NP');
- return (1);
- }
- if ($os =~ /^(net|open)bsd$/) {
+ } elsif ($os eq 'freebsd') {
MkDefine('HAVE_PTHREADS', 'yes');
MkDefine('HAVE_PTHREADS_XOPEN', 'yes');
MkDefine('HAVE_PTHREAD_MUTEX_RECURSIVE', 'yes');
MkDefine('PTHREADS_CFLAGS', '');
MkDefine('PTHREADS_LIBS', '-lpthread');
- MkDefine('PTHREADS_XOPEN_CFLAGS', '-U_XOPEN_SOURCE '.
- '-D_XOPEN_SOURCE=600');
+ MkDefine('PTHREADS_XOPEN_CFLAGS', '');
MkDefine('PTHREADS_XOPEN_LIBS', '-lpthread');
MkSaveDefine('HAVE_PTHREADS', 'HAVE_PTHREADS_XOPEN',
'PTHREADS_CFLAGS',
'PTHREADS_LIBS', 'HAVE_PTHREAD_MUTEX_RECURSIVE');
MkSaveUndef('HAVE_PTHREAD_MUTEX_RECURSIVE_NP');
- return (1);
- }
- if ($os eq 'freebsd') {
+ } else {
MkDefine('HAVE_PTHREADS', 'yes');
MkDefine('HAVE_PTHREADS_XOPEN', 'yes');
MkDefine('HAVE_PTHREAD_MUTEX_RECURSIVE', 'yes');
MkDefine('PTHREADS_CFLAGS', '');
MkDefine('PTHREADS_LIBS', '-lpthread');
- MkDefine('PTHREADS_XOPEN_CFLAGS', '');
+ MkDefine('PTHREADS_XOPEN_CFLAGS', '-U_XOPEN_SOURCE '.
+ '-D_XOPEN_SOURCE=600');
MkDefine('PTHREADS_XOPEN_LIBS', '-lpthread');
MkSaveDefine('HAVE_PTHREADS', 'HAVE_PTHREADS_XOPEN',
'PTHREADS_CFLAGS',
'PTHREADS_LIBS', 'HAVE_PTHREAD_MUTEX_RECURSIVE');
MkSaveUndef('HAVE_PTHREAD_MUTEX_RECURSIVE_NP');
- return (1);
}
return (1);
}
@@ -346,20 +337,44 @@
sub Link
{
my $lib = shift;
+ my @inclpaths = ();
+ my @libpaths = ();
- if ($lib eq 'pthreads') {
- print << 'EOF';
-if (hdefs["HAVE_PTHREADS"] ~= nil) then
- if (windows) then
- table.insert(package.links, { "pthreadVC2" })
- else
- table.insert(package.links, { "pthread" })
- end
-end
-EOF
- return (1);
+ if ($lib ne 'pthreads') {
+ return (0);
}
- return (0);
+
+ if ($EmulEnv =~ /^cb-(gcc|ow)$/) {
+ if ($EmulOS eq 'windows') {
+ @inclpaths = ('C:\\\\MinGW\\\\include\\\\Pthreads',
+ 'C:\\\\MinGW\\\\include\\\\Pthread',
+ 'C:\\\\MinGW\\\\include',
+ 'C:\\\\Program
Files\\\\Pthreads\\\\include');
+ @libpaths = ('C:\\\\MinGW\\\\lib\\\\Pthreads',
+ 'C:\\\\MinGW\\\\lib',
+ 'C:\\\\Program Files\\\\Pthreads\\\\lib');
+ } else {
+ @inclpaths = ('/usr/local/include',
+ '/usr/local/include/pthreads',
+ '/usr/include');
+ @libpaths = ('/usr/local/lib', '/usr/lib');
+ }
+ }
+
+ print 'if (hdefs["HAVE_PTHREADS"] ~= nil) then'."\n";
+ if ($EmulOS eq 'windows') {
+ print 'table.insert(package.links, { "pthreadVC2" })'."\n";
+ } else {
+ print 'table.insert(package.links, { "pthread" })'."\n";
+ }
+ foreach my $path (@inclpaths) {
+ print "table.insert(package.includepaths,{\"$path\"})\n";
+ }
+ foreach my $path (@libpaths) {
+ print "table.insert(package.libpaths,{\"$path\"})\n";
+ }
+ print "end\n";
+ return (1);
}
BEGIN
Modified: trunk/BSDBuild/sdl.pm
===================================================================
--- trunk/BSDBuild/sdl.pm 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/BSDBuild/sdl.pm 2008-11-01 16:26:39 UTC (rev 770)
@@ -24,6 +24,8 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE..
+use BSDBuild::Core;
+
sub Test
{
my ($ver) = @_;
@@ -92,16 +94,40 @@
sub Link
{
my $lib = shift;
+ my @inclpaths = ();
+ my @libpaths = ();
- if ($lib eq 'SDL' || $lib eq 'SDLmain') {
- print << 'EOF';
-if (hdefs["HAVE_SDL"] ~= nil) then
- tinsert(package.links, { "SDL", "SDLmain" })
-end
-EOF
- return (1);
+ if ($lib ne 'SDL' && $lib ne 'SDLmain') {
+ return (0);
}
- return (0);
+
+ if ($EmulEnv =~ /^cb-(gcc|ow)$/) {
+ if ($EmulOS eq 'windows') {
+ @inclpaths = ('C:\\\\MinGW\\\\include\\\\SDL',
+ 'C:\\\\MinGW\\\\include',
+ 'C:\\\\Program Files\\\\SDL\\\\include');
+ @libpaths = ('C:\\\\MinGW\\\\lib\\\\SDL',
+ 'C:\\\\MinGW\\\\lib',
+ 'C:\\\\Program Files\\\\SDL\\\\lib');
+ } else {
+ @inclpaths = ('/usr/local/include/SDL',
+ '/usr/include/SDL',
+ '/usr/local/include',
+ '/usr/include');
+ @libpaths = ('/usr/local/lib', '/usr/lib');
+ }
+ }
+
+ print 'if (hdefs["HAVE_SDL"] ~= nil) then'."\n";
+ print 'table.insert(package.links, { "SDL", "SDLmain" })'."\n";
+ foreach my $path (@inclpaths) {
+ print "table.insert(package.includepaths,{\"$path\"})\n";
+ }
+ foreach my $path (@libpaths) {
+ print "table.insert(package.libpaths,{\"$path\"})\n";
+ }
+ print "end\n";
+ return (1);
}
sub Emul
Modified: trunk/build.proj.mk
===================================================================
--- trunk/build.proj.mk 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/build.proj.mk 2008-11-01 16:26:39 UTC (rev 770)
@@ -37,43 +37,59 @@
PROJECT?=
PROJDIR?= ProjectFiles
PROJFILESEXTRA?=
-PROJINCLUDES?=${TOP}/configure.lua
PROJFILELIST= .projfiles2.out
PROJPREPKG?=
PROJPOSTPKG?=
+PROJCONFIGDIR?=
-PROJFILES?= windows:i386:cb-gcc:: \
+PROJFILES?= bsd:i386:cb-gcc:: \
+ linux:i386:cb-gcc:: \
+ macosx:i386:cb-gcc:: \
+ windows:i386:cb-gcc:: \
+ windows:i386:cb-ow:: \
windows:i386:vs6:: \
windows:i386:vs2002:: \
windows:i386:vs2003:: \
- windows:i386:vs2005::
+ windows:i386:vs2005:: \
+ windows:i386:vs2008::
-CLEANFILES+= premake.lua configure.lua
+CLEANFILES+= ${PREMAKEOUT} ${PROJINCLUDES}
+proj-package:
+ @if [ "${PROJECT}" = "" ]; then \
+ echo "cat Makefile | ${MKPROJFILES} > ${PREMAKEOUT}"; \
+ cat Makefile | \
+ env PROJTARGET="${PROJTARGET}" PROJOS="${PROJOS}" \
+ PROJARCH="${PROJARCH}" PROJFLAVOR="" \
+ PROJINCLUDES="${PROJINCLUDES}" \
+ ${MKPROJFILES} > ${PREMAKEOUT}; \
+ fi
+
proj:
- @if [ "${PROJECT}" = "" ]; then \
- echo "${MKPROJFILES} ${PROJINCLUDES} > ${PREMAKEOUT}"; \
- cat Makefile | ${MKPROJFILES} "" ${PROJINCLUDES} > ${PREMAKEOUT}; \
- else \
- if [ ! -d "${PROJDIR}" ]; then \
- echo "mkdir -p ${PROJDIR}"; \
- mkdir -p ${PROJDIR}; \
- fi; \
- for TGT in ${PROJFILES}; do \
- _tgtos=`echo $$TGT |awk -F: '{print $$1}' `; \
- _tgtarch=`echo $$TGT |awk -F: '{print $$2}' `; \
- _tgtproj=`echo $$TGT |awk -F: '{print $$3}' `; \
- _tgtflav=`echo $$TGT |awk -F: '{print $$4}' `; \
- _tgtopts=`echo $$TGT |awk -F: '{print $$5}'|sed 's/,/ /g'`; \
+ @if [ ! -d "${PROJDIR}" ]; then \
+ echo "mkdir -p ${PROJDIR}"; \
+ mkdir -p ${PROJDIR}; \
+ fi
+ @for TGT in ${PROJFILES}; do \
+ _tgtos=`echo $$TGT |awk -F: '{print $$1}' `; \
+ _tgtarch=`echo $$TGT |awk -F: '{print $$2}' `; \
+ _tgtproj=`echo $$TGT |awk -F: '{print $$3}' `; \
+ _tgtflav=`echo $$TGT |awk -F: '{print $$4}' `; \
+ _tgtopts=`echo $$TGT |awk -F: '{print $$5}'|sed 's/,/ /g'`; \
echo "*"; \
echo "* Target: $$_tgtos ($$_tgtproj)"; \
echo "* Target flavor: $$_tgtflav"; \
echo "* Target options: $$_tgtopts"; \
echo "*"; \
+ \
if [ -e "config" ]; then \
echo "rm -fR config"; \
rm -fR config; \
fi; \
+ if [ -e "include" ]; then \
+ echo "rm -fR include"; \
+ rm -fR include; \
+ fi; \
echo "mkconfigure --emul-env=$$_tgtproj --emul-os=$$_tgtos \
--emul-arch=$$_tgtarch > configure.tmp"; \
cat configure.in | \
@@ -81,7 +97,7 @@
--emul-arch=$$_tgtarch > configure.tmp; \
if [ $$? != 0 ]; then \
echo "mkconfigure failed"; \
- rm -fR configure.tmp configure.lua; \
+ rm -fR configure.tmp ${PROJINCLUDES}; \
exit 1; \
fi; \
echo "./configure.tmp $$_tgtopts --with-proj-generation"; \
@@ -91,23 +107,28 @@
echo > Makefile.config; \
exit 1; \
fi; \
- echo "${MAKE} proj-subdir"; \
- ${MAKE} proj-subdir; \
+ echo "${MAKE} proj-package-subdir"; \
+ env PROJTARGET="$$_tgtproj" PROJOS="$$_tgtos" \
+ PROJARCH="$$_tgtarch" \
+ ${MAKE} proj-package-subdir; \
\
- echo "rm -fR include/agar/config"; \
- rm -fR include/agar/config; \
- echo "cp -fR config include/agar/config"; \
- cp -fR config include/agar/config; \
+ if [ "${PROJCONFIGDIR}" != "" ]; then \
+ echo "rm -fR ${PROJCONFIGDIR}"; \
+ rm -fR ${PROJCONFIGDIR}; \
+ echo "cp -fR config ${PROJCONFIGDIR}"; \
+ cp -fR config ${PROJCONFIGDIR}; \
+ fi; \
echo "rm -f configure.tmp config.log"; \
rm -f configure.tmp config.log; \
echo >Makefile.config; \
\
- echo "* Begin file snapshot"; \
perl ${TOP}/mk/cmpfiles.pl; \
- echo "cat Makefile | ${MKPROJFILES} "$$_tgtflav" \
- ${PROJINCLUDES} > ${PREMAKEOUT}";\
- cat Makefile | ${MKPROJFILES} "$$_tgtflav" \
- ${PROJINCLUDES} > ${PREMAKEOUT};\
+ echo "cat Makefile | ${MKPROJFILES} > ${PREMAKEOUT}"; \
+ cat Makefile | \
+ env PROJFLAVOR="$$_tgtflav" \
+ PROJOS="$$_tgtos" \
+ PROJINCLUDES="${PROJINCLUDES}" \
+ ${MKPROJFILES} > ${PREMAKEOUT}; \
echo "${PREMAKE} ${PREMAKEFLAGS} --file ${PREMAKEOUT} \
--os $$_tgtos --target $$_tgtproj"; \
${PREMAKE} ${PREMAKEFLAGS} --file ${PREMAKEOUT} \
@@ -116,7 +137,6 @@
echo "premake failed"; \
exit 1; \
fi; \
- echo "* End snapshot:"; \
perl ${TOP}/mk/cmpfiles.pl added > .projfiles.out; \
echo "* Generated files: "; \
cat .projfiles.out; \
@@ -150,15 +170,13 @@
echo "* Cleaning up"; \
cat .projfiles.out | perl ${TOP}/mk/cleanfiles.pl; \
rm -fR include config ${PROJFILELIST}; \
- rm -f configure.lua .projfiles.out; \
- echo "${MAKE} proj-clean"; \
- ${MAKE} proj-clean; \
- echo "* Done"; \
- done; \
- fi
+ rm -f .projfiles.out ${PROJINCLUDES}; \
+ done
+ ${MAKE} proj-clean
+ @echo "* Done"
proj-clean: proj-clean-subdir
- @echo "rm -f premake.lua"
- @rm -f premake.lua
+ @echo "rm -f ${PREMAKEOUT}"
+ @rm -f ${PREMAKEOUT}
.PHONY: proj
Modified: trunk/build.subdir.mk
===================================================================
--- trunk/build.subdir.mk 2008-11-01 15:48:18 UTC (rev 769)
+++ trunk/build.subdir.mk 2008-11-01 16:26:39 UTC (rev 770)
@@ -267,7 +267,7 @@
done; \
fi)
-proj-subdir:
+proj-package-subdir:
@(if [ "${SUBDIR}" = "" ]; then \
SUBDIR="NONE"; \
else \
@@ -276,7 +276,7 @@
if [ "$$SUBDIR" != "" -a "$$SUBDIR" != "NONE" ]; then \
for F in $$SUBDIR; do \
echo "==> ${REL}$$F"; \
- (cd $$F && ${MAKE} REL=${REL}$$F/ proj); \
+ (cd $$F && ${MAKE} REL=${REL}$$F/ proj-package); \
if [ $$? != 0 ]; then \
exit 1; \
fi; \
@@ -304,4 +304,4 @@
.PHONY: all-subdir-ifexists clean-subdir-ifexists
cleandir-subdir-ifexists
.PHONY: install-subdir-ifexists deinstall-subdir-ifexists
.PHONY: depend-subdir-ifexists regress-subdir-ifexists
-.PHONY: proj-subdir proj-clean-subdir
+.PHONY: proj-package-subdir proj-clean-subdir
_______________________________________________
BSDBuild-Commits mailing list
[email protected]
http://mail231.csoft.net/mailman/listinfo/bsdbuild-commits